Timbrado vía Web Service

Timbrado vía Web Service

El objetivo de esta sección es explicar los principales métodos del Web Service, la manera en que pueden ser llamados desde una plataforma de desarrollo y conocer los valores de retorno. Aquí te compartimos parámetros, métodos de consumo, así como ejemplos de xml, adicionalmente dejamos a tu disposición herramientas que te servirán de apoyo.

Kit de implementación


Info

Compartido:

Servicio para empresas con esquema de pago por timbre con tiempos competitivos de certificación (los timbres serán de acuerdo a la cantidad solicitada).

Plataformas que no soportan la letra “Ñ”
https://invoiceone.mx/TimbreCFDI/TimbreCFDI.asmx

Plataformas que soportan la letra “Ñ”
https://invoiceone.mx/TimbreCFDI/ioTimbreCFDI.asmx

Métodos del Web Service

Para comenzar a utilizar el servicio de certificación se deberá contar con un sistema informático capaz de generar el CFDI versión 4.0 y que al mismo tiempo pueda consumir un Web Service, los métodos y parámetros que se describirán serán los valores que se deben de enviar al momento de formar la petición.

Para comenzar a utilizar el servicio de certificación se deberá contar con un sistema informático capaz de generar el CFDI versión 4.0 y que al mismo tiempo pueda consumir un Web Service. El CFDI deberá cumplir con las reglas oficiales vigentes establecidas en el Anexo 20 del CFDI 4.0 para su correcta certificación.

El Web Service de certificación contiene una lista de métodos públicos que pueden ser utilizados desde diversas plataformas tales como .NET, Java, PHP, entre otros.

Los métodos se listan a continuación:

Info

ObtenerTFD

Obtiene el Timbre Fiscal Digital del CFDI recibido (en producción)

ObtenerTFDPrueba

Obtiene el Timbre Fiscal Digital del CFDI recibido (en pruebas)

ObtenerCFDI

Obtiene el CFDI incluyendo el TFD del CFDI recibido (en producción)

ObtenerCFDIPrueba

Obtiene el CFDI incluyendo el TFD del CFDI recibido (en pruebas)

CancelaCFDIConsultaSAT

Cancela un CFDI utilizando un archivo .pfx (cer + llave privada) y la contraseña y consulta el estado de cancelación en SAT.

TestCancelaCFDIConsultaSAT

Simula la cancelación de un CFDI utilizando un archivo .pfx (cer + llave privada) y la contraseña y consulta el estado de cancelación en SAT.


Obtener TFD

Obtiene un TFD a partir de un CFDI.

Valores de entrada.

Parámetros

nombreUsuario: Usuario asignado por InvoiceOne

contrasena: Contraseña asignada por InvoiceOne

xmlComprobante: XML generado bajo el estándar del anexo 20.

Valores de Retorno

Xml: Cadena de texto con la nomenclatura de un TFD definida en el anexo 20.

Valores de Retorno con Error

MensajeError: Mensaje con código de error y descripción del error.
MensajeExepcionReal: Mensaje con descripción del error detallada.

Petición SOAP

  1. <soapenv:Envelope

    xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/”

    xmlns=”http://tempuri.org/”>

    <soapenv:Body>

    <ObtenerTFD>

    <nombreUsuario>Usuario de timbrado</nombreUsuario>

    <contrasena>Contraseña de timbrado</contrasena>

    <xmlComprobante>Cadena del XML generado conforme Anexo 20 </xmlComprobante>

    </ObtenerTFD>

    </soapenv:Body>

    </soapenv:Envelope>

Respuesta SOAP

  1. <soap:Envelope

    xmlns:soap=”http://schemas.xmlsoap.org/soap/envelope/”

    xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”

    xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>

    <soap:Body>

    <ObtenerTFDResponse xmlns=”http://tempuri.org/”>

    <ObtenerTFDResult>

    <Xml>Cadena del complemento Timbre Fiscal Digital correspondiente al XML</Xml>

    <XmlAcuse/>

    </ObtenerTFDResult>

    </ObtenerTFDResponse>

    </soap:Body>

    </soap:Envelope>


ObtenerTFDPrueba

Obtiene un TFD de PRUEBA a partir de un CFDI.

Valores de Entrada

Parámetros

usuario: Usuario asignado por InvoiceOne

contrasena: Contraseña asignada por InvoiceOne

xmlComprobante: XML generado bajo el estándar del anexo 20.


Valores de Retorno

Xml: Cadena de texto con la nomenclatura de un TFD definida en el anexo 20.

Valores de Retorno con Error

