OmniPay documentation
Choose redirect or H2H checkout, accept payments, and create withdrawals with OmniPay.
OmniPay provides one API for creating deposits and withdrawals with bKash and Nagad P2C and P2P payment methods.
Choose your checkout
Redirect checkout and H2H checkout are two supported ways to accept a deposit.
Both use POST /api/v1/deposits, the same status endpoint, and the same webhook
events. Choose based on the checkout experience and operational complexity you
want.
Redirect checkout
The fastest integration. Create a deposit with bearer authentication and send the payer to OmniPay's hosted checkout.
H2H checkout
An API-controlled integration. Sign requests and handle the typed next_action returned for each deposit.
If you do not need to control the payment steps inside your product, start with redirect checkout. H2H is optional and can be added later without replacing the deposit or webhook model.
| Redirect checkout | H2H checkout | |
|---|---|---|
| Best for | Fastest launch and hosted payment UX | More control over the checkout UX |
| Authentication | Bearer API key | Bearer API key + HMAC signature |
| What your frontend handles | Redirect to the returned redirect_url | Branch on the returned next_action.type |
| Payment confirmation | Status API or verified webhook | Status API or verified webhook |
| Start here | Redirect overview | H2H overview |
Withdrawals
Create mobile-wallet or bank payouts, then track the asynchronous result through the status endpoint or signed webhooks.
Production base URL
https://omnipay.page/apiAll request and response bodies use JSON. Monetary values are decimal strings in BDT; do not send JavaScript floating-point numbers.