> For the complete documentation index, see [llms.txt](https://docs.galaxypay.vn/upc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.galaxypay.vn/upc/payment-gateway/api-specification/ipn-and-callback/cancel-callback.md).

# Cancel Callback

* Use for Merchant to redirect customer to cancel payment page.&#x20;

Note:

Response Signature is create by applying hash algorithm **SHA256** the response **data** with **Salt**.&#x20;

**signature = SHA256(data + salt)**

#### Body

<table><thead><tr><th width="121">Level</th><th width="174">Field Name</th><th width="157">Data Type</th><th>Description</th></tr></thead><tbody><tr><td>1</td><td>data</td><td>Alphanumeric<br><em><mark style="color:blue;">mandatory</mark></em></td><td>Base-64 string</td></tr><tr><td>1</td><td>signature</td><td>Alphanumeric<br><em><mark style="color:blue;">mandatory</mark></em></td><td>Response Signature<br><strong>signature = SHA256(data + Salt)</strong></td></tr></tbody></table>

#### Data (Decode Base-64 String)

<table><thead><tr><th width="118">Level</th><th>Field Name</th><th>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>transactionDateTime</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>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>Order Amount</td></tr><tr><td>2</td><td>orderCurrency</td><td>Alpha(3)<br><em><mark style="color:blue;">mandatory</mark></em></td><td>Order Currency</td></tr><tr><td>2</td><td>orderDateTime</td><td>Numeric(14)<br><em><mark style="color:blue;">mandatory</mark></em></td><td><p>Order Date Time</p><p></p><p><strong>yyyyMMddHHmmss</strong></p></td></tr><tr><td>2</td><td>orderDescription</td><td>Alphanumeric(250)<br><em><mark style="color:blue;">mandatory</mark></em></td><td>Order Description</td></tr><tr><td>2</td><td>language</td><td>Alpha(2)<br><em><mark style="color:blue;">mandatory</mark></em></td><td><p>vi or en</p><p></p><p>vi: Vietnamese</p><p>en: English</p></td></tr></tbody></table>

<pre><code><strong>RESPONSE DATA
</strong><strong>
</strong><strong>{
</strong>  "data": "eyJyZXF1ZXN0SUQiOiIxNDY1M2ZhMS0yZjY5LTRmNGYtOWQ0Yi0yNDBlMWJlYmJkZjMiLCJyZXNwb25zZURhdGVUaW1lIjoiMjAyMjA1MDYxMTM1MTciLCJyZXNwb25zZUNvZGUiOiI0OTkiLCJyZXNwb25zZU1lc3NhZ2UiOiJDYW5jZWxlZCBieSB1c2VyIiwicmVzcG9uc2VEYXRhIjp7InRyYW5zYWN0aW9uSUQiOiIyMjA1MDY5OWU2NWQ5YTcxZDU0OGU2YjY3MzIzYWVmMWE0OTRhYyIsInRyYW5zYWN0aW9uRGF0ZVRpbWUiOiIyMDIyMDUwNjExMzUxNyIsIm9yZGVySUQiOiI4ODgyODkiLCJvcmRlck51bWJlciI6IjgyMjYyODg5Iiwib3JkZXJBbW91bnQiOiIxMDkwMDAiLCJvcmRlckRlc2NyaXB0aW9uIjoiU2VjdXJlIFBhZ2UgRGVtbyIsIm9yZGVyQ3VycmVuY3kiOiJWTkQiLCJvcmRlckRhdGVUaW1lIjoiMjAyMjA0MDUyMDIwMDAiLCJsYW5ndWFnZSI6InZpIn19",
  "signature": "be8d2d815d694037d7ec2d9f7ac645d7a6168b692af6b786c1d59da72cd93a5e"
}


VERIFY SIGNATURE

const data = "eyJyZXF1ZXN0SUQiOiIxNDY1M2ZhMS0yZjY5LTRmNGYtOWQ0Yi0yNDBlMWJlYmJkZjMiLCJyZXNwb25zZURhdGVUaW1lIjoiMjAyMjA1MDYxMTM1MTciLCJyZXNwb25zZUNvZGUiOiI0OTkiLCJyZXNwb25zZU1lc3NhZ2UiOiJDYW5jZWxlZCBieSB1c2VyIiwicmVzcG9uc2VEYXRhIjp7InRyYW5zYWN0aW9uSUQiOiIyMjA1MDY5OWU2NWQ5YTcxZDU0OGU2YjY3MzIzYWVmMWE0OTRhYyIsInRyYW5zYWN0aW9uRGF0ZVRpbWUiOiIyMDIyMDUwNjExMzUxNyIsIm9yZGVySUQiOiI4ODgyODkiLCJvcmRlck51bWJlciI6IjgyMjYyODg5Iiwib3JkZXJBbW91bnQiOiIxMDkwMDAiLCJvcmRlckRlc2NyaXB0aW9uIjoiU2VjdXJlIFBhZ2UgRGVtbyIsIm9yZGVyQ3VycmVuY3kiOiJWTkQiLCJvcmRlckRhdGVUaW1lIjoiMjAyMjA0MDUyMDIwMDAiLCJsYW5ndWFnZSI6InZpIn19";
const salt = "GO@2021";
const signature = SHA256(data + salt);


DECODE BASE-64 STRING FOR DATA
{
  "requestID": "14653fa1-2f69-4f4f-9d4b-240e1bebbdf3",
  "responseDateTime": "20220506113517",
  "responseCode": "499",
  "responseMessage": "Canceled by user",
  "responseData": {
    "transactionID": "22050699e65d9a71d548e6b67323aef1a494ac",
    "transactionDateTime": "20220506113517",
    "orderID": "888289",
    "orderNumber": "82262889",
    "orderAmount": "109000",
    "orderDescription": "Secure Page Demo",
    "orderCurrency": "VND",
    "orderDateTime": "20220405202000",
    "language": "vi"
  }
}
</code></pre>
