Integration GuideAPI Reference
Integration Guide

"VietQR" Payment Method

Payment Method Definition

📓

displayedPaymentMethods

It is a parameter in the Intent creation request that defines which payment method should be displayed to the payer on the checkout form. It is an alternative to paymentMethodName in host-to-host integration

This parameter is provided in: paymentIntent.formDetails.displayedPaymentMethods

For this method you need to provide VietQR value


Payment Method Features

FeatureValue
CountryVietnam
Processing CurrenciesVND
PaymentsYes
DisbursementsYes
RefundsNo
ChargebacksNo

Workflow

Download in high resolution


Create Intent Request

Specifics

  • We use one unified Intent creation request for all supported payment methods: POST /processing/api/v1/intents
  • The overall structure is the same, but some fields change depending on the payment method and the way of integration: Host-to-Host or Hosted Checkout.
    • For Host-to-Host we will expect you to complete Payment object
    • For Hosted Checkout we will expect you to complete PaymentIntent object
  • The required fields depend on the selected method, so this section must be completed carefully.
  • The key difference is which object you provide in the request and at what stage the actual payment is created

'Intent' vs 'Payment' vs 'PaymentIntent'

Some objects and parameters in this API may appear similar, but they represent different concepts and are used in different integration scenarios. The explanation below clarifies the purpose of each term.

TermMeaning
Intent
  • A universal top-level container for transaction-related operations.
  • Depending on the integration scenario, it may contain objects such as Payment, PaymentIntent, or other transaction types.
Payment
  • Used in Host-to-Host integrations.
  • You provide the payment method, payment instrument, amount, currency, and other payment details upfront because the payment flow is handled on your side.
PaymentIntent
  • Used in Hosted Checkout integrations.
  • It contains the order details and checkout configuration, but not the full payment instrument data.
  • The actual Payment object is created later, when the payer completes the checkout form.
  • Multiple payment attempts might occur within one Intent. But all of them follows the rules and configuration defined in the corresponding PaymentIntent.

Request/Response Description

Request Description

{
  "clientReferenceId": "1234",
  "useCheckoutForm": true,
  "paymentIntent": {
    "formDetails": {
      "template": "string",
      "displayedPaymentMethods": ["VietQR"],
      "backToStoreRedirectUrl": "string"
    },
    "submittedAmount": {
      "value": 1000000,
      "currency": "VND"
    },
    "description": "Vertex - INTENT 1234",
    "webhookUrl": "webhookUrl"
  }
}

Top-Level Request Parameters

ParameterTypeRequiredDescription
clientReferenceIdStringRequiredOrder number in the merchant system.
useCheckoutFormBooleanConditionalOptional in general.
Must be set to true when using the Checkout Form integration.
paymentIntentObjectConditionalOptional in general.
Must be provided when using the Checkout Form integration.
descriptionStringOptionalOrder description.
Displayed if paymentIntent.description is not provided.
merchantObjectOptionalMerchant information.
Required if the store name must be displayed on the checkout form.


paymentIntent

ParameterTypeRequiredDescription
formDetailsObjectOptionalCheckout parameters
submittedAmountObjectRequiredOrder amount and currency
descriptionStringOptionalOrder Description that can be displayed on the Checkout Form.
webhookUrlStringRequiredURL to which we will send webhooks related to payments created within the Intent and their status changes


formDetails

ParameterTypeRequiredDescription
templateStringOptionalThe name of the checkout template to be used.
Multiple templates can be configured and selected for different use cases
displayedPaymentMethodsArray of StringsOptionalList of payment methods to be made available to the payer.
If only one payment method is provided, no selection screen is shown and the payer is taken directly to that payment method
backToStoreRedirectUrlStringOptionalURL to which the payer is redirected if they leave the Checkout Form or after payment completion. Must start with "https://".


submittedAmount

ParameterTypeRequiredDescription
valueNumberRequiredSubmitted order amount.
May differ from the authorised amount if FX conversion is applied.
currencyStringRequiredSubmitted order currency.

May differ from the authorised amount if FX conversion is applied.


merchant

ParameterTypeRequiredDescription
nameStringOptionalThe name of store, that might be displayed on the checkout form if configured
websiteStringOptionalThe website of the store


Webhooks

🔗
  • After the checkout form is created, the payer can make multiple payment attempts during the payment session lifetime.

    • By default, the session remains active for 20 minutes, although this value can be changed by your integration manager.
    • The platform sends webhooks to the URL provided in paymentIntent.webhookUrl from the request whenever the status of the payment changes.

    For more information about payment webhooks, see the dedicated page




Did this page help you?