Estado de la orden
Con el uuid que recibiste al crear la orden, podés consultar en cualquier momento si ya se pagó.
Como en el resto de los endpoints, la consulta se autentica con tu access_token. Si todavía no lo tenés, mirá Obtener el token.
Cuándo consultarlo:
- Cuando recibís un webhook, para confirmar que el aviso es real.
- Cuando el comprador vuelve a tu sitio por la URL de retorno.
- Si no te llegó el webhook, por ejemplo para revisar periódicamente las órdenes pendientes.
Consultar una orden
GET {base_url}/api/v2/orders/{uuid}, donde {base_url} es la URL de Checkout del ambiente que uses (Ambientes).
Headers:
Authorization: Bearer {access_token}
Content-Type: application/vnd.api+json
curl --request GET 'https://{base_url}/api/v2/orders/{uuid}' \
--header 'Authorization: Bearer {access_token}' \
--header 'Content-Type: application/vnd.api+json'Si el uuid no existe, la respuesta es 404.
Si el token falta, es inválido o venció, pedí uno nuevo (Obtener el token) y reintentá.
Respuesta
{
"data": {
"id": "/api/v2/orders/0b7f233a-c5ca-4968-9b72-40a239f80355",
"type": "Order",
"attributes": {
"uuid": "0b7f233a-c5ca-4968-9b72-40a239f80355",
"orderNumber": "00000001-0000000012",
"status": "SUCCESS",
"price": { "currency": "032", "amount": 100000 },
"shipping": null,
"items": [
{
"name": "Silla Eames Base Madera",
"quantity": 1,
"unitPrice": { "currency": "032", "amount": 100000 },
"itemId": null
}
],
"links": {
"checkout": "https://{checkout_url}/orders/0b7f233a-c5ca-4968-9b72-40a239f80355",
"redirect_url": { "success": null, "failed": null }
},
"hasPendingPayment": false,
"payment": {
"id": 123,
"authorization_code": "012345",
"reference_number": "62d6c4784212b",
"status": "APPROVED"
},
"payments": [
{
"id": 123,
"authorization_code": "012345",
"reference_number": "62d6c4784212b",
"status": "APPROVED"
}
]
}
}
}
Campo (dentro de data.attributes) | Descripción |
|---|---|
status | Estado de la orden. Es el campo principal: ver estados. |
price.amount | Total de la orden en centavos, con envío incluido. |
payment | El último intento de pago, o null si todavía no hubo ninguno. |
payment.status | Resultado de ese intento, por ejemplo APPROVED. |
payment.authorization_code | Código de autorización del pago. |
payment.reference_number | Número de referencia del pago. |
payments | Todos los intentos de pago de la orden. |
hasPendingPayment | true si hay un pago en proceso. |
Nota: Nombres de campos distintos al webhook
Acá los campos del pago se llaman authorization_code y reference_number. En el webhook, los mismos datos se llaman authorizationCode y refNumber.
Estados
Son los mismos valores que trae el campo order.status del webhook.
status | Qué significa | Qué hacer |
|---|---|---|
PENDING | La orden está creada y todavía no tiene un pago aprobado. También queda así si el comprador intentó pagar y se rechazó: puede volver a intentarlo. | Esperar. |
SUCCESS | El pago se aprobó. | Dar el pedido por pagado. |
EXPIRED | Venció el tiempo para pagar, o la intención de pago falló. | Cancelar el pedido o crear una orden nueva. |
FAILED_CHECKOUT | Hubo un error durante el checkout, por ejemplo con los datos de pago. | Crear una orden nueva si el comprador quiere reintentar. |
FAILED | No se pudo crear la intención de pago, antes de que el comprador intentara pagar. | Revisar los datos de la orden y crear una nueva. |