Skip to main content

Payment Parameters

Method POST

URL

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

Configure the field paymentMethod for Card and QR payment options.

Duplicate checking will be performed based on the combination of sequenceNo and the paymentTime.

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.

Note: The recommended format is [Terminal ID][Message Type Code][Running Number].
"20090XX110000001"
sellerIdYesString6Provided by FINEXUS to identify the seller or taxpayer (the Merchant) for e-Invoice processing.

Note: If no e-invoice is available, default to '000000'.
"000000"
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.

Note: It is required if isInvoiceReq is "Y"

Object: payment

Field NameRequiredTypeLengthDescriptionExample
mrnYesString40An unique reference number assigned by POS system to identify the 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"

Object: invoice

Field NameRequiredTypeLengthDescriptionExample
invNoYesString22Invoice Number.

Note: For new invoice submit requests, this field should contain the new invoice number.
For cancel or refund requests, this field should contain the new invoice number for the refund or credit note.
"2024070712121200000001"
oriInvNoConditionalString22Original Invoice Number.

Note: This field is mandatory for cancellation or refund requests, as it allows KPOS to associate the request with the correct original transaction.
"2024070712121200000001"
invDtYesNumber8Invoice Date.

Note: Format: yyyymmdd
"20240707"
invTmYesNumber6Invoice Time.

Note: Format: hhmmss
"121212"
invCurYesNumber3ISO 4217 numeric currency code of this transaction.

Note: Only support currency code 458
"458"
taxCurYesNumber3Tax currency code.

Note: Only support currency code 458
"458"
billFreqNoString2Billing frequency code."01" - Daily
"02" - Weekly
"03" - Biweekly
"04" - Monthly
"05" - Bimonthly
"06" - Quarterly
"07" - Half-yearly
"08" - Yearly
"09" - Others / Not Applicable
billStartDtConditionalString8Billing start date.

Note: Format: yyyymmdd
Mandatory when billFreq is not 09
"20240701"
billEndDtConditionalString8Billing end date.

Note: Format: yyyymmdd
Mandatory when billFreq is not 09
"20240731"
totalNetYesNumberTotal Net Amount.

Note: It is a sum of item.totalExclTax
"27800"
totalDiscNoNumberTotal discount amount.

Note: It is a sum of addAllowCharge.allowChargeAmt
"100"
totalFeeChargeNoNumberTotal fee / charge amount.

Note: It is sum of addAllowCharge.allowChargeAmt
"100"
totalExclTaxYesNumberTotal excluding tax.

Note: totalExclTax = totalNet – totalDisc + totalFeeCharge
"27800"
totalTaxYesNumberTotal tax amount.

Note: It is a sum of item.taxAmt
"0"
totalInclTaxYesNumberTotal include tax amount.

Note: totalInclTax = totalExclTax + totalTax
"27800"
pmtModeNoNumberPayment mode."01" - Cash
"02" - Cheque
"03" - Bank Transfer
"04" - Credit Card
"05" - Debit Card
"06" - e-Wallet / Digital Wallet
"07" - Digital Bank
"08" - Others
supplierAcctNoNoString150Supplier account number."SUPPLIER-ACC-001"
prePmtAmtNoNumberPre payment amount."100"
prePmtDtNoNumber8Pre payment date.

Note: Format: yyyyMMdd
"20240630"
prePmtTmNoNumber6Pre payment time.

Note: Format: hhmmss
"120000"
prePmtRefNoNoString150Pre payment reference number."PREPMT-REF-001"
roundAmtNoNumberRounding amount.

Note: Can be negative value.
Example: if negative MYR 0.10, the value is set at -10
if positive MYR 0.10, the value is set at +10
"-10"
totalPayableYesNumberTotal payable amount.

Note: totalPayable = totalInclTax-prePmtAmt+roundAmt
"27800"
billRefNoNoString150Bill reference number."BILL-REF-001"
itemsYesArrayThe individual invoice items that make up the invoice.
addAllowChargeNoArrayAdditional allowance / Charge.
shippingRecipientNoObjectShipping recipient.
denyIndividualEInvoiceNoString1Indicates whether the customer is prevented from requesting an individual e-invoice.

Note: Possible Values:
"Y" - Prevents the customer from requesting an individual invoice; the customer can view the invoice via the FIDU web/app.
"N" - Allows the customer to request an individual invoice.
If this field is not present, the default value is N.
"N"
eSignatureConditionalString512E-signature.

Note: Please refer to FINEXUS FIDU QR specification for detail.
This field is required for submit invoice and denyIndividualEInvoice is not present or 'N'
It is not applicable for getDocument response
"AbCDefghijklmnop"
pinCodeConditionalNumber6A 6 digit PIN code is used to protect the invoice from being claimed by an unauthorized person.

