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
    • Checkout Plugins
      • Prestashop
      • Woocommerce
    • Credentials on File
      • Link Account
        POST
      • Link Card
        POST
      • Purchase using token
        POST
      • Remove account token
        POST
      • Remove card token
        POST
      • Get linked account details
        POST
    • ABA QR API
      • QR API
        POST
    • Payment Link
      • Create payment link
        POST
      • Get payment link details
        POST
    • Pre-auth
      • Complete pre-auth transactions
        POST
      • Complete pre-auh transaction with payout
        POST
      • Cancel pre-purchase transaction
        POST
    • Payout
      • Payout
      • Update a beneficiary status
      • Add a beneficiary to whitelist
    • KHQR Guideline
    • Resources

    KHQR Guideline

    What is ABA KHQR?#

    A standardized QR code payment system overseen by the National Bank of Cambodia. It facilitates cashless transactions by allowing consumers and businesses to make and receive payments seamlessly using mobile banking apps or e-wallets. The system promotes digital payments, enhances financial inclusion, and ensures interoperability among different banks and payment service providers, making financial transactions more efficient and accessible across the country.
    📌
    Merchants who implement KHQR are required to make adjustments or changes upon request by ABA or in compliance with the National Bank of Cambodia's requirements. Failure to do so may result in the suspension or termination of the service.

    Benefits of KHQR#

    For Customers:#

    No more confusion with multiple QR codes at checkout—just scan a single KHQR code.
    Simply look for the KHQR label when making payments.
    Use your preferred payment app, including the Bakong App, to pay at any location that supports KHQR.

    For Merchants:#

    Save counter space—display just one KHQR stand instead of multiple QR labels.
    Simple, fast, and secure payment solution.
    Accept payments from anyone and any bank app without the need for multiple bilateral contracts with different acquirers.

    How to Implement#

    Notations Convention#

    AbbreviationDescription
    ansAlphanumeric Special. The Alphanumeric Special alphabet includes ninety-six (96) characters in total and includes the numeric alphabet and punctuation.
    CConditional
    CDCVMConsumer Device Cardholder Verification Method
    CRCCyclic Redundancy Check
    ECIExtended Channel Interpretation
    IDIdentifier of the data object
    ISOInternational Standards Organization
    MMandatory
    NNumeric. Values that can be represented by all digits, from "0" to "9".
    QR CodeQuick Response Code
    RFUReserved for Future Use
    SString. Values represented by any precomposed character(s) defined in [Unicode].
    Var.Variable

    Data Object#

    Data Objects Under the Root of a QR Code#

    NameIDFormatLengthPresenceComment
    Payload Format Indicator"00"N"02"M
    Point of Initial Method"01"N"02"M11 for Static QR (without amount)
    12 for Dynamic QR (with amount)
    Merchant Account Information"30"Nvar. up to "99"MProvide By ABA
    Merchant Category Code"52"ansEach var. up to "99"MAt least one Merchant Account Information data object shall be present.
    Transaction Currency"53"N"03"M
    Transaction Amount"54"ansvar. up to "13"CAbsent if the mobile application is to prompt the consumer to enter the transaction amount. Present otherwise.
    Country Code"58"ans"02"M
    Merchant Name"59"ansvar. up to "25"M
    Merchant City"60"ansvar. up to "15"M
    Additional Data Field Template"62"Svar. up to "99"MThe Additional Data Field Template includes information that may be provided by the Merchant.
    CRC"63"ans"04"M

    Data Objects for Additional Data Field Template (ID "62")#

    NameIDFormatLengthPresenceComment
    Merchant Reference Number"01"ansvar. up to "25"M
    PayWay Data Field Template"68"Svar. up to "99"MProvide By ABA

    Example#

    00020101021130510016abaakhppxxx@abaa01151233333333333330208ABA Bank520478325303840540599.995802KH5913Udom by U.PAK6010PHNOM PENH62530107999999968380010PAYWAY@ABA0103XXX0203YYY0606XYZZZ Z63046DC4

    Data Objects Under the Root of a QR Code#

    NameDataIDLengthValue
    Payload Format Indicator000201000201
    Point of Initiation Method010211010211
    Merchant Account Information30510016abaakhppxxx@abaa01151233333333333330208ABA Bank30510016abaakhppxxx@abaa01151233333333333330208ABA Bank
    Merchant Category Code5204783252047832
    Transaction Currency53038405303840
    Transaction Amount540599.99540599.99
    Country Code5802KH5802KH
    Merchant Name5913Udom by U.PAK5913Udom by U.PAK
    Merchant City6010PHNOM PENH6010PHNOM PENH
    Additional Data Field Template62530107999999968380010PAYWAY@ABA0103XXX0203YYY0606XYZZZZ62530107999999968380010PAYWAY@ABA0103XXX0203YYY0606XYZZZZ
    CRC63046DC463046DC4

    Data Objects for Additional Data Field Template (ID "62")#

    NameDataIDLengthValue
    Merchant Reference Number0107999999901079999999
    PayWay Data Field Template68380010PAYWAY@ABA0103XXX0203YYY0606XYZZZZ68380010PAYWAY@ABA0103XXX0203YYY0606XYZZZZ

    Payment#

    QR can be paid multiple times, and no expiry.

    Receiving Payment Notification via Webhook#

    Merchant have to provided the webhook url to PayWay to receive payment notification once the payment is successful paid by the customer. Below is the sample data that will be posted to the webhook.
    {
      "status": 0,
      "tran_id": "123456789",
      "description": "approved",
      "amount": 5,
      "original_currency": "USD",
      "apv": "",
      "datetime": "2021-12-24 12:36:15",
      "bank_ref": "",
      "payer_account": "*163",
      "payment_type": "ABA PAY",
      "bank_name": "ABA Bank",
      "merchant_ref": "123456"
    }
    NameDescription
    status"0" represent the success payment
    tran_idUnique transaction ID that generate by PayWay.
    descriptionPayment status description in word.
    amountThe amount that has been paid by the customer.
    original_currencyQR currency. It can be KHR or USD.
    apvApproval code. It has 6 digits length
    datetimeDate and time of the transaction.
    bank_refBooking entry reference from core banking. It's only for ABA PAY and KHQR.
    payer_accountMask account number of the payer.
    payment_typeABA PAY or KHQR
    bank_nameIssuer bank name
    merchant_refInformation from QR ID 62.01.
    Webhook must use POST method, HTTPS encryption. PayWay support 3 modes of authentication:
    None: PayWay can access the webhook without any authentication.
    Username and Password: Provided by merchant.
    Authentication Key: Provided by merchant.
    Previous
    Add a beneficiary to whitelist
    Next
    Resources
    On this page
    What is ABA KHQR?
    Benefits of KHQR
    For Customers:
    For Merchants:
    How to Implement
    Notations Convention
    Data Object
    Data Objects Under the Root of a QR Code
    Data Objects for Additional Data Field Template (ID "62")
    Example
    Data Objects Under the Root of a QR Code
    Data Objects for Additional Data Field Template (ID "62")
    Payment
    Receiving Payment Notification via Webhook