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 | Sí | 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) |
| 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