Payment Gateway

One API in front of South African payment providers.

One collections API with provider adapters and signature-verified Paystack webhooks. Paystack card checkout is verified end to end in test mode; Yoco and PayFast run against sandbox credentials; the Ozow adapter is built but not yet connected. FinVeil has not processed live customer volume yet. Collections without a split settle into FinVeil’s Paystack merchant balance.

Illustrative — not customer data

Integration architecture

One API. Multiple payment providers.

Your business systems trigger payments. FinVeil's routing engine selects a provider and rail for each one and records why.

Business triggers

Payroll runs
Salary advances
Repayments
Invoices
Subscriptions

FinVeil Gateway

Orchestration layer

Scored routing
Webhook normalisation
Retry + idempotency
Audit receipts
Fallback order recorded

Licensed providers

Paystack
yocoYoco
payfastPayFast
ozowOzow

Payment providers

The providers behind FinVeil

Split payments settle at source to each party's Paystack subaccount. Other collections settle into FinVeil's Paystack merchant balance. Ozow and Stitch adapters are built but not yet connected.

Integration status

Paystack: Verified in test mode

Card collections, payment links and split payments verified end to end in Paystack test mode. Live processing is not switched on yet.

Integration status

Yoco: Sandbox

Card collection integration built. It runs against Yoco test credentials.

yoco

Integration status

PayFast: Sandbox

Integration built. It runs against the PayFast sandbox.

payfast
Card data is handled on PCI DSS-certified providers’ hosted checkouts. FinVeil does not store card numbers.

How it works

Three steps.

1

Single API call

POST /api/payments/collect with amount, email, provider.

2

Hosted checkout

The customer pays on the provider’s hosted checkout page. FinVeil does not store card numbers.

3

Verified webhooks

Paystack webhooks are verified with HMAC-SHA512 before a payment is marked as settled.

Benefits

Why teams choose Payment Gateway.

No automatic live failover

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

Explicit provider choice

You name the provider on each /api/payments/collect call. Scored routing across providers is part of the /v1 API.

Unified history

Transactions from every connected provider appear in one payment history.

ZAR today

Collections are in ZAR. Other currencies are not enabled yet.

Who it's for

DevelopersFintech CTOsE-commerce platforms

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-gateway.bashbash
curl -X POST https://api.finveil.money/api/payments/collect \
  -H "Authorization: Bearer $FINVEIL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "provider":      "PAYSTACK",
    "paymentMethod": "CARD",
    "amount":        500.00,
    "email":         "customer@acme.co.za",
    "callbackUrl":   "https://acme.co.za/thanks"
  }'

# => authorization_url redirects the customer to the hosted checkout

Ready to try Payment Gateway?