Saltar al contenido

Errores del receptor en CFDI 4.0, qué significan y qué hacer

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.

Lo que necesitas para leer un rechazo

Qué trae la respuesta y qué hacer con ella.

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.

702, con el detalle por campo

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.

La lista completa del receptor

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.

Un rechazo no usa folio

El folio se descuenta solo cuando el SAT timbra. Con Folio AUTO, el folio del CFDI rechazado regresa al contador.

Respaldo con RFC genérico

Los cinco campos para timbrar a XAXX010101000 cuando tu cliente no puede confirmar sus datos, y lo que responde el SAT si falta alguno.

Pruébalo en el sandbox

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.

Un rechazo del receptor, tal como te llega

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.

Endpoints
POST /invoice/create
JSON del CFDI. Un rechazo del receptor responde HTTP 400 con code 400 (validación del SAT) o 702 (esquema).
POST /invoice/stampxml
XML ya sellado en Base64. Los rechazos del SAT llegan con la misma clave al inicio de message.
GET /validator/cfdi
Después de timbrar o cancelar: estado en el SAT y, si cancelaste por la API, las fechas de la cancelación.
  • Validación del SAT: HTTP 400, code 400 y la clave al inicio de message (CFDI seguido de cinco dígitos).
  • Esquema: HTTP 400, code 702, errorType cfdi_schema_validation y la lista errors.
  • Después del texto del SAT puede seguir « - Detalle: …»: compara contra la clave.
  • 5037 (no se envió nada al PAC) se reintenta tal cual; con 5034, busca primero el CFDI por su serie y folio.
Producción
https://app.facturadigital.com.mx/api/v5
Sandbox
https://sandbox-app.facturadigital.com.mx/api/v5
timbrar.shDatos de muestra
# 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"
respuesta-400-sat.jsonDatos de muestra
{
  "message": "CFDI40143 - Este RFC del receptor no existe en la lista de RFC inscritos no cancelados del SAT.",
  "code": 400
}
respuesta-400-702.jsonDatos de muestra
{
  "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
    }
  ]
}

Tu respaldo en 4 pasos

De la respuesta al CFDI timbrado.

  1. 01

    Lee code

    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.

  2. 02

    Corrige o respalda

    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.

  3. 03

    Arma el receptor genérico

    Rfc XAXX010101000, el nombre de tu cliente, DomicilioFiscalReceptor igual a LugarExpedicion, RegimenFiscalReceptor 616 y UsoCFDI S01.

  4. 04

    Pide la constancia

    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.

Claves del receptor y cómo resolverlas

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.

