Public Documentation

Mobile Recharge API

Integration reference for NICTBD merchant recharge requests.

Overview

The API accepts merchant recharge requests over HTTPS. Operators are configured once. Grameenphone uses only GP; a Skitto SIM is sent as operator=GP with account_type=GP ST. Standard account types are prepaid and postpaid. BRI (Brilliant Connect) uses manual Admin processing and does not call an external top-up API or device command.

Base API URL: https://mail.smartservices-icps-gov.com/api/v1

Authentication

After merchant registration, sign in to the Merchant Panel and open API Keys to create an API key. A recharge request cannot be submitted using the 5-digit PIN alone: a valid merchant API key and the merchant's 5-digit recharge PIN are both required.

{
  "api_key": "nict_live_YOUR_API_KEY",
  "pin": "12345"
}

The api_key field is mandatory in every merchant API request.

Create Recharge

POSThttps://mail.smartservices-icps-gov.com/api/v1/recharge
FieldRequiredDescription
api_keyYesMerchant API key created after registration from Merchant Panel → API Keys.
mobileYes11-digit Bangladesh mobile number. Brilliant Connect numbers beginning 09638 or 09658 are also supported.
amountYesRecharge amount from 10 to 1000 BDT.
operatorYesGP, BL, RB, AT, TT or BRI. GP ST is not a separate merchant operator.
account_typeYesprepaid, postpaid, or exactly GP ST for a Skitto SIM. GP ST contains a space and is uppercase; it is valid only with operator=GP.
pinYesMerchant 5-digit recharge PIN. PIN alone is not sufficient without a valid API key.
client_referenceNoYour unique order/reference value. Reusing the same reference returns the existing transaction.

Example JSON

{
  "api_key": "nict_live_YOUR_API_KEY",
  "mobile": "017XXXXXXXX",
  "amount": 100,
  "operator": "GP",
  "account_type": "prepaid",
  "pin": "12345",
  "client_reference": "MY-ORDER-1001"
}

cURL

curl -X POST "https://mail.smartservices-icps-gov.com/api/v1/recharge" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"api_key":"nict_live_YOUR_API_KEY","mobile":"017XXXXXXXX","amount":100,"operator":"GP","account_type":"prepaid","pin":"12345","client_reference":"MY-ORDER-1001"}'

Skitto request

Do not send GP ST as a separate operator. Use GP as the operator and set account type exactly to GP ST.

{
  "api_key": "nict_live_YOUR_API_KEY",
  "mobile": "017XXXXXXXX",
  "amount": 100,
  "operator": "GP",
  "account_type": "GP ST",
  "pin": "12345"
}

Check Recharge Status

POSThttps://mail.smartservices-icps-gov.com/api/v1/recharge/status

Check by platform order number or your own client reference.

{
  "api_key": "nict_live_YOUR_API_KEY",
  "order_number": "847392615"
}

or

{
  "api_key": "nict_live_YOUR_API_KEY",
  "client_reference": "MY-ORDER-1001"
}

Operators & Account Type

CodeOperatorAccount Type
GPGrameenphoneprepaid / postpaid / GP ST (Skitto)
BLBanglalinkprepaid / postpaid
RBRobiprepaid / postpaid
ATAirtelprepaid / postpaid
TTTeletalkprepaid / postpaid
BRIBrilliant Connect (09638 / 09658)prepaid / postpaid · manual admin processing

Response Structure

Successful API responses contain a success boolean and transaction data including order number, operator, account type, amount, status, message and timestamps. Validation/authentication failures return a non-success response with an explanatory message.

{
  "success": true,
  "data": {
    "order_number": "847392615",
    "client_reference": "MY-ORDER-1001",
    "mobile": "017XXXXXXXX",
    "operator": "GP",
    "account_type": "prepaid",
    "amount": 100,
    "status": "processing"
  }
}