Payments
Create, list, retrieve, and cancel payments. A payment is the core object behind both Hosted Checkout and Payment Links.
Authenticated by dashboard session, not an API key
This resource currently authorizes calls with your dashboard session bearer token, not an sk_ key — see Authentication. Every path below is shown relative to the base URL; the full path is https://binkpay.net/api/v1 + the path shown.
Create a payment
POST
/api/v1/merchant/payments| Parameter | Type | Required | Description |
|---|---|---|---|
| amountMinor | string | Required | Amount in minor units (e.g. "5000" = EGP 50.00). |
| currency | string | Required | Currency code your account supports. |
| description | string | Optional | Shown to the customer at checkout. Max 200 characters. |
| customerEmail | string | Optional | Prefills the checkout form. |
| customerPhone | string | Optional | Prefills the checkout form. |
| expiresInSec | integer | Optional | Seconds until the link expires. 60–7,776,000 (90 days). |
| noExpiry | boolean | Optional | Create a permanent link. Overrides expiresInSec. |
| allowMultiplePayments | boolean | Optional | Keep the link active after each payment. |
| successUrl / cancelUrl | string (url) | Optional | Redirect targets after checkout. |
| webhookUrl | string (url) | Optional | Per-payment webhook override. |
| customMetadata | object | Optional | Arbitrary key-value data stored with the payment. |
bash
curl -X POST https://binkpay.net/api/v1/merchant/payments \
-H "Authorization: Bearer <dashboard session token>"
-d '{ "amountMinor": "5000", "currency": "EGP" }'Response
json
{
"id": "pay_8f2a1c",
"reference": "BINK-8F2A1C",
"payUrl": "https://pay.binkpay.net/BINK-8F2A1C",
"status": "PENDING",
"amountMinor": "5000",
"currency": "EGP",
"createdAt": "2026-07-08T14:20:11.000Z"
}List payments
GET
/api/v1/merchant/payments| Parameter | Type | Required | Description |
|---|---|---|---|
| cursor | string | Optional | Pagination cursor from a previous response's nextCursor. |
| status | string | Optional | Filter by PENDING, PAID, EXPIRED, CANCELLED, REFUNDED, PARTIAL_REFUND, or REVERSED. |
| currency | string | Optional | Filter to a single currency. |
| from / to | string (ISO date) | Optional | Filter by createdAt range. |
Retrieve a payment
GET
/api/v1/merchant/payments/:idCancel a payment
POST
/api/v1/merchant/payments/:id/cancelOnly valid while the payment is PENDING.
Related resources
- Refunds — reverse a paid payment, in full or in part.
- Webhooks — get notified on
payment.completed,payment.expired, andpayment.cancelledinstead of polling. - Rate Limits & Idempotency — make retries of this endpoint safe with an
Idempotency-Key.
Was this page helpful?
