Saltar al contenido principal

Validar RFC

Valida uno o varios RFCs verificando formato y estructura segun las reglas del SAT.

Endpoint

POST https://api.lummy.io/v1/rfc/validate
EntornoURL
Producciónhttps://api.lummy.io/v1/rfc/validate
Sandboxhttps://sandbox.lummy.io/v1/rfc/validate
Validacion en lote

Puedes validar hasta 10 RFCs en una sola llamada, util para validar catalogos de clientes.

Headers

{
"Authorization": stringrequerido
Token de autenticación Bearer (JWT) o API Key para autorizar la solicitud.
}

Body Parameters

{
"rfcs": [requerido
Arreglo de RFCs a validar. Máximo 10 elementos. Cada RFC debe tener el formato establecido por el SAT (12 caracteres para personas morales, 13 para personas físicas).
Valor máximo: 10
"[item]": stringopcional
]
}

Ejemplos de Codigo

curl -X POST https://sandbox.lummy.io/rfc/validate \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-d '{
"rfcs": [
"XAXX010101000",
"AAA010101AAA",
"RFC_INVALIDO"
]
}'

Respuestas

Todas las respuestas siguen el formato estándar StandardResponse.

200 OK

{
"requestId": "abc123-def456",
"data": [
{
"rfc": "XAXX010101000",
"isValid": true,
"type": "GENERICO",
"errors": [],
"inList69": false,
"inList69B": false
},
{
"rfc": "AAA010101AAA",
"isValid": true,
"type": "MORAL",
"errors": [],
"inList69": false,
"inList69B": false
},
{
"rfc": "RFC_INVALIDO",
"isValid": false,
"type": null,
"errors": [
"Longitud invalida: debe tener 12 o 13 caracteres",
"Formato invalido"
]
}
],
"timestamp": "2025-01-20T10:30:00.000Z",
"path": "/rfc/validate",
"method": "POST"
}
Response Body
{
"rfc": string,requerido
RFC evaluado en la validación.
"isValid": boolean,requerido
Indica si el RFC tiene un formato válido según las reglas del SAT.
"type": string,requerido
Tipo de RFC: MORAL (12 caracteres - persona moral/empresa), FISICA (13 caracteres - persona física), GENERICO (RFC genérico para público en general), EXTRANJERO (RFC para extranjeros sin RFC mexicano). Null si el RFC es inválido.
Valores permitidos: "MORAL""FISICA""GENERICO""EXTRANJERO"
"errors": [requerido
Lista de errores encontrados durante la validación. Puede incluir: longitud inválida, formato inválido, fecha inválida, o dígito verificador incorrecto.
"[item]": stringopcional
],
"inList69": boolean,opcional
Indica si el RFC aparece en la lista 69 del SAT (contribuyentes incumplidos). Si es true, se recomienda no facturar a este contribuyente.
"inList69B": booleanopcional
Indica si el RFC aparece en la lista 69-B del SAT (operaciones simuladas/EFOS). Si es true, las facturas emitidas a este contribuyente podrían ser consideradas como operaciones inexistentes.
}

Tipos de RFC

TipoLongitudEjemploDescripcion
MORAL12AAA010101AAAPersona moral (empresa).
FISICA13GARC850101ABCPersona fisica.
GENERICO13XAXX010101000RFC generico para publico en general.
EXTRANJERO13XEXX010101000RFC para extranjeros sin RFC mexicano.

RFCs Especiales

RFCUso
XAXX010101000Ventas al publico en general.
XEXX010101000Ventas a extranjeros.

Errores Comunes

ErrorDescripcion
Longitud invalidaEl RFC debe tener 12 (moral) o 13 (fisica) caracteres.
Formato invalidoNo cumple con el patron del SAT.
Fecha invalidaLa fecha de nacimiento/constitucion en el RFC no es valida.
Digito verificador incorrectoEl ultimo caracter no corresponde al algoritmo de verificacion.

Notas

  • La validacion es sintatica, no verifica si el RFC esta registrado ante el SAT
  • Para verificar si un RFC esta activo en el SAT, usa el servicio de Lista Negra (69-B)