Reembolsar un pago con tarjeta
Reembolsa un pago con tarjeta sin indicar el procesador — Tonder lo resuelve del lado del servidor a partir de la referencia de la transacción. Solo para integraciones API Direct y Web SDK.
Autorización
Authorization Tu API key con prefijo Token , p. ej. Token <API_KEY>
In: header
Parámetros de ruta
Your business id — the number that appears in your dashboard URL and in Hosted Checkout session ids (cs_97_…).
The unique reference of the original card payment. Required for card transactions.
Cuerpo de la petición
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Cuerpo de la respuesta
application/json
application/json
curl -X POST "https://example.com/business/97/payments/ch_3AbcDEFghiJKLmnO/refunds" \ -H "Content-Type: application/json" \ -d '{ "amount": 100 }'[
{
"id": 123,
"amount": 100,
"country": "MX",
"currency_code": "MXN",
"transaction_status": "success",
"checkout_id": "ch_3AbcDEFghiJKLmnO",
"is_apm": false
}
]{
"detail": "Authentication credentials were not provided."
}Antes de integrar
Quién puede llamarlo. Solo integraciones API Direct y Web SDK (@tonder.io/web-sdk).
Hosted Checkout, los SDKs móviles y el SDK web legacy reembolsan desde el
dashboard — no existe otro endpoint para ellos.
Solo tarjetas. Los pagos con SPEI, OXXO Pay, cash vouchers y Mercado Pago no pueden reembolsarse por este endpoint.
De dónde salen los valores
| Valor | Dónde encontrarlo |
|---|---|
business_id | El id de tu negocio — el número en la URL de tu dashboard y en los ids de sesión de Hosted Checkout (cs_97_…). |
transaction_reference | La referencia única del pago con tarjeta original. |
amount | El monto a reembolsar, en la moneda de la transacción original, en unidades decimales (100.00). |
Lee el tipo de respuesta, no el código de estado
Un reembolso responde HTTP 200 con un arreglo JSON con una transacción de reembolso:
[
{
"id": 123,
"amount": 100.00,
"country": "MX",
"currency_code": "MXN",
"transaction_status": "success",
"checkout_id": "ch_3AbcDEFghiJKLmnO",
"is_apm": false
}
]No hay 404. Cuando nada coincide con transaction_reference, el endpoint responde igual
HTTP 200 — con el string "No payment transaction found to be refunded" en lugar del arreglo.
Decide por el tipo de respuesta: un arreglo es un reembolso, un string es "no encontrado".
Ante un 500, revisa antes de reintentar
Las fallas del proveedor llegan como HTTP 500. Un reembolso no es idempotente: antes de reenviar,
consulta la transacción original con GET /transactions/{transaction_id}/
y reintenta solo si sigue sin reembolsar — entonces sí, con backoff exponencial.
Las integraciones API Direct también pueden reembolsar por POST /process/ con
operation_type: "refund" — ver Reembolsos. Una vía u otra, nunca
ambas para el mismo pago.
Procesar transacción
Procesa pagos y retiros con una sola llamada. Este endpoint unificado maneja todos los tipos de transacción según el campo `operation_type`.
Generar secure token
Genera un `secureToken` para autenticar transacciones de guardado de tarjeta. El token es válido por 1 hora: úsalo dentro de ese periodo para evitar errores de autenticación.
