Introduction
IIMMPACT API is organized around REST. Our API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.
You can use the IIMMPACT API in staging mode, which doesn't affect live transaction. This staging environment is setup to test on the flow.
IIMMPACT API doesn't support bulk updates. You can work on only one object per request.
To optimize performance and reliability, IIMMPACT has established rate limits and allocations for API endpoints.
What made this section unhelpful for you?
Base URL
Production:
https://api.iimmpact.com/v2
Staging:
https://staging.iimmpact.com/v2
Authenticate
Our API uses Bearer Token to authenticate requests. You can create your account to generate token through our Dashboard. For staging please use this LINK to create your account.
Your API keys carry many privileges, so be sure to keep them secure. Don't share your secret API keys in publicly accessible areas such as GitHub, client-side code, and so forth.
Balance
The Balance API allows you to retrieve the current balance of your IIMMPACT account.
When making a request to the Balance API endpoint, you will receive a response containing the current balance information. This response includes details such as the account id , account name and total balance.
Keep in mind that the balance returned by this API endpoint include pending transactions. If you need to retrieve a more detailed view, login to Dashboard and go to Report to view Transaction History and Balance Statement.
Please note that authentication is required to access the Balance API endpoint. You will need to include your idToken
in the request header to authenticate and authorize the request.
Topup
The topup API endpoint allows you to perform topup or check transaction related to top-up. This endpoint provides access to details such as the amount, date, and status of each top-up transaction. The information returned by this API can be used to track and monitor top-up activity within the system.
The diagram below illustrate the standard flow in using the topup API :

What made this section unhelpful for you?
Reloads and Bill Payment
Most of our product follow this standard request schema. Only certain products (MobileData,PTPTN and Zakat) which required more details, then it would have a different schema.
Header Parameters
Body Parameters
A unique identifier to create / search for transaction. The maximum length is 25 characters
The product code for a the product. Refer to Product section to check what are the available product codes.
The account / phone number to receive the top-up. Refer to Product section to check on which product required this field.
The amount for the transaction. Refer to Product section to check on the denomination and type.
Responses
Response Attributes
Response
{
"statuscode": "20",
"status": "Successful",
"account": "0113242124",
"product": "C",
"amount": "10",
"sn": "123456",
"pin": "",
"expiry": "",
"cost": "9.70",
"balance": "151.10",
"remarks": "",
"refid": "UID-123",
"timestamp": "2023-10-01 00:11:54",
"note": ""
}
PTPTN
For PTPTN product it have a different top-up schema. It required identification number (IC) and sub product code. Account number from PTPTN can be retrieved from using the bill-presentment API together with the user's NRIC number.
Below diagram illustrate the flow to do a PTPTN top-up. Use the Retrieve PTPTN Accounts and Pay PTPTN for more details.

