Saltar a contenido

Referencia

  • https://api.csfacturacion.com/certificados-api

API REST application/json

Credenciales de contratación vigente mediante Http Basic

Certificados

Consultar certificados digitales (e.firma y CSD) asociados a un RFC.

/by-rfc/{rfc} Buscar certificados por RFC

Petición

Parámetros de Ruta

Parámetro Tipo Obligatorio Descripción
rfc string RFC a consultar (12 o 13 caracteres)

Parámetros de Query

Parámetro Tipo Obligatorio Valores posibles Descripción
status string No vigente, vencido, revocado Filtra por estado del certificado
type string No e.firma, CSD Filtra por tipo de certificado

Ejemplo de Solicitud

GET - Todos los certificados
GET /by-rfc/XAXX010101000 HTTP/1.1
Host: api.csfacturacion.com
Accept: application/json
Content-Type: application/json
Authorization: Basic dXN1YXJpbzpjb250cmFzZcOxYQ==
GET - Con filtros
GET /by-rfc/XAXX010101000?status=vigente&type=CSD HTTP/1.1
Host: api.csfacturacion.com
Accept: application/json
Content-Type: application/json
Authorization: Basic dXN1YXJpbzpjb250cmFzZcOxYQ==

Respuesta

200 OK

application/json

Ejemplo
{
  "rfc": "XAXX010101000",
  "count": 2,
  "certificates": [
    {
      "rfc": "XAXX010101000",
      "serial_number": "00001000000500000001",
      "type": "CSD",
      "status": "vigente",
      "subject_name": "NOMBRE DEL CONTRIBUYENTE",
      "issuer": "Autoridad Certificadora del SAT",
      "valid_from": "2023-01-15T00:00:00+00:00",
      "valid_to": "2027-01-15T00:00:00+00:00",
      "email": null,
      "certificate_url": "/RecuperacionDeCertificados/contenedor/Descarga",
      "is_valid": true
    },
    {
      "rfc": "XAXX010101000",
      "serial_number": "00001000000500000002",
      "type": "e.firma",
      "status": "vigente",
      "subject_name": "NOMBRE DEL CONTRIBUYENTE",
      "issuer": "Autoridad Certificadora del SAT",
      "valid_from": "2022-06-10T00:00:00+00:00",
      "valid_to": "2026-06-10T00:00:00+00:00",
      "email": "usuario@empresa.com",
      "certificate_url": "/RecuperacionDeCertificados/contenedor/Descarga",
      "is_valid": true
    }
  ]
}
400 RFC Inválido

application/json

Ejemplo
{
    "error": {
        "message": "RFC format is invalid. Must be 12 or 13 characters"
    }
}
400 No se encontraron certificados

application/json

Ejemplo
{
    "error": {
        "message": "No certificates found for RFC: XAXX010101000"
    }
}
400 Parámetros Inválidos

application/json

Ejemplo
{
    "error": {
        "message": "Invalid filter: status must be 'vigente', 'vencido', or 'revocado'"
    }
}
500 Error del Servidor

application/json

Ejemplo
{
    "error": {
        "message": "Failed to connect with SAT portal"
    }
}

Códigos de Error

Código HTTP Descripción
400 RFC con formato inválido (debe tener 12 o 13 caracteres)
400 No se encontraron certificados para el RFC especificado
400 Parámetro de filtro inválido
500 Error de conexión con el portal del SAT
500 Error interno del servidor

Estructura de Respuesta - Certificado

Campo Tipo Descripción
rfc string RFC del propietario del certificado
serial_number string Número de serie único del certificado
type string Tipo de certificado (e.firma o CSD)
status string Estado del certificado (vigente, vencido, revocado)
subject_name string Nombre del sujeto certificado (empresa o persona)
issuer string Autoridad certificadora emisora
valid_from string Fecha de inicio de validez (ISO 8601)
valid_to string Fecha de vencimiento (ISO 8601)
email string Email asociado al certificado (puede ser null)
certificate_url string URL relativa para descargar el certificado
is_valid boolean Indica si el certificado es válido en la fecha actual

Límites y Consideraciones

  • Los RFC deben cumplir con el formato válido de 12 o 13 caracteres
  • El servicio resuelve captchas de forma automática, pero está sujeto a la estabilidad del portal del SAT
  • Los datos reflejan el estado actual de los certificados publicados en el portal oficial del SAT
  • No se requiere autenticación, ya que consulta datos públicamente disponibles
  • Se recomienda implementar reintentos en caso de errores 500