Ir al contenido

Errores

Si algo falla, success es false y error describe el código, el mensaje y, si aplica, el detalle por campo.

CampoQué es
successSiempre false en errores
messageMensaje legible (igual que error.message)
error.codeCódigo de dominio (p. ej. MERCHANT_NOT_FOUND)
error.messageQué falló
error.request_idId de la petición para soporte
error.doc_urlEnlace a la documentación del error
error.detailsLista opcional de { field, code, message }

Códigos HTTP

HTTPCuándo
400Petición malformada
401Falta Authorization o la key no es válida
403Sin permiso, o KYB_REQUIRED (falta sello KUTI habilitado para live)
404El negocio u otro recurso no existe
409Conflicto (duplicado o Idempotency-Key reutilizada con otro payload)
422Validación de dominio o body inválido
403 — producción sin verificaciónjson
{
  "success": false,
  "message": "Completa la verificación KUTI para operar en modo producción.",
  "error": {
    "code": "KYB_REQUIRED",
    "message": "Completa la verificación KUTI para operar en modo producción.",
    "request_id": "req_01J8Z3K4M5N6P7Q8R9S0T1U2V3"
  }
}
404json
{
  "success": false,
  "message": "The requested merchant does not exist.",
  "error": {
    "code": "MERCHANT_NOT_FOUND",
    "message": "The requested merchant does not exist.",
    "request_id": "req_01J8Z3K4M5N6P7Q8R9S0T1U2V3",
    "doc_url": "https://docs.kuti.pe/errors/MERCHANT_NOT_FOUND"
  }
}
401json
{
  "success": false,
  "message": "Missing or invalid credentials.",
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Missing or invalid credentials.",
    "request_id": "req_01J8Z3K4M5N6P7Q8R9S0T1U2V3"
  }
}
422json
{
  "success": false,
  "message": "Validation failed.",
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Validation failed.",
    "request_id": "req_01J8Z3K4M5N6P7Q8R9S0T1U2V3",
    "details": [
      {
        "field": "tax_id.value",
        "code": "INVALID_FORMAT",
        "message": "RUC must match the expected pattern."
      }
    ]
  }
}