Skip to main content
POST
Initialize a checkout
POST /v1/checkout/initialize Callable with either a secret key (server-side) or a public key + X-Business-ID header (client-side widgets) — see Authentication.
number
required
Amount in Naira, minimum ₦5
string
Payer’s email address
string
Payment title shown on the checkout page. Defaults to “Payment”
string
Payment description shown on the checkout page
string
Your own unique reference for this payment. Auto-generated (PAY-XXXXXXXXXX) if omitted
string
default:"Fixed"
Fixed, UnderPayment, or OverPayment — whether the customer must pay exactly this amount
number
default:"900"
Seconds until the dynamic account expires, between 60 and 86400 (24h)
Response
Redirect the customer to checkout_url, or embed it directly — that’s exactly what the JS widget and mobile SDKs do under the hood (load it in an iframe/WebView instead of a full redirect).

Authorizations

Authorization
string
header
required

sk_live_... or sk_test_... — can call every endpoint. Server-side only.

Body

application/json
amount
number
required
Required range: x >= 5
Example:

1500

email
string
Example:

"customer@example.com"

title
string
Example:

"Order #9928"

description
string
Example:

"Payment for running shoes"

reference
string
amount_control
enum<string>
default:Fixed
Available options:
Fixed,
UnderPayment,
OverPayment
valid_for
integer
default:900
Required range: 60 <= x <= 86400

Response

201 - application/json

Checkout initialized

status
boolean
message
string
data
object