Webhooks V2


Webhooks

The Business API provides a webhook publisher service that delivers real-time notifications to partner systems when entity state changes occur. Webhooks are delivered as HTTP POST requests to configured company webhook URLs.

Webhook Delivery

Delivery Model: Fire-and-forget HTTP POST requests with JSON payloads. No authentication headers are added to webhook requests. Partners are responsible for validating webhook origin through network-level controls or payload verification.

Timeout: 10 seconds per request. Failed deliveries are logged but not retried.

Content-Type: application/json

Webhook Endpoints

PathEntityDescription
/v2/webhooks/walletsWalletWallet creation and status changes
/v2/webhooks/balancesBalanceToken balance updates
/v2/webhooks/cardsCardCard status and data changes
/v2/webhooks/card-limitsCard LimitSpending limit and usage updates
/v2/webhooks/3ds3DS Confirmation3D Secure transaction confirmations requiring user decision
/v2/webhooks/activitiesActivityTransaction and activity feed updates
/v2/webhooks/recipientsRecipientRecipient creation and updates
/v2/webhooks/erc-withdrawalsERC WithdrawalPending ERC20 withdrawal requests

Webhook Payloads

Wallet Webhook (/v2/webhooks/wallets)

Delivered when wallet state changes (creation, confirmation status).

{
  "wallet_address": "0xA7E41d5680dE394EaA2ed417169DFf56840Fb3EE",
  "wallet_name": "Main Wallet",
  "wallet_status": "Confirmed",
  "wallet_type": "Primary"
}
FieldTypeDescription
wallet_addressstringEthereum address of the wallet
wallet_namestringDisplay name of the wallet
wallet_statusenumUnknown, Confirmed, Rejected
wallet_typeenumPrimary, Secondary, Global, Card

Balance Webhook (/v2/webhooks/balances)

Delivered when token balance changes on a wallet.

{
  "wallet_address": "0xA7E41d5680dE394EaA2ed417169DFf56840Fb3EE",
  "token_symbol": "USDT",
  "token_address": "0x6b175474e89094c44da98b954eedeac495271d0f",
  "balance": 100.00056,
  "reference_balance": 100.00056,
  "reference_currency": "EUR"
}
FieldTypeDescription
wallet_addressstringWallet address this balance belongs to
token_symbolstringToken symbol (e.g., USDT, USDC)
token_addressstringContract address of the token
balancefloatAvailable token balance
reference_balancefloatBalance converted to reference currency
reference_currencystringISO 4217 currency code (default: EUR)

Card Webhook (/v2/webhooks/cards)

Delivered when card state changes (issuance, activation, blocking, status updates).

{
  "id": "00000000-0000-0000-0000-000000000001",
  "card_wallet_address": "0xA7E41d5680dE394EaA2ed417169DFf56840Fb3EE",
  "status": "Active",
  "status_reason": "User",
  "previous_status": "NotActivated",
  "generation": "Gen2",
  "provider": "Wirex",
  "created_at": "2024-01-01T00:00:00Z",
  "updated_at": "2024-01-02T00:00:00Z",
  "card_data": {
    "name_on_card": "Alex Grey",
    "payment_system": "Visa",
    "card_number_last_4": "5678",
    "expiry_date": "01/2028",
    "format": "Virtual",
    "card_name": "MC ****5678"
  },
  "delivery_address": {
    "line1": "123 Main St",
    "line2": "Suite 200",
    "city": "San Francisco",
    "state": "CA",
    "country": "US",
    "zip_code": "94107"
  }
}
FieldTypeDescription
idstring (UUID)Unique card identifier
card_wallet_addressstringLinked wallet address
statusenumRequested, NotActivated, Active, Closed, Blocked
status_reasonstringReason for current status
previous_statusenumStatus before current state
generationenumGen1, Gen2
providerenumWirex, Bridge
card_dataobjectCard display information
delivery_addressobjectPhysical card delivery address (optional)

Card Limit Webhook (/v2/webhooks/card-limits)

Delivered when card spending limits or usage changes.

{
  "card_id": "00000000-0000-0000-0000-000000000001",
  "transaction_limit": 500.00,
  "daily_limit": 1000.00,
  "daily_usage": 200.00,
  "monthly_limit": 5000.00,
  "monthly_usage": 1500.00,
  "lifetime_limit": 100000.00,
  "lifetime_usage": 25000.00
}
FieldTypeDescription
card_idstring (UUID)Card identifier
owneraddressAddress of the user who owns the card
transaction_limitfloatMaximum single transaction amount
daily_limitfloatDaily spending limit
daily_usagefloatAmount spent today
monthly_limitfloatMonthly spending limit
monthly_usagefloatAmount spent this month
lifetime_limitfloatLifetime spending limit
lifetime_usagefloatTotal amount spent

3DS Confirmation Webhook (/v2/webhooks/3ds)

