Payment Orchestration

Smart payment routing for South Africa and beyond.

One API call hits the FinVeil routing engine, which selects the optimal rail across six SA providers — Stitch, Paystack, Yoco, PayFast, Ozow, and Rapyd — settles the transaction through the licensed operator, and mints a tamper-evident receipt for your audit trail. Cards, instant EFT, push-to-card, and cross-border live behind a single contract — with automatic failover when a provider is down.

How it works

Three steps.

1

You call one endpoint

POST /api/payments with amount, method, and recipient. No provider-specific glue.

2

FinVeil picks the rail

Card → Paystack. Instant EFT → Ozow. Push-to-card → Visa Direct. Optimised on price, success rate, and uptime.

3

Receipt minted

Every settled transaction gets a SHA-256 receipt anchored to a Merkle root for audit.

Benefits

Why teams choose Payment Orchestration.

Automatic failover

When the primary rail goes down, FinVeil retries on the next-best provider transparently. Zero downtime, zero re-plumbing.

One contract, every rail

Card, instant EFT, push-to-card, and cross-border behind one API and one webhook contract.

Receipts on every transaction

Tamper-evident proof for every collection and payout — ready for compliance teams and external audit.

Reconcile once

Unified ledger across providers — one dashboard, one webhook shape, one CSV export.

Who it's for

Fintech CTOsPlatform engineersE-commerce ops

Developer-friendly

Drop it into your stack.

REST API, typed SDKs in 9 languages, and a sandbox environment you can explore in 30 seconds. No calls with sales to get keys.

Read the docs
payment-orchestration.bashbash
curl -X POST https://api.finveil.money/api/payments \
  -H "Authorization: Bearer $FINVEIL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount":        500.00,
    "currency":      "ZAR",
    "method":        "AUTO",          # CARD | INSTANT_EFT | PUSH_TO_CARD | AUTO
    "email":         "customer@acme.co.za",
    "callbackUrl":   "https://acme.co.za/thanks"
  }'

# => {
#      "status":      "PENDING",
#      "rail":        "OZOW",          # FinVeil chose the rail
#      "fallbackUsed": false,
#      "receiptId":   "rcpt_pay_a8e2..."
#    }

Ready to try Payment Orchestration?