Instant Payouts

Payouts to South African bank accounts. In development.

The payout API and batch approvals are built. No payout rail is connected yet: the Paystack transfer client has not been tested with South African bank accounts, and the Stitch adapter (PayShap, RTC) is built but not connected. FinVeil does not offer PayShap or RTC settlement today. When enabled, payouts are funded from FinVeil’s Paystack balance. Push-to-card payouts are on our roadmap.

Illustrative — not customer data

Settlement SMS

Parties hear when their share settles.

Today this applies to split payments: each connected account with a phone number gets an SMS when its share settles. Money reaches the bank account on Paystack's settlement schedule. Illustrative example below — not customer data.

09:14FinVeil100%
FINVEILnow

FinVeil: ZAR 90.00 settled to your account from a ZAR 100.00 customer payment. Ref FV-COL-EXAMPLE.

Illustrative — not customer data

  • SMS on split settlement — built and sending
  • Sent to connected accounts that have a phone number
  • WhatsApp — built, not connected
  • Email — not switched on yet
instant-payouts-notify.bashbash
# Set phoneNumber when you create the connected account
POST /api/connect/accounts
{ "name": "...", "phoneNumber": "+27820000000", ... }

# When a split payment settles, that account receives:
FinVeil: ZAR {share} settled to your account from a
ZAR {gross} customer payment. Ref {reference}.

How it works

Three steps.

1

You authorise the payout

POST /v1/payouts with an amount, a recipient ID and an Idempotency-Key.

2

FinVeil routes it

The routing engine records its choice and fallback order. Live payouts are refused until a rail is connected and the recipient’s bank account is verified.

3

Receipt minted

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

Benefits

Why teams choose Instant Payouts.

Sandbox first

In test mode, payouts settle against simulated outcomes, so you can build the integration before a live rail is connected.

Per-rail per-transaction pricing

Per-rail fees are published on the pricing page. Pay only for what you use, never bundled or flat.

Idempotent by default

Pass an Idempotency-Key — retry safely without ever double-paying a recipient.

Two-person approval

On batches over R500,000, the submitter and the approver must be different people.

Who it's for

iGaming operatorsGig & marketplace platformsInsurersCFOs

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
instant-payouts.bashbash
# /v1 is a paid-plan API. Sandbox (free) keys receive 403 FV-1003.
curl -X POST https://api.finveil.money/v1/payouts \
  -H "X-API-Key: fvk_test_..." \
  -H "Idempotency-Key: payout-8421" \
  -H "Content-Type: application/json" \
  -d '{
    "amountCents": 500000,
    "currency":    "ZAR",
    "recipientId": "<RECIPIENT_ID>"
  }'

# => 202 { "id": "...", "kind": "PAYOUT", "state": "...",
#          "isTest": true, "sandboxNote": "...", ... }

Ready to try Instant Payouts?