Skip to main content

Payment Parameters

Method POST

URL

https://xxx.finexusgroup.com/fnx-fintech/sandbox/mqpos-host/api/submit

Configure the field paymentMethod for Card and QR payment options.

Field NameRequiredTypeDescription
SignatureYesStringContains the signature value of the message. The message originator is responsible for generating the signature, while the message receiver must verify it to ensure the integrity, authenticity, and non-repudiation of the message .

Please refer to Appendix 1.
sourceSystemYesStringThe system ID of the message originator.

Body

Please refer to Embed Code to encrypt the content and prepend the Message Type Indicator 0011 to the body.

Field NameRequiredTypeLengthDescriptionExample
msgVerYesString8Version number."1.0"
billerTypeYesString2Type of payment."PS" - POS System
callerDeviceTypeYesString2Caller device type."02" - Android EDC/Card Payment Terminal
callerDeviceVerYesString8Application version number of the caller device."1"
sequenceNoYesString16A running message sequence number which unique within system on a calendar day and shall restart from 1 every day."202409288868"
sellerIdYesString6Provided by FINEXUS to identify the seller or taxpayer (the Merchant) for e-Invoice processing."A123"
midYesString15Merchant ID"100000"
isPaymentReqYesString1Payment request indicator"Y" - Trigger payment at KPOS.
"N" - No payment processing will be initiated.
paymentConditionalObjectPayment Object.
isInvoiceReqYesString1Invoice request indicator"Y" - This request will send invoice data to LHDN.
"N" - This request will not send invoice data to LHDN.
invoiceConditionalObjectInvoice object to submit to LHDN for e-invoice purpose. It is required if isInvoiceReq is "Y"

Object: payment

Field NameRequiredTypeLengthDescriptionExample
mrnYesString40An unique reference number assigned by POS system to identify the original payment transaction."8e8c6e61-f9e4-40f0-a4a5-9e561579c901"
requiredPaymentYesString1Indicates whether payment is required for the request."Y" - This request will trigger payment at KPOS..
"N" - No payment processing will be initiated.
paymentMethodYesNumber2The preferred payment method will be triggered at KPOS."00" - KPOS will display all available payment method, the customer can then choose their preferred method to proceed.
"01" - Card payment
"04" - Duitnow QR payment (Merchant presented)
"08" - Alipay+ QR payment (Merchant presented)
currencyYesNumber3ISO 4217 numeric currency code of this transaction."458"
amountYesNumber18Amount, Transaction.
The purchase transaction amount in supported currency.
"1000"
descriptionNoString256Order description."Food order"
paymentNotiUrlConditionalString256Primary payment notification URL. The URL that is used to receive the payment result notification. For security reasons, the URL must be an HTTPS URL. Only applicable for HTTPs POST integration."https://xxx/xxx/xxx.paymentNotiUrl"
paymentNotiUrl2ConditionalString256Secondary payment notification URL."https://xxx/xxx/xxx.paymentNotiUrl2"
paymentTimeYesString25Payment time. The value follows the ISO 8601 standard format."2024-06-30T12:12:12+0800"
emailConditionalString64Email login to KPOS. It is mandatory if payment request via HTTPs POST"customer123@gmail.com"
deviceSNConditionalString32Device SN. It is mandatory if payment request via HTTPs POST"PPXXX72209005XXX"
printPaymentReceiptYesString1"Y" - KPOS will display an e-receipt and print a payment receipt if the payment is approved.
"N" - KPOS will display an e-receipt, do not print a payment receipt if the payment is approved.
"Y"
nonBlockingNoString1"Y" - KPOS will return an acknowledgment in the submit response as soon as the request is received from the PSP.
"N" - KPOS will fully process the request and return the final result to the PSP.

Default is "Y"
"Y"

Example Request and Response Body

Encrypt the content and prepend the Message Type Indicator 0011 to the body.

Before encryption
{
"msgVer": "1.0",
"billerType": "PS",
"callerDeviceType": "02",
"callerDeviceVer": "1",
"sequenceNo": "2022091511262185",
"sellerId": "A123",
"mid": "000010000012XXX",
"isPaymentReq": "Y",
"payment": {
"mrn": "2021061414062021078",
"requiredPayment": "Y",
"paymentMethod": "01",
"currency": "458",
"amount": "1000",
"description": "test",
"paymentTime": "2024-09-23T10:30:29.249",
"email": "customer123@gmail.com",
"deviceSN": "PPXXX72209005XXX",
"printPaymentReceipt": "N",
"nonBlocking": "N"
},
"isInvoiceReq": "N"
}
After encrytion and add Message Type Indicator
0011eyJlcGsiOnsia3R5IjoiRUMiLCJjcnYiOiJQLTI1NiIsImtpZCI6ImU4NmQ0Y2ZiLTFkNzMtNDJkNi05MGVlLWRlNWJlNjcwMjVlOSIsIngiOiI0UmxIeDAzX3ZlTURWaGFaTl91TVppZ2YzV1dPWGlveG52Zy1rRXhyMzFrIiwieSI6ImcyU1VqNkJnVHdYakxWYWlTRnVobGtSWklrMndaWlNaMWJEWG1DSTZSVXcifSwia2lkIjoiMTIzIiwiZW5jIjoiQTI1NkNCQy1IUzUxMiIsImFsZyI6ImRpciJ9..UIzHIjrFX8fPX91SEUzZpA.9hmtgLHx_UZjYTwduAtdruZB60QPRPjvczVeJwSI7tomXmEU720zuokvMdf9VxQqHOh2PHvtTtqW8OZQuIqYyDmss06ii-fy73a897AJv2KXPARY6DduoiLSJwDCJKhBiJlnZkAMyRZdB5xGzJwXL21QaXbO86EF6_d9qzrOhQvrNlfkTOBQYnv5Mhnnetda0_zm59HRMW2mg-rEOGj1W0Q4U0I8ZZrXQSxO3MnalxuzWQ4oTU2uHZrFnsyL93PeKiG_RmIszQGXqG0bN8WsoJfL0BTd20rnxldLQcSZYNdxGJw0EBGwlSp7DTpcmP1kzd1v2PzLGISZiPa9zadcVuLaODBZQ5GdHoPgIi76pTRwDJrv1CuD8ugfuuu_L5DxFIErnqs5cTONqxhCQ23ZeCSbnuDJDJju9yyr2wYoFFKQQciZmPddPgi2phew31DRjju4y4Ab6H7Vv01gqk6h2b9clR7v54wZSvR0CVROLZj79nKM1eLDhEo8JEv6T5APb2EHMTaU-sIlT-XqENbwV-A5HSEuEdvU7K3fsgioU5qJWwk9SS1WWmyqHnvCK1Rl5azJcKbfyN07a7znZD66IAoSUoCHjsqmFC4bd6ckdLA.Q3Ys35PhzHsnNnlJQ3rzwR-RsfEmYeDxXDsw9h97Azo

Example Message

POST Request
curl -X POST "https://xxx.finexusgroup.com/fnx-fintech/sandbox/mqpos-host/api/submit" \
-H "Accept: application/json" \
-H "Content-Type: text/plain" \
-H "Signature: ..." \
-H "sourceSystem: ..." \
-d '0011eyJlcGsiOnsia3R5IjoiRUMiLCJ...'