Redirect
- POST
/v1/payment/initializewith your secret key. - Redirect the browser to
data.checkoutUrl. - The customer picks card or transfer (and any other enabled channel).
- We send them to
callbackUrlwhen checkout is done. - Confirm with a webhook and verify.
Custom checkout
- Initialize. Keep
data.accessCodeanddata.reference. - For card, start a hosted card session, mount the processor fields, then charge. See Pay with card.
- For transfer, request a virtual account and show bank name, account number, and expiry. See Pay with transfer.
- Subscribe to
GET /v1/payment/checkout/eventsif the pay page should update live.
What initialize accepts
Initialize returns
data.reference (VPY_TXN_…). Store it on the order.
Callback query string
When checkout finishes, the browser hits yourcallbackUrl:
Confirm with verify.
Metadata
metadata is returned on verify.
Split (distribution)
amount. Verify includes split when a distribution was applied.
Fees
Channels
Initialize echoes channels for the merchant:card, bank_transfer, bank_payment, and ussd. Hosted checkout shows the ones enabled for you.