# Pay

APIOperation = <mark style="color:red;">PAY</mark>; require <mark style="color:red;">sourceOfFund</mark> when use Merchant Hosted checkout.

## Integration

See integration detail in [General integration steps](/upc/payment-gateway/payment-solution/general-integration-steps.md)

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

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

Example:

<https://uat-secure.galaxypay.vn/api/v1/transaction/pay>

### Request Message

#### Header

<table><thead><tr><th width="92">Level</th><th>Field Name</th><th>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="87">Level</th><th width="199">Field Name</th><th width="178">Data Type</th><th>Description</th></tr></thead><tbody><tr><td>1</td><td>requestID<br></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></td></tr><tr><td>2</td><td>apiVersion</td><td>Numeric(5)<br><em><mark style="color:blue;">optional</mark></em></td><td>Specify the api version. Current supported version is 2.<br><br>If this field is omitted, the default value of apiVersion is <strong>1</strong></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>Send the code in <a href="/pages/9qc6oGrvkG54qieoVRAW">Currencies</a></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>paymentMethod</td><td>Alpha(20)<br><em><mark style="color:blue;">mandatory</mark></em></td><td>See <a href="/pages/5cVWW6YgOoegGXIi38eN#payment-methods">Payment Method</a></td></tr><tr><td>2</td><td>sourceType</td><td>Alphanumeric(20)<br><em><mark style="color:blue;">condition</mark></em></td><td><p><strong>NOT Required</strong> <strong>when</strong> paymentMethod = <strong>DOMESTIC</strong> or <strong>INTERNATIONAL</strong> <br></p><p>See <a href="/pages/5cVWW6YgOoegGXIi38eN#payment-methods">Payment Method</a> for more detail</p></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>isAutoCapture</td><td>Alpha(20)<br><em><mark style="color:blue;">optional</mark></em></td><td><p>true or false</p><p></p><p>default: true</p><p>Only apply for <strong>International Card</strong></p><p></p><p><strong>Required</strong> call API <a href="/pages/YODgMw0HIEsYNhZ3kRor">Capture</a> in case <strong>false</strong> to finish transaction</p><p>See <a href="https://docs.galaxypay.vn/upc/payment-gateway/appendix/glossary#isautocapture">isAutoCapture</a> for more detail</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><p>String(50)</p><p><em><mark style="color:blue;">optional</mark></em></p></td><td>Sub-merchant ID</td></tr><tr><td>2</td><td>sourceOfFund</td><td>Alpha(50)<br><em><mark style="color:blue;">condition</mark></em></td><td><strong>CARD</strong><br><strong>Required</strong> <strong>when</strong> use Merchant Hosted Checkout</td></tr><tr><td>2</td><td>cardNumber</td><td>Numeric(19)<br><em><mark style="color:blue;">condition</mark></em></td><td><strong>Required</strong> <strong>when</strong> use Merchant Hosted Checkout</td></tr><tr><td>2</td><td>cardHolderName</td><td>Alphanumeric(19)<br><em><mark style="color:blue;">condition</mark></em></td><td><strong>Required</strong> <strong>when</strong> use Merchant Hosted Checkout</td></tr><tr><td>2</td><td>cardExpireDate</td><td>Alphanumeric(5)<br><em><mark style="color:blue;">condition</mark></em></td><td><p><strong>Required</strong> <strong>when</strong> use Merchant Hosted Checkout</p><p>Format: MM/YY</p></td></tr><tr><td>2</td><td>cardVerificationValue</td><td>Numeric(3)<br><em><mark style="color:blue;">condition</mark></em></td><td><strong>Required</strong> <strong>when</strong> use Merchant Hosted Checkout<br><br><strong>Only use for International Card</strong></td></tr><tr><td>2</td><td>extraData</td><td>JSON Object<br><em><mark style="color:blue;">optional</mark></em></td><td>Extra data</td></tr><tr><td>3</td><td>customer</td><td>JSON Object<br><em><mark style="color:blue;">optional</mark></em></td><td>Customer information</td></tr><tr><td>4</td><td>firstName</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>Customer first name</td></tr><tr><td>4</td><td>lastName</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>Customer last name</td></tr><tr><td>4</td><td>identityNumber</td><td>Numeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>Customer national ID</td></tr><tr><td>4</td><td>email</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>Customer email</td></tr><tr><td>4</td><td>phoneNumber</td><td>Numeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>Customer phone number</td></tr><tr><td>4</td><td>phoneType</td><td>Alpha(1)<br><em><mark style="color:blue;">optional</mark></em></td><td><p>Customer phone type</p><p>F: Fixed-line or M: Mobile</p></td></tr><tr><td>4</td><td>gender</td><td>Alpha(1)<br><em><mark style="color:blue;">optional</mark></em></td><td><p>Customer gender</p><p><strong>M</strong>: Male, <strong>F</strong>: Female</p></td></tr><tr><td>4</td><td>dateOfBirth</td><td>Numeric(8)<br><em><mark style="color:blue;">optional</mark></em></td><td><p>Customer birth day</p><p>Format: <strong>yyyyMMdd</strong></p></td></tr><tr><td>4</td><td>title</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>Customer title</td></tr><tr><td>3</td><td>device</td><td>JSON Object</td><td>Device information</td></tr><tr><td>4</td><td>browser</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>Browser information</td></tr><tr><td>4</td><td>fingerprint</td><td>Alphanumeric(100)<br><em><mark style="color:blue;">optional</mark></em></td><td>Unique identifier for the device</td></tr><tr><td>4</td><td>hostName</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>The name of merchant server</td></tr><tr><td>4</td><td>ipAddress</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>The ip address of merchant server</td></tr><tr><td>4</td><td>deviceID</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>Mobile device identifier</td></tr><tr><td>4</td><td>deviceModel</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>Mobile device model</td></tr><tr><td>3</td><td>application</td><td>JSON Object</td><td>Application information</td></tr><tr><td>4</td><td>applicationID</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>Application Identifier</td></tr><tr><td>4</td><td>applicationChannel</td><td>Alpha(50)<br><em><mark style="color:blue;">optional</mark></em></td><td><p>Application channel</p><p><strong>Mobile</strong>, <strong>Web</strong>, <strong>POS</strong></p></td></tr><tr><td>3</td><td>billing</td><td>JSON Object</td><td>Billing address information</td></tr><tr><td>4</td><td>country</td><td>Alpha(2)<br><em><mark style="color:blue;">optional</mark></em></td><td>Billing country</td></tr><tr><td>4</td><td>state</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>Billing state/province</td></tr><tr><td>4</td><td>city</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>Billing city</td></tr><tr><td>4</td><td>postalCode</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>Billing postal code</td></tr><tr><td>4</td><td>streetNumber</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>Billing street number</td></tr><tr><td>4</td><td>address01</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>Billing address line 1</td></tr><tr><td>4</td><td>address02</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>Billing address line 2</td></tr><tr><td>3</td><td>shipping</td><td>JSON Object</td><td>Shipping address information</td></tr><tr><td>4</td><td>country</td><td>Alpha(2)<br><em><mark style="color:blue;">optional</mark></em></td><td>Shipping country</td></tr><tr><td>4</td><td>state</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>Shipping state/province</td></tr><tr><td>4</td><td>city</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>Shipping city</td></tr><tr><td>4</td><td>postalCode</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>Shipping postal code</td></tr><tr><td>4</td><td>streetNumber</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>Shipping street number</td></tr><tr><td>4</td><td>address01</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>Shipping address line 1</td></tr><tr><td>4</td><td>address02</td><td>Alphanumeric(50)<br><em><mark style="color:blue;">optional</mark></em></td><td>Shipping address line 2</td></tr></tbody></table>

