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 accounts are automatically provisioned after KYC approval. Users receive an IBAN that can accept incoming EUR transfers from any SEPA-participating bank. ACH accounts require manual activation through the bank accounts endpoint. Once active, users receive account and routing numbers for receiving USD transfers.

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