MensajeError: Mensaje con código de error y descripción del error.

MensajeExepcionReal: Mensaje con descripción del error detallada.

Petición SOAP

  1. <soapenv:Envelope

    xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/”

    xmlns=”http://tempuri.org/”>

    <soapenv:Body>

    <ObtenerTFDPrueba>

    <usuario>Usuario de timbrado</usuario>

    <contrasena>Contraseña de timbrado</contrasena>

    <xmlComprobante>Cadena del Xml conforme al Anexo 20</xmlComprobante>

    </ObtenerTFDPrueba>

    </soapenv:Body>

    </soapenv:Envelope>

Respuesta SOAP

  1. <soap:Envelope

    xmlns:soap=”http://schemas.xmlsoap.org/soap/envelope/”

    xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”

    xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>

    <soap:Body>

    <ObtenerTFDPruebaResponse xmlns=”http://tempuri.org/”>

    <ObtenerTFDPruebaResult>

    <Xml>Cadena de complemento Timbre Fiscal Digital (Pruebas) correspondiente al XML</Xml>

    <XmlAcuse/>

    </ObtenerTFDPruebaResult>

    </ObtenerTFDPruebaResponse>

    </soap:Body>

    </soap:Envelope>


Obtener CFDI

Obtiene un CFDI completo con TFD a partir de un CFDI sin TFD.

Valores de Entrada

Parámetros

nombreUsuario: Usuario asignado por InvoiceOne

contrasena: Contraseña asignada por InvoiceOne

xmlComprobante: XML generado bajo el estándar del anexo 20.

Valores de Retorno

Xml: Cadena de texto con la nomenclatura de un TFD definida en el anexo 20.

Valores de Retorno con Error

MensajeError: Mensaje con código de error y descripción del error.

MensajeExepcionReal: Mensaje con descripción del error detallada.

Petición SOAP

  1. <soapenv:Envelope

    xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/”

    xmlns=”http://tempuri.org/”>

    <soapenv:Body>

    <ObtenerCFDI>

    <nombreUsuario>Usuario de timbrado</nombreUsuario>

    <contrasena>Contraseña de timbrado</contrasena>

    <xmlComprobante>Cadena del Xml conforme al Anexo 20</xmlComprobante>

    </ObtenerCFDI>

    </soapenv:Body>

    </soapenv:Envelope>

Respuesta SOAP

  1. <soap:Envelope

    xmlns:soap=”http://schemas.xmlsoap.org/soap/envelope/”

    xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”

    xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>

    <soap:Body>

    <ObtenerCFDIResponse xmlns=”http://tempuri.org/”>

    <ObtenerCFDIResult>

    <Xml>Cadena del CFDI incluyendo TFD correspondiente al XML</Xml>

    <XmlAcuse/>

    </ObtenerCFDIResult>

    </ObtenerCFDIResponse>

    </soap:Body>

    </soap:Envelope>


ObtenerCFDIPrueba

Obtiene un CFDI completo con TFD de PRUEBA a partir de un CFDI sin TFD.

Valores de Entrada

Parámetros

usuario: Usuario asignado por InvoiceOne

contrasena: Contraseña asignada por InvoiceOne

xmlComprobante: XML generado bajo el estándar del anexo 20.

Valores de Retorno

Xml: Cadena de texto con la nomenclatura de un TFD definida en el anexo 20.

Valores de Retorno con Error

MensajeError: Mensaje con código de error y descripción del error.

MensajeExepcionReal: Mensaje con descripción del error detallada.

Petición SOAP

  1. <soapenv:Envelope

    xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/”

    xmlns=”http://tempuri.org/”>

    <soapenv:Body>

    <ObtenerCFDIPrueba>

    <usuario>Usuario de timbrado</usuario>

    <contrasena>Contraseña de timbrado</contrasena>

    <xmlComprobante>Cadena de Xml conforme Anexo 20</xmlComprobante>

    </ObtenerCFDIPrueba>

    </soapenv:Body>

    </soapenv:Envelope>

Respuesta SOAP

  1. <soap:Envelope

    xmlns:soap=”http://schemas.xmlsoap.org/soap/envelope/”

    xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”

    xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>

    <soap:Body>

    <ObtenerCFDIPruebaResponse xmlns=”http://tempuri.org/”>

    <ObtenerCFDIPruebaResult>

    <Xml>Cadena del CFDI incluyendo TFD (Pruebas) correspondiente al XML</Xml>

    <XmlAcuse/>

    </ObtenerCFDIPruebaResult>

    </ObtenerCFDIPruebaResponse>

    </soap:Body>

    </soap:Envelope>


