Hosted Checkout
Redirect customers to a BINKPAY-hosted payment page. Card data never touches your servers, which keeps your integration out of PCI DSS scope entirely.
How it works
1
You create the payment and receive a payUrl.
2
The customer completes payment on the BINKPAY page — card, wallet or bank.
3
They are redirected to your successUrl or cancelUrl.
4
Your webhook receives the final status. Act on that, not on the redirect.
Why not build your own form
Hosted Checkout inherits 3DS challenge flows, wallet redirects and localised payment-method ordering automatically — none of which you have to build or maintain.
Success and cancel URLs
Set successUrl and cancelUrl when creating the payment. The reference is appended to both as a query parameter.
| Parameter | Type | Required | Where the customer lands |
|---|---|---|---|
successUrl | string (url) | Optional | After a successful payment. Receives ?ref=<reference>. |
cancelUrl | string (url) | Optional | If they abandon or cancel checkout. |
curl https://api.binkpay.net/merchant/payments \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-d '{
"amountMinor": "12500",
"currency": "EGP",
"successUrl": "https://yourshop.com/thank-you",
"cancelUrl": "https://yourshop.com/cart"
}'Never trust the redirect alone
A customer can close the tab before the redirect fires, or open the success URL directly. Confirm the payment server-side from the webhook or GET /merchant/payments/:id before releasing goods.
Customisation
The page picks up your business name and logo from Settings → Branding. Everything below is set per payment.
| Field | Effect |
|---|---|
customerNamecustomerEmailcustomerPhone | Prefills the customer's details so they do not retype them |
requireCustomerEmailrequireCustomerPhone | Makes the field mandatory before payment can proceed |
collectBillingAddress | Collects a full billing address |
Was this page helpful?
