Payment Orchestration

Smart payment routing for South Africa and beyond.

The FinVeil routing engine scores eligible providers and rails, selects one, and records the decision and its fallback order for each routed transaction. Paystack is verified end to end in test mode. Yoco and PayFast run against sandbox credentials. Ozow and Stitch (PayShap, RTC) adapters are built but not yet connected. FinVeil has not processed live customer volume yet. Cross-border payouts are on our roadmap.

Illustrative — not customer data

How it works

Three steps.

1

You call one endpoint

POST /v1/payments with an amount, currency and Idempotency-Key. No provider-specific glue.

2

FinVeil scores the options

Each provider and rail is scored on speed, cost (from sourced rate cards), recent success rate and bank match. The choice and fallback order are stored.

3

Receipt minted

Each settled transaction gets a SHA-256 receipt, batched hourly into a Merkle root held by FinVeil.

Benefits

Why teams choose Payment Orchestration.

Failover, deliberately test-only

Failover along the recorded fallback order runs in test mode only. Automatic live failover is on the roadmap; it is off for real money to avoid double charges.

One contract across providers

One API and one webhook contract (payment, payout and refund events) regardless of provider.

Receipts on settled transactions

A SHA-256 receipt for each settled collection and payout, checkable through FinVeil’s verification page.

Double-entry ledger

Settled transactions post to a double-entry ledger that refuses unbalanced entries.

Who it's for

Fintech CTOsPlatform engineersE-commerce ops

Developer-friendly

Drop it into your stack.

REST API with an OpenAPI reference, and a test mode on the same API. Sign up for test API keys without a sales call. SDKs are available on request.

Read the docs
payment-orchestration.bashbash
# /v1 is a paid-plan API. Sandbox (free) keys receive 403 FV-1003.
curl -X POST https://api.finveil.money/v1/payments \
  -H "X-API-Key: fvk_test_..." \
  -H "Idempotency-Key: order-1042" \
  -H "Content-Type: application/json" \
  -d '{
    "amountCents": 50000,
    "currency":    "ZAR",
    "email":       "customer@example.co.za",
    "callbackUrl": "https://example.co.za/thanks"
  }'

# => 202 { "id": "...", "kind": "COLLECT", "state": "...",
#          "provider": "...", "rail": "...", "isTest": true, ... }

Ready to try Payment Orchestration?