Skip to content

Bill Presentment (Beta)

Retrieve outstanding bill information for a specific account or service. This enables your application to display current bill details, send bill reminders, and automate recurring payments.

Your application should dynamically populate the bill information based on the API response. If a particular piece of information (e.g., customer name) is not returned by the API for a biller, that label or field should not be displayed to the user.

TIP

For a step-by-step integration walkthrough, see the Bill Presentment Guide.

INFO

Integrate this API across all products. This will prevent the need to reintegrate it when a new biller is added later.

API Endpoint

http
GET https://api.iimmpact.com/v2/bill-presentment

Request Headers

HeaderDescriptionRequired
X-Api-KeyYour API keyYes
X-TimestampUnix timestamp in secondsYes
X-NonceUnique request identifierYes
X-SignatureHMAC-SHA256 signature (v1=...)Yes

See API Key Authentication for how to sign your requests.

Query Parameters

ParameterTypeRequiredDescription
accountstringYesThe account number. For JomPAY, this is equivalent to Ref-1
productstringYesProduct code
biller_codestringNoThe JomPAY biller code. Required if the product is JOMPAY
ref2stringNoOptional reference field (Ref-2). Only used if the product is JOMPAY
amountstringNoAmount. This is only used if the product code is JOMPAY

Response 200

INFO

Some response field names in this endpoint use PascalCase (e.g., BillerName, CustomerName). This differs from the camelCase or snake_case used by other endpoints. This is a legacy format maintained for backward compatibility.

FieldTypeDescription
dataobjectBill information
data.messagestringShort description of the result
data.BillerNamestringName of the biller
data.CustomerNamestringAccount holder name
data.OutstandingnumberAccount outstanding amount
data.BalancestringAccount balance
data.DatastringAccount data balance
data.AddressstringCustomer address
data.E-BillstringA PDF version of the customer bill
data.CustomFieldanyCustom field from the biller. Type varies by biller — may be a string, number, object, array, or null
data.DueDatestringBill due date
metadataobjectResponse metadata
metadata.status_codenumberHTTP status code
metadata.product_codestringProduct code queried
metadata.last_updatedstringTimestamp (GMT+8)
transaction_validitybooleanWhether the account is valid for payment
transaction_messagestringValidation result message
error_messagestringError label to display to the user

Example Response:

json
{
  "data": {
    "message": "Account no is valid",
    "BillerName": "Air Kelantan",
    "CustomerName": "EN. MOHD MOKHTAR B.AWANG",
    "Outstanding": 45.94,
    "Balance": "",
    "Data": "",
    "Address": "KG. TUALANG KUDONG, 18500 LABIK, MACHANG.",
    "E-Bill": null,
    "CustomField": "",
    "DueDate": "13/06/2025"
  },
  "metadata": {
    "status_code": 200,
    "product_code": "AKSB",
    "last_updated": "19-05-2025 15:37:28"
  },
  "transaction_validity": true,
  "transaction_message": "Account validation successful with AKSB.",
  "error_message": ""
}

Response 400

Returned when the account number or parameters are invalid.

FieldTypeDescription
dataobjectEmpty or partial bill data
data.messagestringError description (e.g., Invalid account no)
data.CustomerNamestringEmpty string
data.Outstandingnumbernull
data.BalancestringEmpty string
data.DatastringEmpty string
data.AddressstringEmpty string
data.E-BillstringEmpty string
data.CustomFieldanyEmpty string
data.DueDatestringEmpty string
metadataobjectResponse metadata
metadata.status_codenumber400
metadata.product_codestringProduct code queried
metadata.last_updatedstringTimestamp (GMT+8)
transaction_validitybooleannull
transaction_messagestringnull
error_messagestringUser-facing error message

Example Response:

json
{
  "data": {
    "message": "Invalid account no",
    "CustomerName": "",
    "Outstanding": null,
    "Balance": "",
    "Data": "",
    "Address": "",
    "E-Bill": "",
    "CustomField": "",
    "DueDate": ""
  },
  "metadata": {
    "status_code": 400,
    "product_code": "JOMPAY",
    "last_updated": "21-05-2025 13:40:23"
  },
  "transaction_validity": null,
  "transaction_message": null,
  "error_message": "The provided biller code is invalid"
}

Error Messages

API Error MessageApplication Response/ActionCan User Proceed to Payment?
Account no is validDisplay relevant bill information. If a particular piece of information is not returned by API, do not display that label or field to userYes
Bill presentment is unavailable for this productDo not display any bill informationYes
Service unavailable. Please try again laterDo not display any bill informationYes
Invalid account noPrompt user with the error message displayed in response['error_message'] (see below)No
Any other errorDo not display any bill informationYes

Possible error_message values:

  • The provided biller code is invalid
  • The provided amount is invalid
  • Invalid account no
  • Ref-2 is required

IIMMPACT API Documentation