Success TopUp
Get app

Introduction

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).

  • Protocol: HTTPS
  • Encoding: UTF-8 JSON
  • Header: Content-Type: application/json

Authentication

Include your credentials in the JSON body of each request (not in the URL):

FieldDescription
successtopup_keyPublic API key from your dashboard
successtopup_secretSecret key — server-side only

Sandbox

Sandbox API URL (copy for Postman, curl, or another tool)

/api/sandbox/test

GET returns 405 (same idea as a live API that only accepts POST). Use POST with action + payload for mock responses.

Operation

Request body

JSON editorapplication/json

Operator codes

Use in the operator field.

OperatorCode
GrameenphoneGP
RobiRB
AirtelAT
BanglalinkBL
TeletalkTT
SkittoSK
BrilliantBT

Code examples

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' } });

Recharge

POST

Submit a prepaid or postpaid recharge. Use a unique trxid for every transaction.

https://api.successtopup.com/api/recharge

Body parameters

NameTypeRequiredDescription
numberstringYes11-digit mobile number (01XXXXXXXXX)
typestringYesprepaid | postpaid (use prepaid for Skitto)
operatorstringYesBL, GP, RB, AT, TT, SK, BT
amountnumberYesAmount in Taka (required). Minimum 9; use the exact amount for drive/offer flows when combined with package_id.
package_idstringNoDrive / package ID when buying a bundle
trxidstringYesUnique id per request (idempotency)
successtopup_keystringYesAPI key from dashboard
successtopup_secretstringYesAPI secret from dashboard

Example response

{
  "result": true,
  "message": "Recharge successful"
}

Transaction status

POST

Check the status of a recharge using the same trxid you sent.

https://api.successtopup.com/api/status

Body parameters

NameTypeRequiredDescription
trxidstringYesTransaction id from the recharge call
successtopup_keystringYesAPI key
successtopup_secretstringYesAPI secret

Example response

{
  "result": true,
  "status": "Success"
}

Drive list

POST

List offers (regular or drive) optionally filtered by operator.

https://api.successtopup.com/api/drives

Body parameters

NameTypeRequiredDescription
operatorstringNoOperator code filter
typestringNoregular | drive
successtopup_keystringYesAPI key
successtopup_secretstringYesAPI secret

Example response

{
  "result": true,
  "drives": []
}

Balance

POST

Return account balance and drive balance.

https://api.successtopup.com/api/balance

Body parameters

NameTypeRequiredDescription
successtopup_keystringYesAPI key
successtopup_secretstringYesAPI secret

Example response

{
  "result": true,
  "balance": 0,
  "driveBalance": 0
}

Bill payment

POST

Utility bill payment (see billOperator codes in your integration guide).

https://api.successtopup.com/api/bill-pay

Body parameters

NameTypeRequiredDescription
billOperatorstringYese.g. PBP, PBD, DSP, DSD, …
billNumberstringYesBiller account number
billAmountnumberYesAmount > 0
mobileNumberstringYes11-digit contact number
monthNamestringYesBilling month label
notestringNoOptional note
trxidstringYesUnique transaction id
successtopup_keystringYesAPI key
successtopup_secretstringYesAPI secret

Example response

{
  "result": true,
  "message": "Bill payment transaction successful"
}

Security

Keep successtopup_secret on the server only. Never commit keys or expose them in client-side code. Rotate keys if compromised.

Chat with us on WhatsApp