Agent wallet · Bangladesh
Nagad Uddokta API
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.
Sandbox · Request
curl -X POST 'https://www.openbankinggateway.com/api/sandbox/nagad-uddokta/login/request-otp' \
-H 'Content-Type: application/json' \
--data '{
"account": "01900000001",
"pinCode": "2002"
}'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 SMS OTP or signal the *167# device-change step
Sandbox only
/login/request-otpSend the SMS OTP or signal the *167# device-change step
/api/sandbox/nagad-uddokta/login/request-otp
| Parameter | Type | Rules & handling |
|---|---|---|
accountRequired | string | JSON body Use a wallet you are authorized to access. Live identities must be linked to your site account through wallet login.
|
pinCodeRequired | string | JSON body Sensitive · never put in URLs
|
POST/login/verify-ussd-otpSubmit the *167# device-change USSD code
Sandbox only
/login/verify-ussd-otpSubmit the *167# device-change USSD code
/api/sandbox/nagad-uddokta/login/verify-ussd-otp
| Parameter | Type | Rules & handling |
|---|---|---|
accountRequired | string | JSON body Use a wallet you are authorized to access. Live identities must be linked to your site account through wallet login.
|
ussdOtpRequired | string | JSON body Sensitive · never put in URLs
|
POST/login/verify-otpVerify the OTP and issue a session token
Sandbox only
/login/verify-otpVerify the OTP and issue a session token
/api/sandbox/nagad-uddokta/login/verify-otp
| Parameter | Type | Rules & handling |
|---|---|---|
accountRequired | string | JSON body Use a wallet you are authorized to access. Live identities must be linked to your site account through wallet login.
|
otpRequired | string | JSON body Sensitive · never put in URLs
|
uidOptional | string | JSON body
|
POST/login/verify-otp-smsVerify the login from the raw SMS text
Sandbox only
/login/verify-otp-smsVerify the login from the raw SMS text
/api/sandbox/nagad-uddokta/login/verify-otp-sms
| Parameter | Type | Rules & handling |
|---|---|---|
accountRequired | string | JSON body Use a wallet you are authorized to access. Live identities must be linked to your site account through wallet login.
|
smsTextRequired | string | JSON body Sensitive · never put in URLs
|
Account & activity
GET/balanceWallet balance and commission
Sandbox only
/balanceWallet balance and commission
/api/sandbox/nagad-uddokta/balance
| Parameter | Type | Rules & handling |
|---|---|---|
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/transaction-historyPaged transaction history
Sandbox only
/transaction-historyPaged transaction history
/api/sandbox/nagad-uddokta/transaction-history
| Parameter | Type | Rules & handling |
|---|---|---|
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
|
pageOptional | integer | Query parameter
|
GET/transaction-detailSingle transaction detail
Sandbox only
/transaction-detailSingle transaction detail
/api/sandbox/nagad-uddokta/transaction-detail
| Parameter | Type | Rules & handling |
|---|---|---|
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
|
txnIdRequired | string | Query parameter
|
approvalDateRequired | string | Query parameter
|
Transfers
GET/validate-accountCheck that a destination is a registered wallet
Sandbox only
/validate-accountCheck that a destination is a registered wallet
/api/sandbox/nagad-uddokta/validate-account
| Parameter | Type | Rules & handling |
|---|---|---|
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
|
destMobileRequired | string | Query parameter
|
GET/fee-commissionPreview fee, commission and net amount for a cash-in
Sandbox only
/fee-commissionPreview fee, commission and net amount for a cash-in
/api/sandbox/nagad-uddokta/fee-commission
| Parameter | Type | Rules & handling |
|---|---|---|
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
|
destMobileRequired | string | Query parameter
|
amountRequired | decimal | Query parameter
|
txTypeOptional | string | Query parameter
|
POST/cash-inCash-In to a customer wallet
Sandbox only
/cash-inCash-In to a customer wallet
/api/sandbox/nagad-uddokta/cash-in
Sandbox simulation only. No real money moves; live transfers are not enabled for this integration.
| Parameter | Type | Rules & handling |
|---|---|---|
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
|
destAccountNoRequired | string | JSON body
|
amountOptional | decimal | JSON body
|
POST/b2b-to-childB2B transfer down to a child agent
Sandbox only
/b2b-to-childB2B transfer down to a child agent
/api/sandbox/nagad-uddokta/b2b-to-child
Sandbox simulation only. No real money moves; live transfers are not enabled for this integration.
| Parameter | Type | Rules & handling |
|---|---|---|
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
|
destAccountNoRequired | string | JSON body
|
amountRequired | decimal | JSON body
|
POST/b2b-to-parentB2B transfer up to the parent distributor
Sandbox only
/b2b-to-parentB2B transfer up to the parent distributor
/api/sandbox/nagad-uddokta/b2b-to-parent
Sandbox simulation only. No real money moves; live transfers are not enabled for this integration.
| Parameter | Type | Rules & handling |
|---|---|---|
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
|
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/nagad-uddokta/login/request-otp' \
-H 'Content-Type: application/json' \
--data '{
"account": "01900000001",
"pinCode": "2002"
}'Sandbox only
Live access not enabled
Contact us to enable access
Live calls for Nagad Uddokta are enabled per customer. Sandbox mode stays free and needs no sign-in.
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.
- Live available
bKash Agent
BangladeshAgent wallet
bKash agent/merchant wallet (Bangladesh) — OTP login, balance, recent transactions, search, paged history, PDF statements, and agent→customer Cash-In transfer.
14 endpoints · 1 credit / successful live call
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