Skip to main content

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 from RegistrationPending 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), set is_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.

List, get, and delete

Common errors

Crypto Addresses

Offramp Guide