CancelaCFDIConsultaSAT

Este método permite enviar la petición de cancelación de un CFDI, sin importar el PAC que lo haya certificado.

Valores de Entrada

Parámetros

Usuario: Usuario asignado por InvoiceOne.

Password: Contraseña asignada por InvoiceOne.

RFCEmisor: RFC del Emisor del CFDI a Cancelar.

RFCReceptor: RFC del Receptor del CFDI a Cancelar.

Total: El Total del CFDI a Cancelar.

UUID: Folio Fiscal UUID del CFDI a Cancelar.

MotivoCancelacion: Clave del motivo de cancelación.

FolioSustitucion: UUID que le sustituye (requerido cuando el motivo es 01).

pfxBase64: PFX en base 64 del Emisor del CFDI a Cancelar.

pfxPassword: Contraseña del PFX.

Valores de Retorno

UUID: UUID a Cancelar.

EstatusUUID: Estatus de la solicitud.

CodigoEstatus: Código de la solicitud de cancelación.

Es Cancelable: Define si el CFDI enviado es o No Cancelable.

Estado: Define si el CFDI está Vigente o Cancelado.

EstatusCancelacion: Define el estatus de Cancelación del CFDI.

Valores de Retorno con Error

MensajeError: Mensaje con código de error y descripción del error.

MensajeExepcionReal: Mensaje con descripción del error detallada.

Petición SOAP

  1. <soapenv:Envelope

    xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/”

    xmlns=”http://tempuri.org/”>

    <soapenv:Body>

    <CancelaCFDIConsultaSAT>

    <Usuario>Usuario de timbrado</Usuario>

    <Password>Contraseña de timbrado</Password>

    <RFCEmisor>RFC del Emisor del CFDI</RFCEmisor>

    <RFCReceptor>RFC del Receptor del CFDI</RFCReceptor>

    <Total>Total del CFDI</Total>

    <UUID>UUID del CFDI</UUID>

    <MotivoCancelacion>Clave del Motivo de Cancelacion</MotivoCancelacion>

    <FolioSustitucion>Folio de Sustitucion</FolioSustitucion>

    <pfxBase64>Cadena en Base64 del PFX</pfxBase64>

    <pfxPassword>Contraseña del PFX</pfxPassword>

    </CancelaCFDIConsultaSAT>

    </soapenv:Body>

    </soapenv:Envelope>

Respuesta SOAP

  1. <soap:Envelope

    xmlns:soap=”http://schemas.xmlsoap.org/soap/envelope/”

    xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”

    xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>

    <soap:Body>

    <CancelaCFDIConsultaSATResponse xmlns=”http://tempuri.org/”>

    <CancelaCFDIConsultaSATResult>

    <CodEstatus>Codigo de Estatus</CodEstatus>

    <Fecha>Fecha de la solicitud</Fecha>

    <RFCEmisor>RFC del Emisor</RFCEmisor>

    <Folios>

    <RespuestaCancelaCFDIFolio>

    <UUID>UUID del CFDI Cancelado</UUID>

    <EstatusUUID>Estatus del UUID enviado a cancelar</EstatusUUID>

    <CodigoEstatus>Codigo de Estatus en respuesta de la solicitud</CodigoEstatus>

    <EsCancelable>Define si el CFDI es o No Cancelable</EsCancelable>

    <Estado>Estado del CFDI como: Vigente o Cancelado</Estado>

    <EstatusCancelacion>Estatus del CFDI en la solicitud</EstatusCancelacion>

    </RespuestaCancelaCFDIFolio>

    </Folios>

    <XmlAcuse>Acuse de Cancelación</XmlAcuse>

    </CancelaCFDIConsultaSATResult>

    </CancelaCFDIConsultaSATResponse>

    </soap:Body>

    </soap:Envelope>



TestCancelaCFDIConsultaSAT

Este método simula la solicitud de cancelación de un CFDI.

Valores de Entrada

Parámetros

Usuario: Usuario asignado por InvoiceOne.

Password: Contraseña asignada por InvoiceOne.

RFCEmisor: RFC del Emisor del CFDI a Cancelar.

RFCReceptor: RFC del Receptor del CFDI a Cancelar.

Total: El Total del CFDI a Cancelar.

UUID: Folio Fiscal UUID del CFDI a Cancelar.

MotivoCancelacion: Clave del motivo de cancelación.

FolioSustitucion: UUID que le sustituye (requerido cuando el motivo es 01).

