New Flow Tech Platform Public API Documentation
A comprehensive and professional guide to the API interface
Last Updated: 7 November 2025 12:00 AM UTC
Get Started Here
Welcome! This section will guide you through the initial setup, from obtaining your API credentials to understanding the request structure. Follow these steps to ensure a smooth and successful integration.
Prerequisites
To integrate with the API services, you will need the following data:
Request Specifications
Generate Authentication Token
Token = md5(UserName + AccountNumber + md5(Password) + APIToken)
PHP Example
$token = md5($UserName . $AccountNumber . md5($Password) . $ApiToken);
C# Example
using System;
using System.Security.Cryptography;
using System.Text;
public class Program
{
public static void Main()
{
string UserName = "YourUserName";
string AccountNumber = "YourAccountNumber";
string Password = "YourPassword";
string ApiToken = "YourApiToken";
string token = GenerateToken(UserName, AccountNumber, Password, ApiToken);
Console.WriteLine(token);
}
public static string GenerateToken(string userName, string accountNumber,
string password, string apiToken)
{
string innerMd5 = GetMd5Hash(password);
string concatenatedString = userName + accountNumber + innerMd5 + apiToken;
return GetMd5Hash(concatenatedString);
}
private static string GetMd5Hash(string input)
{
using (MD5 md5 = MD5.Create())
{
byte[] inputBytes = Encoding.UTF8.GetBytes(input);
byte[] hashBytes = md5.ComputeHash(inputBytes);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hashBytes.Length; i++)
{
sb.Append(hashBytes[i].ToString("x2"));
}
return sb.ToString();
}
}
}
Networks Data
| Network Number | Description |
|---|
Services Data
| Network Number | Service Number | Description |
|---|
Endpoints
Login
https://softibs.com/rest-api/login
access_token received will be used in all subsequent requests.
The response includes an access_token (for future requests) and token_expires
(token expiration date and time).
Ensure the access_token is valid before making requests; otherwise,
generate a new
one.
Request Fields
| Field Name | Description | Required |
|---|---|---|
AccountNumber |
Your account number on our platform | Yes |
UserName |
Your username | Yes |
Token |
Generate Authentication Token | Yes |
Response Examples
| Response Type | Response Example |
|---|---|
| Success Response |
|
| Error Response |
|
Global Operations
Note: In these requests,
NetworkNumber = 0 is set. The
ServiceNumber specifies the requested service.
Check Balance
https://softibs.com/rest-api/
Required Request Headers
| Header Name | Value | Description |
|---|---|---|
api-token |
access_token
From login request
|
The access token obtained from the login request |
Request Fields
| Field Name | Value | Description |
|---|---|---|
NetworkNumber |
0 |
Global network number |
ServiceNumber |
1 |
Balance query service number |
Response Examples
| Response Type | Response Example |
|---|---|
| Success Response |
|
| Error Response |
|
Check Operation Status
https://softibs.com/rest-api/
Required Request Headers
| Header Name | Value | Description |
|---|---|---|
api-token |
access_token
From login request
|
The access token obtained from the login request |
- 1 Ready (Success)
- 0 Cancelled (Failed)
- -1 Pending
Request Fields
| Field Name | Value | Description |
|---|---|---|
NetworkNumber |
0 |
Global network number |
ServiceNumber |
2 |
Status query service number |
TransactionID |
XXXXXXXXX |
Transaction ID from your system |
Response Examples
| Response Type | Response Example |
|---|---|
| Successful Operation |
|
| Failed Operation |
|
| Pending Operation |
|
| Error Response |
|
Check Feed Vouchers
https://softibs.com/rest-api/
Required Request Headers
| Header Name | Value | Description |
|---|---|---|
api-token |
access_token
From login request
|
The access token obtained from the login request |
Request Fields
| Field Name | Value | Description |
|---|---|---|
NetworkNumber |
0 |
Global network number |
ServiceNumber |
3 |
Feed vouchers service number |
Response Examples
| Response Type | Response Example |
|---|---|
| Success Response |
|
| Error Response |
|
Games and Cards List
https://softibs.com/rest-api/
Required Request Headers
| Header Name | Value | Description |
|---|---|---|
api-token |
access_token
From login request
|
The access token obtained from the login request |
Request Fields
| Field Name | Value | Description |
|---|---|---|
NetworkNumber |
0 |
Global network number |
ServiceNumber |
4 |
Categories service number |
Response Examples
The response contains a data array with a list of all
available games and cards with their details.
| Response Type | Response Example |
|---|---|
| Success Response |
|
| Error Response |
|
Query Operations
https://softibs.com/rest-api/
Standard Request Structure
Typically, the request data is structured as follows:
NetworkNumber: The network number through which the request will
be made
ServiceNumber: The number of the query service requested
MobileNumber: The subscriber's phone number
TransactionID: A unique transaction ID for each request
Query Subscriber Balance and Offers
Required Request Headers
| Header Name | Value | Description |
|---|---|---|
api-token |
access_token
From login request
|
The access token obtained from the login request |
Request Fields
| Field Name | Example Value | Description |
|---|---|---|
NetworkNumber |
1 |
Network Number:
|
ServiceNumber |
101 |
Requested Service Number:
|
MobileNumber |
7XXXXXXXX |
Phone number to query
Accepted formats: 7XXXXXXXX - 0XXXXXXX -
10XXXXXX
|
TransactionID |
XXXXXXXXX |
A unique transaction ID for each request
Required Must be unique |
Response Examples
mobileType: Subscription type- 1 Prepaid
- 2 Postpaid
{
"status": true,
"mobileBalance": 154.15,
"availableCredit": "",
"mobileType": 1,
"mobileTypeName": "Prepaid",
"message": "Balance Query Success",
"transactionID": 0
}
{
"status": true,
"loanStatus": false,
"loanStatusString": "Number not loaned",
"message": "Balance Query Success"
}
The response contains a data array with all active
Offers for the subscriber:
{
"status": true,
"data": [
{
"offerID": "A115887147",
"offerName": "4G SIM",
"offerStartDate": "2020-01-01 03:00:00",
"offerEndDate": "2037-01-01 00:00:00"
},
{
"offerID": "A4990006",
"offerName": "Prepaid Forjy Volti Monthly Offer",
"offerStartDate": "2024-07-21 17:14:06",
"offerEndDate": "2024-08-19 23:59:59"
}
],
"message": "Balance Query Success"
}
{
"status": true,
"mobileBalance": "44.18 GB",
"expiredDate": "21/10/2024",
"offerAmount": "12600",
"minAmount": "250",
"message": "Balance Query Success",
"transactionID": "1"
}
{
"status": true,
"mobileBalance": "2869",
"message": "Balance Query Success",
"transactionID": "1"
}
{
"status": true,
"mobileBalance": "26.90 GB",
"expiredDate": "2024-11-06",
"offerAmount": "2400",
"offerSize": "2400",
"callBalance": "",
"message": "Balance Query Success",
"transactionID": "1"
}
| Response Type | Example |
|---|---|
| Error Response |
|
Payment Operations
WebHookURL (Optional):
A URL in your system that will be automatically called when the request status changes. This allows your system to receive updates without the need for manual querying.
WebHookCode (Optional):
An optional code or password for the transaction. It is sent with the request to the WebHook URL as a transaction signature to prevent conflicts. It is recommended to be unique for each transaction.
Balance Payment
https://softibs.com/rest-api/
Required Request Headers
| Header Name | Value | Description |
|---|---|---|
api-token |
access_token
From login request
|
The access token obtained from the login request |
Request Fields
| Field Name | Example Value | Description |
|---|---|---|
NetworkNumber |
1 | The network number to be used |
ServiceNumber |
103 | The service number to be executed |
MobileNumber |
7XXXXXXXX |
Subscriber's phone number
Formats: 7XXXXXXXX - 0XXXXXXX -
10XXXXXX
|
Amount |
100 |
Payment or recharge amount:
Important: In some networks, this amount represents the number of
units:
|
TransactionID |
xxx |
A unique transaction ID in your system
Required Must be unique |
WebHookURL |
https://your-domain.com/webhook |
Optional URL to receive request status updates automatically |
WebHookCode |
xxxxxxxxx |
Optional Transaction signature code |
Response Examples
| Response Type | Response Example | Field Explanation |
|---|---|---|
| Success Response |
|
Field Explanation:
|
| Error Response |
|
Package Payment
https://softibs.com/rest-api/
- Instead of the
Amountfield, use theOfferCodefield OfferCode: The code of the package or bundle to be requested from our platform
Required Request Headers
| Header Name | Value | Description |
|---|---|---|
api-token |
access_token
From login request
|
The access token obtained from the login request |
Request Fields
| Field Name | Example Value | Description |
|---|---|---|
NetworkNumber |
2 | The network number to be used for recharge |
ServiceNumber |
202 | The requested query service number |
MobileNumber |
7XXXXXXXX |
Subscriber's phone number
Formats: 7XXXXXXXX - 73XXXXX -
71XXXXXX - 70XXXXXX
|
OfferCode |
PREWhatsApp |
Package Code
The linking code of the package in the system |
TransactionID |
xxx |
A unique transaction ID in your system
Required Must be unique |
WebHookURL |
https://your-domain.com/webhook |
Optional URL to receive status updates |
WebHookCode |
xxxxxxxxx |
Optional Signature code |
Response Examples
| Response Type | Response Example | Field Explanation |
|---|---|---|
| Success Response |
|
Same response structure as in Balance Payment
|
| Error Response |
|
Games and Cards Payment
https://softibs.com/rest-api/
Required Request Headers
| Header Name | Value | Description |
|---|---|---|
api-token |
access_token
From login request
|
The access token obtained from the login request |
Request Fields
| Field Name | Example Value | Description |
|---|---|---|
NetworkNumber |
8 | Network number (8 or 9 for games) |
ServiceNumber |
801 | The requested service number |
MobileNumber |
- |
Phone number for recharge (may be empty in some cases) |
LinkCode |
pubg_60 |
Category or Service Code
Get it from the Games and Cards List request |
Fields |
|
JSON format field
Contains necessary information such as player ID or email address |
Quantity |
1 |
Required quantity
Used in categories that allow free quantities such as number of coins |
TransactionID |
xxx |
Unique transaction ID
Required Must be unique |
WebHookURL |
https://your-domain.com/webhook |
Optional URL to receive updates |
WebHookCode |
xxxxxxxxx |
Optional Signature code |
Response Examples
| Response Type | Response Example | Field Explanation |
|---|---|---|
| Success Response |
|
Same response structure as in previous operations
|
| Error Response |
|
WebHook Request Example
If you set WebHookURL to https://your-domain.com/webhook
and WebHookCode to xxxxxxxxx, our platform will send a request to your
system when
the operation is updated as follows:
https://your-domain.com/webhook
Request Parameters
{
"OperationStatus": 1,
"WebHookCode": "xxxxxxxxx",
"TransactionID": "TransactionID From Your System",
"ReferenceID": 220065,
"price": 507.87,
"message": "Order Success"
}
Parameter Description
| Parameter | Description |
|---|---|
OperationStatus |
Operation status:
|
WebHookCode |
The code you provided when creating the request to prevent conflicts |
TransactionID |
The unique transaction ID in your system |
ReferenceID |
Reference number or transaction number on our platform |
price |
The cost of the operation that will be deducted from your account |
message |
Notes or comments about the operation status |
Actual Request Example
curl -G "https://your-domain.com/webhook" \
--data-urlencode "OperationStatus=1" \
--data-urlencode "WebHookCode=xxxxxxxxx" \
--data-urlencode "TransactionID=TXN789" \
--data-urlencode "ReferenceID=220065" \
--data-urlencode "price=507.87" \
--data-urlencode "message=Order received and under process"