Skip to content
For developers & platforms

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
A developer writing code at his desk
How a payment flows

One call in, a signed webhook out

Your server never handles card details. It starts the payment and hears when it is done.

  1. Step 1

    Your server creates a checkout

    One API call with the amount and your own reference.

  2. Step 2

    Your customer pays

    On the hosted checkout, by card, bank transfer or USSD.

  3. Step 3

    FastPay sends a signed webhook

    Retried if your server misses it, and logged so you can resend it.

  4. Step 4

    You confirm the order

    Check the signature and fulfil. The same reference is never charged twice.

Create a checkout

Shell
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

API

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.