Developer Docs
Integrate the ShadhinPay REST API — payments, refunds, invoices, webhooks, and more.
ShadhinPay exposes a single REST API that abstracts Bangladesh's mobile financial services (bKash, Nagad, and more) behind one consistent contract. You integrate once and get payments, refunds, invoices, idempotent requests, and signed webhooks — without wiring up each provider yourself.
REST is the integration surface for v1.0
The REST API is the supported integration surface today. Official client libraries (Node.js, PHP/Laravel, Python, and more) are on the roadmap — see Client libraries. Until then, every example here uses plain HTTP so it works in any language.
How integration works
- Authenticate every request with your business's API key and identifiers. See Authentication.
- Create a payment (or an invoice) and redirect your customer to the hosted checkout. See Payments.
- Receive a webhook when the payment completes, and verify its signature. See Webhooks.
- Reconcile using payment status and your own order reference.
Start here
Quickstart
Take a payment end to end in a few minutes.
Authentication
API keys, required headers, and live vs test.
API conventions
Base URLs, the response envelope, money, IDs, pagination.
Payments
Create payments, track status, and list them.
Webhooks
Event types, payloads, and signature verification.
Errors
The error envelope and every error code.
Conventions used in these docs
- JSON request and response bodies use camelCase field names.
- Monetary amounts are strings, never numbers (see Money).
- Timestamps are ISO-8601 in UTC.
- Base URLs and environments are covered in API conventions.