IPN
Instant Payment Notification
Merchant can get payment result via IPN (Instant Payment Notification).
Merchant needs to build a RESTful API to receive data from NeoX after the transaction is completed. This API must be registered to NeoX before the payment is made
Method: POST
Data refer to NeoX's IPN data.
Merchant has to respond to NeoX following the structure merchant response when receiving IPN.
Process Flow
How to verify the IPN
How to validate neo_SecureHash
Format: hex string, 64 characters, uppercase
Using cryptographic hash function HMAC-SHA256
How to build
Input is all parameters on PaymentURL or ReturnURL.
Only use parameters that start with prefix neo_.
String must be sorted in alphabetical order base on parameter name.
NeoX will provide a Secret Key to merchant to hash.
IPN verification
Merchant needs to build a hashed string follow above guide and compare to received neo_SecureHash parameter
NeoX's IPN data
Parameter | Data type | Description |
---|---|---|
neo_MerchantCode | String | The merchant code is provided by NeoX. |
neo_Currency | String | Refer to table of error code |
neo_Locale | String | The language will use on payment page, support: “vi”, “en". |
neo_Version | String | Payment gateway version, “1” as default |
neo_Command | String | "PAY" as default. |
neo_Amount | Number | Order amount. |
neo_MerchantTxnID | String | Transaction ID is provided by merchant, it must be unique on merchant’s system and on each request, accept only characters, numerics and list of symbols: “-”, “_”. |
neo_OrderID | String | Order ID of the transaction, only accept characters, numerics and list of symbols: “-”, “_”. |
neo_OrderInfo | String | Order information, max length 256 |
neo_TransactionID | String | Unique - Transaction ID is generated by NeoX. |
neo_PayToken | String | Using for Tokenization service |
neo_ResponseCode | Number | Result of transaction: 0: transaction success != 0: transaction failed, refer to table of error code |
neo_ResponseMsg | String | Error description. |
neo_SecureHash | String | Use SHA256 to hash the above parameters (sort the key by Alphabet order) + Secret Key (is provided by NeoX after actual integrating). |
Some fields in IPN data but not using to create neo_SecureHash
Parameter | Data type | Description |
---|---|---|
neo_TransAmount | number | Transaction amount (partial payment). |
neo_ExtData | Object | Extra data of transaction. |
Merchant response
Parameter | Data type | Description |
---|---|---|
respcode | Number |
|
respmsg | String | Error message. Default is “received” |
Last updated