Agent wallet · Bangladesh
bKash Agent API
bKash agent/merchant wallet (Bangladesh) — OTP login, balance, recent transactions, search, paged history, PDF statements, and agent→customer Cash-In transfer.
Sandbox · Request
curl -X POST 'https://www.openbankinggateway.com/api/sandbox/bkash-agent/login/request-otp' \
-H 'Content-Type: application/json' \
--data '{
"account": "01700000001",
"phoneOperator": "Grameenphone"
}'Illustrative sandbox example. No provider is contacted, no SMS is sent, no funds move, and no credits are charged.
API reference
Know what you can call.
Methods, paths, and parameter rules come from the same catalog that powers the console. Open an endpoint to see its request fields.
Wallet authentication
POST/login/request-otpSend the login OTP by SMS
Live available
/login/request-otpSend the login OTP by SMS
/api/sandbox/bkash-agent/login/request-otp
| Parameter | Type | Rules & handling |
|---|---|---|
accountRequired | string | JSON body Agent wallet number (11 digits). Use a wallet you are authorized to access. Live identities must be linked to your site account through wallet login.
|
phoneOperatorRequired | string | JSON body Mobile operator of the agent SIM.
|
POST/login/verify-otpVerify the OTP and issue a session token
Live available
/login/verify-otpVerify the OTP and issue a session token
/api/sandbox/bkash-agent/login/verify-otp
| Parameter | Type | Rules & handling |
|---|---|---|
accountRequired | string | JSON body Agent wallet number (11 digits). Use a wallet you are authorized to access. Live identities must be linked to your site account through wallet login.
|
pinRequired | string | JSON body Wallet PIN. Sensitive · never put in URLs
|
otpRequired | string | JSON body Digits of the SMS OTP. Sensitive · never put in URLs
|
otpHashRequired | string | JSON body The trailing hash string of the OTP SMS. Sensitive · never put in URLs
|
Account & activity
GET/balanceWallet balance, or a peek at a destination wallet
Live available
/balanceWallet balance, or a peek at a destination wallet
/api/sandbox/bkash-agent/balance
| Parameter | Type | Rules & handling |
|---|---|---|
accountRequired | string | Query parameter Agent wallet number (11 digits). Use a wallet you are authorized to access. Live identities must be linked to your site account through wallet login.
|
tokenRequired | string | Send in X-OBG-Token Session token from the login step. Prefer the X-OBG-Token header so it stays out of URLs. Sensitive · never put in URLs
|
msisdnOptional | string | Query parameter Wallet to peek at (with serviceName=CASH_IN).
|
serviceNameOptional | string | Query parameter TAP_FOR_BALANCE (own wallet) or CASH_IN (destination peek).
|
GET/recent-transactionsMost recent transactions with full details
Live available
/recent-transactionsMost recent transactions with full details
/api/sandbox/bkash-agent/recent-transactions
| Parameter | Type | Rules & handling |
|---|---|---|
accountRequired | string | Query parameter Agent wallet number (11 digits). Use a wallet you are authorized to access. Live identities must be linked to your site account through wallet login.
|
tokenRequired | string | Send in X-OBG-Token Session token from the login step. Prefer the X-OBG-Token header so it stays out of URLs. Sensitive · never put in URLs
|
pageSizeOptional | integer | Query parameter
|
GET/transaction-searchSearch transactions by id, amount or counterparty
Live available
/transaction-searchSearch transactions by id, amount or counterparty
/api/sandbox/bkash-agent/transaction-search
| Parameter | Type | Rules & handling |
|---|---|---|
accountRequired | string | Query parameter Agent wallet number (11 digits). Use a wallet you are authorized to access. Live identities must be linked to your site account through wallet login.
|
tokenRequired | string | Send in X-OBG-Token Session token from the login step. Prefer the X-OBG-Token header so it stays out of URLs. Sensitive · never put in URLs
|
searchKeyRequired | string | Query parameter Transaction id, amount or counterparty number.
|
GET/notification-historyPaged transaction feed (pageToken cursor)
Live available
/notification-historyPaged transaction feed (pageToken cursor)
/api/sandbox/bkash-agent/notification-history
| Parameter | Type | Rules & handling |
|---|---|---|
accountRequired | string | Query parameter Agent wallet number (11 digits). Use a wallet you are authorized to access. Live identities must be linked to your site account through wallet login.
|
tokenRequired | string | Send in X-OBG-Token Session token from the login step. Prefer the X-OBG-Token header so it stays out of URLs. Sensitive · never put in URLs
|
pageSizeOptional | integer | Query parameter
|
pageTokenOptional | string | Query parameter Cursor from the previous page (omit for the first page).
|
GET/summary/dailyDaily transaction summary by type
Live available
/summary/dailyDaily transaction summary by type
/api/sandbox/bkash-agent/summary/daily
| Parameter | Type | Rules & handling |
|---|---|---|
accountRequired | string | Query parameter Agent wallet number (11 digits). Use a wallet you are authorized to access. Live identities must be linked to your site account through wallet login.
|
tokenRequired | string | Send in X-OBG-Token Session token from the login step. Prefer the X-OBG-Token header so it stays out of URLs. Sensitive · never put in URLs
|
GET/summary/monthlyMonthly transaction summary
Live available
/summary/monthlyMonthly transaction summary
/api/sandbox/bkash-agent/summary/monthly
| Parameter | Type | Rules & handling |
|---|---|---|
accountRequired | string | Query parameter Agent wallet number (11 digits). Use a wallet you are authorized to access. Live identities must be linked to your site account through wallet login.
|
tokenRequired | string | Send in X-OBG-Token Session token from the login step. Prefer the X-OBG-Token header so it stays out of URLs. Sensitive · never put in URLs
|
Statements
GET/statement/metadataStatement types and selectable date ranges
Live available
/statement/metadataStatement types and selectable date ranges
/api/sandbox/bkash-agent/statement/metadata
| Parameter | Type | Rules & handling |
|---|---|---|
accountRequired | string | Query parameter Agent wallet number (11 digits). Use a wallet you are authorized to access. Live identities must be linked to your site account through wallet login.
|
tokenRequired | string | Send in X-OBG-Token Session token from the login step. Prefer the X-OBG-Token header so it stays out of URLs. Sensitive · never put in URLs
|
GET/statement/historyStatement requests and remaining quota
Live available
/statement/historyStatement requests and remaining quota
/api/sandbox/bkash-agent/statement/history
| Parameter | Type | Rules & handling |
|---|---|---|
accountRequired | string | Query parameter Agent wallet number (11 digits). Use a wallet you are authorized to access. Live identities must be linked to your site account through wallet login.
|
tokenRequired | string | Send in X-OBG-Token Session token from the login step. Prefer the X-OBG-Token header so it stays out of URLs. Sensitive · never put in URLs
|
pageSizeOptional | integer | Query parameter
|
pageTokenOptional | string | Query parameter Cursor from the previous page (omit for the first page).
|
POST/statement/downloadQueue a PDF statement (emailed to the agent)
Live available
/statement/downloadQueue a PDF statement (emailed to the agent)
/api/sandbox/bkash-agent/statement/download
| Parameter | Type | Rules & handling |
|---|---|---|
accountRequired | string | JSON body Agent wallet number (11 digits). Use a wallet you are authorized to access. Live identities must be linked to your site account through wallet login.
|
tokenRequired | string | Send in X-OBG-Token Session token from the login step. Prefer the X-OBG-Token header so it stays out of URLs. Sensitive · never put in URLs
|
fromDateRequired | date | JSON body
|
toDateRequired | date | JSON body
|
typeOptional | string | JSON body
|
fromDate ≤ toDate
Transfers
GET/business-walletBusiness wallet bound to the agent (B2B target)
Live available
/business-walletBusiness wallet bound to the agent (B2B target)
/api/sandbox/bkash-agent/business-wallet
| Parameter | Type | Rules & handling |
|---|---|---|
accountRequired | string | Query parameter Agent wallet number (11 digits). Use a wallet you are authorized to access. Live identities must be linked to your site account through wallet login.
|
tokenRequired | string | Send in X-OBG-Token Session token from the login step. Prefer the X-OBG-Token header so it stays out of URLs. Sensitive · never put in URLs
|
POST/cash-inCash-In from the agent wallet to a customer wallet
Live available
/cash-inCash-In from the agent wallet to a customer wallet
/api/sandbox/bkash-agent/cash-in
Moves real funds only on a supported live integration. Confirm the destination and amount; send a unique Idempotency-Key.
| Parameter | Type | Rules & handling |
|---|---|---|
accountRequired | string | JSON body Agent wallet number (11 digits). Use a wallet you are authorized to access. Live identities must be linked to your site account through wallet login.
|
tokenRequired | string | Send in X-OBG-Token Session token from the login step. Prefer the X-OBG-Token header so it stays out of URLs. Sensitive · never put in URLs
|
customerWalletRequired | string | JSON body Customer wallet to credit.
|
amountRequired | decimal | JSON body
|
pinRequired | string | JSON body Wallet PIN. Sensitive · never put in URLs
|
cashInTypeOptional | string | JSON body
|
POST/b2b-transferB2B transfer to the bound business wallet
Live available
/b2b-transferB2B transfer to the bound business wallet
/api/sandbox/bkash-agent/b2b-transfer
Moves real funds only on a supported live integration. Confirm the destination and amount; send a unique Idempotency-Key.
| Parameter | Type | Rules & handling |
|---|---|---|
accountRequired | string | JSON body Agent wallet number (11 digits). Use a wallet you are authorized to access. Live identities must be linked to your site account through wallet login.
|
tokenRequired | string | Send in X-OBG-Token Session token from the login step. Prefer the X-OBG-Token header so it stays out of URLs. Sensitive · never put in URLs
|
amountRequired | decimal | JSON body
|
pinRequired | string | JSON body Wallet PIN. Sensitive · never put in URLs
|
businessWalletOptional | string | JSON body Target business wallet. Omit it to use the wallet bound to the agent.
|
Endpoint identifiers and provider-specific descriptions are kept in English to match the API contract.
Try in sandbox
A request you can inspect.
The console starts in sandbox mode. Use only the public test values there. Switching to Live changes the destination and may use real accounts and funds.
Sandbox
Keep exploration, account access, and billing separate.
From first request to live connection.
Explore without signing in
Choose an API and use its sandbox with the documented test values. Fixtures do not move money or contact a bank.
Create your gateway account
Sign in with Google for 1,000 welcome credits and create an API key. This signs you into the website, not a wallet.
Connect when you are ready
For a supported live API, complete the wallet login separately. Successful live requests cost one credit; failed requests cost none.
Small start. Clear cost.
$10 buys 10,000 credits. A successful live request uses one credit; failures and sandbox calls use none. Buying credits does not unlock sandbox-only integrations.
Integration guide
Bring it into your code.
Sandbox examples use public fixture values. Live examples use placeholders: keep credentials on your server and never commit them.
Sandbox
curl -X POST 'https://www.openbankinggateway.com/api/sandbox/bkash-agent/login/request-otp' \
-H 'Content-Type: application/json' \
--data '{
"account": "01700000001",
"phoneOperator": "Grameenphone"
}'Live available
curl 'https://www.openbankinggateway.com/api/v1/bkash-agent/balance?account=<YOUR_WALLET_NUMBER>' \
-H "x-api-key: $OBG_API_KEY" \
-H "X-OBG-Token: $WALLET_TOKEN"Live bKash wallet sessions are linked to your site account after wallet login. Another site user cannot take over that wallet link. Save the returned wallet token securely and reauthenticate when the provider session expires.
Clear boundaries, before your first request.
A few things worth knowing.
Does the sandbox use real accounts?
No. Sandbox responses are fixtures and use public test credentials. They do not contact a financial provider, send an OTP, or move funds.
Can every API make live requests?
No. Only integrations marked as live have a real upstream. All others are sandbox-only and return LIVE_ACCESS_NOT_ENABLED in live mode. Contact us to discuss access.
When is a credit charged?
One credit is charged for a successful live call. Failed calls and sandbox calls are free. Check X-Credits-Charged rather than HTTP status alone. If X-OBG-Settlement: unknown is present, billing is unresolved: X-Credits-Charged: 0 does not prove that no debit occurred. Check usage and reconcile before retrying.
Does Google sign-in connect my wallet?
No. Google sign-in manages your site account, credits, and API keys. Wallet login is a separate, explicit flow for a supported integration and an account you are authorized to use.
Keep exploring.
- Sandbox only
Nagad Uddokta
BangladeshAgent wallet
Nagad Uddokta agent/distributor wallet (Bangladesh) — PIN + SMS OTP login with an optional *167# device-change step, balance, transaction history & detail, account/fee lookups, agent Cash-In, and B2B transfers up/down the distributor tree.
12 endpoints · Free sandbox
Explore API - Sandbox only
EasyPaisa (Phoenix)
PakistanMobile wallet
Telenor EasyPaisa Pakistan — OTP login, profile, balance, transactions, and transfer.
6 endpoints · Free sandbox
Explore API - Sandbox only
ACB ONE
VietnamRetail bank
Asia Commercial Bank (Vietnam) — Username/password login, profile, balance, and transactions.
5 endpoints · Free sandbox
Explore API