What happened
The crypto outbound provider declined the broadcast request before the transaction was submitted to the chain. The transaction is in a terminal failed state withfailureCode: provider_rejected. No on-chain transfer occurred; the reserved balance has been released back to the customer’s available balance.
Common causes
- Provider-side validation failure — the broadcast request failed the outbound provider’s pre-submission checks (for example, invalid gas parameters, nonce conflict, or payload format error)
- Transient provider error — the provider’s infrastructure returned an error that prevented the broadcast from being accepted
Recovery
1. Confirm the terminal statestatus: "failed" and failureCode: "provider_rejected". Confirm that no txHash is present — a missing txHash confirms no on-chain transfer occurred.
2. Retry the payout
The reserved balance has been released. You may submit a new payout immediately:
PROVIDER_REJECTED, contact support with the transaction IDs and the destination address. There may be a provider-level configuration issue affecting the corridor.
Prevention
- Handle
transaction.failedwith this code — branch onfailureCode === 'provider_rejected'to surface a “transfer could not be sent; your balance has been restored” message with a retry option - Use idempotency keys — ensure each retry uses a fresh idempotency key so retries are not deduplicated against the failed attempt
Related webhooks
Thetransaction.failed event fires when the provider rejects the broadcast:
Related endpoints
- GET /v2/transactions/:id — read transaction state
- POST /v2/payouts — submit a new payout