Payments inside your product
Add card, bank transfer and USSD payments to your app, website or platform with one API call, and hear about every payment through signed webhooks.
- One API call
- Signed webhooks
- Free test mode
One call in, a signed webhook out
Your server never handles card details. It starts the payment and hears when it is done.
- Step 1
Your server creates a checkout
One API call with the amount and your own reference.
- Step 2
Your customer pays
On the hosted checkout, by card, bank transfer or USSD.
- Step 3
FastPay sends a signed webhook
Retried if your server misses it, and logged so you can resend it.
- Step 4
You confirm the order
Check the signature and fulfil. The same reference is never charged twice.
Create a checkout
curl -X POST https://api.vervapay.com/api/v1/checkout/sessions \
-H "Authorization: Bearer sk_test_your_secret_key" \
-H "Content-Type: application/json" \
-d '{"amount_minor": 500000, "currency": "NGN", "email": "customer@example.com", "reference": "order-1001"}'Amounts are in kobo. The response includes the checkout link to send your customer to.
Built for the way you build
A hosted checkout in one call
Create a checkout from your server and send your customer to it. FastPay runs the payment page.
Keys you control
Separate test and live keys, with an IP allowlist for your servers.
No card data on your servers
Customers pay on the hosted checkout, so card details never touch your systems.
Signed webhooks
A signed notice the moment a payment succeeds, with retries and a log you can resend from.
Test mode from day one
Test keys and test payments that never move real money.
Rotate keys without downtime
Keep the old key working for 5 or 15 minutes while you deploy the new one.
Developer questions
Is there a test mode?
Yes. Test keys and test payments never move real money.
What if my server sends the same request twice?
Send the same reference again and you get the same checkout back, never a second charge.
Can I limit which servers use my key?
Yes. Add an IP allowlist, and requests from anywhere else are refused.
What happens to my old key when I make a new one?
You choose: it stops working immediately, or after 5 or 15 minutes so you can deploy the new one.
Start free in test mode
Build and test without moving real money. Go live once your business is verified.