Using Bank Accounts
Manage bank account details for fiat deposits and withdrawals.
Before You Start
Read the following guides before proceeding:
| Guide | Why |
|---|---|
| Getting Started | Platform overview and setup |
| Api Basics | Required headers and request configuration |
| Authentication | How to obtain access tokens |
| Onboarding | User and wallet registration |
| KYC | KYC verification requirements |
| Recipients | Recipient 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
| Step | Action | Description |
|---|---|---|
| 1 | GET /api/v1/bank/accounts | Retrieve user's bank account details |
| 2 | Display IBAN/account number | User shares with sender |
| 3 | Sender initiates transfer | External bank transfer |
| 4 | Webhook | Activity 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
| Step | Action | Description |
|---|---|---|
| 1 | POST /api/v2/bank/transfer/estimate | Get transfer quote with token rates |
| 2 | POST /api/v1/bank/transfer | Execute transfer |
| 3 | Webhook | Receive completion notification |
Corridor Transfers (Simplified)
Detailed documentation available in Corridor Transfers.
The v3 bank API covers 16 payment rails behind one set of endpoints, with the corridor as a path
parameter. SEPA and ACH are also reachable through the v2/v1 endpoints documented above.
sequenceDiagram
participant App as Client App
participant BaaS as Wirex API
participant Chain as Base Chain
App->>BaaS: POST /api/v3/bank/estimate/{corridor}
BaaS-->>App: id, expires_at, estimated_amounts
App->>BaaS: POST /api/v3/bank/initiate/{corridor}
BaaS-->>App: transfer_id, required_actions?
Note over App,Chain: Only when required_actions is present (CPN corridors)
App->>Chain: Send funds to destination_address
Chain-->>App: tx_hash
App->>BaaS: POST /api/v3/bank/confirm/{corridor}
BaaS-->>App: transfer_id, status
| Step | Endpoint | Description |
|---|---|---|
| 1 | POST /api/v3/bank/estimate/{corridor} | Quote by destination amount, list funding tokens |
| 2 | POST /api/v3/bank/initiate/{corridor} | Start the transfer, return any required actions |
| 3 | POST /api/v3/bank/confirm/{corridor} | CPN corridors only — report the funding transaction |
Updated 20 days ago

