web services
documentación para integración con servicios Diverza
integración de API´s para cancelación de CFDI´s
La implementación de este servicio permite solicitar la cancelación de uno o varios CFDI al SAT.
Recordando siempre que el que el SAT reciba la petición de cancelación no significa que se llevará a cabo la cancelación.
características generales
En México, todos los Comprobantes Fiscales Digitales por Internet (CFDI) —las facturas electrónicas— se registran en una base de datos central del SAT, esto significa que cada comprobante que se emite pasa primero por un Proveedor Autorizado de Certificación (PAC), y después se guarda en los servidores del SAT para tener un control nacional de todas las facturas.
Gracias a este modelo, cuando alguien quiere cancelar un CFDI, no lo hace directamente con la otra persona o empresa, sino que debe pedirle al SAT que lo cancele a través del proceso oficial de “Cancelación de CFDI”
Esta cancelación puede realizarse de forma automática usando las API´s de Diverza, que permiten integrar el proceso en los sistemas del contribuyente.
El artículo 29-A establece que el receptor del CFDI debe ser notificado cuando se solicite su cancelación, y puede aceptar o rechazar dicha solicitud. Es necesario consultar posteriormente el estado del comprobante para saber si el receptor la aceptó o si el CFDI cumple alguno de los supuestos en los que no se requiere autorización.
Estos supuestos se detallan en la normativa y aplican únicamente en casos específicos. Los escenarios en los que aplica este supuesto son los siguientes:
- Cuando la cancelación se realice dentro de las 24 horas siguientes a su expedición
- Se trate de un CFDI de Egreso (sin relaciones)
- Se trate de un CFDI de Nómina (sin relaciones)
- Se trate de un CFDI de Traslado (sin relaciones)
- Se trate de un CFDI de Retenciones e Información de Pagos
- CFDI de residentes en el extranjero, para efectos fiscales conforme a la regla 2.7.1.26
- CFDI de Ingresos expedidos en operaciones con el público general, según la regla 2.7.1.24.
- CFDI de Ingresos expedidos a contribuyentes del RIF
- CFDI de Ingresos por un monto de hasta $1,000.00 MXN
Para que el SAT de trámite a una solicitud de cancelación, se debe de cumplir con lo siguiente:
- La solicitud de cancelación del UUID (folio fiscal), este firmada electrónicamente con el certificado de sello digital (CSD) del emisor.
- El UUID (folio fiscal) debe pertenecer al emisor del comprobante.
- Se debe proporcionar el motivo por el que se lleva a cabo la cancelación.
En caso de que se proporcione como motivo la clave 01 "Comprobante emitido con errores con relación", deberá relacionarse el folio fiscal del comprobante que sustituye al cancelado.
- Se debe proporcionar el motivo por el que se lleva a cabo la cancelación.
Consideraciones importantes
- Este servicio envía la solicitud de cancelación al SAT. El resultado final no depende de Diverza, sino del propio SAT.
- Es importante saber que algunas facturas no pueden cancelarse, según las reglas del SAT. Si un comprobante tiene el estado “No cancelable”, y no se cambian sus condiciones, el resultado siempre será el mismo: no podrá cancelarse.
Requisitos
Para realizar la cancelación de un folio fiscal de un CFDI es necesario contar con lo siguiente:
- El folio fiscal (UUID)
- El RFC del Emisor del comprobante o comprobantes a cancelar. Estos datos pueden ser extraídos del CFDI, ya sea del documento XML o de la representación impresa PDF.
- El Certificado de Sello Digital (CSD) vigente del RFC emisor del comprobante.
- El CSD generalmente consta de tres partes:
a. El Certificado, que es un archivo con extensión .cer
b. La llave privada, que es un archivo con extensión .key
c. y la contraseña de la llave privada.
Para obtener un certificado de sello digital (CSD) del SAT, consulta el sitio del SAT para generar una Solicitud para tu Certificado de Sello Digital para emitir facturas.
Request para conocer situación de CFDI
Esta API consulta la situación del cfdi para conocer si esta vigente o cancelado, si es cancelable o no y en que etapa de la cancelación se encuentra
Ubicación del servicio
- https://serviciosdemo.diverza.com/api/v2/documents/{{UUID}}/sat_cfdi_enquiry
Consulta el status de CFDI
Ejemplos como Emisor
{
"credentials":
{
"id": "123414",
"token": "$2b$12$JgIf1J7db4e6f06VnNPsUOaQD3SpwUnzPqXDkuirQklcc8gMCMIDS"
},
"issuer":
{
"rfc": "EKU9003173C9"
},
"document":
{
"certificate-number": "30001000000500003416"
}
}
{
"validacion_efos": "200",
"estatus_cancelacion": null,
"estado": "Vigente",
"es_cancelable": "Cancelable sin aceptación",
"codigo_estatus": "S - Comprobante obtenido satisfactoriamente."
}
Request para conocer CFDI relacionados
Esta API verifica si el CFDI a cancelar tiene otros relacionados, de ser así el sistema mandará un mensaje para notificar que se deberán cancelar los relacionados primero para poder continuar después con el CFDI padre.
Ubicación del servicio
- https://serviciosdemo.diverza.com/api/v2/documents/{{UUID}}/linked_documents_enquiry
Consulta el status de CFDI
Ejemplos como Emisor
Ejemplo de REQUEST | Consulta de CFDI Relacionados
{
"credentials":
{
"id": "123414",
"token": "$2b$12$JgIf1J7db4e6f06VnNPsUOaQD3SpwUnzPqXDkuirQklcc8gMCMIDS"
},
"issuer":
{
"rfc": "EKU9003173C9"
},
"document":
{
"certificate-number": "30001000000500003416"
}
}
{
"uuids_relacionados_padres": [
{
"uuid": "3C095A00-6AA4-46CD-9029-89FC983453EA",
"rfc_receptor": "NPB960219TM5",
"rfc_emisor": "EKU9003173C9"
}
],
"uuids_relacionados_hijos": [],
"uuid_consultado": "33EAB0D0-1D5D-4EA9-AB9A-BB1926506E0E",
"sat_message": "Existen cfdi relacionados al folio fiscal",
"rfc_emisor": "EKU9003173C9",
"response": "PHM6RW52ZWxvcGUgeG1sbnM6cz0iaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbnZlbG9wZS8iPjxzOkJvZHkgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+PFByb2Nlc2FyUmVzcHVlc3RhUmVzcG9uc2UgeG1sbnM9Imh0dHA6Ly9jYW5jZWxhY2ZkLnNhdC5nb2IubXgiPjxQcm9jZXNhclJlc3B1ZXN0YVJlc3VsdD48VXVpZENvbnN1bHRhZG8+MzNFQUIwRDAtMUQ1RC00RUE5LUFCOUEtQkIxOTI2NTA2RTBFPC9VdWlkQ29uc3VsdGFkbz48UmVzdWx0YWRvPldTIENvbnN1bHRhIENGREkgcmVsYWNpb25hZG9zIFJmY0VtaXNvcjogRUtVOTAwMzE3M0M5IC0gZm9saW8gZsOtc2NhbDogMzNFQUIwRDAtMUQ1RC00RUE5LUFCOUEtQkIxOTI2NTA2RTBFIC0gQ2xhdmU6IDIwMDAgLSBTZSBlbmNvbnRyYXJvbiBDRkRJIHJlbGFjaW9uYWRvczwvUmVzdWx0YWRvPjxVdWlkc1JlbGFjaW9uYWRvc1BhZHJlcz48VXVpZFBhZHJlPjxVdWlkPjNDMDk1QTAwLTZBQTQtNDZDRC05MDI5LTg5RkM5ODM0NTNFQTwvVXVpZD48UmZjRW1pc29yPkRNRTkyMDQwOTlSNjwvUmZjRW1pc29yPjxSZmNSZWNlcHRvcj5OUEI5NjAyMTlUTTU8L1JmY1JlY2VwdG9yPjwvVXVpZFBhZHJlPjwvVXVpZHNSZWxhY2lvbmFkb3NQYWRyZXM+PFV1aWRzUmVsYWNpb25hZG9zSGlqb3MvPjwvUHJvY2VzYXJSZXNwdWVzdGFSZXN1bHQ+PC9Qcm9jZXNhclJlc3B1ZXN0YVJlc3BvbnNlPjwvczpCb2R5PjwvczpFbnZlbG9wZT4=",
"folio_fiscal": "33EAB0D0-1D5D-4EA9-AB9A-BB1926506E0E",
"clave": "2000"
}
Request para cancelación
Esta API solicita la cancelación y verifica si requiere aceptación o no
Ubicación del servicio
- https://serviciosdemo.diverza.com/api/v2/documents/{{UUID}}/cancel
Consulta el status de CFDI

