Skip to main content
By default, every offramp transaction triggers an immediate payout to the recipient bank account. End of Day (EOD) Settlement changes this behavior: individual payouts are accumulated throughout the day and settled in a single batch transfer at the end of the business day. This is useful when a customer receives many small offramp transactions and prefers fewer, consolidated bank transfers rather than one transfer per transaction.

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

Set batch_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.
transaction_status stays ConversionInProgress while a converted amount waits for the batch. It does not distinguish “converting” from “converted, held for settlement”. Read status: PayoutPending when you need to tell those apart, and treat PayoutInProgress as “sent to the bank”, not “queued for the batch”.
PayoutPending is a value of the deprecated status field, not of transaction_status. See Webhooks for both enums.
Individual transactions are still tracked separately. Only the fiat payout step is batched, so you retain full visibility into every transaction via the API and webhooks.

Webhooks

When EOD Settlement is enabled, webhook behavior changes slightly:
  • transaction and transaction_status events are still emitted for each individual transaction as it is received and converted.
  • The transaction_status for individual transactions will reflect the conversion state. The payout portion settles at end of day.
  • A final transaction_status webhook with transaction_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_payout is 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

Repeat to create several transactions against the same Autoramp.
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.