Consultar estado manualmente
Consulta el resultado de un pago cuando no puedes esperar al webhook, y en qué estado confiar.
Aunque recomendamos usar webhooks para actualizaciones en tiempo real, también puedes consultar el estado de un pago en cualquier momento llamando a la API. Es útil en varios casos:
- Cuando un cliente regresa a tu
success_urly necesitas confirmar el estado final antes de mostrar la confirmación del pedido. - Para scripts de conciliación que revisan el estado de pedidos pendientes.
- Como respaldo si tu endpoint de webhooks falla.
Opción 1: estado de la sesión
Es el método más común. Usa el session_id para obtener el objeto de sesión completo, que incluye
el status y el transaction_status más recientes.
Autorización
Authorization Tu API key con prefijo Token , p. ej. Token <API_KEY>
In: header
Parámetros de ruta
The Session ID (e.g., sess_a1b2c3d4e5f6)
Cuerpo de la respuesta
application/json
curl -X GET "https://example.com/checkout/v1/sessions/sess_a1b2c3d4e5f6"{
"id": "cs_97_41521_d11ba771527b4056c7f85786cfbb980bc105efaf42af113d",
"url": "https://stage-payflow.tonder.io/checkout/cs_97_41521_d11ba771527b4056c7f85786cfbb980bc105efaf42af113d",
"status": "completed",
"payment_id": 41521,
"amount_total": 350,
"currency": "MXN",
"expires_at": 1751564943,
"external_id": "ORD-12345",
"session_type": "payment",
"checkout_type": "hosted",
"return_url": "https://my-store.com/checkout/complete",
"metadata": {},
"payment_method_types": [
"card"
],
"ui_config": {},
"ui_config_version": "V1",
"created_at": 1751478543567,
"modified_at": 1751478550234,
"paid_at": 1751478550234,
"customer": {
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@example.com"
},
"line_items": [
{
"name": "Product 1",
"quantity": 1,
"unit_price": 350,
"product_id": "prod-001"
}
],
"transaction_status": "Success",
"provider": "tonder"
}Opción 2: detalles de la transacción
Si tienes un payment_id (del objeto de sesión o de un webhook), puedes obtener los detalles de esa
transacción específica.
Autorización
Authorization Tu API key con prefijo Token , p. ej. Token <API_KEY>
In: header
Parámetros de ruta
The Payment ID (e.g., pay_x1y2z3a4b5)
Cuerpo de la respuesta
application/json
curl -X GET "https://example.com/checkout/v1/payments/pay_x1y2z3a4b5"{
"payment_id": "pay_x1y2z3a4b5",
"session_id": "sess_a1b2c3d4e5f6",
"status": "Success",
"amount": 350,
"currency": "MXN",
"payment_method_type": "card",
"created_at": "2025-10-20T14:30:00Z",
"card_details": {
"brand": "visa",
"last4": "4242"
},
"customer": {
"name": "John Doe",
"email": "john.doe@example.com"
}
}Para el cumplimiento de pedidos, basa tu lógica en el estado de la transacción
(transaction_status, o el status que regresa GET /checkout/v1/payments/{payment_id}), no en
el status de la sesión. El estado de la sesión puede no reflejar el resultado final del pago.
Consulta el significado de cada valor en la Referencia.
