Build with FinVeil.

A REST API for payment links, split payments, collections and proof receipts. Sign up and your account starts in test mode.

Quick start

Your first test payment link, in one call.

payment-link.shbash
curl -X POST https://api.finveil.money/api/payment-links \
  -H "X-API-Key: fvk_test_<SECRET>" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-1001" \
  -d '{
    "amountCents": 50000,
    "currency": "ZAR",
    "description": "Order 1001",
    "provider": "PAYSTACK",
    "expiresInHours": 24
  }'

Replace fvk_test_<SECRET> with a test key from your dashboard. The response includes a paymentUrl that opens a Paystack test checkout.

SDKs

SDKs available on request.

We have SDK source code for these languages, but none is published to a package registry yet. Until then, call the REST API directly.

Java

Not published

Python

Not published

Node.js

Not published

Go, Rust, PHP, .NET, Kotlin, Flutter

Not published

Test mode

Test against the production API.

Try the simulated API console

No signup needed. Your browser answers each request with sample data, and nothing reaches the FinVeil API.

Test card

4084 0840 8408 4081

Paystack Visa test card. CVV 408, any future expiry.

Test mode

Paystack test checkout

Test payments go through Paystack's test environment. The Yoco and PayFast integrations use sandbox credentials. The Ozow and Stitch (PayShap, RTC) adapters are built but not connected.

Safe retries

Idempotency keys

Send an Idempotency-Key header on a POST. Repeating the same key and body within 24 hours returns the first response again. The same key with a different body returns 409.

Channels

USSD menu simulator

Step through the FinVeil USSD menu in this in-browser handset. The callback endpoint POST /api/channels/ussd/callback (Africa's Talking format) is built, but no USSD short code is registered and the channel isn't connected. The code in the simulator is a placeholder, not a number you can dial.

Enter a phone number and press “Dial *123#” to start the session.
Idlelive

Session log

Every POST /api/channels/ussd/callback request and response.

// No requests yet. Dial *123# to begin.

Ready to build?

Get a test key and make your first call. Going live needs KYC and approval from FinVeil, so talk to us when you're ready.