Search...
Log inGet started
Airwallex logo
Home
Core API
Payments
Transactional FX
Payouts
Issuing
Back to home
OverviewChoose your payments solutionGet started with payments
Supported currencies
Online payments
Invoice integrations
Payment methods
Payment Methods OverviewGlobal
EU & UK
APAC
7-Eleven
Alipay CN
Alipay HK
Atome
Boost
DANA
DOKU Wallet
Dragonpay
DuitNow
E.SUN (Taiwan ATM & Internet banking)
FPS
FPX
GCash
GoPay
GrabPay - Malaysia
GrabPay - Singapore
Indonesian Bank Transfer
Indonesian Convenience Stores - BETA
Jenius Pay
Kakao Pay
Kiosk Payments
Konbini
Korean Local Cards - BETA
LinkAja
Naver Pay - BETA
OVO
Pay-easy
Payco - BETA
PayNow
Philippines Online Banking
PromptPay
Rabbit LINE Pay
Samsung Pay - BETA
ShopeePay
Taiwan Convenience Stores
Tesco Lotus
Thailand Online Banking
Toss Pay - BETA
Touch 'n Go
Pay with QR Code (Desktop Website Browser) - Touch 'n Go
Mobile Website Browser - Touch 'n GoMobile App - Touch 'n Go
TrueMoney
WeChat Pay
Zip - BETA
NORTH AMERICA & LATAM

Pay with QR Code (Desktop Website Browser) - Touch 'n Go

Accept Touch 'n Go payments on your website by presenting your QR code to the shopper.

Step 1. Initialize a Payment Intent

Create a Payment Intent with the Create a Payment Intent API API.

JSON

Step 2. Generate and render the QR code to the shopper

2.1. Obtain the string representation of the QR code and the fallback URL

When a shopper selects to pay with Touch 'n Go on their desktop browser, call the Confirm a Payment Intent API API to get:

  • a string representation of the QR code.
  • a fallback URL pointing to the Touch 'n Go page.

POST /api/v1/pa/payment_intents/{id}/confirm

JSON

You will get a response similar to the following.

JSON

2.2. Present the QR code to the shopper or redirect the shopper to the Touch 'n Go page

You can render the QR code image with next_action.qrcode returned in the confirm Payment Intent response and present it to the shopper. Shoppers will complete payment after scanning the QR code within the Touch 'n Go mobile app.

There are publicly available libraries for different programming languages that render a QR code image from its string representation. For example, if you use JavaScript, you may use qrcode to facilitate the conversion. Firstly get a Base64-encoded image string with the qrcode library:

JavaScript

Then place the image string into the src field of the img element.

HTML

In case the QR code cannot be displayed, you should redirect the shopper to the Touch 'n Go page with the next_action.url returned in the confirm Payment Intent response. Shoppers will be able to continue the payment by scanning the QR code rendered by Touch 'n Go on that page.

Once generated, the QR code and the URL will expire in 10 minutes. Confirming the Payment Intent again with Touch 'n Go or other payment methods will lead to the invalidation of both the QR code and the URL.

Step 3. Query the payment result status

To get the payment result, we suggest you poll the status of the Payment Intent via the Retrieve a Payment Intent API API.

GET /api/v1/pa/payment_intents/{id}

  • If you directly rendered and presented the QR code to the shopper, you should start polling the status immediately.
  • If you redirected the shopper to the Touch 'n Go page, you may start polling the Payment Intent status after the shopper is redirected back to your website, i.e., the return_url passed when creating the Payment Intent.

In addition, Airwallex will notify you of the payment result asynchronously via the webhooks. Please refer to the webhook documentation to set up your webhook accordingly. Although subscribing to webhook events is optional, it is recommended to subscribe to the payment_intent.succeeded webhook which indicates that the shopper has paid the order.