For apps that want their own payment screen. KetaPay gives you a one-time account number for the session; when the buyer transfers the exact amount to it, the escrow is funded. Cards aren’t available this way: card numbers must never touch your systems, so cards are only taken on KetaPay’s checkout.
1

Create the checkout session

2

Verify the buyer

Send the buyer a one-time code and exchange it for a customer token. The payer has to be verified before money is taken.
3

Get the account details

Calling again returns the same account while it’s valid.
4

Show it to the buyer

Show the bank, account number, account name and the exact amount (amount is the buyer’s total, in kobo), and when it expires. A transfer of any other amount isn’t matched.
5

Wait for the webhook

When the money arrives you get escrow.funded. Update your screen from your server, not from a timer. See Webhooks.

When it fails

In the sandbox there’s no real transfer to make: pay the session with the test helper instead.