Refunds
How to refund a card payment, and the rules that limit it: full, once, within 29 days.
Tonder's refund functionality lets merchants return funds to customers for card transactions. You
use it for returns, cancellations, or any situation requiring a payment reversal. Refunds are
processed through the same unified /process/ endpoint using operation_type: "refund".
Refunds are only available for card payments. SPEI, OXXO Pay, and MercadoPago transactions cannot be refunded.
Prerequisites
- The ID of the original transaction you want to refund.
Important limitations
- Refunds work exclusively with credit and debit card transactions.
- Each transaction can be refunded only once, and in full.
- Refunds must be processed within 29 days after payment confirmation.
Step 1: make the refund request
Send your request to the /process/ endpoint with these four fields:
| Field | Type | Required | Description |
|---|---|---|---|
operation_type | string | Yes | Must be "refund". |
amount | decimal | Yes | Refund amount (full). |
currency | string | Yes | Currency code (must match the original transaction). |
original_transaction_id | string | Yes | ID of the original payment transaction. |
curl -X POST https://stage.tonder.io/api/v1/process/ \
-H "Authorization: Token YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"operation_type": "refund",
"amount": 50.00,
"currency": "MXN",
"original_transaction_id": "6ada8797-235e-4674-86de-7b23e90e1163"
}'Step 2: handle the response
On a successful request, the API returns an immediate acknowledgment:
{
"id": "07230c98-e749-4d27-a90d-6f3e117205aa",
"operation_type": "refund",
"status": "Success",
"amount": 50.0,
"currency": "MXN",
"client_reference": null,
"transaction_id": "20832559",
"provider": "tonder",
"created_at": "2025-09-18T15:38:38.157382Z",
"status_code": 201,
"original_transaction_id": "6ada8797-235e-4674-86de-7b23e90e1163",
"reason": null,
"refund_id": "74"
}| Field | Description |
|---|---|
id | Unique refund transaction identifier. |
operation_type | Type of operation ("refund"). |
status | Current refund status ("Success", "Failed", etc.). |
amount | Refunded amount. |
currency | Currency code. |
original_transaction_id | ID of the original payment transaction. |
refund_id | Internal refund identifier. |
created_at | Timestamp when the refund was created. |
status_code | HTTP status code of the response. |
Always validate id (the unique identifier — store it) and status (the current refund state).
Never rely on the HTTP status code alone.
