How It Works
Without EOD Settlement (default)
Each offramp transaction is processed independently. As soon as conversion completes, MoonPay Enterprise initiates a separate fiat transfer to the recipient bank account.With EOD Settlement
Transactions are converted as they arrive, but payouts are held and combined into a single transfer at the end of the business day.Enabling EOD Settlement
Setbatch_payout to true when creating an offramp Autoramp. This setting applies to all transactions processed through that Autoramp.
POST /api/autoramps
This endpoint requires an
Idempotency-Key header. Send the same key to safely retry a request without creating a duplicate autoramp. A request without one returns 400.Request fields
batch_payout only applies to offramp Autoramps with a fiat destination. It is ignored for onramp and swap Autoramps.Request
Response
The example above is trimmed to the fields most integrations need. The full
Autoramp object also returns kind, source, recipient, customer_id, source_currencies, destination_currency, is_third_party, fee_profile_id, and quotes.Transaction Lifecycle
When EOD Settlement is enabled, transactions follow a modified lifecycle where conversion happens immediately but the fiat payout is deferred until end of day.
Every row above arrives as a
transaction_status webhook event. The first row also emits a transaction event.
PayoutPending is a value of the deprecated status field, not of transaction_status. See Webhooks for both enums.Webhooks
When EOD Settlement is enabled, webhook behavior changes slightly:transactionandtransaction_statusevents are still emitted for each individual transaction as it is received and converted.- The
transaction_statusfor individual transactions will reflect the conversion state. The payout portion settles at end of day. - A final
transaction_statuswebhook withtransaction_status: "Completed"is sent once the batched payout has been executed and confirmed.
Fees
Fees come from the same fee profile regardless of whether EOD Settlement is enabled. The transaction fee and the network fee are calculated and applied per transaction. The banking fee is charged once per batched payout rather than per individual transaction, which can reduce overall costs for high-frequency offramp flows.Constraints
- Fiat destinations only.
batch_payoutis ignored for crypto-to-crypto swaps and onramp Autoramps. It only applies when the destination is a fiat bank account (offramp). - Autoramp-level setting. The batch behavior is configured per Autoramp. You can have some Autoramps with immediate payouts and others with EOD settlement for the same customer.
- Cannot be changed after creation. To switch between immediate and batched payouts, create a new Autoramp with the desired setting.
When to Use EOD Settlement
Sandbox Testing
In Sandbox, you can simulate the full EOD Settlement flow.1
Create an offramp Autoramp with batch_payout enabled
Use the request above with
"batch_payout": true.2
Approve the Autoramp
3
Create multiple sandbox transactions
4
Complete the transactions
In Sandbox, batch settlement is simulated. Transactions complete immediately when you advance their state rather than waiting for end of day.