Note: Please refer to FINEXUS FIDU QR specification for detail.
This field is required for submit invoice and denyIndividualEInvoice is not present or 'N'
It is not applicable for getDocument response
"000000"

Object: invoice item

Field NameRequiredTypeLengthDescriptionExample
oriInvNoConditionalString22Original Invoice Number.

Note: It is mandatory for cancel or refund request.
"2024070712121200000001"
classCdeYesString3Classification code.

Note: Please refer to Appendix 6 for details.
"038" - Sports equipment, rental / entry fees for sports facilities or registration in sports competition
descYesString300Product / service description."Li-Ning Wind Lite"
uomNoString3Unit of measure."MTR" - metre
"EA" - each
"H87" - piece
"KGM" - kilogram
"LTR" - litre
unitPriceYesNumberUnit price."27800"
qtyNoString31Quantity.

Note: Allowable values: Numeric and "."
"1"
subtotalYesNumberSubtotal.

Note: subtotal = unitPrice*qty
"27800"
discRateNoNumberDiscount rate.

Note: Discount rate percentage out of 100
"10"
discAmtConditionalNumberDiscount amount.

Note: Mandatory when discRate is not empty
"100"
feeRateNoNumberFee / Charge rate."5"
feeAmtConditionalNumberFee / Charge amount.

Note: Mandatory when feeRate is not empty
"100"
totalExclTaxYesNumberTotal excluding tax.

Note: totalExclTax = subtotal-discAmt+feeAmt
"27800"
taxTypYesString2Tax Type."01" - Sales Tax
"02" - Service Tax
"03" - Tourism Tax
"04" - High-Value Goods Tax
"05" - Sales Tax on Low Value Goods
"06" - Not Applicable
taxRateConditionalNumberTax rate.

Note: Mandatory if taxTyp is not 06
"6"
taxExemptIndNoString1Tax Exemption Indicator.

Note: Possible values:
"Y" – Yes
"N" – No [Default]
"N"
taxExemptDtlConditionalString300Details of tax exemption.

Note: Mandatory if taxExemptInd=Y
"Tax exemption details"
taxExemptAmtConditionalNumberAmount exempted from tax.

Note: Mandatory if taxExemptInd=Y
"100"
taxAmtConditionalNumberTax amount.

Note: Mandatory if taxTyp is not 06
"100"
totalInclTaxYesNumberTotal including tax."27800"
prodTariffCdeNoString12Product tariff code."TARIFF-001"
oriCountryNoString3Country of origin."MYS" - Malaysia
"SGP" - Singapore
originSystemTypeNoString2Origin System Type."01"
originSystemNoString50Origin system."POS"
originModuleNoString50Origin module."SALES"
originBranchNoString50Origin branch."HQ"
originDeptNoString50Origin department."RETAIL"
originGLAccNoNoString20Origin GL Account Number."4000-001"
originGLTypeNoString1Origin GL Type."R"
originCustNoNoString20Origin customer number."CUST-001"
originAcctNoNoString20Origin account number."ACCT-001"
originProdTypNoString20Origin product type."RETAIL"
originTrxCdeNoString20Origin transaction code."SALE"
givenItemIdConditionalString64Item identifier assigned by the merchant.

Note: Mandatory if the menu item is configured in KBIZ.
"ITEM-038-001"

Object: allowance charge

Field NameRequiredTypeLengthDescriptionExample
allowChargeTypYesString1Allowance charge type."C" - Fee/Charge
"D" - Discount
allowChargeDescYesString100Allowance charge description."Delivery fee"
allowChargeAmtConditionalNumberAllowance charge amount."100"

Object: shipping recipient

Field NameRequiredTypeLengthDescriptionExample
nameNoString300Shipping recipient name."John Doe"
addr1YesString150Recipient address 1."Lot 66"
addr2NoString150Recipient address 2."Bangunan Merdeka"
addr3NoString150Recipient address 2."Persiaran Jaya"
stateYesString2Recipient state.

Note: Please refer to Appendix 7 for details.
"14" - W.P. KUALA LUMPUR
cityYesString50Recipient city."Kuala Lumpur"
postcodeNoString50Recipient postal code."50480"
countryYesString3Recipient country."MYS"
tinNoString16TIN of the shipping recipient assigned by the LHDN system."C12345678900"
idTypeNoString8NRIC, Passport number, Business registration number, army number.

Note: Possible values:
- NRIC
- PASSPORT
- BRN
- ARMY
"NRIC"
idValueNoString64The ID value that associated with the idType."200228105338"

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": "20090XX11000001",
"sellerId": "000000",
"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/xxx/mqpos-host/api/submit" \
-H "Accept: application/json" \
-H "Content-Type: text/plain" \
-H "Signature: ..." \
-H "sourceSystem: ..." \
-d '0011eyJlcGsiOnsia3R5IjoiRUMiLCJ...'