Mobile Data
This section of the documentation guides you through integrating the "Internet Top Up" feature into your application using the IIMMPACT API. As noted, this feature is supported only in version 2 of the API.
The Internet Top Up API endpoint empowers your application to provide users with the ability to top-up their mobile data directly. This works across multiple service providers, enhancing the user experience by eliminating the need to use third-party platforms or manually process the top-up.
Incorporating the "Internet Top Up" feature not only allows you to offer a comprehensive solution, thereby enriching the user experience, but can also enhance user engagement and retention on your platform. Remember, this feature is exclusive to version 2 of the IIMMPACT API, hence make sure to upgrade if you're using an older version.
Refer to the following section for detailed instructions, including step-by-step guides, code examples, and any special considerations for implementing this feature. A mobile data package, to put it simply, is an internet plan for prepaid numbers with specific parameters required for purchasing. Further intricacies and directions will be outlined in the specification below.
Status/Error Code
Clients send request to this method to initiate airtime recharge, bill payments, send gift transaction and all of the products available in the product list. Partner can check the transaction status by sending request to this method with the same parameters.
The following table lists and explains what type of error has occurred when a request was sent to the server. To simulate an error, send a request with the provided "Simulation Account Number" corresponding to the desired error type. This will allow you to test your application's error handling and display the appropriate error message to your users.
This Simulation Account Number should only be used in staging environment and NOT production.
The status code can be read in the response under data
object with the parameter name
Y
Submit the same request again to get the final transaction status. (Success / Fail)N
Transaction status is final. No resend needed.
Status Code | Status | Description | Retry | Simulation |
0 | Accepted | Transaction accepted and will be will be sent for processing. | Y | |
1 | Processing | Transaction is still being processing. | Y | |
20 | Successful | Transaction is successful. | N | |
41 | Failed | Client's account has been suspended or an unauthorized access has occurred. | N | 60123450041 |
43 | Failed | Insufficient credit on client's wallet | N | 60123450043 |
44 | Failed | Incorrect format or an invalid product has been passed | N | 60123450044 |
45 | Failed | Product out of stock | N | 60123450045 |
47 | Failed | Service currently unavailable. Try again later | N | 60123450047 |
48 | Failed | Transaction reject by provider | N | 60123450048 |
40,52 | Failed | Invalid account number/ Invalid mobile number or the mobile number has been barred/ terminated | N | 60123450052 |
54 | Failed | Duplicate transaction , daily account's transaction limit has been reached, refer to product list. | N | 60123450464 |
55 | Failed | Transaction failed due to timeout | N | 60123450055 |
56 | Failed | Account blacklisted | N | 60123450056 |
57 | Failed | Customer's mobile number activated | N | 60123450057 |
58,61 | Failed | Invalid Denomination or amount. | N | 60123450861 |
What made this section unhelpful for you?
HTTP Status / Error Code
200 OK - The request has succeeded.
400 Bad Request - Invalid parameter was passed. Correct the parameter and retry.
401 Unauthorized - Incorrect username / password. Generate valid token and retry,
403 Forbidden - The server understands the request but refuses to authorize it.
500 Internal Server Error - The server encountered an unexpected condition that prevented it from fulfilling the request. Please retry or contact support@iimmpact.com if the issue still persist
What made this section unhelpful for you?
Health Check
Check if a current product is having interruptions.
Subscribe to our Status page to receive notification when there's a interruption of product.
Please note that even though the status page shows unhealthy, You still can proceed to Top-Up.
What made this section unhelpful for you?
e-Sim
The e-SIM product offers global mobile connectivity, supporting up to 156 countries with plans for further expansion. This innovative solution eliminates the need for physical SIM cards, providing users with a flexible and transferable option. We offer different mobile plans based on the country, and to retrieve these plans, please use the specialized API described in the following sections. Further details on the integration process, API usage, and other technical specifications will be covered later in this document.
Beta
Bill Presentment List
Name | Product Code | Customer Name | Outstanding | Due Date |
Air Selangor | SYABAS | Yes | Yes | Yes |
Air Kelantan | ASKB | Yes | Yes | Yes |
Astro | ASB | Yes | No | No |
Indah Water Konsortium | IW | No | Yes | No |
Pengiran Air Pahang | PAIP | Yes | Yes | No |
Perak Water Board | PWB | No | No | No |
Kuching Water Board | KWB | No | No | No |
Ranhill SAJ | SAJ | No | No | No |
Syarikat Air Darul | SADA | No | No | No |
Syarikat Air Negeri Sembilan | SAINS | No | No | No |
Sabah Eletic | SESB | Yes | Yes | Yes |
Tenaga Nasional Berhad | TNB | No | Yes | Yes |
Celcom Postpaid | CB | No | Yes | No |
Redone Postpaid | RB | Yes | Yes | No |
Maxis Postpaid | MB | No | No | No |
XOX Postpaid | XB | Yes | Yes | Yes |
Digi Postpiad | DB | No | No | No |
Maxis Prepaid | M | No | No | No |
Redone Prepaid | RO | Yes | No | No |
Celcom Prepaid | C | No | No | No |
Digi Prepiad | D | No | No | No |
Majilist Daerah Kuala Langat | MDKL | Yes | Yes | Yes |
Majlis Perbandaran Sepang | MPSS | Yes | Yes | Yes |
Majlis Perbandaran Subang Jaya | MPSJ | Yes | Yes | Yes |
Header Parameters
ID Token From Authrorization
Query Parameters
The phone number/ account number of the product.
The product code of the product. Refer to product listing.
Responses
Response Attributes
Show child attributes
What made this section unhelpful for you?
Response
{
"data": {
"message": "Account no is valid",
"CustomerName": "",
"Outstanding": "0",
"Balance": "",
"Data": "",
"Address": "",
"E-Bill": "",
"CustomField": "",
"DueDate": "25/10/2023",
"metadata": {
"status_code": "200",
"product_code": "TNB",
"last_updated": "22-10-2023 12:34:07"
},
"transaction_validity": "false",
"transaction_message": "TNB Maximum count per acc/month exceeded"
}
}
Reconciliation
The reconciliation API's endpoint allows you to retrieve specific reports related to your data which can be sync to your ERP system. This API and Dashboard feature section provides functionalities to access various reports based on your requirements. The Reports API endpoint offers a straightforward way to retrieve detailed information and insights about your data.
To access the report , login to Dashboard and navigate to Statement Of Account and select Transaction Summary.
The Invoice statement is generated by month. You filter the result based on the date range. To extract the report, Click on the download button.

Import POSTMAN Collection
The following link contains all IIMMPACT API.
Click this LINK to import the our API collection into Postman.