Errores de integración
Durante la integración con Checkout Pro mediante la Orders API, pueden ocurrir errores en las solicitudes a los diferentes endpoints. A continuación, se detallan los códigos de error organizados por endpoint, junto con su causa y solución.
Errores al crear una Order (POST /v1/orders)
| Código HTTP | Código de error | Mensaje | Causa y solución |
400 | empty_required_header | Missing HTTP header: X-Idempotency-Key | Incluye el encabezado X-Idempotency-Key con un UUID único en la solicitud. |
400 | invalid_idempotency_key_length | X-Idempotency-Key length exceeds 128 characters | Reduce la longitud de la clave de idempotencia a un máximo de 128 caracteres. |
400 | required_properties | required property 'email' is missing | Verifica que todos los campos obligatorios estén presentes en el cuerpo de la solicitud. |
400 | invalid_total_amount | total_amount is not equivalent to sum... | Verifica que el valor de total_amount sea igual a la suma de los montos de las transacciones. |
400 | maximum_items | maximum 1 items required, but found 2 | Envía solo 1 transacción por Order en el array transactions.payments. |
400 | property_value | invalid value 'X', expected one of: online, point, qr | Utiliza el valor online en el campo type para integraciones de Checkout Pro. |
400 | property_type | expected string, but got number | Verifica los tipos de datos de cada campo. Consulta la referencia de la API para más detalles. |
400 | json_syntax_error | An incorrect JSON was sent | Valida la sintaxis del JSON enviado en el cuerpo de la solicitud. |
400 | invalid_email_for_sandbox | Email must contain '@testuser.com' | Utiliza correos electrónicos con dominio @testuser.com en el entorno de pruebas (sandbox). |
401 | invalid_credentials | Test credentials are not supported | Utiliza las credenciales de producción de los usuarios de prueba. Las credenciales de test no son compatibles con la Orders API. |
402 | status_detail | The following transactions failed | Verifica los datos del medio de pago enviados en la transacción. |
409 | idempotency_key_already_used | X-Idempotency-Key already used... | Genera una nueva clave de idempotencia. La clave enviada ya fue utilizada en una solicitud anterior. |
410 | pseudotoken_payment_method_gone | Payment method unavailable | El medio de pago expiró. Solicita al comprador que ingrese nuevamente los datos de su medio de pago. |
423 | resource_locked | Idempotency Key Locked... | El recurso está siendo procesado con la misma clave de idempotencia. Espera unos segundos e intenta nuevamente. |
500 | internal_error | Some error occurred on our side | Error interno del servidor. Reintenta la solicitud más tarde. |
Errores al consultar una Order (GET /v1/orders/{id})
| Código HTTP | Código de error | Mensaje | Causa y solución |
400 | invalid_path_param | Path param Order id is invalid | Verifica que el ID de la Order tenga el formato correcto (ULID). |
404 | order_not_found | Order not found | Verifica que el Access Token corresponda al creador de la Order. |
Errores al cancelar una Order (POST /v1/orders/{id}/cancel)
| Código HTTP | Código de error | Mensaje | Causa y solución |
400 | invalid_path_param | Path param Order id is invalid | Verifica que el ID de la Order tenga el formato correcto (ULID). |
400 | empty_required_header | Missing HTTP header: X-Idempotency-Key | Incluye el encabezado X-Idempotency-Key con un UUID único. |
404 | order_not_found | Order not found | Verifica que el Access Token corresponda al creador de la Order. |
409 | cannot_cancel_order | Only orders with status 'action_required' or 'created'... | La Order se encuentra en un estado incompatible para cancelación. Solo las Orders con estado created o action_required pueden ser canceladas. |
409 | order_already_cancelled | The order has already been canceled | La Order ya fue cancelada anteriormente. No es necesario enviar la solicitud nuevamente. |
Errores al reembolsar una Order (POST /v1/orders/{id}/refund)
| Código HTTP | Código de error | Mensaje | Causa y solución |
400 | refund_amount_exceeds | Refund amount exceeds the available amount | El monto del reembolso supera el monto disponible. Verifica el monto disponible para reembolso. |
400 | order_refund_already_in_process | There is already a full refund request in process | Ya existe una solicitud de reembolso total en proceso. Espera a que se complete antes de enviar una nueva solicitud. |
404 | transaction_not_found | Transaction not found | Verifica que el ID de la transacción sea correcto. |
409 | cannot_refund_order | Cannot refund order... | La Order debe estar en estado processed para poder solicitar un reembolso. |