#### Sample request

```
{
  "requestID": "14653fa12f694f4f9d4b240e1bebbdf3",
  "requestDateTime": "20230726172307",
  "requestData": {
    "apiOperation": "PAY",
    "orderID": "2a43e4b9-c5df-49e6-8b18-42af9bcd150e",
    "orderNumber": 205249008064,
    "orderAmount": 100000,
    "orderCurrency": "VND",
    "orderDateTime": 20230726172307,
    "orderDescription": "DEMO TRANSACTION",
    "paymentMethod": "DOMESTIC",
    "sourceType": "",
    "language": "vi",
    "subMerchant": {
        "identifier": "10218"
    },
    "extraData": {
      "device": {
        "browser": "Safari",
        "fingerprint": "hA05iBWrRE",
        "hostName": "Galaxy Pay",
        "ipAddress": "10.192.168.10",
        "deviceID": "NzoBA2ys2y",
        "deviceModel": "IPhone"
      },
      "application": {
        "applicationID": "KbPCc8eSXH",
        "applicationChannel": "Mobile"
      },
      "billing": {
        "country": "vn",
        "state": "",
        "city": "Hồ Chí Minh",
        "postalCode": "70000",
        "streetNumber": "673",
        "address01": "Đường Nguyễn Hữu Thọ",
        "address02": ""
      },
      "shipping": {
        "country": "vn",
        "state": "",
        "city": "Hồ Chí Minh",
        "postalCode": "70000",
        "streetNumber": "673",
        "address01": "Đường Nguyễn Hữu Thọ",
        "address02": ""
      }
    }
  }
}

```

### Response Message

#### Header

<table><thead><tr><th width="101">Level</th><th width="182">Field name</th><th>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="99">Level</th><th width="184">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="/pages/sBk2eUqKYscTG2fiXwOK">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(38)<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>Secure Payment URL (Use for Redirect)</td></tr></tbody></table>

#### Sample response

```
{
    "requestID": "14653fa12f694f4f9d4b240e1bebbdf3",
    "responseDateTime": "20230726172307",
    "responseCode": "200",
    "responseMessage": "Success",
    "responseData": {
        "transactionID": "2307264944869814641620077",
        "endpoint": "https://uat-payment.galaxypay.vn/pay/2307264944869814641620077/20230726172332/993c33d5640b80c4b9ee5f7a0bc6169e6621d032c345b91babb5b2973b75158f"
    }
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.galaxypay.vn/upc/payment-gateway/api-specification/payment/pay.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
