Skip to main content

Transaction Status Mapping

Settlement Times by Payment Method

The time it takes for a transaction to complete depends on the payment rail used. Below are typical settlement times from initiation to completion:
Settlement times are estimates based on typical payment rail processing. Actual times vary depending on:
  • Banking partner processing schedules
  • Compliance and AML review requirements (see FundsReviewInProgress status)
  • Time of day and business day cutoffs
  • External network delays
For real-time status updates, monitor the transaction status via the API or webhook notifications.

When No Transaction Appears

A transaction is created once a deposit lands on a Virtual Account or deposit address with a matching autoramp. If a payment was sent and no transaction shows up, the most likely explanation is that the funds have not reached MoonPay Enterprise at all. The sending bank is often still holding the payment: cutoffs, batch windows, and the sender’s own compliance checks add hours, and SWIFT adds days. Check the settlement window for the rail above, then confirm with the payer that the payment left their account. The less common case is a deposit that arrives but matches no autoramp. That happens when a payment-by-reference Virtual Account receives a payment without the expected reference, when a crypto deposit matches no active quote, or when crypto arrives on a chain you did not declare in source_currencies. MoonPay Enterprise returns those funds to the sender. No transaction is created, so there is no status to poll and no webhook to receive.
Returned deposits are not exposed through the API. If the payment left the sender’s account and never produced a transaction, contact support with the amount, currency, date, and reference used.
Crypto deposits worth less than 1 EUR are treated as dust. They are neither processed nor returned. See Limits and minimums.

API Endpoint

GET /api/autoramp-transactions/ids Use this endpoint to retrieve the latest status of specific transactions (up to 100 at a time). Useful for syncing or polling real-time transaction states. At least one transaction ID is required.

Response

The example above is trimmed to the fields most integrations need. The full AutorampTransaction object also returns kind, recipient, fee, fee_breakdown, fee_settlement, exchange_rate, is_third_party, inbound_payment_reference, batch_id, payment_tracking, and payout_crypto_transaction. The legacy state field is deprecated in favor of status.

Error response

Requesting this endpoint with no ids query parameter returns 400 as a plain string body:

Webhook Notifications

Refer to the MoonPay Enterprise Webhooks Guide for status-based notifications.