Skip to content

Codigos de error

Cuando un request a la API de TAYPI falla, la respuesta incluye un codigo de error, un mensaje descriptivo en espanol y el status HTTP correspondiente.

Formato de respuesta de error

json
{
    "code": "AUTH_KEY_INVALID",
    "message": "La API key proporcionada no es valida o fue revocada.",
    "http_status": 401
}

Para errores de validacion, se incluye un campo adicional errors con el detalle por campo:

json
{
    "code": "VALIDATION_ERROR",
    "message": "Los datos enviados no son validos.",
    "http_status": 422,
    "errors": {
        "amount": ["El monto es obligatorio."],
        "currency": ["La moneda seleccionada no es valida."]
    }
}

Errores de autenticacion

CodigoHTTPMensaje
AUTH_MISSING401No se proporciono el header Authorization.
AUTH_INVALID_FORMAT401El header Authorization debe usar el formato: Bearer {api_key}.
AUTH_KEY_INVALID401La API key proporcionada no es valida o fue revocada.
AUTH_KEY_ENVIRONMENT401Estas usando una API key de sandbox en produccion, o viceversa.
AUTH_SIGNATURE_MISSING400No se proporciono el header Taypi-Signature.
AUTH_SIGNATURE_INVALID403La firma HMAC-SHA256 no es valida. Verifica tu secret key y el algoritmo de firma.
AUTH_TIMESTAMP_MISSING400No se proporciono el header Taypi-Timestamp.
AUTH_TIMESTAMP_EXPIRED401El timestamp esta fuera de la ventana permitida de 5 minutos.
AUTH_TIMESTAMP_INVALID400El valor de Taypi-Timestamp no es un timestamp UNIX valido.

Rate limiting

CodigoHTTPMensaje
RATE_LIMIT_EXCEEDED429Demasiadas solicitudes. Intenta en un momento.

Idempotencia

CodigoHTTPMensaje
IDEMPOTENCY_CONFLICT409La Idempotency-Key ya fue usada con un body diferente.

Errores de comercio

CodigoHTTPMensaje
MERCHANT_INACTIVE403Tu cuenta de comercio esta inactiva. Contacta a soporte.
MERCHANT_TIER_INSUFFICIENT403Tu nivel de comercio no tiene acceso a esta funcionalidad.
MERCHANT_LIMIT_EXCEEDED403Has excedido tu limite mensual de transacciones.

Errores de pago

CodigoHTTPMensaje
PAYMENT_NOT_FOUND404El pago solicitado no existe.
PAYMENT_EXPIRED410El pago ha expirado. Crea uno nuevo.
PAYMENT_ALREADY_COMPLETED409El pago ya fue completado anteriormente.
PAYMENT_INVALID_AMOUNT422El monto debe ser entre S/ 1.00 y el limite de tu nivel.
PAYMENT_REJECTED422El pago fue rechazado. Intenta de nuevo.

Errores de validacion

CodigoHTTPMensaje
VALIDATION_ERROR422Los datos enviados no son validos.

El campo errors contiene un objeto con los campos que fallaron la validacion:

json
{
    "code": "VALIDATION_ERROR",
    "message": "Los datos enviados no son validos.",
    "http_status": 422,
    "errors": {
        "amount": [
            "El monto es obligatorio.",
            "El monto debe ser un numero con 2 decimales."
        ],
        "reference": [
            "La referencia no debe exceder 100 caracteres."
        ]
    }
}

Errores del procesador

Estos errores ocurren cuando hay un problema con el procesador de pagos. TAYPI traduce los errores internos a codigos genericos para no exponer detalles de la infraestructura.

CodigoHTTPMensaje
PROCESSOR_CONNECTION_ERROR502No se pudo conectar con el procesador de pagos. Intenta en unos minutos.
PROCESSOR_TIMEOUT504El procesador de pagos no respondio a tiempo. Intenta de nuevo.
PROCESSOR_ERROR502El procesador de pagos retorno un error. Intenta de nuevo.

TIP

Si recibes errores del procesador de forma recurrente, contacta al equipo de TAYPI. Estos errores suelen ser temporales.

Errores del sistema

CodigoHTTPMensaje
SERVICE_UNAVAILABLE503El servicio no esta disponible temporalmente. Intenta en unos minutos.
INTERNAL_ERROR500Error interno del servidor. Si persiste, contacta a soporte.

Tabla resumen

CodigoHTTPCategoria
AUTH_MISSING401Autenticacion
AUTH_INVALID_FORMAT401Autenticacion
AUTH_KEY_INVALID401Autenticacion
AUTH_KEY_ENVIRONMENT401Autenticacion
AUTH_SIGNATURE_MISSING400Autenticacion
AUTH_SIGNATURE_INVALID403Autenticacion
AUTH_TIMESTAMP_MISSING400Autenticacion
AUTH_TIMESTAMP_EXPIRED401Autenticacion
AUTH_TIMESTAMP_INVALID400Autenticacion
RATE_LIMIT_EXCEEDED429Rate limit
IDEMPOTENCY_CONFLICT409Idempotencia
MERCHANT_INACTIVE403Comercio
MERCHANT_TIER_INSUFFICIENT403Comercio
MERCHANT_LIMIT_EXCEEDED403Comercio
PAYMENT_NOT_FOUND404Pago
PAYMENT_EXPIRED410Pago
PAYMENT_ALREADY_COMPLETED409Pago
PAYMENT_INVALID_AMOUNT422Pago
PAYMENT_REJECTED422Pago
VALIDATION_ERROR422Validacion
PROCESSOR_CONNECTION_ERROR502Procesador
PROCESSOR_TIMEOUT504Procesador
PROCESSOR_ERROR502Procesador
SERVICE_UNAVAILABLE503Sistema
INTERNAL_ERROR500Sistema

Manejo recomendado

Errores que debes reintentar

Codigo HTTPEstrategia
429Espera el tiempo indicado en el header Retry-After
502, 503, 504Reintenta con backoff exponencial (1s, 2s, 4s, max 3 intentos)

Errores que NO debes reintentar

Codigo HTTPAccion
400Corrige el request (headers faltantes, formato invalido)
401Verifica tu API key y timestamp
403Verifica tu firma HMAC o permisos de tu cuenta
404El recurso no existe. Verifica el ID
409Pago ya completado o conflicto de idempotencia
410Pago expirado. Crea uno nuevo
422Corrige los datos de entrada (validacion)
500Error interno. Si persiste, contacta a soporte

Plataforma de pagos QR interoperables para Perú