Connect your application to offer mobile recharge, data packages, MFS transfers, drive packages, and bill payments through a single REST API.
Add your token to every request:
Authorization: Bearer {your_token}
Generate your token from your dashboard → API Token page.
Balance · Packages · Status
60 requests / minute
Transactions (/request)
30 requests / minute
All responses return JSON.
Success: "status": true
Error: "status": false + "message"
/api/gateway/v1/balance
Returns your current wallet balances. No request body needed.
curl -X GET "http://flexiloadbd.net/api/gateway/v1/balance" \
-H "Authorization: Bearer {your_token}" \
-H "Accept: application/json"$response = Http::withToken('your_token')
->get('http://flexiloadbd.net/api/gateway/v1/balance');
$data = $response->json();const res = await fetch('http://flexiloadbd.net/api/gateway/v1/balance', {
headers: {
'Authorization': `Bearer ${token}`,
'Accept': 'application/json'
}
});
const data = await res.json();{
"status": true,
"data": {
"flexiload_balance": 500.00,
"drive_balance": 0.00,
"bank_balance": 0.00
}
}
/api/gateway/v1/packages
Returns available data or drive packages for an operator. Use the returned id as package_id when calling /request.
| Parameter | Type | Required | Description |
|---|---|---|---|
operator_code | string | required | Operator code — e.g. GP, BL, RB |
type | string | optional | Filter: data · combo · minutes · rate · drive |
curl -X POST "http://flexiloadbd.net/api/gateway/v1/packages" \
-H "Authorization: Bearer {your_token}" \
-H "Content-Type: application/json" \
-d '{"operator_code": "GP", "type": "data"}'$response = Http::withToken('your_token')
->post('http://flexiloadbd.net/api/gateway/v1/packages', [
'operator_code' => 'GP',
'type' => 'data',
]);const res = await fetch('http://flexiloadbd.net/api/gateway/v1/packages', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({ operator_code: 'GP', type: 'data' })
});{
"status": true,
"data": [
{ "id": 1, "name": "1 GB – 30 Days", "price": 149, "commission": 5.00, "type": "data", "tag": "HOT" },
{ "id": 2, "name": "3 GB – 7 Days", "price": 65, "commission": 2.00, "type": "data", "tag": null }
]
}
commission — আপনার role অনুযায়ী প্রতিটি package-এ যে টাকা ফেরত পাবেন।
/api/gateway/v1/request
Single endpoint for all transaction types. Use the type field to specify the operation.
ref_id optional — Your unique reference ID for tracking. Use it later in /status.
sub_type optional — Transaction sub-type for specific flow control. See each type's parameter table for supported values.
| Parameter | Type | Description | |
|---|---|---|---|
type | string | required | Value: recharge |
operator_code | string | required | GP · BL · RB · AT · TT |
phone | string | required | Recipient mobile number (11 digits) |
amount | numeric | required | Recharge amount in BDT |
sub_type | string | optional | Prepaid · Postpaid · Personal · Agent |
ref_id | string | optional | Your own reference ID |
curl -X POST "http://flexiloadbd.net/api/gateway/v1/request" \
-H "Authorization: Bearer {your_token}" \
-H "Content-Type: application/json" \
-d '{
"type": "recharge",
"operator_code": "GP",
"phone": "01711111111",
"amount": 100,
"sub_type": "Postpaid",
"ref_id": "ORD-2026-001"
}'$response = Http::withToken('your_token')
->post('http://flexiloadbd.net/api/gateway/v1/request', [
'type' => 'recharge',
'operator_code' => 'GP',
'phone' => '01711111111',
'amount' => 100,
'sub_type' => 'Postpaid', // optional: Prepaid | Postpaid | Personal | Agent
'ref_id' => 'ORD-2026-001',
]);const res = await fetch('http://flexiloadbd.net/api/gateway/v1/request', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
type: 'recharge', operator_code: 'GP',
phone: '01711111111', amount: 100,
ref_id: 'ORD-2026-001'
})
});| Parameter | Type | Description | |
|---|---|---|---|
type | string | required | Value: data |
operator_code | string | required | GP · BL · RB |
phone | string | required | Recipient mobile number |
package_id | integer | required | Package id from /packages |
ref_id | string | optional | Your own reference ID |
curl -X POST "http://flexiloadbd.net/api/gateway/v1/request" \
-H "Authorization: Bearer {your_token}" \
-H "Content-Type: application/json" \
-d '{
"type": "data",
"operator_code": "GP",
"phone": "01711111111",
"package_id": 3
}'Http::withToken('your_token')
->post('http://flexiloadbd.net/api/gateway/v1/request', [
'type' => 'data',
'operator_code' => 'GP',
'phone' => '01711111111',
'package_id' => 3,
]);| Parameter | Type | Description | |
|---|---|---|---|
type | string | required | Value: drive |
operator_code | string | required | BL · GP · RB |
phone | string | required | Recipient mobile number |
package_id | integer | required | Package id from /packages?type=drive |
ref_id | string | optional | Your own reference ID |
| Parameter | Type | Description | |
|---|---|---|---|
type | string | required | Value: mfs |
operator_code | string | required | BK (Bkash) · NG (Nagad) · RK (Rocket) |
phone | string | required | Recipient wallet number |
amount | numeric | required | Transfer amount in BDT |
sub_type | string | optional | Agent — agent/merchant transfer |
ref_id | string | optional | Your own reference ID |
curl -X POST "http://flexiloadbd.net/api/gateway/v1/request" \
-H "Authorization: Bearer {your_token}" \
-H "Content-Type: application/json" \
-d '{
"type": "mfs",
"operator_code": "BK",
"phone": "01811111111",
"amount": 500
}'Http::withToken('your_token')
->post('http://flexiloadbd.net/api/gateway/v1/request', [
'type' => 'mfs',
'operator_code' => 'BK',
'phone' => '01811111111',
'amount' => 500,
]);| Parameter | Type | Description | |
|---|---|---|---|
type | string | required | Value: bill |
operator_code | string | required | DESCO · DPDC · TITAS |
bill_number | string | required | Customer / meter account number |
month | string | required | Bill month in MM format: 01 – 12 |
amount | numeric | required | Bill amount in BDT |
phone | string | conditional | Required by some operators |
ref_id | string | optional | Your own reference ID |
curl -X POST "http://flexiloadbd.net/api/gateway/v1/request" \
-H "Authorization: Bearer {your_token}" \
-H "Content-Type: application/json" \
-d '{
"type": "bill",
"operator_code": "DESCO",
"bill_number": "1234567890",
"month": "04",
"amount": 850
}'Http::withToken('your_token')
->post('http://flexiloadbd.net/api/gateway/v1/request', [
'type' => 'bill',
'operator_code' => 'DESCO',
'bill_number' => '1234567890',
'month' => '04',
'amount' => 850,
]);{
"status": true,
"trx_id": "TRX202604281234001",
"ref_id": "ORD-2026-001",
"type": "recharge",
"operator": "Grameenphone",
"phone": "01711111111",
"bill_number": null,
"package": null,
"amount": 100,
"payable": 100,
"balance": 400.00,
"trx_status": "Pending",
"message": "Message/Failed Reason/Pin/Note",
"created_at": "2026-04-28T12:34:01.000000Z"
}
/api/gateway/v1/status
Check the current status of a transaction. Pass either trx_id (our ID) or ref_id (your own ID) — one is required.
| Parameter | Type | Description | |
|---|---|---|---|
trx_id | string | one of | Transaction ID returned from /request |
ref_id | string | one of | Your reference ID passed during submit |
curl -X POST "http://flexiloadbd.net/api/gateway/v1/status" \
-H "Authorization: Bearer {your_token}" \
-H "Content-Type: application/json" \
-d '{"trx_id": "TRX202604281234001"}'
# or by ref_id:
-d '{"ref_id": "ORD-2026-001"}'Http::withToken('your_token')
->post('http://flexiloadbd.net/api/gateway/v1/status', [
'trx_id' => 'TRX202604281234001',
]);{
"status": true,
"trx_id": "TRX202604281234001",
"ref_id": "ORD-2026-001",
"type": "recharge",
"sub_type": "Postpaid",
"operator": "Grameenphone",
"operator_code": "GP",
"phone": "01711111111",
"bill_number": null,
"package_name": null,
"amount": 100,
"payable": 100,
"trx_status": "Success",
"message": "Message/Failed Reason/Pin/Note",
"created_at": "2026-04-28T12:34:01.000000Z"
}
Bangladesh
| Operator | Code | Number Prefix |
|---|---|---|
| Grameenphone | GP | 017, 013 |
| Robi | RB | 018 |
| Airtel | AT | 016 |
| Banglalink | BL | 019, 014 |
| Skitto | SK | 013 |
| Teletalk | TT | 015 |
| Operator | Code | Number Prefix |
|---|---|---|
| bKash | BK | 018, 019, 017 … |
| Nagad | NG | 018, 019, 017 … |
| Rocket | RK | 018, 019, 017 … |
⚡ Electricity
| Operator | Code | Type |
|---|---|---|
| Palli Bidyut | PBP | Prepaid |
| Palli Bidyut | PBD | Postpaid |
| DESCO | DSP | Prepaid |
| DESCO | DSD | Postpaid |
🔥 Gas
| Operator | Code |
|---|---|
| Jalalabad Gas | JLB |
| Sundarban Gas | SBG |
| Bakhrabad Gas | BRD |
🌐 Internet
| Operator | Code |
|---|---|
| Amber IT | ART |
| HTTP | status | Common Cause |
|---|---|---|
401 | false | Missing or invalid API token |
403 | false | Account inactive or API access not enabled |
404 | false | Transaction not found (/status) |
422 | false | Validation error · Insufficient balance · Duplicate transaction · Operator not found or not active · Service not available |
429 | false | Rate limit exceeded |