Create a payment QR code
Authorization
authorization Set Your Secret API Key
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Payment QR code network.
Amount to collect, specified in the currency's minor units (e.g. in MYR, specify 1250 for MYR 12.50).
1 <= value <= 20000000Three-letter ISO 4217 currency code in full uppercase.
The QR code will be valid for this duration, after which payment QR code scanning applications will reject it.
int32ID of the Internal Account to be linked to the payment QR code as the payment recipient. Use List Internal Accounts to find the ID of the account that should receive payments.
1 <= lengthAn identifier for this payment, typically unique. The same value will appear in the corresponding transaction notification and bank statement entry, allowing you to reconcile with this payment.
0 <= length <= 25Payment QR code network.
Amount to collect, specified in the currency's minor units (e.g. in HKD, specify 1250 for $12.50). For HK FPS: if amount is omitted, the amount is editable by the payer in the bank app; if amount is provided and amountEditable is false, the amount is fixed; if amount is provided and amountEditable is true, the amount is pre-filled but editable.
1 <= value <= 40000000Applicable when amount is specified. If set to true, the amount can be edited by the payer when scanning the QR code.
Three-letter ISO 4217 currency code in full uppercase.
The QR code will be valid for this duration, after which payment QR code scanning applications will reject it. For FPS type, a value of 0 may be used to indicate a non-expiring (static) QR code, subject to bank support.
int32Type of the payment recipient's proxy (e.g. mobile phone number). This determines the value in proxyValue. E.g. if you specify FPS_ID here, proxyValue should be a valid FPS ID.
Value in
- "MOBILE"
- "FPS_ID"
- "EMAIL"
Payment recipient's proxy (e.g. mobile phone number, email address). The value here is determined by proxyType. For the FPS payment method, proxyValue should follow these formats:
EMAILproxy type: An email address registered with the FPS system as a proxy identifier. E.g:example@email.com.MOBILEproxy type: A mobile phone number registered with FPS, including the Hong Kong country code +852. Must follow the format+852XXXXXXXX, whereXis a digit and the number must be 8 digits long (excluding country code). E.g:+85212345678.FPS_IDproxy type: A numeric FPS proxy identifier issued by a bank or financial institution in Hong Kong. Must be 7 or 9 digits long. E.g:123456789.HKIDproxy type: A Hong Kong Identity Card number registered with FPS. The value may be provided either with or without parentheses. For example, if the HKID isA123456(7), bothA123456(7)andA1234567are accepted. Note that HKID is only accepted whenbeneficiaryType=INDIVIDUAL.
An identifier for this payment, typically unique. The same value will appear in the corresponding transaction notification and bank statement entry, allowing you to reconcile with this payment.
0 <= length <= 25Payment QR code network.
Amount to collect, specified in the currency's minor units (e.g. in SGD, specify 1250 for $12.50).
1 <= value <= 20000000If set to true, the amount can be edited by the payer when scanning the QR code.
Three-letter ISO 4217 currency code in full uppercase.
The QR code will be valid for this duration, after which payment QR code scanning applications will reject it.
int32Type of the payment recipient's proxy (e.g. mobile phone number). This determines the value in proxyValue. E.g. if you specify UEN here, proxyValue should be a valid UEN.
Value in
- "MOBILE"
- "UEN"
- "VPA"
- "NRIC"
Payment recipient's proxy (e.g. mobile phone number). The value here is determined by proxyType. For the PayNow payment method, proxyValue should follow these formats:
MOBILEproxy type: A valid Singapore mobile number including the country code (+65): +65XXXXXXXX. E.g: +6592345678.UENproxy type: A valid Unique Entity Number (UEN) issued by ACRA. E.g: 202303536E.VPAproxy type: A valid Virtual Payment Address (VPA) issued by a non-bank Financial Institution (e.g. digital wallets). The exact format is determined by the issuer. E.g: +6592345678#ACME.
An identifier for this payment, typically unique. The same value will appear in the corresponding transaction notification and bank statement entry, allowing you to reconcile with this payment.
0 <= length <= 25Response Body
*/*
application/json
application/json
curl -X POST "https://example.com/v1/payment-qr-code" \
-H "Content-Type: application/json" \
-d '{
"type": "string"
}'A PayNow QR code for a fixed amount. qrCodeImageUrl serves the image to embed or print.
{
"type": "PAYNOW",
"proxyType": "UEN",
"proxyValue": "202303536E",
"amount": 1250,
"currency": "SGD",
"expirySeconds": 900,
"amountEditable": false,
"transactionReference": "INV10042",
"qrCodeImageUrl": "https://acme-paynow-qr-code.s3.ap-southeast-1.amazonaws.com/qr/INV10042.png"
}