Saltearse al contenido

Códigos de error

Los errores siempre vienen con esta forma:

{
"error": {
"code": "VALIDATION_FAILED",
"message": "Los datos enviados no son válidos.",
"details": {
"fields": {
"amount": ["validation.required"]
}
}
}
}
  • code — string estable, parsearlo programáticamente.
  • message — texto en español, está pensado para mostrar al usuario final del comercio si querés.
  • details — opcional, contexto extra (campos inválidos, info del provider, etc.).

Errores generales

CódigoHTTPCuándoQué hacer
UNAUTHENTICATED401API key ausente o inválida.Revisá el header Authorization.
NOT_FOUND404El recurso no existe o pertenece a otro tenant.Verificá el id.
VALIDATION_FAILED422Los datos del request no pasaron validación.Mirá details.fields para ver qué.
RATE_LIMITED429Superaste tu cuota de requests/min.Esperá Retry-After segundos.
INTERNAL_ERROR500Algo nuestro falló.Si persiste, escribinos.
HTTP_ERRORvariosError HTTP genérico.Mirar el HTTP status code.

Errores de negocio (BUSINESS_RULE)

CódigoHTTPCuándo
INVALID_PAYMENT_STATE422Pediste una acción incompatible con el estado actual del pago (ej. cancelar uno ya confirmado).
INVALID_CARD_DATA422La tarjeta no está catastrada o no tiene token.
MISSING_PROVIDER_CREDENTIALS422El tenant no tiene credenciales activas para el provider.
MISSING_BANK_ACCOUNTS422Intentaste crear un pago de transferencia sin cuentas bancarias configuradas.

Errores de provider (PROVIDER_ERROR)

Cuando el provider externo (Dinelco, Bancard) rechaza la operación, devolvemos:

{
"error": {
"code": "PROVIDER_ERROR",
"message": "Mensaje legible en español",
"provider": "dinelco",
"reason": "settled"
}
}

En entorno test, además incluimos error.detail con el mensaje técnico literal del proveedor (sin traducir). En live, no.

Errores de Dinelco mapeados

responseCode DinelcoSignificadoNotas
0000Aprobado.Éxito (no es error).
TOKEN_TYPE_NOT_SUPPORTEDTarjeta inválida o número no aceptado.En test, usar las tarjetas de prueba.
90019Pago ya liquidado, no se puede reversar.La marca lo procesó. Coordinar manual fuera del gateway. Ver reversa.

A medida que aparezcan códigos nuevos en pruebas reales, los iremos agregando acá. Si te aparece uno no listado, mirá error.detail (en test) o pediinos contexto.

Webhook delivery — qué considerar error

Esto NO es un error que vos consumís de la API; es lo que vos devolvés a un webhook nuestro:

Tu HTTP statusQué hacemos
2xxOK, marcamos delivered.
4xxNo reintentamos.
5xx o timeout (>10s)Reintentamos con backoff (ver reintentos).