Look up payment statuses, methods, API endpoints, limits, and permissions for bKash and other payment options.
বাংলায়: এখানে সব ধরনের পেমেন্ট স্ট্যাটাস, বিকাশ সেটিংস, API লিমিট এবং রেফান্ড নিয়মের বিস্তারিত তালিকা আছে। পেমেন্ট লিংক 48 ঘণ্টা বৈধ থাকে। বিকাশ পেমেন্ট সফল হতে কয়েক সেকেন্ড থেকে কয়েক মিনিট লাগতে পারে।
Payment methods (order.payment_method)
| Value | Merchant selects | Notes |
|---|
| COD | Yes (default) | Cash on Delivery — customer pays the courier |
| Bkash | Yes | bKash payment method |
| Bank | Yes | Bank transfer (manual) |
| Online | No (imported) | Payment came from an external channel (e.g. Shopify) |
The database also allows Manual, which is not offered to users.
Payment statuses (displayed badge)
| Badge | Applies to | Meaning |
|---|
| bKash Paid | bKash orders | The bKash attempt completed, or nothing is due and an advance payment is recorded |
| bKash Pending | bKash orders | No completed payment yet (attempt in progress or none started) |
| bKash Failed | bKash orders | The latest bKash attempt failed |
| bKash Cancelled | bKash orders | The latest bKash attempt was cancelled |
| bKash Refunded | bKash orders | Shown in the order details window when the refunded amount covers the whole payment (within Tk 0.009) |
| bKash Partially Refunded | bKash orders | Shown in the order details window when part of the payment has been refunded |
| COD | COD orders | Cash on delivery: the customer pays the courier |
| Bank | Bank-transfer orders | Bank transfer (manual) |
| Online | Imported orders (e.g. Shopify) | The list shows the payment gateway name when there is one, otherwise Online |
bKash payment attempt statuses
| Status | Progression | Meaning |
|---|
| created | First | Attempt record created; checkout not started |
| redirected | → | Customer redirected to bKash checkout |
| pending | → | Payment attempt at bKash; awaiting completion |
| completed | Final ✓ | bKash confirmed payment received |
| failed | Final ✗ | bKash rejected payment |
| cancelled | Final ✗ | Customer closed checkout without paying |
Payment link statuses
| Status | Meaning | Can customer pay? |
|---|
| active | Link exists and has not been opened | Yes (fresh link) |
| opened | Customer opened the link at least once | Yes (can retry) |
| paid | Payment completed via this link | No (payment settled) |
| expired | 48 hours have passed since creation | No |
| revoked | The link was revoked in the Payments card | No |
Advance payment methods
Used when an advance payment is recorded separately from the order's main payment method. The UI offers:
| Value | Notes |
|---|
| Cash | Customer paid cash upfront |
| Bkash | Customer paid via bKash |
| Nagad | (Cosmetic label only — no handler) |
| Bank | Bank transfer |
| Card | (Cosmetic label only — no handler) |
Nagad and Card are record-keeping labels only; no payment is processed through them.
bKash integration settings
| Setting | Values | Default |
|---|
| Environment | sandbox, live | sandbox |
| Connection status | verified once a test succeeds | disconnected |
| Enabled toggle | on / off | off |
bKash appears at checkout only when both enabled and verified.
API endpoints (public/storefront)
| Endpoint | Method | Purpose |
|---|
/api/storefront/payments/bkash/options | GET | Probe if bKash is enabled |
/api/storefront/payments/bkash/create | POST | Start bKash checkout |
/api/storefront/payments/bkash/callback | GET | bKash returns customer to app |
/api/storefront/payments/bkash/status | GET | Poll payment status (rate limited to 30 requests per minute per visitor and store) |
/api/storefront/payments/bkash/webhook | POST | bKash server-push |
/api/pay-links/start | POST | Start checkout for a payment link |
/api/pay-links/callback | GET | bKash returns for payment link |
/api/pay-links/status | GET | Poll payment link status |
Limits and timeouts
| Limit | Value | Notes |
|---|
| Payment link validity | 48 hours | Default expiry after creation |
| bKash grant token lifetime | 3,600 seconds (1 hour) | Tokens cached and refreshed 5 min before expiry |
| Money tolerance | Tk 0.009 | Used for rounding in payment comparisons |
| Payment history | Latest 20 links and 50 attempts | Shown per order in the payment history |
Permissions required
| Action | Permission | Notes |
|---|
| View/edit bKash settings | page.settings.integrations | Needs write access |
| Create payment link | orders.edit | Needs write access |
| Revoke payment link | orders.edit | Needs write access |
| Refund payment | orders.edit | Needs write access |
| Recheck bKash status | orders.edit | Needs write access |
| View payment history | No separate permission check | Visible to anyone who can open the order |
Currencies
| Currency | Code | Notes |
|---|
| Bangladesh Taka | BDT | Only currency supported |
All amounts in Omnikyo are in BDT. bKash payments are also in BDT.
bKash merchant requirements
To enable bKash on your store, you need:
- A bKash merchant account with API credentials
- App key
- App secret
- Username
- Password
- Separate sandbox and live credentials to test before going live
All credentials are encrypted at rest in Omnikyo (AES-256-GCM). The app interface never shows the full values — only masked versions.
Payment flow timeline
| Step | Responsibility | Time |
|---|
| 1. Create payment link | Merchant (via Omnikyo) | Immediate |
| 2. Link sent to customer | Merchant (via email/SMS/etc) | Manual |
| 3. Customer opens link | Customer | Anytime within 48h |
| 4. bKash checkout | Customer (on bKash) | Minutes |
| 5. Payment confirmed | bKash | Seconds to minutes |
| 6. Order updated | Omnikyo webhook or polling | Seconds to minutes |
| 7. Refund (if issued) | Merchant (via Omnikyo) | Immediate |
Other ways people ask this
- bkash status table
- payment link কত সময় valid
- refund status কী কী আছে
- API endpoint list
- payment permissions নিয়ম
- বিকাশ মার্চেন্ট রিকোয়ারমেন্ট কী
- bKash grant token lifetime কতক্ষণ
- rate limit কত
- টাকা tolerance কত
- পেমেন্ট ফ্লো timeline
- sandbox এবং live কনসেন্ট কোথায়
- payment method enum
- রেফান্ড history রাখে কতদিন
Related pages
Checked against the product on 2026-10-02.