The 'Transaction Type' in the MPI request informs Paydee’s MPI Server on what the request is.
The subsequent sections describe the different Transaction Type supported.
You should initiate a request with this transaction type, when you wanted to initiate payment
E.g
i. Key Exchange
ii. Request
[MPI Server will render the Payment Page.]
[You might have additional approved payment methods, too. If you want more payment method, do speak with our sales.]
If you are building your own payment page that fits your brand visual. You should render your payment page & collect payment detail before performing the following sequence.
i. Key Exchange
ii. Request
Note: Make sure you sent the payment method accordingly
For Card payment, the MPI server would authenticate the cardholder. During authentication:
i. Checks the 3DS version the card is enrolled in
ii. Initiate challenge/frictionless flow
Void a SALES transaction. Use Refund for transaction that has been settled.
To refund for transaction that has been settled. You may perform partial refund.
This message checks the status of a transaction. Merchants are highly recommended to implement INQ before re-attempting a new SALES when the following occurs:
i. No response (time out)
ii. Cardholder closes browser
The transaction status will be returned in MPI_ERROR_CODE field
ERROR CODE | CODE DEFINITION |
---|---|
000 |
Transaction Successful |
001 |
Transaction Failed |
002 |
Transaction Was Cancelled |
003 |
Transaction Has Expired (Time Out) |
004 |
Transaction In Progress |
These 2 transaction types are part of Paydee’s Split Payment API. They are used to initialise Recurring (subscription) Payment. When the MPI Service receives this request, it will authenticate the cardholder. During the authentication:
i. MPI checks the 3DS version the card is enrolled in
ii. MPI initiates challenge/frictionless flow
Message Type | Settlement Schedule |
---|---|
PRERECURR |
No |
INITRECURR |
Yes (End of the day - 11 p.m.) |
The cardholder will receive notification from the Issuing Bank that RM1.00 (or another amount set by the merchant) has been charged on his/her card.
The RM1.00 will be returned to the cardholder if the message type is PRERECURR because the transaction will not be settled.
Important control parameters for PRERECURR/INITRECURR.
CONTROL | USES |
---|---|
Frequency |
Controls interval between payments (in days) |
Expiry |
Controls when the split payment arrangement shall end |
Count |
Controls the maximum number of payments |
Maximum Amount |
Controls the maximum payment amount |
Total Amount |
Controls the accumulated payment amount |
Terminate |
Terminates the split payment |
These messages should be triggered from the cardholder’s browser.
This recurring event attempts to charge the cardholder for the services they subscribe to at predefined intervals. This should be triggered automatically by the Merchant’s Application Server at the right interval without cardholder intervention. The cardholders might receive a notification from their Issuing Bank that their card has been charged.
This is part of Paydee’s Split Payment API. Use this transaction type to initiate Installment Payment. Installment Payment is prefered if the amount and number of payment (installment) is known.
When the MPI Service receives this request, it will authenticates the cardholder. During the authentication:
i. MPI checks the 3DS version the card is enrolled in
ii. MPI initiates challenge/frictionless flow
Important control parameters for INITINSTL
CONTROL | USES |
---|---|
Frequency |
Controls interval between payments (in days) |
Expiry |
Controls when the split payment arrangement shall end |
Count |
Controls the maximum number of payments |
Maximum Amount |
Controls the maximum payment amount |
Total Amount |
Controls the accumulated payment amount |
Terminate |
Terminates the split payment |
This recurring event attempts to charge the cardholder for the agreed installment payment at predefined intervals. This should be triggered automatically by the Merchant’s Application Server at the right interval without cardholder intervention. The cardholders might receive a notification from their Issuing Bank that their card has been charged.
This terminates an installment payment programme prematurely.
This transaction type is triggered from the cardholder's browser. It is used when the final amount may not be known in advance. The amount pre-authorised will not be settled immediately. It is primarily used to authenticate the identity of the cardholder and check if the cardholder has sufficient credit to complete the payment later.
This message is used to finalise the PREAUTH transaction and charge the cardholder with the final amount. If the final amount exceeds the initial PREAUTH amount by 20%, the transaction will be rejected. Therefore, we recommend merchant to:
i. Track & monitor cardholder spending. Perform a SALESCOMP to complete the transaction and reinitiate another PREAUTH.
ii. PREAUTH with a pre-agreed amount and any additional incurred amount.
The merchant can always SALESCOMPL with an amount that is less than the PREAUTH amount.
Download the message file here or use the table below to guide you what to pack in the MPI Request message.
SALES
|
VSALES
(VOID) |
REFUND
|
INQ
(Inquiry) |
PRE/INIT RECURR
(Initialize Recurring) |
RECURR
(Recurring) |
INITINSTL
(Initialize Installment) |
INSTL
(Installment) |
TERMINATE
(Cancel Split Payment) |
PREAUTH
|
SALESCOMPL
(Sales Complete) |
|
---|---|---|---|---|---|---|---|---|---|---|---|
MPI_TRANS_TYPE | M | M | M | M | M | M | M | M | M | M | M |
MPI_MERC_ID | M | M | M | M | M | M | M | M | M | M | M |
MPI_PAN | C | C | C | C | |||||||
MPI_PAN_EXP | C | C | C | C | |||||||
MPI_CVV2 | C | C | C | C | |||||||
MPI_CARD_HOLDER_NAME | M | M | M | M | |||||||
MPI_PURCH_AMT | M | M | M | M | M | M | M | M | M | M | M |
MPI_PURCH_CURR | M | M | M | M | M | M | M | M | M | M | M |
MPI_TRXN_ID | M | M | M | M | M | M | M | M | M | M | M |
MPI_ORI_TRXN_ID | M | M | M | M | M | M | M | ||||
MPI_PURCH_DATE | M | M | M | M | M | M | M | M | M | M | M |
MPI_ADDR_MATCH | O | O | O | O | O | O | O | O | O | O | O |
MPI_BILL_ADDR_CITY | C | C | C | C | C | C | C | C | C | C | C |
MPI_BILL_ADDR_STATE | C | C | C | C | C | C | C | C | C | C | C |
MPI_BILL_ADDR_CNTRY | C | C | C | C | C | C | C | C | C | C | C |
MPI_BILL_ADDR_POSTCODE | C | C | C | C | C | C | C | C | C | C | C |
MPI_BILL_ADDR_LINE1 | C | C | C | C | C | C | C | C | C | C | C |
MPI_BILL_ADDR_LINE2 | C | C | C | C | C | C | C | C | C | C | C |
MPI_BILL_ADDR_LINE3 | C | C | C | C | C | C | C | C | C | C | C |
MPI_SHIP_ADDR_CITY | O | O | O | O | O | O | O | O | O | O | O |
MPI_SHIP_ADDR_STATE | O | O | O | O | O | O | O | O | O | O | O |
MPI_SHIP_ADDR_CNTRY | O | O | O | O | O | O | O | O | O | O | O |
MPI_SHIP_ADDR_POSTCODE | O | O | O | O | O | O | O | O | O | O | O |
MPI_SHIP_ADDR_LINE1 | O | O | O | O | O | O | O | O | O | O | O |
MPI_SHIP_ADDR_LINE2 | O | O | O | O | O | O | O | O | O | O | O |
MPI_SHIP_ADDR_LINE3 | O | O | O | O | O | O | O | O | O | O | O |
MPI_EMAIL | M | M | M | M | M | M | M | M | M | M | M |
MPI_HOME_PHONE | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 |
MPI_HOME_PHONE_CC | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 |
MPI_WORK_PHONE | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 |
MPI_WORK_PHONE_CC | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 |
MPI_MOBILE_PHONE | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 |
MPI_MOBILE_PHONE_CC | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 | C1 |
MPI_RESPONSE_TYPE | O | O | O | O | O | O | O | O | O | O | O |
MPI_RECURRING_FREQUENCY | M | M | |||||||||
MPI_RECURR_EXPIRY | M | M | |||||||||
MPI_RECURR_MAX_CNT | M | M | |||||||||
MPI_RECURR_MAX_AMT | M | M | |||||||||
MPI_RECURR_MAX_TOTAL | M | M | |||||||||
MPI_MAC | M | M | M | M | M | M | M | M | M | M | M |
Effective 12 February 2024, Visa requires merchants to provide these data fields to authenticate the cardholders.
Rule #1. Merchants must capture and send the billing address, except in countries where the billing address field does not exist:
Rule #2. Merchants must capture and send:
Rule #3. At least contact number (work, home or mobile) should be provided: