{
	"info": {
		"_postman_id": "2cb10c76-38de-4f52-99f2-055a530de878",
		"name": "[SNAP] Dynamic QRIS V2",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
		"_exporter_id": "34785987"
	},
	"item": [
		{
			"name": "Get Access Token B2B",
			"event": [
				{
					"listen": "prerequest",
					"script": {
						"exec": [
							"/*\r",
							"How to use:\r",
							"- Configure the client ID via request headers with key as x-client-key.\r",
							"- Configure the private key via environment variable with key as {clientID}_private_key.\r",
							"- Script will generate / replace environment variables listed in the Output section.\r",
							"\r",
							"Output (Environment variables):\r",
							"- gen_signature -> add to X-Signature headers\r",
							"- gen_timestamp -> add to X-Timestamp headers\r",
							"*/\r",
							"\r",
							"eval( pm.environment.get('pmlib_code') )\r",
							"\r",
							"var moment = require('moment')\r",
							"\r",
							"const clientID = pm.environment.get(\"clientID\")\r",
							"var privateKey = pm.environment.get(\"_private_key\")\r",
							"const timestamp = moment().format(\"YYYY-MM-DDThh:mm:ss.SSSZ\")\r",
							"\r",
							"console.log(\"clientID: \" + clientID)\r",
							"console.log(\"privateKey: \" + privateKey)\r",
							"console.log(\"timestamp: \" + timestamp)\r",
							"\r",
							"const msg = `${clientID}|${timestamp}`\r",
							"\r",
							"console.log(\"msg: \" + msg)\r",
							"\r",
							"var CryptoJS = require(\"crypto-js\")\r",
							"const hashedMsg = CryptoJS.SHA256(msg)\r",
							"console.log(\"hashedMsg: \" + hashedMsg)\r",
							"\r",
							"var sig = new pmlib.rs.KJUR.crypto.Signature({\"alg\": \"SHA256withRSA\"})\r",
							"privateKey = pmlib.rs.KEYUTIL.getKey(privateKey)\r",
							"sig.init(privateKey)\r",
							"const hash = sig.signString(msg)\r",
							"\r",
							"console.log(\"hash: \" + hash)\r",
							"\r",
							"pm.environment.set(\"gen_timestamp\", timestamp)\r",
							"pm.environment.set(\"gen_signature\", hash)\r",
							""
						],
						"type": "text/javascript"
					}
				},
				{
					"listen": "test",
					"script": {
						"exec": [
							"let responseData = pm.response.json();",
							"console.log(responseData)",
							"",
							"pm.environment.set(\"access_token\", responseData.accessToken)"
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "X-CLIENT-KEY",
						"value": "{{clientID}}"
					},
					{
						"key": "Content-Type",
						"value": "application/json"
					},
					{
						"key": "X-SIGNATURE",
						"value": "{{gen_signature}}"
					},
					{
						"key": "X-TIMESTAMP",
						"value": "{{gen_timestamp}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\n    \"grantType\" : \"client_credentials\"\n}"
				},
				"url": {
					"raw": "https://app.byte-stack.net/OVOSNAP/v1.0/access-token/b2b",
					"protocol": "https",
					"host": [
						"app",
						"byte-stack",
						"net"
					],
					"path": [
						"OVOSNAP",
						"v1.0",
						"access-token",
						"b2b"
					]
				}
			},
			"response": []
		},
		{
			"name": "QR Generate",
			"event": [
				{
					"listen": "prerequest",
					"script": {
						"exec": [
							"/*",
							"How to use:",
							"- Configure the client ID via request headers with key as x-partner-id.",
							"- Configure the access token via request headers with key as Authorization and format of value as Bearer {access_token}.",
							"- Configure the secret key via environment variable with key as {clientID}_secret_key.",
							"- Script will generate / replace environment variables listed in the Output section.",
							"",
							"Output (Environment variables):",
							"- gen_signature -> add to X-Signature headers",
							"- gen_timestamp -> add to X-Timestamp headers",
							"*/",
							"",
							"eval( pm.globals.get('pmlib_code') )",
							"",
							"var moment = require('moment')",
							"var CryptoJS = require(\"crypto-js\")",
							"",
							"const clientID = pm.environment.get('clientID');",
							"const accessToken = pm.environment.get(\"access_token\");",
							"",
							"    let local = new Date();",
							"    local.setMinutes(local.getMinutes() - local.getTimezoneOffset());",
							"    pm.environment.set('partnerReferenceNo', Math.round(local.getTime() / 1000));",
							"",
							"const timestamp = moment().format(\"YYYY-MM-DDThh:mmZ\")",
							"const body = pm.request.body.raw.replace('{{terminalId}}',pm.environment.get('terminalId')).replace('{{merchantId}}',pm.environment.get('merchantId')).replace('{{transactionDate}}',pm.environment.get('transactionDate')).replace('{{partnerReferenceNo}}',pm.environment.get('partnerReferenceNo'))",
							"const fullPath = \"/OVOSNAP/v2.0/qr/qr-mpm-generate\"",
							"const method = pm.request.method",
							"",
							"const transactionDate = moment().format(\"YYMMDD\")",
							"pm.environment.set('transactionDate', transactionDate);",
							"",
							"",
							"var secret_key = pm.environment.get(\"_secret_key\")",
							"",
							"const hashedBody = CryptoJS.SHA256(body).toString()",
							"const finalBody = hashedBody.toLowerCase()",
							"const msg = `${method}:${fullPath}:${accessToken}:${finalBody}:${timestamp}`",
							"const hash = CryptoJS.HmacSHA512(msg, secret_key).toString()",
							"",
							"function randomString(minValue, maxValue, dataSet = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ') {",
							"    if (!minValue) {",
							"        minValue = 20;",
							"        maxValue = 20;",
							"    }",
							"",
							"    if (!maxValue) {",
							"        maxValue = minValue;",
							"    }",
							"",
							"    let length = _.random(minValue, maxValue),",
							"        randomString = \"\";",
							"",
							"    for (let i = 0; i < length; i++)",
							"        randomString += dataSet.charAt(Math.floor(Math.random() * dataSet.length));",
							"    return randomString;",
							"}",
							"",
							"pm.environment.set('random_xternalid', randomString());",
							"pm.environment.set(\"gen_timestamp\", timestamp)",
							"pm.environment.set(\"gen_signature\", hash)",
							"",
							"console.log(\"Authorization : Bearer \" + accessToken)",
							"console.log(\"X-SIGNATURE: \" + hash)",
							"console.log(\"X-TIMESTAMP: \" + timestamp)",
							"console.log(\"method: \" + method)",
							"console.log(\"X-PARTNER-ID: \" + clientID)"
						],
						"type": "text/javascript",
						"packages": {}
					}
				},
				{
					"listen": "test",
					"script": {
						"exec": [
							""
						],
						"type": "text/javascript",
						"packages": {}
					}
				}
			],
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/json"
					},
					{
						"key": "X-PARTNER-ID",
						"value": "{{clientID}}"
					},
					{
						"key": "X-TIMESTAMP",
						"value": "{{gen_timestamp}}"
					},
					{
						"key": "X-SIGNATURE",
						"value": "{{gen_signature}}"
					},
					{
						"key": "X-EXTERNAL-ID",
						"value": "{{random_xternalid}}"
					},
					{
						"key": "Authorization",
						"value": "Bearer {{access_token}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\n    \"terminalId\":\"{{terminalId}}\",\n    \"merchantId\":\"{{merchantId}}\",\n    \"amount\": {\n        \"value\": \"10000.00\",\n        \"currency\": \"IDR\"\n    },\n    \"feeAmount\": {\n        \"value\": \"0\",\n        \"currency\": \"IDR\"\n    },\n    \"partnerReferenceNo\": \"{{partnerReferenceNo}}\",\n    \"additionalInfo\": {\n        \"deviceId\": \"1234797\",\n        \"channel\": \"ovo\",\n        \"transactionDate\": \"{{transactionDate}}\",\n        \"allowedSources\": \"100\"\n    }\n}"
				},
				"url": {
					"raw": "https://app.byte-stack.net/OVOSNAP/v2.0/qr/qr-mpm-generate",
					"protocol": "https",
					"host": [
						"app",
						"byte-stack",
						"net"
					],
					"path": [
						"OVOSNAP",
						"v2.0",
						"qr",
						"qr-mpm-generate"
					]
				}
			},
			"response": [
				{
					"name": "QR Generate",
					"originalRequest": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json",
								"type": "text"
							},
							{
								"key": "signature",
								"value": "{{hmac}}",
								"type": "text",
								"disabled": true
							},
							{
								"key": "client-id",
								"value": "{{clientId}}",
								"type": "text",
								"disabled": true
							},
							{
								"key": "time",
								"value": "{{time}}",
								"type": "text",
								"disabled": true
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"terminalId\":\"11762601\",\n    \"merchantId\":\"DretailStore001\",\n    \"amount\": {\n        \"value\": \"1000\",\n        \"currency\": \"IDR\"\n    },\n    \"feeAmount\": {\n        \"value\": \"0\",\n        \"currency\": \"IDR\"\n    },\n    \"partnerReferenceNo\": \"TRX-ASacaSA\",\n    \"additionalInfo\": {\n        \"deviceId\": \"123456797\",\n        \"channel\": \"ovo\",\n        \"transactionDate\": \"230505\",\n        \"allowedSources\": \"110\"\n    }\n}"
						},
						"url": {
							"raw": "{{snap_url}}/OVOSNAP/v1/qr/qr-mpm-generate",
							"host": [
								"{{snap_url}}"
							],
							"path": [
								"OVOSNAP",
								"v1",
								"qr",
								"qr-mpm-generate"
							]
						}
					},
					"status": "OK",
					"code": 200,
					"_postman_previewlanguage": "json",
					"header": [
						{
							"key": "vary",
							"value": "accept-encoding"
						},
						{
							"key": "content-encoding",
							"value": "gzip"
						},
						{
							"key": "content-type",
							"value": "application/json;charset=UTF-8"
						},
						{
							"key": "date",
							"value": "Fri, 05 May 2023 03:37:45 GMT"
						},
						{
							"key": "via",
							"value": "1.1 google"
						},
						{
							"key": "transfer-encoding",
							"value": "chunked"
						}
					],
					"cookie": [],
					"body": "{\n    \"responseCode\": \"2004700\",\n    \"responseMessage\": \"Successful\",\n    \"referenceNo\": \"H2H784c1b556971470788fe1d80c6de\",\n    \"partnerReferenceNo\": \"TRX-ASacaSA\",\n    \"qrContent\": \"00020101021226580006id.ovo01189360091200000035470215lXglBoWv1FKdldj0303UMI51440015ID.OR.GPNQR.WWW0214ID2021075018580303UMI520415205303360540410005802ID5918Dretail Store Satu6008Meulaboh61052335062310507e87jbpP07167sWt1OwfUMzWb7SF6304B9A1\",\n    \"merchantName\": \"DretailStore001\",\n    \"storeId\": null,\n    \"terminalId\": \"11762601\",\n    \"additionalInfo\": {\n        \"deviceId\": \"123456797\",\n        \"channel\": \"ovo\",\n        \"transactionDate\": \"230505\",\n        \"batchNo\": \"cF9UXY\",\n        \"expiry\": 75\n    }\n}"
				}
			]
		},
		{
			"name": "qrimagegenerator",
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "https://api.qrserver.com/v1/create-qr-code/?size=1500x1500&data={{qrContent}}",
					"protocol": "https",
					"host": [
						"api",
						"qrserver",
						"com"
					],
					"path": [
						"v1",
						"create-qr-code",
						""
					],
					"query": [
						{
							"key": "size",
							"value": "1500x1500"
						},
						{
							"key": "data",
							"value": "{{qrContent}}"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Transaction Inquiry",
			"event": [
				{
					"listen": "test",
					"script": {
						"exec": [
							"var jsonData = JSON.parse(responseBody);\r",
							"if (responseCode.code === 200) \r",
							"{\r",
							"    pm.environment.set(\"amount\", jsonData.amount.value);\r",
							"    pm.environment.set(\"batchNo\", jsonData.additionalInfo.batchNo);\r",
							"    pm.environment.set(\"transactionId\", jsonData.additionalInfo.transactionId);\r",
							"\r",
							"}"
						],
						"type": "text/javascript",
						"packages": {}
					}
				},
				{
					"listen": "prerequest",
					"script": {
						"exec": [
							"/*",
							"How to use:",
							"- Configure the client ID via request headers with key as x-partner-id.",
							"- Configure the access token via request headers with key as Authorization and format of value as Bearer {access_token}.",
							"- Configure the secret key via environment variable with key as {clientID}_secret_key.",
							"- Script will generate / replace environment variables listed in the Output section.",
							"",
							"Output (Environment variables):",
							"- gen_signature -> add to X-Signature headers",
							"- gen_timestamp -> add to X-Timestamp headers",
							"*/",
							"",
							"eval( pm.globals.get('pmlib_code') )",
							"",
							"var moment = require('moment')",
							"var CryptoJS = require(\"crypto-js\")",
							"",
							"const clientID = pm.environment.get('clientID');",
							"const accessToken = pm.environment.get(\"access_token\");",
							"",
							"const timestamp = moment().format(\"YYYY-MM-DDThh:mm:ss\")",
							"const body = pm.request.body.raw.replace('{{originalReferenceNo}}',pm.environment.get('originalReferenceNo')).replace('{{originalPartnerReferenceNo}}',pm.environment.get('originalPartnerReferenceNo')).replace('{{merchantId}}',pm.environment.get('merchantId')).replace('{{terminalId}}',pm.environment.get('terminalId'))",
							"// const fullPath = pm.request.url.getPathWithQuery()",
							"const fullPath = \"/OVOSNAP/v2.0/qr/qr-mpm-query\"",
							"const method = pm.request.method",
							"",
							"var secret_key = pm.environment.get(\"_secret_key\")",
							"",
							"const hashedBody = CryptoJS.SHA256(body).toString()",
							"const finalBody = hashedBody.toLowerCase()",
							"const msg = `${method}:${fullPath}:${accessToken}:${finalBody}:${timestamp}`",
							"",
							"",
							"",
							"const hash = CryptoJS.HmacSHA512(msg, secret_key).toString()",
							"function randomString(minValue, maxValue, dataSet = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ') {",
							"    if (!minValue) {",
							"        minValue = 20;",
							"        maxValue = 20;",
							"    }",
							"",
							"    if (!maxValue) {",
							"        maxValue = minValue;",
							"    }",
							"",
							"    let length = _.random(minValue, maxValue),",
							"        randomString = \"\";",
							"",
							"    for (let i = 0; i < length; i++)",
							"        randomString += dataSet.charAt(Math.floor(Math.random() * dataSet.length));",
							"    return randomString;",
							"}",
							"",
							"pm.environment.set('random_xternalid', randomString());",
							"pm.environment.set(\"gen_timestamp\", timestamp)",
							"pm.environment.set(\"gen_signature\", hash)",
							"",
							"pm.environment.set(\"originalReferenceNo\", pm.environment.get('originalReferenceNo'));",
							"pm.environment.set(\"originalPartnerReferenceNo\", pm.environment.get('originalPartnerReferenceNo'));",
							"",
							"",
							"console.log(\"Authorization : Bearer \" + accessToken)",
							"console.log(\"X-SIGNATURE: \" + hash)",
							"console.log(\"X-TIMESTAMP: \" + timestamp)",
							"console.log(\"X-PARTNER-ID: \" + clientID)"
						],
						"type": "text/javascript",
						"packages": {}
					}
				}
			],
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/json"
					},
					{
						"key": "X-PARTNER-ID",
						"value": "{{clientID}}"
					},
					{
						"key": "X-TIMESTAMP",
						"value": "{{gen_timestamp}}"
					},
					{
						"key": "X-SIGNATURE",
						"value": "{{gen_signature}}"
					},
					{
						"key": "Authorization",
						"value": "Bearer {{access_token}}"
					},
					{
						"key": "X-EXTERNAL-ID",
						"value": "{{random_xternalid}}"
					},
					{
						"key": "",
						"value": "",
						"disabled": true
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\n    \"originalReferenceNo\": \"{{originalReferenceNo}}\",\n    \"originalPartnerReferenceNo\": \"{{originalPartnerReferenceNo}}\",\n    \"merchantId\": \"{{merchantId}}\",\n    \"serviceCode\": \"47\",\n    \"additionalInfo\": {\n        \"deviceId\": \"123456797\",\n        \"channel\": \"ovo\",\n        \"terminalId\": \"{{terminalId}}\"\n    }\n}"
				},
				"url": {
					"raw": "https://app.byte-stack.net/OVOSNAP/v2.0/qr/qr-mpm-query",
					"protocol": "https",
					"host": [
						"app",
						"byte-stack",
						"net"
					],
					"path": [
						"OVOSNAP",
						"v2.0",
						"qr",
						"qr-mpm-query"
					]
				}
			},
			"response": [
				{
					"name": "Transaction Inquiry",
					"originalRequest": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json",
								"type": "text"
							},
							{
								"key": "signature",
								"value": "{{hmac}}",
								"type": "text",
								"disabled": true
							},
							{
								"key": "client-id",
								"value": "{{clientId}}",
								"type": "text",
								"disabled": true
							},
							{
								"key": "time",
								"value": "{{time}}",
								"type": "text",
								"disabled": true
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"originalReferenceNo\": \"H2H7a2617ccf0fe4ba2b7295b7c1f99\",\n    \"originalPartnerReferenceNo\": \"TRX-812323019050\",\n    \"merchantId\": \"DretailStore001\",\n    \"serviceCode\": \"73\",\n    \"additionalInfo\": {\n        \"deviceId\": \"123456797\",\n        \"channel\": \"mobilephone\",\n        \"terminalId\": \"11762601\",\n        \"inquiryCount\": 1,\n        \"transactionDate\": \"230502\"\n    }\n}"
						},
						"url": {
							"raw": "{{snap_url}}/OVOSNAP/v1/qr/qr-mpm-query",
							"host": [
								"{{snap_url}}"
							],
							"path": [
								"OVOSNAP",
								"v1",
								"qr",
								"qr-mpm-query"
							]
						}
					},
					"status": "OK",
					"code": 200,
					"_postman_previewlanguage": "json",
					"header": [
						{
							"key": "vary",
							"value": "accept-encoding"
						},
						{
							"key": "content-encoding",
							"value": "gzip"
						},
						{
							"key": "content-type",
							"value": "application/json;charset=UTF-8"
						},
						{
							"key": "date",
							"value": "Tue, 02 May 2023 12:13:09 GMT"
						},
						{
							"key": "via",
							"value": "1.1 google"
						},
						{
							"key": "transfer-encoding",
							"value": "chunked"
						}
					],
					"cookie": [],
					"body": "{\n    \"responseCode\": \"2005300\",\n    \"responseMessage\": \"Successful\",\n    \"originalReferenceNo\": \"H2H7a2617ccf0fe4ba2b7295b7c1f99\",\n    \"originalPartnerReferenceNo\": \"TRX-812323019050\",\n    \"serviceCode\": \"53\",\n    \"latestTransactionStatus\": \"00\",\n    \"transactionStatusDesc\": \"Payment Success\",\n    \"paidTime\": \"2023-05-02T10:37:53.371+0000\",\n    \"terminalId\": \"11762601\",\n    \"amount\": {\n        \"value\": \"3000\"\n    },\n    \"feeAmount\": null,\n    \"additionalInfo\": {\n        \"deviceId\": \"0001100009537395\",\n        \"channel\": \"ovo\",\n        \"gracePeriod\": 5,\n        \"userName\": \"Harry Leonardo\",\n        \"merchantPan\": \"936009120000003547\",\n        \"customerPan\": \"\",\n        \"retrievalReferenceNumber\": \"\",\n        \"issuerName\": \"ovo\",\n        \"transactionId\": \"6983\",\n        \"merchantId\": \"DretailStore001\",\n        \"phoneNumber\": \"********2580\",\n        \"transactionSummary\": {\n            \"points\": \"0\",\n            \"cash\": \"3000\",\n            \"payLater\": \"0\"\n        }\n    }\n}"
				}
			]
		},
		{
			"name": "Refund",
			"event": [
				{
					"listen": "prerequest",
					"script": {
						"exec": [
							"/*",
							"How to use:",
							"- Configure the client ID via request headers with key as x-partner-id.",
							"- Configure the access token via request headers with key as Authorization and format of value as Bearer {access_token}.",
							"- Configure the secret key via environment variable with key as {clientID}_secret_key.",
							"- Script will generate / replace environment variables listed in the Output section.",
							"",
							"Output (Environment variables):",
							"- gen_signature -> add to X-Signature headers",
							"- gen_timestamp -> add to X-Timestamp headers",
							"*/",
							"",
							"eval( pm.globals.get('pmlib_code') )",
							"",
							"var moment = require('moment')",
							"var CryptoJS = require(\"crypto-js\")",
							"",
							"const clientID = pm.environment.get('clientID');",
							"const accessToken = pm.environment.get(\"access_token\");",
							"",
							"const timestamp = moment().format(\"YYYY-MM-DDThh:mm:ss.SSSZ\")",
							"const body = pm.request.body.raw.replace('{{originalReferenceNo}}',pm.environment.get('originalReferenceNo')).replace('{{originalPartnerReferenceNo}}',pm.environment.get('originalPartnerReferenceNo')).replace('{{merchantId}}',pm.environment.get('merchantId')).replace('{{terminalId}}',pm.environment.get('terminalId')).replace('{{batchNo}}',pm.environment.get('batchNo')).replace('{{transactionId}}',pm.environment.get('transactionId')).replace('{{amount}}',pm.environment.get('amount'))",
							"const fullPath = pm.request.url.getPathWithQuery()",
							"const method = pm.request.method",
							"",
							"var secret_key = pm.environment.get(\"_secret_key\")",
							"",
							"console.log(\"clientID: \" + clientID)",
							"console.log(\"accessToken: \" + accessToken)",
							"console.log(\"timestamp: \" + timestamp)",
							"console.log(\"body: \" + body)",
							"console.log(\"fullPath: \" + fullPath)",
							"console.log(\"method: \" + method)",
							"console.log(\"secret_key: \" + secret_key)",
							"",
							"const hashedBody = CryptoJS.SHA256(body).toString()",
							"const finalBody = hashedBody.toLowerCase()",
							"",
							"console.log(\"hashedBody: \" + hashedBody)",
							"console.log(\"finalBody: \" + finalBody)",
							"",
							"const msg = `${method}:${fullPath}:${accessToken}:${finalBody}:${timestamp}`",
							"",
							"console.log(\"msg: \" + msg)",
							"",
							"const hash = CryptoJS.HmacSHA512(msg, secret_key).toString()",
							"",
							"console.log(\"hash: \" + hash)",
							"",
							"pm.environment.set(\"gen_timestamp\", timestamp)",
							"pm.environment.set(\"gen_signature\", hash)"
						],
						"type": "text/javascript",
						"packages": {}
					}
				}
			],
			"request": {
				"method": "POST",
				"header": [
					{
						"key": "Content-Type",
						"value": "application/json"
					},
					{
						"key": "X-PARTNER-ID",
						"value": "{{clientID}}"
					},
					{
						"key": "X-TIMESTAMP",
						"value": "{{gen_timestamp}}"
					},
					{
						"key": "X-SIGNATURE",
						"value": "{{gen_signature}}"
					},
					{
						"key": "Authorization",
						"value": "Bearer {{access_token}}"
					},
					{
						"key": "X-EXTERNAL-ID",
						"value": "{{random_xternalid}}"
					}
				],
				"body": {
					"mode": "raw",
					"raw": "{\n    \"originalReferenceNo\": \"{{originalReferenceNo}}\",\n    \"originalPartnerReferenceNo\": \"{{originalPartnerReferenceNo}}\",\n    \"merchantId\": \"{{merchantId}}\",\n    \"partnerRefundNo\": \"REFUND-1\",\n    \"refundAmount\": {\n        \"value\": \"{{amount}}\",\n        \"currency\": \"IDR\"\n    },\n    \"reason\": \"Customer complain\",\n    \"additionalInfo\": {\n        \"deviceId\": \"12345637\",\n        \"channel\": \"mobilephone\",\n        \"terminalId\": \"{{terminalId}}\",\n        \"batchNo\": \"{{batchNo}}\",\n        \"transactionId\": \"{{transactionId}}\"\n    }\n}"
				},
				"url": {
					"raw": "https://app.byte-stack.net/OVOSNAP/v2.0/qr/qr-mpm-refund",
					"protocol": "https",
					"host": [
						"app",
						"byte-stack",
						"net"
					],
					"path": [
						"OVOSNAP",
						"v2.0",
						"qr",
						"qr-mpm-refund"
					]
				}
			},
			"response": []
		}
	]
}