Delivered when a card transaction requires 3D Secure confirmation.

{
  "card_id": "00000000-0000-0000-0000-000000000001",
  "owner": "0xA7E41d5680dE394EaA2ed417169DFf56840Fb3EE",
  "transaction_id": "00000000000000000000000000000001",
  "merchant_name": "Amazon",
  "amount": "100.00",
  "currency": "USD",
  "card_last_4": "1234"
}
FieldTypeDescription
card_idstring (UUID)Card used for the transaction
transaction_idstringIssuer transaction identifier
merchant_namestringMerchant name
amountstringTransaction amount
currencystringISO 4217 currency code
card_last_4stringLast 4 digits of card number

Activity Webhook (/v2/webhooks/activities)

Delivered when transaction or activity state changes.

{
  "id": "00000000-0000-0000-0000-000000000001",
  "user_address": "0xA7E41d5680dE394EaA2ed417169DFf56840Fb3EE",
  "type": "CardTransaction",
  "status": "Completed",
  "status_reason": null,
  "direction": "Outbound",
  "source": {
    "type": "Card",
    "card": {
      "id": "00000000-0000-0000-0000-000000000001",
      "pan_last": "1234",
      "payment_system": "Visa"
    }
  },
  "destination": {
    "type": "Merchant",
    "merchant": {
      "id": "00000000-0000-0000-0000-000000000001",
      "name": "Amazon"
    }
  },
  "source_amount": {
    "amount": 100.0,
    "token_symbol": "USDT",
    "token_address": "0x..."
  },
  "destination_amount": {
    "amount": 100.0,
    "currency": "USD"
  },
  "rate": {
    "ticker": "USD/USDT",
    "rate": 1.0
  },
  "created_at": "2024-01-01T00:00:00Z",
  "activity_steps": [
    {
      "type": "Initiated",
      "status": "Completed",
      "created_at": "2024-01-01T00:00:00Z",
      "completed_at": "2024-01-01T00:00:01Z"
    }
  ]
}
FieldTypeDescription
idstring (UUID)Activity identifier
user_addressstringUser wallet address
typeenumDeposit, Withdrawal, Exchange, Sepa, FasterPayment, AchPull, AchPush, Swift, Spei, CardTransaction, ExternalCardTransaction, Crypto, CardFeesPayment, YieldClaim, CardTransfer
statusenumPending, Completed, Failed
directionenumInbound, Outbound, Internal
sourceobjectSource subject (wallet, card, bank account)
destinationobjectDestination subject (wallet, merchant, bank account)
source_amountobjectAmount debited from source
destination_amountobjectAmount credited to destination
rateobjectExchange rate applied (optional)
activity_stepsarrayTransaction processing steps

Recipient Webhook (/v2/webhooks/recipients)

Delivered when recipient is created or updated.

{
  "id": "00000000-0000-0000-0000-000000000001",
  "personal_info": {
    "first_name": "Alex",
    "last_name": "Grey",
    "is_business": false
  },
  "payment_details": [
    {
      "id": "00000000-0000-0000-0000-000000000002",
      "type": "Sepa",
      "currencies": ["EUR"],
      "sepa": {
        "iban": "DE89370400440532013000",
        "bic": "COBADEFF"
      }
    }
  ]
}
FieldTypeDescription
idstring (UUID)Recipient identifier
personal_infoobjectRecipient name and type (person/business)
payment_detailsarrayPayment methods (Crypto, Sepa, FasterPayment, Ach, Swift, Spei, Card)

ERC Withdrawal Webhook (/v2/webhooks/erc-withdrawals)

Delivered when ERC20 withdrawal is requested and pending user signature.

{
  "account_address": "0xA7E41d5680dE394EaA2ed417169DFf56840Fb3EE",
  "token_address": "0x71C7656EC7AB88B098DEFB751B7401B5F6D8976F",
  "to_address": "0xF4D2A0E30C7983EF65DC0DD938BED82C7E3745DB",
  "amount": 100.0,
  "valid_after": "2024-01-01T00:00:00Z",
  "valid_before": "2024-01-02T00:00:00Z",
  "hash": "0x8A7B6C5D4E3F2A1B0C9D8E7F6A5B4C3D2E1F0A9B8C7D6E5F4A3B2C1D0E9F817",
  "call_data": "3F7D9E1C5A2B804D6E93F7C1A0B5D8E29F4A3B7C6D5E0F1A2B3C4D5E6F7A8B9"
}
FieldTypeDescription
account_addressstringAccount Abstraction wallet address
token_addressstringERC20 token contract address
to_addressstringDestination address for withdrawal
amountfloatWithdrawal amount
valid_afterstring (ISO 8601)Request validity start time
valid_beforestring (ISO 8601)Request expiry time
hashstringCalldata and nonce hash
call_datastringEncoded contract call data