Create a payment

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Dynamic PayNow QR

Dynamic PayNow QR allows you to create unique PayNow QR codes for each and every transaction. Upon getting the response, you will need to convert the base64 string to an image and display it to your customer.

There will be 2 callbacks fired:

  1. Payment completion by customer
  2. Crediting of funds to your account

For more information on PayNow, head over to PayNow QR.

Example of Dynamic PayNow request

# POST api/v4/payments/

{
"data": {
	"attributes": {
	    "amount": 1.05,
      "referenceId": "orderref001",
      "description": "This is the first order",
      "paymentMethodType": "paynow",
      "expiredAt": "2024-09-13T17:48:42+07:00",
      "paymentMethodOptions": {
          "bankShortCode": "fazz"
      }
    }
	}
}

Example of Dynamic PayNow response

{
    "data": {
        "id": "order_579e3f86-80ad-4770-8bef-a85b4df6c7f5",
        "type": "payment",
        "attributes": {
            "status": "pending",
            "amount": "1.05",
            "currency": "SGD",
            "createdAt": "2024-08-30T22:03:03+08:00",
            "description": "This is the first order",
            "expiredAt": "2024-09-13T17:48:42+07:00",
            "referenceId": "orderref001",
            "fees": "0.0",
            "paymentMethod": {
                "id": "payment_method_d5e22df0-4fab-47f4-8abc-5f97ab40cce3",
                "type": "paynow",
                "instructions": {
                    "extEndToEndId": "paynowb82a9e631725026123",
                    "qrCodeDisplayImage": "iVBORw0KGgoAAAANSUhEUgAA..."
                },
                "referenceId": "orderref001"
            },
            "senderInformation": null
        }
    }
}

Dynamic Virtual Account

Dynamic Virtual Account (VA) allows you to create unique VAs for each and every transaction. You can tie your transactionID with a VA, e.g. txnID123 <> VA123.

If a transaction (e.g. txnID123) is Paid or Expired, subsequent transfers to the Virtual Account (e.g. VA123) will not be associated. These subsequent transfers will be refunded to the user to the originating bank account.

ParameterRequired?TypeDescription
amountMandatoryFloat (up to 2decimal places)Transaction Amount that user is required to pay/transfer.
referenceIdMandatoryStringThis is used for idempotency and should typically be a "transaction id" or "order id" on your platform.
DescriptionOptionalStringAn arbitrary string attached to the object.
paymentMethodTypeMandatoryStringMust always be "virtual_bank_account"
paymentMethodOptionsMandatoryStringAvailable options: "fazz", "cimb"
expiredAtMandatoryStringTimestamp to be in Time.iso8601.
Expiry limit within 1hour to 30days

Example of Dynamic VA request

# POST api/v4/payments/

{
"data": {
	"attributes": {
	    "amount": 1.00,
      "referenceId": "orderref005",
      "description": "This is the first order",
      "paymentMethodType": "virtual_bank_account",
      "paymentMethodOptions": {
        "bankShortCode": "fazz"
      },
      "expiredAt": "2024-09-20T17:48:42+07:00"
    }
}

Example of Dynamic VA response

{
    "data": {
        "id": "order_88b9a2bf-1168-4dfb-bbc9-25ab80385fe6",
        "type": "payment",
        "attributes": {
            "status": "pending",
            "amount": "1.0",
            "currency": "SGD",
            "createdAt": "2024-08-30T22:05:43+08:00",
            "description": "This is the first order",
            "expiredAt": "2024-09-20T17:48:42+07:00",
            "referenceId": "orderref005",
            "fees": "0.0",
            "paymentMethod": {
                "id": "payment_method_61a14365-42d4-4f91-8eea-e54d8d812e3b",
                "type": "virtual_bank_account",
                "referenceId": "orderref005",
                "instructions": {
                    "bankName": "Xfers Pte Ltd",
                    "bankShortCode": "FAZZ",
                    "accountNo": "5009889591238"
                }
            },
            "senderInformation": null
        }
    }
}
Body Params
string

To specify the currency for your payments. For now, only "SGD" is allowed.

string
required

Invoice amount

string
required

Your internal reference ID. Examples: customer ID; invoice ID. Please note that it has to be unique for each request.

The following character sets are the only acceptable ones:
- Lowercase letters: a-z
- Uppercase letters: A-Z
- Numerals: 0-9
- Special characters: ! # $ % & ' ( ) * + , - . / : ; '= ? @ [ ] ^ _ ` { | } ~
- Space character

string

Description of this transaction (contract) according to merchant.

The following character sets are the only acceptable ones:
- Lowercase letters: a-z
- Uppercase letters: A-Z
- Numerals: 0-9
- Special characters: ! # $ % & ' ( ) * + , - . / : ; '= ? @ [ ] ^ _ ` { | } ~
- Space character

string
required

The type of payment method. Accepts "paynow" or "virtual_bank_account"

paymentMethodOptions
object
required

For now, only "fazz" is allowed.

string

The date format adheres to ISO 8601 standards (e.g., 2020-12-03T20:03:53+07:00). The expiration limit ranges from 1 hour to 30 days. If this field is left empty, the default expiry time for VA is set to 24 hours, while for PayNow QR Codes, the default expiry time is 300 seconds.

Headers
string
Defaults to application/vnd.api+json
Responses

Language
Credentials
Basic
base64
:
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json