Skip to main content
On staging, every payout is simulated and succeeds. To test the failure path, save one of the test bank accounts below as a payment method and create an offramp order against it. The deposit is processed as usual, then the payout fails every time.

Test Bank Accounts

These are the bank accounts that fail every payout on staging:

Force a Failed Payout

1

Save a test bank account

Save one of the accounts above as a payment method, sending the bank details exactly as shown. Any userLocator and label work.
cURL
The payment method becomes active like any other, and it stays active after the payout fails, so you can reuse it across orders. Save the returned paymentMethodId.
2

Create the order and deposit

Create the order with the test payment method as recipient.paymentMethodId, broadcast the deposit, and track the order as described in the Quickstart. The SEPA account pays out in EUR, so for that one set lineItems.currencyLocator to fiat:eur and payment.currency to eurc; the quickstart’s fiat:usd and usdc only match the US account. The order ends in phase: "completed" with the deposit received and the payout failed:
Your app should treat this the same way as a bank rejection in production: phase: "completed" is terminal but not successful, so read lineItems[0].delivery.status and branch on failureReason.code. If you use webhooks, the orders.delivery.failed event fires. See Manage Orders for the status handling reference and the other failure codes you can receive in production.These accounts only fail on staging. In production they are ordinary bank accounts, so do not ship them in your app.

Next Steps

Manage Orders

Track every order status and handle webhooks

Launch in Production

Switch from simulated to live payouts