Appearance
Make Payment/Check Transaction
This API is central to processing transactions across the IIMMPACT platform. This is the same API endpoint used across all our product offerings, including Jompay, mobile recharge, gift cards, vouchers, eSIM purchases, and more. It provides a unified way to initiate payments for various services.
Idempotency: To ensure robust transaction handling, the API supports idempotency, allowing you to safely retry requests without the risk of unintended duplication. It is crucial to store and reuse the same refid for the same transaction. This refid ensures that if a network error occurs, you can resend the request without creating a second charge or operation
Check Final Transaction Status: You must query for the final status by calling this API again with the identical request parameters and the original refid used during initiation.
The following table outlines the requirement status of specific parameters within the extras object of the request body, based on the product being used:
| Parameter | JomPAY | PTPTN | Mobile Data | Others |
|---|---|---|---|---|
| subproduct_code | - | Mandatory | Mandatory | - |
| ic_number | Mandatory - payee IC number | Mandatory - recipient IC number | - | - |
| biller_code | Mandatory | - | - | - |
| ref2 | Optional | - | - | - |
Important AMLA Compliance Note for JomPAY: Due to AMLA (Anti-Money Laundering, Anti-Terrorism Financing and Proceeds of Unlawful Activities Act 2001) requirements and the associated risks, especially as JomPAY can be utilized for services such as deposits or investments, it is mandatory to perform eKYC (electronic Know Your Customer) on your end-users for all JomPAY transactions. The verified IC number (for Malaysians) or Passport number (for non-Malaysians) obtained through this eKYC process must be passed to us via the ic_number field in the transaction request. Failure to adhere to this requirement, or providing fictitious or invalid IC/Passport numbers, may lead to the suspension of your account.
Error code can be found here
DANGER
Staging server statuses and failure reason might not match production due to limited validation.
API Endpoint
http
POST https://api.iimmpact.com/v2/topupRequest Headers
| Header | Description | Required |
|---|---|---|
Authorization | ID Token | No |
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
refid | string | Yes | Your unique reference ID for this transaction. Store and re-use the same ID |
product | string | Yes | Product Code |
remarks | string | No | Optional field for any additional remarks |
account | string | Yes | Recipient's account number or identifier (e.g., bill account number, mobile number, etc) |
amount | string | Yes | The amount to be paid |
extras | object | No | |
extras.subproduct_code | string | No | |
extras.ic_number | string | No | ic number without dash |
extras.biller_code | string | No | |
extras.ref2 | string | No |
Response 200
| Field | Type | Description |
|---|---|---|
data | object | The response parameter "data" contains the information related to the transaction, including details such as the top-up amount, product code, timestamp, and status. |
data.statusCode | number | status code. Refer to the section "Status/Error Code" for more info |
data.status | string | Outcome of the request (Processing, Succesful, Failed) |
data.account | string | Account Number |
data.product | string | Product Code |
data.productName | string | Product Name |
data.amount | number | Amount |
data.sn | string | Serial number/identifier generated from the provider/operator |
data.pin | string | Pin number for vouchers, gift cards, etc |
data.expiry | string | Expiration date of the voucher (yyyymmdd) |
data.cost | number | The price paid for the product |
data.balance | number | The current account wallet balance |
data.remarks | string | Any additional comments or notes about the transaction |
data.refid | string | Unique reference ID for tracking this specific transaction |
data.timestamp | string | The timestamp of this transaction |
data.note | string | Important instructions or information for the user regarding the product |
data.voucherlink | string | A web link to access or redeem the voucher |
Example Response:
json
{
"data": {
"statusCode": 20,
"status": "Succesful",
"account": "0123456789",
"product": "GC",
"productName": "Grab Gift Code",
"amount": 5,
"sn": "106648697",
"pin": "MPHE39G3WL",
"expiry": "20251116",
"cost": 5,
"balance": 50.54,
"remarks": "",
"refid": "321479-0-30f4f209-ee",
"timestamp": "2025-05-20 13:09:34",
"note": "Insert voucher code into Use Grab Gifts under Use Offers section upon check out",
"voucherlink": "https://api.grab.com/gifts/v2/go?id=7464957319334bb0afbd5980738a2b50"
}
}