Test endpoint: https://mpqr-test.eftpos.com.sg/
Every API request requires the following HTTP headers to be included.
| Header Key | Description |
|---|---|
| Authorization | partner_id:base64_encoded_hmac_signature |
| X-Request-Date | the date of the request as per the format 'YYYY-MM-DDTHH:MM:SS.SSS' |
| Content-Type | the MIME type of the body of the request when present. Eg: "application/json" |
| Accept | the MIME type of the body of the response will present in Payment and Inquiry. |
Authenticate your account when using the API by computing a HMAC signature. The signature is obtained in 3 steps:
Initialize the payment transaction.
REQUEST BODY SCHEMA: application/json
| Field Id | Type | Required | Description |
|---|---|---|---|
| merchant_id | string | Mandatory | Provided by ASCAN. |
| store_id | string | Mandatory | Provided by ASCAN. |
| wallet_name | string | Mandatory | Provided by ASCAN. |
| gateway | string | Optional | Provided by ASCAN. |
| gateway_wallet_name | string | Optional | Provided by ASCAN. |
| transaction_id | string | Mandatory | It is an unique transaction reference. |
| orderId | string | Mandatory | It is an unique order reference. |
| currency | string | Mandatory | Like 'SGD', 'USD' |
| amount | integer | Mandatory | Sale amount with no decimal point. |
| redirectURL | string | Mandatory | Return redirect URL for merchant website. |
| notificationURL | string | Optional | Notification URL for merchant |
| { | ||
| "merchant_id": "600054000000384", | ||
| "store_id": "60006371" | ||
| "wallet_name": "ATOME" | ||
| "transaction_id": "1657878693315" | ||
| "orderId": "ORD1657878693315" | ||
| "currency": "SGD" | ||
| "amount": "5000" | ||
| "redirectURL": "http://mpqr-test.eftpos.com.sg:3000/callback" | ||
| "notificationURL": "https://mpqr-test.eftpos.com.sg/app/api/ecommerce/v1/otc/atome/webhook" | ||
| } | ||
| { | ||
| "merchant_id": "600054000000384" | ||
| "store_id": "60006371" | ||
| "wallet_name": "ATOME" | ||
| "gateway": "false" | ||
| "gateway_wallet_name": null | ||
| "transaction_id": "1657878693315" | ||
| "orderId": "ORD1657878693315" | ||
| "currency": "SGD" | ||
| "amount": "5000" | ||
| "partnerTxnReference": null | ||
| "redirectUrl": null | ||
| "qrCode": "https://app.apaylater.net/qr/05146751c07a41b5b25a6a5976f3b08f" | ||
| "htmlData": null | ||
| } | ||
Payment Inquiry.
REQUEST BODY SCHEMA: application/json
| Field Id | Type | Required | Description |
|---|---|---|---|
| merchant_id | string | Mandatory | |
| store_id | string | Mandatory | |
| transaction_id | string | Mandatory | Original Transaction reference |
| { | ||
| "merchant_id": "600054000000384" | ||
| "store_id": "60006371" | ||
| "transaction_id": "1657878693315" | ||
| } | ||
| { | ||
| "merchant_id": "600054000000384" | ||
| "store_id": "60006371" | ||
| "wallet_name": "ATOME" | ||
| "gateway": "false" | ||
| "gateway_wallet_name": null | ||
| "transaction_id": "1657878693315" | ||
| "orderId": "ORD1657878693315" | ||
| "currency": "SGD" | ||
| "amount": "5000" | ||
| "partnerTxnReference": null | ||
| "status": "PROCESSING" | ||
| } | ||
Online payment acquirer callback (Front channel means browser redirect).
REQUEST PATH PARAMETERS:
| Field Id | Type | Description |
|---|---|---|
| wallet_name | string | Should send wallet name in Path value |
| txn_ref | string | Original Transaction reference |
| { | ||
| "error": { "error_code": "Bad_Request", "error_description": "string" }, |
||
| "status": "F" | ||
| } | ||
Online payment acquirer webhook (Back channel means acquirer post web hook message to paypoint).
REQUEST PATH PARAMETERS:
| Field Id | Type | Description |
|---|---|---|
| wallet_name | string | Should send wallet name in Path value |
| { | ||
| "error": { "error_code": "Bad_Request", "error_description": "string" }, |
||
| "status": "F" | ||
| } | ||