# Pay with QR

## Integration

See integration detail in [General integration steps](https://docs.galaxypay.vn/upc/payment-gateway/payment-solution/general-integration-steps)

{% hint style="info" %}
Refer to the [Code Samples and API Playground](https://uat-demo.galaxypay.vn/documents#post-/api/v1/transaction/payWithQR) for detailed sample code and API testing.
{% endhint %}

| Endpoint URL | Route                        |
| ------------ | ---------------------------- |
| Base URL     | api/v1/transaction/payWithQR |

Example:

[https://uat-secure.galaxypay.vn/api/v1/transaction/payWithQR](https://uat-secure.galaxypay.vn/api/v1/transaction/payWithOption)

### Request Message

#### Header

<table><thead><tr><th width="92">Level</th><th width="152">Field Name</th><th width="199">Data Type</th><th>Description</th></tr></thead><tbody><tr><td>1</td><td>apiKey</td><td>Alphanumeric<br><em><mark style="color:blue;">mandatory</mark></em></td><td>Request authenticate</td></tr><tr><td>1</td><td>signature</td><td>Alphanumeric<br><em><mark style="color:blue;">mandatory</mark></em></td><td>Request signature</td></tr></tbody></table>

#### Body

<table><thead><tr><th width="89">Level</th><th width="166">Field Name</th><th width="197">Data Type</th><th>Description</th></tr></thead><tbody><tr><td>1</td><td>requestID</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">mandatory</mark></em></td><td><p>Unique ID for each transaction request</p><p></p><p><strong>Recommend</strong>: GUID</p></td></tr><tr><td>1</td><td>requestDateTime</td><td>Numeric(14)<br><em><mark style="color:blue;">mandatory</mark></em></td><td><strong>yyyyMMddHHmmss</strong></td></tr><tr><td>1</td><td>requestData</td><td>JSON Object</td><td><br></td></tr><tr><td>2</td><td>apiOperation</td><td>Alpha(20)<br><em><mark style="color:blue;">mandatory</mark></em></td><td><strong>PAY</strong></td></tr><tr><td>2</td><td>orderID</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">mandatory</mark></em></td><td>Transaction ID at Merchant</td></tr><tr><td>2</td><td>orderNumber</td><td>Alphanumeric(20)<br><em><mark style="color:blue;">optional</mark></em></td><td>Order Number or Bill Number</td></tr><tr><td>2</td><td>orderAmount</td><td>Numeric(16)<br><em><mark style="color:blue;">mandatory</mark></em></td><td>Transaction Amount</td></tr><tr><td>2</td><td>orderCurrency</td><td>Alpha(3)<br><em><mark style="color:blue;">mandatory</mark></em></td><td><strong>VND</strong></td></tr><tr><td>2</td><td>orderDateTime</td><td>Numeric(14)<br><em><mark style="color:blue;">mandatory</mark></em></td><td><strong>yyyyMMddHHmmss</strong></td></tr><tr><td>2</td><td>orderDescription</td><td>Alphanumeric(250)<br><em><mark style="color:blue;">mandatory</mark></em></td><td>Transaction Description</td></tr><tr><td>2</td><td>language</td><td>Alpha(2)<br><em><mark style="color:blue;">optional</mark></em></td><td><p>vi or en</p><p></p><p>vi: Vietnamese</p><p>en: English</p></td></tr><tr><td>2</td><td>paymentMethod</td><td>Alpha(20)<br><em><mark style="color:blue;">mandatory</mark></em></td><td><strong>QRPAY</strong> or <strong>WALLET</strong></td></tr><tr><td>2</td><td>sourceType</td><td>Alphanumeric(20)<br><em><mark style="color:blue;">mandatory</mark></em></td><td><p>If paymentMethod = <strong>QRPAY</strong> </p><p>-> sourceType = <strong>QRPAY</strong><br><br>If paymentMethod = <strong>WALLET</strong> </p><p>-> sourceType = <strong>MOMO</strong> or <strong>ZALOPAY</strong> or <strong>GALAXYPAY</strong></p></td></tr><tr><td>2</td><td>successURL</td><td>Alphanumeric(500)<br><em><mark style="color:blue;">optional</mark></em></td><td>Callback URL when Payment is success</td></tr><tr><td>2</td><td>failureURL</td><td>Alphanumeric(500)<br><em><mark style="color:blue;">optional</mark></em></td><td>Callback URL when Payment is failure</td></tr><tr><td>2</td><td>cancelURL</td><td>Alphanumeric(500)<br><em><mark style="color:blue;">optional</mark></em></td><td>Callback URL when Customer cancel payment</td></tr><tr><td>2</td><td>ipnURL</td><td>Alphanumeric(500)<br><em><mark style="color:blue;">optional</mark></em></td><td>IPN URL</td></tr><tr><td>2</td><td>subMerchant</td><td>JSON Object<br><em><mark style="color:blue;">optional</mark></em></td><td>Only use for master merchant scope</td></tr><tr><td>3</td><td>identifier</td><td>String(50)</td><td>Sub-merchant ID</td></tr><tr><td>2</td><td>extraData</td><td>JSON Object<br><em><mark style="color:blue;">optional</mark></em></td><td><p>Extra data. </p><p>Same as <a href="../pay#body">API Pay</a></p></td></tr></tbody></table>

```
{
  "requestID": "dc9845fdb2fc4ebfa2563caffe26284a",
  "requestDateTime": "20231222172332",
  "requestData": {
    "apiOperation": "PAY",
    "orderID": "2a43e4b9-c5df-49e6-8b18-42af9bcd150e",
    "orderNumber": "205249008064",
    "orderAmount": 100000,
    "orderCurrency": "VND",
    "orderDateTime": "20231222172332",
    "orderDescription": "DEMO TRANSACTION",
    "paymentMethod": "QRPAY",
    "sourceType": "QRPAY",
    "language": "vi",
    "extraData": {}
  }
}
```

### Response Message

#### Header

<table><thead><tr><th width="91">Level</th><th width="166">Field name</th><th width="192">Data Type</th><th>Description</th></tr></thead><tbody><tr><td>1</td><td>signature</td><td>Alphanumeric<br><em><mark style="color:blue;">mandatory</mark></em></td><td>Response signature</td></tr></tbody></table>

#### Body

<table><thead><tr><th width="94">Level</th><th width="180">Field name</th><th width="188">Data type</th><th>Description</th></tr></thead><tbody><tr><td>1</td><td>requestID</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">mandatory</mark></em></td><td>Original Request ID</td></tr><tr><td>1</td><td>responseDateTime</td><td>Numeric(14)<br><em><mark style="color:blue;">mandatory</mark></em></td><td><strong>yyyyMMddHHmmss</strong></td></tr><tr><td>1</td><td>responseCode</td><td>Numeric(3)<br><em><mark style="color:blue;">mandatory</mark></em></td><td>See <a href="../../appendix/response-codes">Response Codes</a> for more detail</td></tr><tr><td>1</td><td>responseMessage</td><td>Alphanumeric(250)<br><em><mark style="color:blue;">mandatory</mark></em></td><td>Response message</td></tr><tr><td>1</td><td>responseData</td><td>JSON Object<br><em><mark style="color:blue;">mandatory</mark></em></td><td>Response data</td></tr><tr><td>2</td><td>transactionID</td><td>Alphanumeric<br><em><mark style="color:blue;">mandatory</mark></em></td><td>GALAXY PAY transaction ID</td></tr><tr><td>2</td><td>endpoint</td><td>Alphanumeric<br><em><mark style="color:blue;">mandatory</mark></em></td><td><p>Secure Payment URL </p><p>(Use for Redirect)</p></td></tr><tr><td>2</td><td>qrCode</td><td>Alphanumeric<br><em><mark style="color:blue;">mandatory</mark></em></td><td>QR Payment Info</td></tr></tbody></table>

```
{
    "requestID": "dc9845fdb2fc4ebfa2563caffe26284a",
    "responseDateTime": "20231222172332",
    "responseCode": "200",
    "responseMessage": "Success",
    "responseData": {
        "qrCode": "00020101021238600010A000000727013000069704370116GP000000000069260208QRIBFTTA53037045405100015802VN6304448E",
        "transactionID": "2312225610100119420351813",
        "endpoint": "https://uat-payment.galaxypay.vn/pay/2312225610100119420351813/20231222144449/c81d3beebecdaad145b2a326375914b97ee7eeafc9d52f9f642497e703d29f30/vi"
    }
}
```
