Try Again Feature
The Try Again feature lets users retry a failed On-Ramp payment attempt directly inside the widget, without starting over. This is especially useful when the initial payment fails due to insufficient funds, card blocking, or bank rejection.
To enable and configure Try Again, contact your integration manager and specify your preferences for amount modification, payment method modification, callback behavior, and maximum retry attempts.
Configuration Options
Transaction Amount Modification
- Enabled: users can change the fiat/crypto amount during a retry.
- Disabled: original amount is preserved for all retry attempts.
Payment Method Modification
- Enabled: users can switch payment methods between attempts (e.g., from card to Google Pay).
- Disabled: users must retry with the original payment method.
Callback Configuration
- Enabled (intermediate callbacks sent): all status transitions trigger callbacks.
- Disabled (final callbacks only): only final statuses (
paid,cancelled,order_failed) trigger callbacks.
Maximum Retry Attempts
Set the maximum number of times the user can retry.
Callback Behavior with Try Again
When a user retries, Mercuryo creates a new transaction with a new id. The merchant_transaction_id stays the same across all retries, allowing you to group attempts by your own transaction ID.
Parameters that may change across retries:
| Parameter | When it changes |
|---|---|
id |
Every retry (new Mercuryo transaction ID) |
created_at |
Every retry |
created_at_ts |
Every retry |
fiat_currency |
If Transaction Amount modification is enabled |
fiat_amount |
If Transaction Amount modification is enabled |
fiat_amount_usd |
If Transaction Amount modification is enabled |
amount |
If Transaction Amount modification is enabled |
rate |
If Transaction Amount modification is enabled |
payment_method |
If Payment Method modification is enabled |
Callback Example — First Attempt
{
"eventId": "ead92193-5310-4962-9730-d7280d623410",
"data": {
"amount": "0.00048148",
"fiat_amount": "25.00",
"fiat_amount_usd": "28.43",
"id": "0c9be256a0eed7062",
"created_at": "2024-09-11 09:48:51",
"created_at_ts": 1726048131,
"updated_at": "2024-09-11 09:48:53",
"updated_at_ts": 1726048133,
"type": "buy",
"merchant_transaction_id": "trx_20240911_102155662",
"currency": "BTC",
"network": "BITCOIN",
"fiat_currency": "EUR",
"payment_method": "card",
"status": "order_scheduled",
"user": {
"uuid4": "00e0043f-9c9a-4a93-b4b3-f10729af6ef6",
"country_code": "de",
"phone": "*****",
"email": "*****"
},
"card": { "number": "*****" },
"fee": "0.28",
"partner_fee": "0.00",
"rate": "51341.70",
"card_masked_pan": null,
"contract_address": null
}
}
Callback Example — Second Attempt (Retry)
{
"eventId": "b7c4e201-8f93-47d1-a056-e3291b804f78",
"data": {
"amount": "0.00024148",
"fiat_amount": "13.7",
"fiat_amount_usd": "13.70",
"id": "0c9be512a0ebd8012",
"created_at": "2024-09-11 09:50:03",
"created_at_ts": 1726056363,
"updated_at": "2024-09-11 09:50:53",
"updated_at_ts": 1726056363,
"type": "buy",
"merchant_transaction_id": "trx_20240911_102155662",
"currency": "BTC",
"network": "BITCOIN",
"fiat_currency": "USD",
"payment_method": "mobile_pay",
"status": "paid",
"user": {
"uuid4": "00e0043f-9c9a-4a93-b4b3-f10729af6ef6",
"country_code": "de",
"phone": "*****",
"email": "*****"
},
"fee": "0.15",
"partner_fee": "0.00",
"rate": "56341.70",
"card_masked_pan": null,
"contract_address": null
}
}
Callback Optimization Options
Disable All Intermediate Callbacks
When enabled, Mercuryo only sends callbacks for final statuses: paid, cancelled, order_failed. Intermediate statuses (new, pending) are suppressed for all transactions.
Recommended when: users can create many transactions in rapid succession and you only care about the outcome.
Without this setting, a sequence of retries will generate callbacks like:
new → pending → new → pending → new → pending → {final_status}
Disable Intermediate Callbacks for Retry Attempts Only
Intermediate callbacks are sent only for the first attempt. For all subsequent retries, only final status callbacks are sent.
| Attempt | Callbacks sent |
|---|---|
| First | new, pending, paid, cancelled, order_failed |
| 2nd, 3rd, ... | Only: paid, cancelled, order_failed |