Ejemplos como Emisor
{
"credentials":
{
"id": "123414",
"token": "$2b$12$JgIf1J7db4e6f06VnNPsUOaQD3SpwUnzPqXDkuirQklcc8gMCMIDS"
},
"issuer":
{
"rfc": "EKU9003173C9"
},
"document":
{
"certificate-number": "30001000000500003416"
}
}
{
"uuid": "179D9347-78B6-4937-AA41-584F4DEACF6F",
"status": "pending",
"issuer_rfc": "EKU9003173C9",
"date": "2024-04-11T14:19:42.3344203",
"acknowledgement": "PHM6RW52ZWxvcGUgeG1sbnM6cz0iaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbnZlbG9wZS8iPjxzOkJvZHkgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+PENhbmNlbGFDRkRSZXNwb25zZSB4bWxucz0iaHR0cDovL2NhbmNlbGFjZmQuc2F0LmdvYi5teCI+PENhbmNlbGFDRkRSZXN1bHQgRmVjaGE9IjIwMjQtMDQtMTFUMTQ6MTk6NDIuMzM0NDIwMyIgUmZjRW1pc29yPSJFS1U5MDAzMTczQzkiPjxGb2xpb3M+PFVVSUQ+MTc5RDkzNDctNzhCNi00OTM3LUFBNDEtNTg0RjRERUFDRjZGPC9VVUlEPjxFc3RhdHVzVVVJRD4yMDE8L0VzdGF0dXNVVUlEPjwvRm9saW9zPjxTaWduYXR1cmUgSWQ9IlNlbGxvU0FUIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+PFNpZ25lZEluZm8+PENhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy14bWwtYzE0bi0yMDAxMDMxNSIvPjxTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTUxMiIvPjxSZWZlcmVuY2UgVVJJPSIiPjxUcmFuc2Zvcm1zPjxUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy9UUi8xOTk5L1JFQy14cGF0aC0xOTk5MTExNiI+PFhQYXRoPm5vdChhbmNlc3Rvci1vci1zZWxmOjoqW2xvY2FsLW5hbWUoKT0nU2lnbmF0dXJlJ10pPC9YUGF0aD48L1RyYW5zZm9ybT48L1RyYW5zZm9ybXM+PERpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTUxMiIvPjxEaWdlc3RWYWx1ZT5ZZTZnVFc3MlNCOWZXVnVDdzN5MHNtd0VkVU1UdEt4OCt6YTRmQ3pTQmU3RmZTVlFxdXJKbUxXTTd2VnJUR2FuU2pRTHp5SmNqR3dUOVVQaG5vdDVPZz09PC9EaWdlc3RWYWx1ZT48L1JlZmVyZW5jZT48L1NpZ25lZEluZm8+PFNpZ25hdHVyZVZhbHVlPjBnT1Jlcmp5a3VrY2FBRllFV3Z3SExodzRHck9GNjl2SWo0UWhnaTg4cDM0cWI5ZTZmY0pmZ21OOEJrckMyN2pUaDdiVXpNcGErRzBpVCt0M1JxbHRBPT08L1NpZ25hdHVyZVZhbHVlPjxLZXlJbmZvPjxLZXlOYW1lPjAwMDAxMDg4ODg4ODAwMDAwMDM4PC9LZXlOYW1lPjxLZXlWYWx1ZT48UlNBS2V5VmFsdWU+PE1vZHVsdXM+cVJXekhQVnRSSFl5RFFUbm5wUFl0T0JtYjVSYWFkZGI0WFpIMURObElodWhVcmg3Ukt3ZnZjd2gwNXdFdTFsZ1VuZWo5QndzTGQ0dTFTZVl5YXdtYUYyekloenNzUDE5eWhPUVVOOWRSQmVTZzUxbThYcUNpb2R4b0dpbGdObTdlRGRaUTdqMFpZVjBVT2tNZ0dmb213LzNMMHovTzFnVGJSRFNnOGd3TTRCTVNTdStpU01UY0lLcW4wb2g0Qyt1Nzd2S1J1aTlOWDZXWlcydVJubXZFbkR5Ynh4dHhUUVZSM1ZsTTR0ZFhlWVRma3I1V1VVcnRhRnlGVy9CN3pzOU1iK0ZPNUNyL1RiV211K3hKUDZMbE40VWJaZFBWZTcrN3Jydi9od3plWWUyTGVGVDBKdG12dXkxTmZSL3VVWmEzNStVTW91K1Jic0RPVG00dmZKeXV3PT08L01vZHVsdXM+PEV4cG9uZW50PkFRQUI8L0V4cG9uZW50PjwvUlNBS2V5VmFsdWU+PC9LZXlWYWx1ZT48L0tleUluZm8+PC9TaWduYXR1cmU+PC9DYW5jZWxhQ0ZEUmVzdWx0PjwvQ2FuY2VsYUNGRFJlc3BvbnNlPjwvczpCb2R5PjwvczpFbnZlbG9wZT4="
}
Conocer solicitudes de cancelación
Esta API consulta si el receptor tienen solicitudes de cancelación que deba aprobar o rechazar
Ubicación del servicio
- https://serviciosdemo.diverza.com/api/v2/documents/{{RFC}}/cancel_obtain_pending_petitions
Consulta solicitudes de cancelación de CFDI
Ejemplos como Receptor
{
"credentials":
{
"id": "123414",
"token": "$2b$12$JgIf1J7db4e6f06VnNPsUOaQD3SpwUnzPqXDkuirQklcc8gMCMIDS"
},
"issuer":
{
"rfc": "EKU9003173C9"
},
"document":
{
"certificate-number": "30001000000500003416"
}
}
{
"uuids": [
"9E6882F0-9997-4C6D-8BDE-D548E6D3B6E4"
],
"response": "PHM6RW52ZWxvcGUgeG1sbnM6cz0iaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbnZlbG9wZS8iPjxzOkJvZHkgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+PE9idGVuZXJQZXRpY2lvbmVzUGVuZGllbnRlc1Jlc3BvbnNlIHhtbG5zPSJodHRwOi8vY2FuY2VsYWNmZC5zYXQuZ29iLm14Ij48T2J0ZW5lclBldGljaW9uZXNQZW5kaWVudGVzUmVzdWx0IENvZEVzdGF0dXM9IjExMDAiPjxVVUlEPjlFNjg4MkYwLTk5OTctNEM2RC04QkRFLUQ1NDhFNkQzQjZFNDwvVVVJRD48L09idGVuZXJQZXRpY2lvbmVzUGVuZGllbnRlc1Jlc3VsdD48L09idGVuZXJQZXRpY2lvbmVzUGVuZGllbnRlc1Jlc3BvbnNlPjwvczpCb2R5PjwvczpFbnZlbG9wZT4=",
"codigo_estatus": "1100"
}
Aceptación o rechazo de cancelación
Esta API recibe la respuesta del receptor si acepta o rechaza la solicitud de cancelación
Ubicación del servicio
- https://serviciosdemo.diverza.com/api/v2/documents/{{UUID}}/cancel_accept_reject
Respuesta de solicitud de cancelación de CFDI
Ejemplos como Receptor
{
"credentials": {
"id": "19",
"token": "$2B$12$QC24IPCCEEFXEALTKIBUZUXBYQHSJTC4Z7TROXKRKVYJKSYTZBN9M"
},
"tracking": {
"product_channel": "buzon_fiscal-portal"
},
"document": {
"certificate-number": “20001000000300022755”,
"accepted": true
}
}
{
"credentials":
{
"id": "123414",
"token": "$2b$12$JgIf1J7db4e6f06VnNPsUOaQD3SpwUnzPqXDkuirQklcc8gMCMIDS"
},
"issuer":
{
"rfc": "EKU9003173C9"
},
"document":
{
"certificate-number": "30001000000500003416",
"accepted": false
}
}
Consulta de estatus de vigencia de un CFDI (PDF)
Esta API consulta el estatus en que se encuentra el CFDI y genera un PDF con la respuesta
Ubicación del servicio
- https://serviciosdemo.diverza.com/api/v1/documents/{UUID}/cancel
Ejemplos
Body Diverza:
{
"credentials": {
"id": "19",
"token": "$2B$12$QC24IPCCEEFXEALTKIBUZUXBYQHSJTC4Z7TROXKRKVYJKSYTZBN9M"
}
}
Body External:
{
"credentials": {
"id": "19",
"token": "$2B$12$QC24IPCCEEFXEALTKIBUZUXBYQHSJTC4Z7TROXKRKVYJKSYTZBN9M"
},
"document": {
"rfc_receptor": "SUL010720JN8",
"total_cfdi": "5104.00"
}
}
200
{
"validacion_efos": "200",
"estatus_cancelacion": null,
"estado": "Vigente",
"es_cancelable": "Cancelable sin aceptación",
"codigo_estatus": "S - Comprobante obtenido satisfactoriamente."
}
{
"validacion_efos": "200",
"estatus_cancelacion": null,
"estado": "Vigente",
"es_cancelable": "Cancelable con aceptación",
"codigo_estatus": "S - Comprobante obtenido satisfactoriamente."
}
{
"validacion_efos": "100",
"estatus_cancelacion": null,
"estado": "Vigente",
"es_cancelable": "No Cancelable",
"codigo_estatus": "S - Comprobante obtenido satisfactoriamente."
}
{
"validacion_efos": "200",
"estatus_cancelacion": "En proceso",
"estado": "Vigente",
"es_cancelable": "Cancelable con aceptación",
"codigo_estatus": "S - Comprobante obtenido satisfactoriamente."
}
{
"validacion_efos": "100",
"estatus_cancelacion": "Solicitud rechazada",
"estado": "Vigente",
"es_cancelable": "Cancelable con aceptación",
"codigo_estatus": "S - Comprobante obtenido satisfactoriamente."
}
{
"validacion_efos": "200",
"estatus_cancelacion": "Cancelado sin aceptación",
"estado": "Cancelado",
"es_cancelable": "Cancelable sin aceptación",
"codigo_estatus": "S - Comprobante obtenido satisfactoriamente."
}
{
"validacion_efos": "200",
"estatus_cancelacion": "Cancelado con aceptación",
"estado": "Cancelado",
"es_cancelable": "Cancelable con aceptación",
"codigo_estatus": "S - Comprobante obtenido satisfactoriamente."
}
{
"validacion_efos": "200",
"estatus_cancelacion": "Plazo vencido",
"estado": "Cancelado",
"es_cancelable": "Cancelable con aceptación",
"codigo_estatus": "S - Comprobante obtenido satisfactoriamente."
}
{
"validacion_efos": "200",
"estatus_cancelacion": null,
"estado": "No Encontrado",
"es_cancelable": null,
"codigo_estatus": "N - 601: La expresión impresa proporcionada no es válida."
}
{
"validacion_efos": "100",
"estatus_cancelacion": null,
"estado": "No Encontrado",
"es_cancelable": null,
"codigo_estatus": "N - 602: Comprobante no encontrado."
}
404
{
"stage": "search_document",
"request_headers": [...],
"message": "Document being requested does not exist",
"level": 5,
"error_id": 197773,
"error_details": "[\"El Documento con UUID :A823FDC4-2529-67GH-912B-210C65572406 no fue encontrado\"]",
"comp_error_details": [
"El Documento con UUID :A823FDC4-2529-67GH-912B-210C65672406 no fue encontrado"
],
"code": 4404
}
400
{
"stage": "service_error",
"request_headers": [...],
"message": "Error con el servicio del SAT",
"level": 5,
"error_id": 197796,
"error_details": "[{\"stage\":\"consulta_sat_cfdi\",\"request_headers\":\"[{\\\"content-type\\\",
\\\"application/json\\\"}, {\\\"host\\\", \\\"localhost:4040\\\"}, {\\\"content-length\\\", \\\"476\\\"}]
\",\"message\":\"SAT consulta cfdi Error\",\"level\":5,\"error_id\":197795,\"error_details\":\"[{\\
\"sat_response_http_status_code\\\":500,\\\"sat_response_body\\\":\\
\"PHM6RW52ZWxvcGUgeG1sbnM6cz0iaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbnZlbG9wZS8iPjxzOkJvZHk+PHM6RmF1bHQ+PGZhdWx0Y29kZSB4bWxuczphPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL25ldC8yMDA1LzEyL3dpbmRvd3Njb21tdW5pY2F0aW9uZm91bmRhdGlvbi9kaXNwYXRjaGVyIj5hOkludGVybmFsU2VydmljZUZhdWx0PC9mYXVsdGNvZGU+PGZhdWx0c3RyaW5nIHhtbDpsYW5nPSJlbi1VUyI+VGhlIHNlcnZlciB3YXMgdW5hYmxlIHRvIHByb2Nlc3MgdGhlIHJlcXVlc3QgZHVlIHRvIGFuIGludGVybmFsIGVycm9yLiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGVycm9yLCBlaXRoZXIgdHVybiBvbiBJbmNsdWRlRXhjZXB0aW9uRGV0YWlsSW5GYXVsdHMgKGVpdGhlciBmcm9tIFNlcnZpY2VCZWhhdmlvckF0dHJpYnV0ZSBvciBmcm9tIHRoZSAmbHQ7c2VydmljZURlYnVnJmd0OyBjb25maWd1cF0aW9uIGJlaGF2aW9yKSBvbiB0aGUgc2VydmVyIGluIG9yZGVyIHRvIHNlbmQgdGhlIGV4Y2VwdGlvbiBpbmZvcm1hdGlvbiBiYWNrIHRvIHRoZSBjbGllbnQsIG9yIHR1cm4gb24gdHJhY2luZyBhcyBwZXIgdGhlIE1pY3Jvc29mdCAuTkVUIEZyYW1ld29yayBTREsgZG9jdW1lbnRhdGlvbiBhbmQgaW5zcGVjdCB0aGUgc2VydmVyIHRyYWNlIGxvZ3MuPC9mYXVsdHN0cmluZz48L3M6RmF1bHQ+PC9zOkJvZHk+PC9zOkVudmVsb3BlP
g==\\\"}]\",\"code\":4006}]",
"comp_error_details": [
{
"stage": "consulta_sat_cfdi",
"request_headers": "[{\"content-type\", \”application/json\"},
{\"host\", \”localhost:4040\"},
{\"content-length\", \"476\"}]",
"message": "SAT consulta cfdi Error",
"level": 5,
"error_id": 197795,
"error_details": "[{\"sat_response_http_status_code\":500,\"sat_response_body\":
\"PHM6RW52ZWxvcGUgeG1sbnM6cz0iaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbnZlbG9wZS8iPjxzOkJvZHk+PHM6RmF1bHQ+PGZhdWx0Y29kZSB4bWxuczphPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL25ldC8yMDA1LzEyL3dpbmRvd3Njb21tdW5pY2F0aW9uZm91bmRhdGlvbi9kaXNwYXRjaGVyIj5hOkludGVybmFsU2VydmljZUZhdWx0PC9mYXVsdGNvZGU+PGZhdWx0c3RyaW5nIHhtbDpsYW5nPSJlbi1VUyI+VGhlIHNlcnZlciB3YXMgdW5hYmxlIHRvIHByb2Nlc3MgdGhlIHJlcXVlc3QgZHVlIHRvIGFuIGludGVybmFsIGVycm9yLiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGVycm9yLCBlaXRoZXIgdHVybiBvbiBJbmNsdWRlRXhjZXB0aW9uRGV0YWlsSW5GYXVsdHMgKGVpdGhlciBmcm9tIFNlcnZpY2VCZWhhdmlvckF0dHJpYnV0ZSBvciBmcm9tIHRoZSAmbHQ7c2VydmljZURlYnVnJmd0OyBjb25maWd1cmF0aW9uIGJlaGF2aW9yKSBvbiB0aGUgc2VydmVyIGluIG9yZGVyIHRvIHNlbmQgdGhlIGV4Y2VwdGlvbiBpbmZvcm1hdGlvbiBiYWNrIHRvIHRoZSBjbGllbnQsIG9yIHR1cm4gb24gdHJhY2luZyBhcyBwZXIgdGhlIE1pY3Jvc29mdCAuTkVUIEZyYW1ld29yayBTREsgZG9jdW1lbnRhdGlvbiBhbmQgaW5zcGVjdCB0aGUgc2VydmVyIHRyYWNlIGxvZ3MuPC9mYXVsdHN0cmluZz48L3M6RmF1bHQ+PC9zOkJvZHk+PC9zOkVudmVsb3BlP
g==\"}]",
"code": 4006
}
],
"code": null
}