Using Bank Accounts

Manage bank account details for fiat deposits and withdrawals.

Before You Start

Read the following guides before proceeding:

GuideWhy
Getting StartedPlatform overview and setup
Api BasicsRequired headers and request configuration
AuthenticationHow to obtain access tokens
OnboardingUser and wallet registration
KYCKYC verification requirements
RecipientsRecipient management

Wirex BaaS provides bank account connectivity for fiat deposits and withdrawals. Users receive dedicated bank account details for receiving incoming transfers, and can send outbound transfers to external bank accounts. Supported rails include SEPA (EUR) and ACH (USD).

SEPA and ACH accounts both require activation through the bank accounts endpoint after KYC approval — verification alone does not provision either. Once active, SEPA users receive an IBAN that accepts incoming EUR transfers from any SEPA-participating bank, and ACH users receive account and routing numbers for receiving USD transfers. SEPA activation has a second path when the user's wallet must first be linked to an external provider; see SEPA Bank Details.

Outbound transfers support both first-party (user's own accounts) and third-party (other recipients) destinations. Each transfer type has a corresponding capability that must be active. Transfers follow an estimate-then-execute flow, with activity webhooks reporting transaction status as funds move through the banking network.

Incoming Deposit Flow (Simplified)

Detailed documentation available in the subguides.

sequenceDiagram
    participant Sender
    participant App as Your App
    participant BaaS as Wirex BaaS

    Note over App,BaaS: Account Setup
    App->>BaaS: GET /api/v1/bank/accounts
    BaaS-->>App: IBAN / Account #
    Note right of App: Display to user

    Note over Sender,BaaS: Deposit Received
    Sender->>BaaS: Bank transfer (SEPA/ACH)
    BaaS->>App: POST /v2/webhooks/activities<br/>(type: Sepa/AchPush, direction: Inbound)
    Note right of App: Update user balance
StepActionDescription
1GET /api/v1/bank/accountsRetrieve user's bank account details
2Display IBAN/account numberUser shares with sender
3Sender initiates transferExternal bank transfer
4WebhookActivity notification with deposit details

Outgoing Transfer Flow (Simplified)

sequenceDiagram
    participant User
    participant App as Your App
    participant BaaS as Wirex BaaS

    Note over User,BaaS: Transfer Request
    User->>App: Enter recipient bank details
    App->>BaaS: POST /api/v2/bank/transfer/estimate
    BaaS-->>App: estimation_id, rates
    App-->>User: Transfer quote
    User->>App: Confirm transfer
    App->>BaaS: POST /api/v1/bank/transfer
    BaaS-->>App: activity_id

    Note over App,BaaS: Completion
    BaaS->>App: POST /v2/webhooks/activities<br/>(status: Completed)
    App-->>User: Transfer complete
StepActionDescription
1POST /api/v2/bank/transfer/estimateGet transfer quote with token rates
2POST /api/v1/bank/transferExecute transfer
3WebhookReceive completion notification

Did this page help you?