Overview
Fiat addresses represent bank accounts that can receive payouts from your Autoramps. Before initiating an offramp, you must register the destination bank account. MoonPay Enterprise supports multiple payment rails:RTP (US Real-Time Payments) is not yet supported — support is coming soon.
Register a bank account
Register a bank account for a customer. The request structure varies based on the payment rail.SEPA (Europe)
ACH (US Domestic)
SWIFT (International)
SWIFT payouts are available in USD, to both first-party and third-party accounts. Country coverage for each customer depends on how they were onboarded and on your account setup. See USD payouts. For inbound SWIFT deposits, see Currencies and Rails.
Request fields
Response
List bank accounts
Retrieve all registered bank accounts for a customer:Query parameters
List by status
Retrieve all bank accounts with a specific status across all customers:Get a specific bank account
Delete a bank account
Soft-delete a registered bank account:Deleted accounts cannot be used for new transactions. This operation cannot be undone.
Address statuses
Beneficiary whitelisting is instant. There is no separate recipient verification step. Most accounts move fromRegistrationPending to Registered within seconds. If they don’t, the status tells you why.
Third-party accounts
To register a bank account that doesn’t belong to the customer (a friend, family member, or business counterparty), setis_third_party: true. The registration flow is identical to first-party accounts: beneficiary whitelisting is instant, and the account is ready for payouts within seconds.
PIX (Brazil)
PIX destinations pay out in BRL. They use their own endpoints under/api/addresses/pix, not /api/addresses/fiat. Identify the recipient’s account with a PIX key, or with full bank details when they don’t have one.
Register a PIX destination
POST /api/addresses/pix
Every
POST needs an Idempotency-Key header, and a missing key returns 400. MoonPay Enterprise caches successful responses only, so a retry after an error runs again. See Idempotency.recipient.recipient is the account holder’s name, with the same Individual and Business shapes as bank accounts. recipient.account identifies the account by its type:
The response is the PIX address with its
id and a status. It starts as RegistrationPending and moves to Registered once the destination is set up for payouts. An Autoramp accepts the destination only when it’s Registered. To pay out to it, pass { "type": "Pix", "id": "<pix_address_id>" } as the Autoramp’s recipient_account.
Registering the same account twice for a customer returns 409 with a plain string body:
Look up a PIX key
GET /api/pix-key-info?pix_key_type={type}&pix_key={key} returns the holder’s name, the bank name, and the bank’s 8-digit ISPB code, without registering anything. Use it to show your customer who they’re paying before you register the destination. pix_key_type is one of CPF, CNPJ, EMAIL, PHONE, or EVP.