/v1/rfc/validate
Valida un RFC ante el SAT. La respuesta incluye el estado de registro, nombre del contribuyente, código postal, certificados digitales y presencia en listas del SAT (artículos 69, 69-B y 69-B Bis).
Establece include_curp en true para consultar en RENAPO la identidad del contribuyente en person o la del representante legal de la empresa en legal_representative. Debe haber una CURP disponible en los datos del certificado.
La consulta de CURP está desactivada por defecto. Activar include_curp agrega 10 créditos a la solicitud: 20 créditos en total ($0.30 USD con la tarifa de pago por uso).
Los datos de identidad se verifican mediante RENAPO. Si la consulta gubernamental de identidad no está disponible, la validación finaliza sin el objeto de identidad correspondiente.
Envía un nombre opcional para reducir la latencia de ~30s a ~12s. La consulta de certificados y la búsqueda de CP corren en paralelo, y además recuperas el código postal para RFC registrados que tienen cero CSDs. Cuando el nombre enviado no coincide con los registros del SAT, la respuesta es valid: false con un mensaje que incluye el nombre registrado.
Cuerpo de la solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
rfc |
string | Sí | El número de RFC a validar (12 o 13 caracteres) |
name |
string | No | Nombre del contribuyente, opcional. Cuando se envía, la consulta de certificados y la búsqueda de CP corren en paralelo (~12s en vez de ~30s). También nos permite devolver un código postal para RFC con cero CSDs. Ver Formato del nombre. |
include_curp |
boolean | No | El valor predeterminado es false. Activa la consulta de identidad en RENAPO para el contribuyente o representante legal. Agrega 10 créditos a la solicitud (20 créditos en total). |
webhook_url |
string | No | Cuando se envía, el API devuelve 202 de inmediato y envía vía POST el resultado a esta URL una vez que la validación termina. Solo http o https. No se siguen redirecciones. Máximo 2048 caracteres. |
Pruébalo
/v1/rfc/validate
Inicia sesión para enviar una solicitud real desde esta página.
Las cuentas nuevas reciben $5 USD de crédito al registrarse, sin tarjeta.
Solicitud de ejemplo
curl -X POST https://rfccheck.com/v1/rfc/validate \
-H "x-api-key: rfc_your_api_key" \
-H "Content-Type: application/json" \
-d '{"rfc": "ACM010101AAA", "include_curp": true}'
Respuesta (200)
{
"rfc": "ACM010101AAA",
"valid": true,
"message": "RFC válido, puede ser utilizado en comprobantes",
"zip": "06600",
"name": "EMPRESA EJEMPLO SA DE CV",
"sat_lists": [
{
"article": "69",
"sub_list": "cancelados",
"situation": "CANCELADOS POR INSOLVENCIA",
"name": "EMPRESA EJEMPLO SA DE CV",
"person_type": "M",
"state": "CIUDAD DE MEXICO"
}
],
"email": "[email protected]",
"legal_representative_rfc": "UIOJ750110R13",
"legal_representative_curp": "UIOJ750110HDFRRN09",
"legal_representative": {
"curp": "UIOJ750110HDFRRN09",
"renapo_valid": true,
"names": "JUAN CARLOS",
"paternal_surname": "URIBE",
"mothers_maiden_name": "OJEDA",
"sex": "HOMBRE",
"birthdate": "10/01/1975",
"nationality": "MEXICO",
"entity_birth": "DF",
"status_curp": "RCN",
"probation_document": "ACTA DE NACIMIENTO",
"probation_document_data": {},
"homonimo": false
},
"certs": [
{
"serial": "00001000000500000001",
"status": "Activo",
"type": "FIEL",
"valid_from_utc": "2020-01-15T00:00:00Z",
"valid_to_utc": "2024-01-15T00:00:00Z",
"email": "[email protected]",
"legal_representative_rfc": "UIOJ750110R13",
"legal_representative_curp": "UIOJ750110HDFRRN09",
"cer_base64": "MIIF..."
}
]
}
{
"name": "JUAN PEREZ LOPEZ",
"curp": "PELJ900101HDFRPN09",
"person": {
"curp": "PELJ900101HDFRPN09",
"renapo_valid": true,
"names": "JUAN",
"paternal_surname": "PEREZ",
"mothers_maiden_name": "LOPEZ",
"sex": "HOMBRE",
"birthdate": "01/01/1990",
"nationality": "MEXICO",
"entity_birth": "DF",
"status_curp": "RCN",
"probation_document": "ACTA DE NACIMIENTO",
"probation_document_data": {},
"homonimo": false
}
}
Campos de la respuesta
| Campo | Tipo | Descripción |
|---|---|---|
rfc |
string | El número de RFC que fue validado. |
valid |
boolean | null | Si el RFC está registrado y es válido en el SAT. null significa que no se pudo conectar con el SAT: el resultado es desconocido, vuelve a intentarlo después. |
message |
string | Mensaje de estado del SAT (en español). |
name |
string | Nombre del contribuyente registrado en el SAT. |
zip |
string | Código postal asociado con el RFC. |
sat_lists |
array | Listas de contribuyentes publicadas por el SAT en las que aparece el RFC. Arreglo vacío si no aparece. |
email |
string | Correo de contacto que el SAT tiene en archivo para el contribuyente. Se omite cuando no está disponible. |
curp |
string | CURP del contribuyente. Solo presente para persona física; se omite en caso contrario. |
legal_representative_rfc |
string | RFC del representante legal. Solo presente para persona moral; se omite en caso contrario. |
legal_representative_curp |
string | CURP del representante legal. Solo presente para persona moral; se omite en caso contrario. |
legal_representative |
object | Identidad verificada del representante legal de una persona moral. Se devuelve únicamente con include_curp: true, una CURP disponible y una consulta exitosa a RENAPO. |
person |
object | Identidad verificada de un contribuyente persona física. Se devuelve únicamente con include_curp: true, una CURP disponible y una consulta exitosa a RENAPO. |
certs |
array | Certificados digitales asociados al RFC. Los mismos campos de identidad aparecen en cada certificado. Ver abajo. |
Campos dentro de cada cert
| Campo | Tipo | Descripción |
|---|---|---|
serial |
string | Número de serie del certificado SAT (20 dígitos). |
status |
string | Activo, Caduco o Revocado. |
type |
string | FIEL (e.firma) o SELLO (CSD). |
valid_from_utc |
string | Marca de tiempo ISO 8601 en que el certificado entró en vigor. |
valid_to_utc |
string | Marca de tiempo ISO 8601 en que el certificado expira. |
email |
string | null | Dirección de correo embebida en el sujeto del certificado, si la hay. |
legal_representative_rfc |
string | null | Solo presente en certificados de persona moral. |
legal_representative_curp |
string | null | Solo presente en certificados de persona moral. |
curp |
string | null | Solo presente en certificados de persona física. |
cer_base64 |
string | null | Binario DER del archivo .cer codificado en base64. Nulo cuando la CDN pública del SAT no entrega el certificado (típicamente en series anteriores a 2010). |
Asíncrono vía webhook
Envía webhook_url y el API responde 202 de inmediato, luego envía vía POST el resultado completo a tu URL cuando el SAT responda. Ver Webhooks para conocer la semántica de entrega.
curl -X POST https://rfccheck.com/v1/rfc/validate \
-H "x-api-key: rfc_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"rfc": "XAXX010101000",
"webhook_url": "https://example.com/webhooks/rfc-validation"
}'
{
"status": "processing",
"message": "RFC validation in progress"
}