- Collection. Accept card, bank transfer, pay with bank and USSD payments through hosted checkout or your own pay screen.
- Multi-party splitting. Divide a single collection between several bank accounts, such as a regulator, an insurer and your own operating account, without writing any ledger code.
- Settlement. Pay the money out to your primary settlement account and to every split destination on a predictable cycle, with a record you can reconcile line by line.
Choose an integration path
Every integration begins the same way: your server initialises a payment and receives a reference, an access code and a checkout URL. What happens next is your choice.
Both paths finish identically: a webhook arrives, you verify the payment from your server, and you fulfil the order once. If you have no website or app at all, payment links let you collect money from a shareable URL.
Where to go next
Quickstart
Initialise a payment, redirect to checkout and verify it. About ten minutes.
API keys and environments
Sandbox and live hosts, secret and public keys, and which credential each call needs.
Services and splits
Model your revenue streams, pool your bank accounts and divide collections by percentage.
Partners
Give an external party a read-only view of the settlements they are owed.
Settlements
How collected money reaches your primary account and your split destinations.
Go live
KYB, live keys, production webhooks and the final checks.
How a payment works
1
Initialise on your server
Send a POST to
/v1/payment/initialize with your secret key. Vestrapay creates a pending transaction and returns a reference, an access code and a checkout URL. Store the reference against your order straight away.2
The customer pays
Redirect the browser to the checkout URL, or drive the card, transfer, bank or USSD channel yourself with the access code. The customer sees only the channels enabled for your account.
3
Vestrapay tells you
A signed webhook is posted to your server and the customer’s browser is returned to your callback URL. Treat both as a prompt to check, not as proof of payment.
4
Verify, then fulfil
Call
/v1/payment/verify/{reference} with your secret key. Fulfil the order only when the payment status is success and the amount matches what you expected, and only once.5
Split and settle
If the payment named any services in its distribution, the allocation is applied to the configured sub-accounts. Everything else goes to your primary settlement account. Settlement then pays each destination on the cycle for your account.
Integration checklist
Work through this list in order. Each item links to the page that covers it.- Create a merchant account on the sandbox dashboard and copy a test secret key from Settings → Developers. See API keys.
- Initialise payments from your backend and store the reference on the order. See Quickstart.
- Redirect to the checkout URL, or build a custom pay screen. See Accept payments.
- Register an HTTPS webhook endpoint and verify its signature. See Webhooks.
- Verify every payment from your server before fulfilling, and make fulfilment idempotent. See Verify a payment.
- If you split collections, create services, sub-accounts and splits. See Services and splits.
- Test card, transfer, failure and abandonment paths. See Test payments.
- Complete KYB, switch to live keys and repeat the key tests. See Go live.