La clave del SAT, al inicio
En un rechazo del SAT, message empieza con la clave: «CFDI40143 - Este RFC del receptor no existe…». code trae 400, el mismo HTTP de la respuesta.
Cuando el RFC, el nombre o el código postal de tu cliente no coinciden con el SAT, la API responde HTTP 400 con la clave del error. Aquí está cada clave del receptor, cómo leerla desde tu sistema y cómo resolverla o timbrar con RFC genérico.
Qué trae la respuesta y qué hacer con ella.
En un rechazo del SAT, message empieza con la clave: «CFDI40143 - Este RFC del receptor no existe…». code trae 400, el mismo HTTP de la respuesta.
Si el dato no tiene la forma que pide el esquema del SAT, code es 702 y errors trae el campo (field) y el valor (value). Ese CFDI no llega al SAT.
De CFDI40143 a CFDI40161, más las que dependen del RFC genérico, con el texto de la matriz de errores del SAT de julio de 2026.
El folio se descuenta solo cuando el SAT timbra. Con Folio AUTO, el folio del CFDI rechazado regresa al contador.
Los cinco campos para timbrar a XAXX010101000 cuando tu cliente no puede confirmar sus datos, y lo que responde el SAT si falta alguno.
El PAC de pruebas valida al receptor contra la lista del SAT, igual que producción, así que tu respaldo se prueba con rechazos reales.
La petición de timbrado es la de siempre. Lo que cambia es la respuesta: HTTP 400 y la causa en el cuerpo, para que tu sistema decida si corrige el dato o timbra con el respaldo.
# FD_API=https://sandbox-app.facturadigital.com.mx/api/v5
curl -X POST "$FD_API/invoice/create" \
-H "X-Api-Key: $FD_API_KEY" \
--data-urlencode "json@factura.json"{
"message": "CFDI40143 - Este RFC del receptor no existe en la lista de RFC inscritos no cancelados del SAT.",
"code": 400
}{
"message": "El CFDI no cumple con el esquema del SAT. Se encontró 1 error de validación. Revisa el campo 'errors' para el detalle.",
"code": 702,
"errorType": "cfdi_schema_validation",
"docs": "https://docs.facturadigital.com.mx/errores/702",
"errors": [
{
"severity": "error",
"libxmlCode": 1839,
"message": "Elemento 'Receptor', campo 'Rfc': [faceta 'patrón'] El valor 'ZKA010101JWY' no está aceptado por el validador del SAT regex '[A-Z&Ñ]{3,4}[0-9]{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])[A-Z0-9]{2}[0-9A]'.",
"rawMessage": "Element '{http://www.sat.gob.mx/cfd/4}Receptor', attribute 'Rfc': [facet 'pattern'] The value 'ZKA010101JWY' is not accepted by the pattern '[A-Z&Ñ]{3,4}[0-9]{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])[A-Z0-9]{2}[0-9A]'.",
"element": "Receptor",
"namespace": "http://www.sat.gob.mx/cfd/4",
"field": "Rfc",
"value": "ZKA010101JWY",
"line": 4
}
]
}De la respuesta al CFDI timbrado.
702: el dato no tiene la forma del SAT y errors dice cuál es. 400: la clave del SAT son los primeros nueve caracteres de message, como CFDI40143.
Con el mismo dato, el SAT responde lo mismo. Si tienes el dato correcto, corrígelo; si tu cliente no lo puede confirmar, pasa al RFC genérico.
Rfc XAXX010101000, el nombre de tu cliente, DomicilioFiscalReceptor igual a LugarExpedicion, RegimenFiscalReceptor 616 y UsoCFDI S01.
Guarda la clave del rechazo con los datos de tu cliente. Su Constancia de Situación Fiscal trae el RFC, el nombre, el código postal y el régimen exactos.
Texto de la matriz de errores CFDI 4.0 del SAT (julio de 2026), más el 702 de nuestro esquema. El SAT ajusta los textos de vez en cuando; la clave es lo que no cambia.
Los cinco campos del receptor con RFC genérico. Con Nombre «PUBLICO EN GENERAL», el SAT lo toma como factura global y pide InformacionGlobal (CFDI40130); para la factura de un solo cliente, usa su nombre.
{
"LugarExpedicion": "64000",
"Receptor": {
"Rfc": "XAXX010101000",
"Nombre": "NOMBRE DE TU CLIENTE",
"DomicilioFiscalReceptor": "64000",
"RegimenFiscalReceptor": "616",
"UsoCFDI": "S01"
}
}Cancela con motivos 01 a 04 y consulta en el SAT el estatus de la cancelación.
Prueba tus rechazos y tu respaldo gratis, con la misma API v5 que producción.
Autenticación, endpoints y las tres formas de timbrar: JSON, XML en Base64 o archivo XML.
¿Algo que no está aquí? Escríbenos o revisa la referencia completa.
Los dos llegan con HTTP 400. Si code es 702, el dato no tiene la forma del esquema del SAT y errors te dice el campo (field) y el valor (value). Si code es 400 y message empieza con CFDI seguido de cinco dígitos, es una validación del SAT y esa es la clave, por ejemplo CFDI40143. Compara contra la clave y no contra el texto, que el SAT ajusta de vez en cuando.
En el portal del SAT, en la documentación del Anexo 20: «Matriz de errores CFDI versión 4.0». La tabla de esta página trae todas las claves del nodo Receptor de la versión de julio de 2026 y las que dependen del RFC genérico.
No: mientras el dato no cambie, el SAT responde lo mismo. Corrige el dato o timbra con el RFC genérico. El que se reintenta tal cual es 5037, cuando no se pudo conectar con el PAC y no se envió nada. Con 5034 la respuesta es incierta: busca primero el CFDI por su serie y folio.
La forma, sí, y sin costo: el SAT acepta el RFC que cumple la expresión [A-Z&Ñ]{3,4}[0-9]{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])[A-Z0-9]{2}[0-9A]. Si no la cumple, la respuesta es 702 y puedes pasar directo al RFC genérico. Que el RFC esté inscrito, con ese nombre y ese código postal, lo confirma el SAT al timbrar; la Constancia de Situación Fiscal de tu cliente trae los datos exactos.
El servicio de consulta del SAT no devuelve la fecha de cancelación. La tomamos del acuse que el SAT entrega cuando cancelas por la API. Si el SAT canceló al recibir la solicitud (estatuscancelacion «Cancelado sin aceptación»), esa es la fecha y llega en fecha_cancelacion. Si quedó cancelado después, porque tu cliente aceptó («Cancelado con aceptación») o porque venció su plazo para responder («Plazo vencido»), el SAT no publica ese momento: fecha_cancelacion llega en null y fecha_solicitud_cancelacion trae cuándo la pediste. Mientras tu cliente no responde («En proceso») también llega solo la fecha de la solicitud. Las dos llegan en null si el CFDI se canceló fuera de Factura Digital, y en el sandbox, porque el SAT no conoce los CFDI de prueba. Las fechas van en hora del centro de México.
Sí. El PAC de pruebas valida al receptor contra la lista del SAT, así que un RFC no inscrito, o un nombre o un código postal que no corresponden, responden con las mismas claves que en producción. Es gratis y tu cuenta de sandbox es aparte de la de producción.
El PAC de pruebas valida al receptor igual que producción. Es gratis y un rechazo no usa folio.