Referencia de la API

Valida un RFC

Ejecuta el proceso completo: verificación de registro, nombre del contribuyente, código postal, certificados digitales y presencia en listas del SAT. La opción include_curp agrega la identidad en RENAPO por 10 créditos adicionales.

POST /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

POST /v1/rfc/validate
Pruébalo

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 bash
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)

200 OK json
{
  "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..."
    }
  ]
}
Persona física — con include_curp: true json
{
  "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 (async) bash
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"
  }'
202 Accepted json
{
  "status": "processing",
  "message": "RFC validation in progress"
}