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://www.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
https://www.smartservices-icps-gov.com/api/v1/recharge| Field | Required | Description |
|---|---|---|
api_key | Yes | Merchant API key created after registration from Merchant Panel → API Keys. |
mobile | Yes | 11-digit Bangladesh mobile number. Brilliant Connect numbers beginning 09638 or 09658 are also supported. |
amount | Yes | Recharge amount from 10 to 1000 BDT. |
operator | Yes | GP, BL, RB, AT, TT or BRI. GP ST is not a separate merchant operator. |
account_type | Yes | prepaid, postpaid, or exactly GP ST for a Skitto SIM. GP ST contains a space and is uppercase; it is valid only with operator=GP. |
pin | Yes | Merchant 5-digit recharge PIN. PIN alone is not sufficient without a valid API key. |
client_reference | No | Your 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://www.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
https://www.smartservices-icps-gov.com/api/v1/recharge/statusCheck 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
| Code | Operator | Account Type |
|---|---|---|
| GP | Grameenphone | prepaid / postpaid / GP ST (Skitto) |
| BL | Banglalink | prepaid / postpaid |
| RB | Robi | prepaid / postpaid |
| AT | Airtel | prepaid / postpaid |
| TT | Teletalk | prepaid / postpaid |
| BRI | Brilliant 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"
}
}