Skip to main content
VietQR is the standard QR payment method in Vietnam. Customers pay by scanning a QR code with the banking app of a participating Vietnamese bank. Payrails processes VietQR through two payment service providers (PSPs). The flow is the same with each one, but the required request fields and the supported workflows differ. Pick a PSP below for its setup steps and request examples.

How a VietQR payment works

VietQR is a redirect QR payment method:
  1. The customer selects VietQR at checkout.
  2. Payrails returns a redirect URL from the PSP, and the customer goes to a hosted page that shows a QR code.
  3. The customer scans the QR code with their banking app and confirms the payment.
  4. The PSP sends the customer back to your returnInfo URL.
  5. Payrails receives the final result from the PSP and updates the payment.
Each payment is single-use: the customer confirms every payment on its own. Payrails captures VietQR payments immediately, so a successful payment is final. To return funds, refund the payment.

Supported currencies and countries

VietQR supports VND (Vietnamese dong) as its only presentment currency.

Integrate VietQR

Choose the PSP that processes VietQR for you. Each guide covers the PSP-side setup, the Payrails configuration and the request fields that PSP requires.

2C2P

VietQR via 2C2P

dLocal

VietQR via dLocal

Compare PSPs

Neither PSP supports saving a VietQR instrument or merchant-initiated transactions (MIT). Each VietQR payment is a new customer-initiated payment.

Ways to integrate VietQR

  • Payrails SDK: the Web SDK shows VietQR when your workflow returns it as a payment option, and redirects the customer to the QR code page. To control how the redirect opens, listen for the actionRequired event.
  • Payrails API: call lookup payment options, then authorize with vietQR as the paymentMethodCode. Each PSP guide lists the meta fields that PSP requires.
In both cases, confirm the final result through webhook notifications or the execution status. Don’t treat the customer’s return to your success URL as proof of payment.
Last modified on October 2, 2026