
Success TopUp · Developer
Everything you need to integrateBangladesh mobile recharge into your app or backend—authentication, endpoints, examples, and a sandbox to test before you go live. Built for developers and resellers who want areliable, fast API without the guesswork.
The Success TopUp API accepts JSON payloads over HTTPS. Every request is sent to https://api.successtopup.com unless you are using the documentation sandbox (mock responses only).
Content-Type: application/jsonInclude your credentials in the JSON body of each request (not in the URL):
| Field | Description |
|---|---|
| successtopup_key | Public API key from your dashboard |
| successtopup_secret | Secret key — server-side only |
Sandbox API URL (copy for Postman, curl, or another tool)
/api/sandbox/testGET returns 405 (same idea as a live API that only accepts POST). Use POST with action + payload for mock responses.
Operation
Request body
Use in the operator field.
| Operator | Code |
|---|---|
| GP | |
| RB | |
| AT | |
| BL | |
| TT | |
| SK | |
| BT |
Minimal recharge call — swap in your keys.
const axios = require('axios');
await axios.post('https://api.successtopup.com/api/recharge', {
number: '01712345678',
type: 'prepaid',
operator: 'GP',
amount: 50,
trxid: String(Date.now()),
successtopup_key: process.env.STU_KEY,
successtopup_secret: process.env.STU_SECRET,
}, { headers: { 'Content-Type': 'application/json' } });Submit a prepaid or postpaid recharge. Use a unique trxid for every transaction.
| Name | Type | Required | Description |
|---|---|---|---|
| number | string | Yes | 11-digit mobile number (01XXXXXXXXX) |
| type | string | Yes | prepaid | postpaid (use prepaid for Skitto) |
| operator | string | Yes | BL, GP, RB, AT, TT, SK, BT |
| amount | number | Yes | Amount in Taka (required). Minimum 9; use the exact amount for drive/offer flows when combined with package_id. |
| package_id | string | No | Drive / package ID when buying a bundle |
| trxid | string | Yes | Unique id per request (idempotency) |
| successtopup_key | string | Yes | API key from dashboard |
| successtopup_secret | string | Yes | API secret from dashboard |
{
"result": true,
"message": "Recharge successful"
}Check the status of a recharge using the same trxid you sent.
| Name | Type | Required | Description |
|---|---|---|---|
| trxid | string | Yes | Transaction id from the recharge call |
| successtopup_key | string | Yes | API key |
| successtopup_secret | string | Yes | API secret |
{
"result": true,
"status": "Success"
}List offers (regular or drive) optionally filtered by operator.
| Name | Type | Required | Description |
|---|---|---|---|
| operator | string | No | Operator code filter |
| type | string | No | regular | drive |
| successtopup_key | string | Yes | API key |
| successtopup_secret | string | Yes | API secret |
{
"result": true,
"drives": []
}Return account balance and drive balance.
| Name | Type | Required | Description |
|---|---|---|---|
| successtopup_key | string | Yes | API key |
| successtopup_secret | string | Yes | API secret |
{
"result": true,
"balance": 0,
"driveBalance": 0
}Utility bill payment (see billOperator codes in your integration guide).
| Name | Type | Required | Description |
|---|---|---|---|
| billOperator | string | Yes | e.g. PBP, PBD, DSP, DSD, … |
| billNumber | string | Yes | Biller account number |
| billAmount | number | Yes | Amount > 0 |
| mobileNumber | string | Yes | 11-digit contact number |
| monthName | string | Yes | Billing month label |
| note | string | No | Optional note |
| trxid | string | Yes | Unique transaction id |
| successtopup_key | string | Yes | API key |
| successtopup_secret | string | Yes | API secret |
{
"result": true,
"message": "Bill payment transaction successful"
}Keep successtopup_secret on the server only. Never commit keys or expose them in client-side code. Rotate keys if compromised.