Sending a Card Payment

Transfer funds from user wallets to external payment cards via OCT.

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

Push to Card enables users to transfer funds from their wallet directly to external Visa or Mastercard payment cards. The transfer uses OCT (Original Credit Transaction) rails to credit the destination card, typically within minutes. This provides a fast off-ramp for users who want to move funds to their existing bank cards.

Before initiating transfers, external cards must be registered through a two-step process: first tokenizing the card in Wirex's PCI-compliant secure environment, then creating a recipient with the tokenized card details. Cards can be registered as first-party (user's own card) or third-party (another person's card).

Transfers follow the standard estimate-then-execute flow. The estimate provides exchange rates for available tokens, and execution debits the selected token from the user's wallet. Transaction status is reported via activity webhooks.

Integration Flow (Simplified)

Detailed documentation available in Card Tokenization and Card Transfer.

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

    Note over User,BaaS: Card Registration (one-time)
    User->>App: Enter card details
    App->>PCI: POST /b2b/cards/oct
    PCI-->>App: card_token
    App->>BaaS: POST /api/v2/recipients (type: Card)
    BaaS-->>App: payment_details.id

    Note over User,BaaS: Transfer Execution
    User->>App: Request transfer
    App->>BaaS: POST /api/v1/cards/transfer/estimate
    BaaS-->>App: estimation_id, rates
    App-->>User: Transfer quote
    User->>App: Confirm transfer
    App->>BaaS: POST /api/v1/cards/transfer
    BaaS-->>App: activity_id

    Note over App,BaaS: Completion
    BaaS->>App: POST /v2/webhooks/activities
    App-->>User: Transfer complete
StepActionDescription
1POST /b2b/cards/octTokenize card in PCI environment
2POST /api/v2/recipientsCreate recipient with card token
3POST /api/v1/cards/transfer/estimateGet transfer quote
4POST /api/v1/cards/transferExecute transfer
5WebhookReceive completion notification