702El dato no tiene la forma que pide el esquema del SAT: un RFC con estructura que el SAT no acepta, un Nombre vacío o con «|», un código postal que no son cinco dígitos, o un régimen, un uso o un país fuera de catálogo.errors[].field dice el campo y errors[].value el valor. Revisa el RFC con la expresión del SAT antes de enviarlo; si no la cumple, usa el RFC genérico.
CFDI40143El RFC no está en la lista de RFC inscritos no cancelados del SAT: no existe, está dado de baja o tiene un carácter cambiado.Confírmalo con la Constancia de Situación Fiscal de tu cliente. Si no lo puede confirmar, usa el RFC genérico.
CFDI40144El Nombre no se encuentra en la lista de RFC inscritos no cancelados.Usa la denominación o razón social tal como viene en la constancia, sin el régimen de capital (S.A. de C.V.), que la constancia muestra aparte.
CFDI40145El Nombre no corresponde al RFC: el SAT tiene otro nombre registrado para ese RFC.Cópialo letra por letra de la constancia, sin el régimen de capital.
CFDI40146El Nombre es «PUBLICO EN GENERAL» y el RFC no es XAXX010101000.Ese nombre solo va con el RFC genérico XAXX010101000.
CFDI40147El DomicilioFiscalReceptor no se encuentra en la lista de RFC inscritos no cancelados.Usa el código postal del domicilio fiscal que viene en la constancia de tu cliente.
CFDI40148El código postal no corresponde al RFC. Te llega con el texto «El campo Codigo Postal (DomicilioFiscalReceptor) no coincide con los registros del SAT».El código postal correcto está en la constancia de tu cliente.
CFDI40149Con RFC genérico (XAXX010101000 o XEXX010101000), el DomicilioFiscalReceptor no es igual a LugarExpedicion.Con RFC genérico, el código postal del receptor es el mismo de LugarExpedicion.
CFDI40150ResidenciaFiscal no está en el catálogo c_Pais. Casi siempre lo ves como 702, porque el esquema lo detecta antes.Usa la clave de tres letras de c_Pais.
CFDI40151Hay ResidenciaFiscal con un RFC inscrito o con XAXX010101000.Quita ResidenciaFiscal: solo va con el RFC genérico extranjero XEXX010101000.
CFDI40152ResidenciaFiscal es MEX.Para un receptor en México no se registra ResidenciaFiscal.
CFDI40153Falta ResidenciaFiscal con XEXX010101000 y complemento de comercio exterior, o con NumRegIdTrib.Registra el país del receptor con su clave de c_Pais.
CFDI40154Hay NumRegIdTrib con un RFC inscrito o con XAXX010101000.Quita NumRegIdTrib.
CFDI40155Hay NumRegIdTrib sin complemento de comercio exterior o sin XEXX010101000.NumRegIdTrib va con XEXX010101000 y el complemento de comercio exterior; en ese caso es obligatorio.
CFDI40156NumRegIdTrib no cumple el formato que c_Pais publica para ese país.Revisa en c_Pais el formato del número de identificación fiscal del país.
CFDI40157RegimenFiscalReceptor no está en c_RegimenFiscal. Casi siempre lo ves como 702.Usa la clave de tres dígitos del régimen que viene en la constancia.
CFDI40158El régimen no corresponde al tipo de persona: un RFC de 12 caracteres es persona moral y uno de 13, persona física.Usa un régimen de la constancia que c_RegimenFiscal admita para ese tipo de persona.
CFDI40159Con RFC genérico, RegimenFiscalReceptor no es 616.Con XAXX010101000 o XEXX010101000, el régimen es 616.
CFDI40160UsoCFDI no está en c_UsoCFDI. Casi siempre lo ves como 702.Usa una clave vigente de c_UsoCFDI.
CFDI40161El UsoCFDI no aplica para el tipo de persona o el régimen del receptor.En c_UsoCFDI cada uso dice qué regímenes lo admiten. Con régimen 616, usa S01.
CFDI40130Una factura de ingreso a XAXX010101000 con Nombre «PUBLICO EN GENERAL» y sin el nodo InformacionGlobal.Si es factura global, agrega InformacionGlobal. Si es la factura de un solo cliente, pon su nombre en Nombre.

El receptor de respaldo

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.

receptor-generico.jsonDatos de muestra
{
  "LugarExpedicion": "64000",
  "Receptor": {
    "Rfc": "XAXX010101000",
    "Nombre": "NOMBRE DE TU CLIENTE",
    "DomicilioFiscalReceptor": "64000",
    "RegimenFiscalReceptor": "616",
    "UsoCFDI": "S01"
  }
}

Sigue con

Sandbox

Prueba tus rechazos y tu respaldo gratis, con la misma API v5 que producción.

API v5

Autenticación, endpoints y las tres formas de timbrar: JSON, XML en Base64 o archivo XML.

Preguntas sobre los errores del receptor

¿Algo que no está aquí? Escríbenos o revisa la referencia completa.

¿Cómo distingo en mi código un error del receptor?

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.

¿Dónde está la lista oficial de estos errores?

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.

¿Sirve reintentar con el mismo RFC?

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.

¿Puedo revisar el RFC antes de timbrar?

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.

¿Por qué fecha_cancelacion llega en null en /validator/cfdi?

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.

¿Puedo probar estos rechazos en el sandbox?

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.

Prueba tu respaldo en el sandbox

El PAC de pruebas valida al receptor igual que producción. Es gratis y un rechazo no usa folio.