instalmentPlanID.| JSON path | Required | Format / values | Merchant instruction |
|---|---|---|---|
merchantTransInfo.merchantTransID | Yes | String, max 32 | Unique merchant ID for this inquiry. Preserve it for the payment request. |
merchantTransInfo.merchantTransTime | Yes | ISO 8601 | Merchant transaction time. |
paymentMethod.type | Yes | card or token | Select the matching card-data path. |
paymentMethod.encryptedCardInfo | Conditional | Encrypted payload | Use for a merchant without PCI DSS certification. |
paymentMethod.cardInfo.cardNumber | Conditional | PAN | Only for a PCI DSS-certified merchant. Do not use a real PAN in logs or test documents. |
paymentMethod.token.type | Conditional | gatewayToken or merchantToken | Applies when type is token; defaults to gatewayToken if omitted. Explicitly sending it is recommended. |
paymentMethod.token.value | Conditional | String | Required when paymentMethod.type is token. |
transAmount.currency | Yes | ISO 4217, e.g. HKD | Transaction currency. |
transAmount.value | Yes | Major-unit amount string, max 12 | Send the net amount after +FUN$ deduction when points are redeemed. |
transInitiator.paymentScenario | Yes | EC for E-commerce | Always send EC explicitly. The source notes an EC default if omitted, but explicit submission avoids ambiguity. |
metadata | No | String, max 512 | Echoed in the response; do not place sensitive card data in it. |
InstalmentPlanInquiry object. The exact outer envelope may follow the current EVO payment API contract. Refer to specification.merchantTransID; andinstalmentPlanID selected by the cardholder.| JSON path | Required for instalment | Value / instruction |
|---|---|---|
origMerchantTransInfo.merchantTransID | Yes | merchantTransInfo.merchantTransID from the original Instalment Plan Inquiry. |
tradeInfo.tradeType | Yes | Instalment |
tradeInfo.tradeTypeInfo.instalmentPlanID | Yes | Plan ID selected from the inquiry response. |
merchantTransInfo, card details, transAmount, transInitiator.platform, metadata, webhook, allowAuthentication, authenticationOnly, captureAfterHours, and returnURL. Their exact requirements and behavior are not redefined by the instalment source; use the current Payment API specification agreed during onboarding.payment.instalment:{
"payment": {
"status": "{paymentStatus}",
"instalment": {
"instalmentPlanID": "{selectedPlanId}",
"tenor": 12,
"handlingFeeRate": "{rateFromResponse}",
"totalAmount": "{totalAmountFromResponse}",
"totalFee": "{totalFeeFromResponse}",
"monthlyAmount": "{monthlyAmountFromResponse}"
}
}
}