Cross-border payments

Send payments to 190+ countries from South Africa.

Visa Direct for Account and Wallet — push to Visa cards, bank accounts, and digital wallets in 160 currencies. SARB-sourced FX, audit-grade receipts, one API.

Why cross-border on FinVeil

Same endpoint. Domestic and cross-border.

190+ countries, 160 currencies

Push to Visa cards, bank accounts, and digital wallets globally — domestic SA and cross-border through the same FinVeil endpoint.

Real-time SARB FX

Mid-market rates pulled live from the South African Reserve Bank — no opaque mark-ups, no stale snapshots. Source attribution on every quote.

Compliance-grade receipts

Every cross-border payment generates a tamper-evident receipt with the rate, fee, recipient, and reference — drop it straight into your SARB BoP report.

One API for everything

A R200 EFT to a Cape Town supplier and a USD 8,000 Visa Direct to a Manila contractor use the same endpoint and the same response shape.

How it works

Quote → Authorise → Settle → Reconcile.

  1. 01

    Quote

    GET /fx/quote returns the live mid-rate sourced from SARB plus your blended fee.

  2. 02

    Authorise

    POST /disbursements with the rail (VISA_DIRECT_AWA), recipient, and reference.

  3. 03

    Settle

    Funds reach the recipient — Visa account or wallet — and a receipt is minted.

  4. 04

    Reconcile

    Webhook fires with status, settled amount, FX rate used, and receipt hash for your records.

Live FX, live settlement

Quote in ZAR, settle in USD.

Pull a quote, lock the rate, push to a Visa card overseas. The receipt records the rate, the fee, and the settlement reference for your SARB Balance of Payments report.

Read the docs
cross-border.bashbash
# 1. Get a live FX quote (sourced from SARB)
curl https://api.finveil.money/api/fx/quote?from=ZAR&to=USD&amount=150000 \
  -H "Authorization: Bearer $FINVEIL_API_KEY"
# => { "rate": 0.0537, "destinationAmount": 8055.00, "feeZar": 145.00,
#      "expiresAt": "2026-04-18T12:34:18Z", "source": "SARB" }

# 2. Push to recipient's Visa card abroad
curl -X POST https://api.finveil.money/api/disbursements \
  -H "Authorization: Bearer $FINVEIL_API_KEY" \
  -H "Idempotency-Key: contractor-april-2026" \
  -H "Content-Type: application/json" \
  -d '{
    "rail":          "VISA_DIRECT_AWA",
    "amount":        150000.00,
    "currency":      "ZAR",
    "destination":   { "currency": "USD", "country": "PH",
                       "panToken": "tok_visa_ph_xyz" },
    "reference":     "INV-2026-0418",
    "bopCategory":   "311"
  }'

# => { "status": "SETTLED", "receiptId": "rcpt_dis_b41e...",
#      "settledAmount": 8055.00, "rateUsed": 0.0537 }

Splits across borders

FinVeil Connect for cross-border split payments.

Run an affiliate network, an international revenue share, or a multi-country royalty program? Take one payment in ZAR and split it across partners in 190+ countries — each leg FX-converted with SARB-sourced rates and receipted for BoP reporting.

Explore FinVeil Connect

Ship globally on SA-grade rails.