Developer Suite
Register Sandbox
Register Sandbox
    • Overview
    • API Endpoints
    • Ecommerce Checkout
      • Purchase
        POST
      • Get a transaction details
        POST
      • Close transaction
        POST
      • Check transaction
        POST
      • Refund API
        POST
      • Get transaction list
        POST
      • Exchange rate
        POST
    • Plugins
      • Shopify
      • Prestashop
      • Woocommerce
      • Odoo eCommerce
    • Credentials on File
      • Unschedule Payment
      • Schedule Payment
      • Link Account
        POST
      • Link Card
        POST
      • Payment
        POST
      • Renew Token
        POST
      • Get token details
        POST
      • Remove token
        POST
      • Subscription
        POST
    • ABA QR API
      • QR API
        POST
    • Payment Link
      • Create payment link
        POST
      • Get payment link details
        POST
    • Pre-auth
      • Complete pre-auth transactions
      • Complete pre-auh transaction with payout
      • Cancel pre-purchase transaction
    • Payout
      • Payout
      • Update a beneficiary status
      • Add a beneficiary to whitelist
    • KHQR Guideline
      • Get transactions
    • Resources

    ABA QR API

    1. Introduction#

    The ABA QR API is a payment solution that allows businesses to generate dynamic QR codes for customers to scan and pay using ABA KHQR, WeChat Pay, or Alipay.
    It enables fast and cashless transactions across multiple digital wallets and banking apps.
    retail-store.svg
    In-store API
    Retail store solutions
    Generate face-to-face payment codes at counters to link cashier systems with customer mobile wallets in real time.
    self-kiosk.svg
    Unattended UI
    Self kiosk service
    Power autonomous ticketing and food ordering terminals with dynamic QR codes and real-time webhook callbacks.
    parking-system.svg
    IoT hardware
    Parking systems
    Integrate boom barriers with timestamp-based fee calculations and hardware relay triggers on payment success.
    massage-chair.svg
    Micro-transactions
    Massage chair nodes
    Enable micro-payments with low-latency firmware callbacks that activate mechanical timers on payment confirmation.
    smart-vending.svg
    Instant dispense
    Smart vending slots
    Map inventory units to payment intents and trigger product release via slot allocation callbacks on checkout.
    self-laundry.svg
    App & hardware
    Self laundry service
    Deploy automated laundromats — scan a hub QR to authenticate and activate a specific washer via digital triggers.

    2. Set up your QR display UI#

    To ensure a smooth payment experience, your platform must include a UI to accommodate QR payment acceptance. This includes:
    A screen for customers to choose the payment options you offer (ABA PAY, WeChat or Alipay).
    An area to display the generated QR code for payment
    A confirmation/success screen after the payment is completed.
    You must follow PayWay QR payment display guidelines to ensure proper QR placement.

    3. Integration steps#

    Before you start, make sure you have the following:
    PayWay Sandbox Account – Register here to test transactions.
    Sandbox Merchant ID & API Key – You will receive these via email after registering for the sandbox.
    To integrate QR on Display, follow these steps:
    1
    Generate a QR Code (QR Payment API)
    Use the QR Payment API to generate a payment QR code and display it where customers can scan and pay.
    Upon a successful request, the API will respond with a JSON object containing all necessary information, which you can display in your preferred payment interface.
    Sample Response
    {
      "qrString": "000201010212...9",
      "qrImage": "data:image/png;base64, ---REMOVED DATA---",
      "abapay_deeplink": "abamobilebank://ababank.com?...63041A49",
      "app_store": "https://itunes.apple.com/a...0649?mt=8",
      "play_store": "https://play.google.com/...com.paygo24.ibank",
      "amount": 0.01,
      "currency": "USD",
      "status": {
        "code": "0",
        "message": "Success.",
        "trace_id": "65bdc1fde8eea8254a437e51b606b328"
      }
    }

    Customize QR Image Template (Optional)#

    The qrImage comes with various options to suit your needs. Please check API document (QR API) on how to customize the qrImage.
    The QR images included with the templates are high-resolution and can be up to 0.5 MB in size, which may cause network issues during download.
    If your production environments has internet constraints or if network optimization is needed, we recommend using the QR string to generate the QR code on your end. Use the KHQR frame template as a static frame for display.
    template1.png
    template2.png
    template3.png
    template4.png
    template5.png
    template6.jpg
    2
    Handle Callback URL for payment status updates
    Once a payment is made using the QR code, the payment gateway will send a payment notification to your callback_url.
    Your callback_url must accept HTTP POST method.
    Here is the sample response of callback notification:
    {
    "tran_id": "9065703303",
    "apv": "544415",
    "status": "0",
    "return_params": "{\"order_id\":\"123\",\"amount\":100,\"client_id\":\"1234567890\"}",
    "original_amount": 0.01,
    "original_currency": "USD",
    "payment_amount": 0.01,
    "payment_currency": "USD",
    "total_amount": 0.01,
    "discount_amount": 0,
    "transaction_date": "2026-08-03 13:57:20",
    "first_name": "",
    "last_name": "",
    "email": "",
    "phone": "",
    "bank_ref": "100FT40074059022",
    "payment_type": "ABA Pay",
    "payer_account": "003471222",
    "bank_name": "",
    "card_source": ""
    }
    

    tran_id string
    Payment transaction ID generated by the payment gateway.
    Max. Length: 20

    apv string
    Transaction approval code.
    Length: 6

    status string
    Request status code.
    Value: 0

    return_params string
    Additional return parameters encoded as a string containing order details and metadata.

    original_amount number
    Original transaction amount before discount.

    original_currency string
    Original transaction currency.eg. USD or KHR

    payment_amount number
    Amount that the customer has paid.

    payment_currency string
    Payment currency that the customer used to pay.
    eg. USD or KHR

    total_amount number
    Amount that customer suppose to pay after discount.

    discount_amount number
    Discounted amount and its currency follow original currency.

    transaction_date string
    Created date of the transaction in payment gateway database.
    Format: YYYY-MM-DD HH:MM:SS

    first_name string
    Payer's first name.

    last_name string
    Payer's last name.

    email string
    Payer's email.

    phone string
    Payer's phone number.

    bank_ref string
    Unique booking entry reference number from ABA Core banking system.

    payment_type string
    Payment method that the customer used to make payment. Possible values:
    ABA Pay — Transaction made with ABA Account (ABA Mobile)
    Alipay — Transaction made with Alipay
    Wechat — Transaction made with WeChat pay
    KHQR — Transaction made with KHQR
    VISA — Transaction made with Visa card
    MC — Transaction made with Mastercard
    JCB — Transaction made with JCB card
    CUP — Transaction made with UPI card

    payer_account string
    Masked ABA Account Number or Masked Card PAN. For other payment options, it will be blank.

    bank_name string
    If payment is made with ABA PAY, it will show ABA Bank and if payment made using KHQR it will show issuer bank name.

    card_source string
    Possible values:
    ONUS — Transaction is made with ABA bank card
    OFFUS_DOMESTIC — Transaction is made with other local bank card
    OFFUS_INTERNATIONAL — Transaction is made with other international bank card

    3
    Verify Payment Status
    In addition to verifying the payment status via callback_url, you must also use the Check transaction API to ensure the payment is successfully marked as PAID and was processed correctly.
    Previous
    Subscription
    Next
    QR API