Issuing and Using Cards
Issue payment cards, handle transactions, and manage 3DS authentication.
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 |
Wirex BaaS enables card issuance for users, allowing them to spend their crypto balance at any merchant that accepts Visa. Cards are linked to user wallets and automatically convert wrapped tokens to fiat at the point of sale. Both virtual and physical card formats are available.
Card management includes activation, PIN retrieval, freezing/unfreezing, and closure. Each card has configurable spending limits (per-transaction, daily, monthly, lifetime) that can be adjusted via API. Transaction activity is reported through webhooks, providing real-time visibility into card usage.
For e-commerce transactions, 3D Secure (3DS) authentication protects against fraud. When a merchant requests 3DS verification, a webhook is delivered with transaction details. Your application must present the confirmation to the user and submit their response within the timeout window.
Card Issuance Flow (Simplified)
Detailed documentation available in the subguides.
sequenceDiagram
participant User
participant App as Your App
participant BaaS as Wirex BaaS
Note over User,BaaS: Card Request
User->>App: Request card
App->>BaaS: POST /api/v2/cards
BaaS-->>App: card_id
BaaS->>App: POST /v2/webhooks/cards (status: Active)
Note over User,BaaS: Card Details
App->>BaaS: GET /api/v2/cards/{id}/pan
BaaS-->>App: card_number, cvv
App-->>User: Display card
| Step | Action | Description |
|---|---|---|
| 1 | POST /api/v2/cards | Request new card issuance |
| 2 | Webhook | Card status notification |
| 3 | GET /api/v2/cards/{id}/pan | Retrieve sensitive card details |
Card Transaction Flow (Simplified)
sequenceDiagram
participant User
participant Merchant
participant App as Your App
participant BaaS as Wirex BaaS
Note over User,BaaS: Card Payment
User->>Merchant: Pay with card
Merchant->>BaaS: Authorization
Note right of BaaS: Hold balance
BaaS->>App: POST /v2/webhooks/activities<br/>(type: CardTransaction, status: Pending)
Note over Merchant,BaaS: Settlement
Merchant->>BaaS: Clear transaction
Note right of BaaS: Debit balance
BaaS->>App: POST /v2/webhooks/activities<br/>(status: Completed)
App-->>User: Transaction done
| Step | Action | Description |
|---|---|---|
| 1 | Authorization | Merchant requests payment authorization |
| 2 | Hold | Funds held on user balance |
| 3 | Webhook (Pending) | Authorization notification |
| 4 | Settlement | Merchant clears the transaction |
| 5 | Webhook (Completed) | Final transaction notification |
3DS Authentication Flow (Simplified)
sequenceDiagram
participant User
participant App as Your App
participant BaaS as Wirex BaaS
participant Merchant
Note over User,Merchant: 3DS Challenge
User->>Merchant: Online purchase
Merchant->>BaaS: 3DS auth request
BaaS->>App: POST /v2/webhooks/3ds (transaction details)
App-->>User: Confirm payment?
User->>App: Yes / No
App->>BaaS: POST /api/v1/cards/3ds/confirm
BaaS->>Merchant: 3DS response
| Step | Action | Description |
|---|---|---|
| 1 | Webhook | 3DS challenge received |
| 2 | User prompt | Display transaction for confirmation |
| 3 | POST /api/v1/cards/3ds/confirm | Submit user decision |
Updated 8 days ago
