One-Time Payment
1. Create a Payment
To start accepting payments on your website, app or platform, create a Payment
object with the order details.
A Payment
object captures the life cycle of a payment, keeping track of the history of payment attempts and the flow of the payment's statuses. Below is an example of calling a One-Time PayNow QR API.
curl https://sandbox.xfers.io/api/v4/payments \
--header 'content-type: application/vnd.api+json' \
-u test_api_key:secret_key \
-d '
{
"data": {
"attributes": {
"amount": "0.1",
"referenceId": "pennytest_1",
"paymentMethodType": "paynow",
"expiredAt": "2020-12-03T20:03:53+07:00",
"paymentMethodOptions": {
"merchantPrefix": "PHOHANOI"
}
}
}
}
2. Show payment instructions to your customers if any
This is a sample response you will get.
# Sample Response
{
"data": {
"id": "contract_e5855b3297304ec78b904bdb08ae1685",
"type": "payment",
"attributes": {
"status": "pending",
"amount": "0.1",
"createdAt": "2020-12-03T17:19:15+08:00",
"description": null,
"expiredAt": "2020-12-03T20:03:53+07:00",
"referenceId": "pennytest_1",
"fees": "0.0",
"paymentMethod": {
"id": "paynow_5e9f826617f35e45ea3a1e5464ee28b4",
"type": "paynow",
"qrCodeDisplayImage": "iVBORw0KGgoAAAANSUhEUgAAAMMAAADDCAYAAAA/f6WqAAAABGdBTUEAALGPC/.../wNy78pYJ3AiFQAAAABJRU5ErkJggg=="
}
}
}
}
3. Get notified when payment has been made successfully
Once a payment has been made successfully, we will notify you with a callback. The payment's status will now be paid
.
# Sample Callback for one-time Paynow QR
{
"data": {
"id": "contract_e5855b3297304ec78b904bdb08ae1685",
"type": "payment",
"attributes": {
"status": "paid",
"amount": "0.1",
"createdAt": "2020-12-03T17:19:15+08:00",
"description": null,
"expiredAt": "2020-12-03T20:03:53+07:00",
"referenceId": "pennytest_1",
"fees": "0.0",
"paymentMethod": {
"id": "paynow_5e9f826617f35e45ea3a1e5464ee28b4",
"type": "paynow",
"qrCodeDisplayImage": "iVBORw0KGgoAAAANSUhEUgAAAMMAAADDCAYAAAA/f6WqAAAABGdBTUEAALGPC//wNy78pYJ3AiFQAAAABJRU5ErkJggg=="
}
}
}
}
# Sample Callback for one-time Virtual Account
{
"data":{
"id":"contract_1279afd994c744d2888204805396eb4f",
"type":"payment",
"attributes":{
"status":"paid",
"amount":"101.0",
"createdAt":"2022-02-10T14:50:16+08:00",
"description":"This is the first order",
"expiredAt":"2022-06-20T17:48:42+07:00",
"referenceId":"ORDER_0009jlsdjfdfgs",
"fees":"0.0",
"paymentMethod":{
"id":"va_12ef56604fc143db504c4e611a40e373",
"type":"virtual_bank_account",
"referenceId":"ORDER_0009jlsdjfdfgs",
"instructions":{"bankShortCode":"CIMB","accountNo":"8848095729011529"}
}
}
}
}
Present the payment results to your customer, and you may now fulfil your order.
4. Get notified when funds are available for withdrawal or transfer
In most cases, funds may not be immediately available for withdrawal or transfer. We will notify you with a callback when funds have been made available. The payment's status will then be set to completed
.
Updated over 2 years ago