Dark mode

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.

Was this section helpful?

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.

  1. When calling topup api ,If referenceID already exist , IIMMPACT return the transaction details. Else referenceIDnot exist, IIMMPACT create a new transaction.
  2. When new transaction is created ; client need to keep calling the topup API with the same referenceIDuntil they receive the final status-code either Success -20 or Failed-40.

The diagram below illustrate the standard flow in using the topup API :

Was this section helpful?

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

Authorizationstring

Body Parameters

refernceidstring

A unique identifier to create / search for transaction. The maximum length is 25 characters

productstring

The product code for a the product. Refer to Product section to check what are the available product codes.

remarkstring
accountstring

The account / phone number to receive the top-up. Refer to Product section to check on which product required this field.

amountstring

The amount for the transaction. Refer to Product section to check on the denomination and type.

Responses

200
Object

Response Attributes

statuscodestring
statusstring
accountstring
productstring
amountstring
snstring
pinstring
expirystring
coststring
balancestring
remarksstring
refidstring
timestampstring
notestring

POST

/topup

Select
1 2 3 4 5 6 7 8 9 curl --location 'https://api.iimmpact.com/v2/topup' \ --header 'Authorization: Bearer eyJraWQiOiJsbGNGOW5cLzRhYXJqbDR0RUtrVDFcLzN0WWJuakk0V21ESXhBbXYwT2t5TjQ9IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJlOWQzZDMwMi00NDdmLTQwZjItOTE1Ny0xZjljNTI3NWY0NDMiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLmFwLXNvdXRoZWFzdC0xLmFtYXpvbmF3cy5jb21cL2FwLXNvdXRoZWFzdC0xXzVFRW5qNUw5eSIsInBob25lX251bWJlcl92ZXJpZmllZCI6dHJ1ZSwiY29nbml0bzp1c2VybmFtZSI6InRvbW15YyIsImF1ZCI6Ijc2YXY2Y2U4cWpmZDFvZWJtdHU0cmttc3RtIiwiZXZlbnRfaWQiOiJiZDBlZTUxYi01YzkyLTRlZmEt' \ --data '{ "refernceid": "UID-123", "product": "C", "remark": "", "account": "0113242124", "amount": "10" }'

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

Was this section helpful?

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

Was this section helpful?

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.

Was this section helpful?

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

Authorizationstring

ID Token From Authrorization

Query Parameters

accountstring

The phone number/ account number of the product.

productstring

The product code of the product. Refer to product listing.

Responses

200
Object

Response Attributes

dataobject

Show child attributes

Was this section helpful?

What made this section unhelpful for you?

GET

/bill-presentment?account=210002828807&product=TNB

Select
1 2 curl --location 'https://api.iimmpact.com/v2/bill-presentment?account=210002828807&product=TNB' \ --header 'Authorization: Bearer eyJraWQiOiJsbGNGOW5cLzRhYXJqbDR0RUtrVDFcLzN0WWJuakk0V21ESXhBbXYwT2t5TjQ9IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJlOWQzZDMwMi00NDdmLTQwZjItOTE1Ny0xZjljNTI3NWY0NDMiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLmFwLXNvdXRoZWFzdC0xLmFtYXpvbmF3cy5jb21cL2FwLXNvdXRoZWFzdC0xXzVFRW5qNUw5eSIsInBob25lX251bWJlcl92ZXJpZmllZCI6dHJ1ZSwiY29nbml0bzp1c2VybmFtZSI6InRvbW15YyIsImF1ZCI6Ijc2YXY2Y2U4cWpmZDFvZWJtdHU0cmttc3RtIiwiZXZlbnRfaWQiOiJiZDBlZTUxYi01YzkyLTRlZmEtYmRmMS1kZDI1NmZjMzM2MjQiLCJ0b2tlbl91c2UiOiJpZCIsImF1dGhfdGltZSI6MTY5NzYwMDQzNSwibmFtZSI6IlRvbW15IENodWEiLCJwaG9uZV9udW1iZXIiOiIrNjAxMTIzMTI0MjgwIiwiZXhwIjoxNjk3NjA0MDM1LCJpYXQiOjE2OTc2MDA0MzUsImVtYWlsIjoiY2h1YXNpb25nc2VuZzk1QGdtYWlsLmNvbSJ9.TnyjADVsZy5D0DMoThoBeKNSXz3n7PF29aG0BRuHMg6a6wf2JETjOlCA_sclmnk_qpFeIWd28hfY0nf3zJxnXRbi8dJ2O6BEJbar_LpKye7r8QenI0XxMpSDPZSSA2_-hH3kzCRNKxsburPiOgJvmbv6NPznOcR7VU-gE3ao8pBvfhHJcNpSHkdsKTDtqBn-6hBk2PaC4_uyEaZZcB2cDUshtu20Ly-RAQcizOODr8Rxi-qZfb_pdteA7LmiJw4Q1LuLH' \

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.

Was this section helpful?

What made this section unhelpful for you?