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. 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:
Obtiene el Timbre Fiscal Digital del CFDI recibido (en producción)
Obtiene el Timbre Fiscal Digital del CFDI recibido (en pruebas)
Obtiene el CFDI incluyendo el TFD del CFDI recibido (en producción)
Obtiene el CFDI incluyendo el TFD del CFDI recibido (en pruebas)
Cancela un CFDI utilizando un archivo .pfx (cer + llave privada) y la contraseña y consulta el estado de cancelación en SAT.
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.
ObtenerTFD
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
<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
<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
<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
<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>
ObtenerCFDI
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
<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
<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
<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
<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
<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.
<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
<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.
<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>