Developer experience

Ship payments,not complexity.

A clean API for naira collections and payouts, with the tools, documentation, and visibility your team needs to move quickly.

create-payment.ts

// Charge a customer in naira
const payment = await servapay.payments.create({
  amount: 250000,
  currency: "NGN",
  customer: "cus_84KQ2",
  method: "card"
});

// → payment.status === "succeeded"
201 Created184ms

Simple from the first request

Three steps from test key to live payment.

01

Create your keys

Open a sandbox account and generate restricted keys for each environment.

02

Make a request

Use the REST API or drop-in checkout to create your first naira payment.

03

Listen for events

Receive signed webhooks and keep your application state perfectly in sync.

Webhooks you can trust

Know exactly what happened, exactly when.

Signed, retryable events make it easy to update orders, release value, notify customers, and reconcile your naira ledger.

HMAC signature verification
Automatic retry with backoff
Event history and manual replay

Event stream

Live

payment.succeeded

evt_01K8Q2 · just now

200 OK

payment.failed

evt_02K8Q2 · just now

200 OK

transfer.received

evt_03K8Q2 · just now

200 OK

payout.completed

evt_04K8Q2 · just now

200 OK

A sandbox that tells the truth.

Test successful payments, issuer declines, delayed transfers, payout failures, webhook retries, and edge cases before going live.

Success
Decline
Pending
Reversed

Secure by default, flexible by design.

Keep credentials scoped and auditable with environment-specific API keys, granular permissions, and idempotent requests.

Restricted keysAudit logIP controlsIdempotency

Make your first request

The API is ready when you are.

Get sandbox credentials and move your first test naira payment in minutes.