Consulta de Estados de CFDI
1 Introducción
El servicio de Consulta de Estados de CFDI permite conocer el estado actual de un Comprobante Fiscal Digital por Internet (CFDI), ya sea Vigente o Cancelado, así como información adicional sobre su cancelabilidad.
Este servicio utiliza método SOAP (POST) y es de tipo 1:1, es decir, por cada consulta realizada, se recibe información sobre un único CFDI.
Nota: Cada cancelación consume un timbre del paquete contratado por el cliente.
2 Estructura del Servicio
2.1 Estructura general de la petición
Este servicio expone una interfaz web SOAP para consultar, con base en los siguientes datos:
-
RFC del emisor
-
RFC del receptor
-
Total del comprobante
-
UUID del CFDI
Con estos datos se construye la expresión impresa que se envía como parámetro en la solicitud.
Endpoint
Método | Ambiente | Ruta |
---|---|---|
POST | Pruebas |
|
POST | Productivo |
|
Autenticación y Headers
Header | Value |
SOAPAction | "http://tempuri.org/IConsultaCFDIService/Consulta" |
Content-Type | text/xml; charset=utf-8 |
CustomerKey | Clave única del cliente asignada por Tralix |
Parámetros de Consulta
Para realizar la consulta se utiliza la expresión impresa, con la siguiente estructura:
?re=[RFC Emisor]&rr=[RFC Receptor]&tt=[Total del CFDI]&id=[UUID del CFDI]
Desglose de parámetros:
Parámetro | Descripción | Obligatorio |
---|---|---|
re |
RFC del Emisor | Sí |
rr |
RFC del Receptor | Sí |
tt |
Total del CFDI (en número decimal) | Sí |
id |
UUID del CFDI | Sí |
2.2 Ejemplo de petición
Las siguientes cabeceras son obligatorias para la correcta invocación del servicio:
SOAPAction: "http://tempuri.org/IConsultaCFDIService/Consulta"
Content-Type: text/xml; charset=utf-8
CustomerKey: [CUSTOMER_KEY]
-
SOAPAction
: Define la acción SOAP correspondiente. -
Content-Type
: Debe indicarse comotext/xml
con codificación UTF-8. -
CustomerKey
: Valor único proporcionado por Tralix al contratar el servicio.
Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Body>
<tem:Consulta>
<tem:expresionImpresa><![CDATA[?re=TME960709LR2&rr=CALJ581101M37&tt=10403.20&id=33F694C6-3E44-41B5-A67E-B3767EB1EC50]]></tem:expresionImpresa>
</tem:Consulta>
</soapenv:Body>
</soapenv:Envelope>
2.3 Ejemplo de respuesta
Respuesta exitosa
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<ConsultaResponse xmlns="http://tempuri.org/">
<ConsultaResult xmlns:a="http://schemas.datacontract.org/2004/07/Sat.Cfdi.Negocio.ConsultaCfdi.Servicio" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:CodigoEstatus>S - Comprobante obtenido satisfactoriamente.</a:CodigoEstatus>
<a:EsCancelable>Cancelable con aceptación</a:EsCancelable>
<a:Estado>Cancelado</a:Estado>
<a:EstatusCancelacion>Plazo vencido</a:EstatusCancelacion>
</ConsultaResult>
</ConsultaResponse>
</s:Body>
</s:Envelope>
3 Consideraciones Técnicas
-
El
CustomerKey
debe estar vigente y autorizado. -
Se debe usar la codificación UTF-8.
-
La URL cambia dependiendo del ambiente (pruebas o producción).
-
La precisión del total (
tt
) debe coincidir exactamente con el CFDI original, incluyendo decimales. -
Asegúrate de que el UUID, RFCs y monto estén correctamente formateados.
4 Ejemplo Práctico
Supongamos que quieres consultar el estado del siguiente CFDI:
-
RFC Emisor:
TME960709LR2
-
RFC Receptor:
CALJ581101M37
-
Total:
10403.20
-
UUID:
33F694C6-3E44-41B5-A67E-B3767EB1EC50
Tu expresión impresa sería (Inclúyela dentro del XML):
?re=TME960709LR2&rr=CALJ581101M37&tt=10403.20&id=33F694C6-3E44-41B5-A67E-B3767EB1EC50
5 Contacto y Soporte
Para soporte técnico, dudas sobre el uso del servicio o solicitud de su CustomerKey
, puede comunicarse con su ejecutivo o con el área de soporte técnico de Tralix vía ticket.
No Comments