Estructura
Campos
| Campo | Tipo | Descripción |
|---|---|---|
status | enum | OK si el request se procesó; ERROR si fue rechazado o falló. |
type | string | Código estable del resultado. Úsalo para tu lógica, no message. |
message | string | Resumen humano en inglés. Para display únicamente. |
data | object | null | Payload específico del endpoint. null en errores. |
errors | array | Presente sólo en INVALID_REQUEST. Lista issues por campo. |
transactionId | uuid | Identificador único del request. Referéncialo al contactar soporte. |
processedAt | ISO 8601 | Timestamp con offset Ciudad de México (-06:00). |
billable | boolean | Si este call cuenta contra tu plan. |
ErrorDetail (entradas de errors[])
Cuando type es INVALID_REQUEST, errors[] lista los issues por campo. Cada entrada tiene:
| Campo | Tipo | Descripción |
|---|---|---|
field | string | Path en notación de punto al campo problemático (ej. curp, address.street). body cuando el issue aplica al request completo (JSON malformado, payload excede tamaño, oneOf con todas las alternativas presentes). |
code | string | Código estable de máquina. Branchea sobre este, nunca sobre message. Lista completa en Errores → Códigos de validación. |
message | string | Explicación humana en inglés. Sólo display. |
Códigos HTTP
OrigoID usa códigos HTTP que reflejan la naturaleza de la respuesta:| HTTP | Cuándo |
|---|---|
200 | El request se procesó. El envelope te dice si el resultado de negocio fue éxito o una condición conocida (ej. CURP_NOT_FOUND). |
401 | Falló autenticación. Envelope type será UNAUTHORIZED. |
404 | Path no existe. |
405 | Method incorrecto para un path existente. |
429 | Rate limit excedido. Envelope type será RATE_LIMIT_EXCEEDED. |
Patrón de parsing (cualquier lenguaje)
Códigos type comunes
type | Significado |
|---|---|
SUCCESS | Operación exitosa. Lee data. |
INVALID_REQUEST | Tu body no pasó validación. Revisa errors. |
UNAUTHORIZED | Autenticación falló. |
RATE_LIMIT_EXCEEDED | Excediste tu rate limit. |
SERVICE_UNAVAILABLE | Servicio temporalmente no disponible. Retry con backoff. |
INTERNAL_ERROR | Error inesperado. Referencia transactionId al contactar soporte. |
CURP_NOT_FOUND, CFDI_CANCELED, INE_NOT_VALID). Consulta cada operación en la referencia API para la lista completa.