pfxBase64: PFX en base 64 del Emisor del CFDI a Cancelar.

pfxPassword: Contraseña del PFX.

Valores de Retorno

UUID: UUID a Cancelar.

EstatusUUID: Estatus de la solicitud.

CodigoEstatus: Código de la solicitud de cancelación.

Es Cancelable: Define si el CFDI enviado es o No Cancelable.

Estado: Define si el CFDI está Vigente o Cancelado.

EstatusCancelacion: Define el estatus de Cancelación del CFDI.

Valores de Retorno con Error

MensajeError: Mensaje con código de error y descripción del error.

MensajeExepcionReal: Mensaje con descripción del error detallada.

Petición SOAP

  1. <soapenv:Envelope

    xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/”

    xmlns=”http://tempuri.org/”>

    <soapenv:Body>

    <TestCancelaCFDIConsultaSAT>

    <Usuario>Usuario de timbrado</Usuario>

    <Password>Contraseña de timbrado</Password>

    <RFCEmisor>RFC del Emisor del CFDI</RFCEmisor>

    <RFCReceptor>RFC del Receptor del CFDI</RFCReceptor>

    <Total>Total del CFDI</Total>

    <UUID>UUID del CFDI</UUID>

    <MotivoCancelacion>Clave del Motivo de Cancelacion</MotivoCancelacion>

    <FolioSustitucion>Folio de Sustitucion</FolioSustitucion>

    <pfxBase64>Cadena en Base64 del PFX</pfxBase64>

    <pfxPassword>Contraseña del PFX</pfxPassword>

    </TestCancelaCFDIConsultaSAT>

    </soapenv:Body>

    </soapenv:Envelope>

Respuesta SOAP

  1. <soap:Envelope

    xmlns:soap=”http://schemas.xmlsoap.org/soap/envelope/”

    xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”

    xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>

    <soap:Body>

    <TestCancelaCFDIConsultaSATResponse xmlns=”http://tempuri.org/”>

    <TestCancelaCFDIConsultaSATResult>

    <CodEstatus>Codigo de Estatus</CodEstatus>

    <Fecha>Fecha de la solicitud</Fecha>

    <RFCEmisor>RFC del Emisor</RFCEmisor>

    <Folios>

    <RespuestaCancelaCFDIFolio>

    <UUID>UUID del CFDI Cancelado</UUID>

    <EstatusUUID>Estatus del UUID enviado a cancelar</EstatusUUID>

    <CodigoEstatus>Codigo de Estatus en respuesta de la solicitud</CodigoEstatus>

    <EsCancelable>Define si el CFDI es o No Cancelable</EsCancelable>

    <Estado>Estado del CFDI como: Vigente o Cancelado</Estado>

    <EstatusCancelacion>Estatus del CFDI en la solicitud</EstatusCancelacion>

    </RespuestaCancelaCFDIFolio>

    </Folios>

    <XmlAcuse>Acuse de Cancelación</XmlAcuse>

    </TestCancelaCFDIConsultaSATResult>

    </TestCancelaCFDIConsultaSATResponse>

    </soap:Body>

    </soap:Envelope>



    • Related Articles

    • Consulta vía Web Service

      Aquí te compartimos la estructura de la petición para la consulta de tus comprobantes. Los parámetros que se describirán serán los valores que se deben enviar al momento de generar la petición de consulta para posteriormente ser enviada al Web ...
    • Cancelación vía Web Service

      En esta sección te orientamos para la integración y consumo del Web Service de producción para atender solicitudes de Cancelación de sus comprobantes fiscales digitales con los métodos disponibles. Iniciamos confirmando la URL disponible. ...
    • ¿Qué tipo de comprobantes puede timbrar el Web Service?

      El Web Service esta preparado para timbrar los comprobantes y complementos que el SAT pone a disposición en su sitio. Aquí algunos ejemplos: CFDI simple Complemento de Pagos Complemento de Nómina Complemento Comercio Exterior Complemento Carta Porte ...
    • ¿Cómo se estructura la petición de timbrado que espera el servicio?

      El Web Service espera los parámetros usuario, contraseña y el XML a certificar en la siguiente estructura: Todos los datos son requeridos para procesar correctamente la solicitud y obtener una respuesta efectiva o con algún código de validación de la ...
    • ¿Puedo hacer timbrados masivos a través del Web Service?

      Si, es correcto. Si bien el servicio permite realizar el timbrado masivo de comprobantes es importante conocer que la peticiónSOAP solo puede contener 1 CFDI a certificar, pero el Web Service puede recibir n° peticiones a la vez para el timbrado ...