Skip to main content
Card programmes settle in USDC. Fiat deposits credit your treasury in the deposited currency (typically ZAR). Use the Trading API to convert fiat into crypto before you fund the corporate EasyCard programme. You can trade other supported asset pairs; examples below focus on ZAR → USDC because that is the path most integrators need for card funding.

How it works

  1. Estimate: get a live conversion quote (expires after 30 seconds)
  2. Buy or sell: submit the order - pay currency is debited and receive currency is credited immediately (same as retail)
  3. Fund the programme: use your USDC available balance with Fund and withdraw (POST /wallet/fund)
Subscribe to trade.approved when an order completes. Failed trades return an HTTP error and do not create an order. The buy and sell responses include the trade details only - there is no status or reason field because settlement is immediate.

Typical path: deposit ZAR, fund the programme

Get an estimate

Fetch a quote before submitting an order. Re-call if more than 30 seconds pass.
POST /business/trading/estimate
amount is in cents of currency (what you are converting from). convertTo is the destination asset. Defaults: currency = ZAR, convertTo = USDC. The response includes pay, receive, payAmount, receiveAmount, price, and expiresAt. Fees are included in receiveAmount; quote expires after 30 seconds.

Buy ZAR → USDC

You need sufficient ZAR available balance (from an approved deposit). Defaults: currency = ZAR, receive = USDC.
POST /business/trading/buy
amount is how much you pay, in cents of currency. Defaults: currency = ZAR, receive = USDC.
Response
100000 amount cents = 1,000.00 ZAR. receiveAmount is USDC cents after fees at the quoted rate.

Sell USDC → ZAR

Move value back to fiat when needed.
POST /business/trading/sell
amount is how much crypto you sell, in cents of currency. Defaults: currency = USDC, receive = ZAR.

Webhook events

Subscribe to trade.approved or trade.*. See Webhooks.

After trading

Confirm USDC with Check balance, then fund the programme with Fund and withdraw. Cap individual cards with POST /cards/{cardId}/limits.