Pure server-side flow
Initialize a transaction on your backend, get back an authorization URL, redirect the customer. No JavaScript SDK to load, no modal to manage - works on any page that can issue an HTTP redirect.
Checkout / Standard
ZevPay Standard is the redirect-style checkout. Build a payment URL with your API key + amount + email; send the customer there; they pay; we redirect back. No JS required on your side.

Initialize a transaction on your backend, get back an authorization URL, redirect the customer. No JavaScript SDK to load, no modal to manage - works on any page that can issue an HTTP redirect.
Perfect for static sites, WordPress installs without JS budget, sales pages built in tools that don't allow custom scripts. The integration is essentially: <form action="…">.
After payment, customer is sent back to your `callback_url` with the reference. Verify server-side with the standard verify endpoint or via webhook.
No premium for the hosted experience. Bank transfer 1.4%, card 1.5% + ₦100, PayID 0.5% - identical pricing whether you use Inline or Standard.
In code
The full happy path is short. You can swap real keys in and ship to staging today.
Full Standard reference# 1. initialize from your backend
curl https://api.zevpaycheckout.com/v1/transactions/initialize \
-H "Authorization: Bearer sk_live_…" \
-d '{
"email": "customer@acme.ng",
"amount": 250000,
"callback_url": "https://acme.ng/return"
}'
# 2. response → redirect customer to authorization_url
# 3. on return, verify the reference server-side
curl https://api.zevpaycheckout.com/v1/transactions/verify/ZVP_a1b2c3 \
-H "Authorization: Bearer sk_live_…"How it works
POST /v1/transactions/initialize from your backend with key + amount + email.
Send them to the authorization_url you got back. They pay on our hosted page.
Customer redirects to your callback_url. Verify the reference server-side.
Perfect for
Plug-in installed, no theme edits, no JS budget needed.
Drop our app in, the checkout becomes one click away.
Landing pages, ad funnels, any static HTML - works out of the box.
Rails, Django, Laravel - backend redirect, no client JS dependency.
Payment methods
Whether you call us via Standard or one of the other two - your customer sees the same checkout surface and the same payment options. One KYC posture across all.
Debit / Credit Card
Visa, Mastercard, Verve
Bank Transfer
Dynamic NUBAN per checkout
ZevPay ID
Pay from any ZevPay account
ZevPay QR
Scan with the ZevPay app
Common questions
Custom domain support is on the roadmap. Today the hosted page is served from checkout.zevpaycheckout.com with your branding.
GET /v1/transactions/verify/{reference} with your secret key. Always verify before fulfilling - never trust the callback URL alone.
Logo, button colors, and footer text are configurable in your dashboard. The page picks them up automatically.
The webhook still fires the moment we confirm payment. Backend reconciliation should be webhook-driven - callback is just for the customer's UX.
Standard integration
Add Standard to your existing stack with the same pk_ key you already use.