{
  "info": {
    "_postman_id": "29759d39-3615-456b-87c5-870393dfe33e",
    "name": "PayThem VVS (has scripts)",
    "description": "VVS API calls\n\nCollection has pre-request scripts\n\nEach folder has it's own setup, but uses the same scripts in the collection pre-request environment.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "_exporter_id": "33318823"
  },
  "item": [
    {
      "name": "Purchase API",
      "item": [
        {
          "name": "get_AccountBalance",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            },
            {
              "listen": "prerequest",
              "script": {
                "exec": [
                  "// Retrieve the stored function from globals\r",
                  "eval(\"var doCallPrep = \" + pm.globals.get(\"doCallPrep\"));\r",
                  "\r",
                  "// Execute prep\r",
                  "doCallPrep(2824, 'get_AccountBalance', []);\r",
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": []
            },
            "url": {
              "raw": "{{DOMAIN}}/API/",
              "host": [
                "{{DOMAIN}}"
              ],
              "path": [
                "API",
                ""
              ]
            }
          },
          "response": []
        },
        {
          "name": "get_OEMList",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            },
            {
              "listen": "prerequest",
              "script": {
                "exec": [
                  "// Retrieve the stored function from globals\r",
                  "eval(\"var doCallPrep = \" + pm.globals.get(\"doCallPrep\"));\r",
                  "\r",
                  "// Execute prep\r",
                  "doCallPrep(2824, 'get_OEMList', []);\r",
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": []
            },
            "url": {
              "raw": "{{DOMAIN}}/API/",
              "host": [
                "{{DOMAIN}}"
              ],
              "path": [
                "API",
                ""
              ]
            }
          },
          "response": []
        },
        {
          "name": "get_BrandList",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            },
            {
              "listen": "prerequest",
              "script": {
                "exec": [
                  "// Retrieve the stored function from globals\r",
                  "eval(\"var doCallPrep = \" + pm.globals.get(\"doCallPrep\"));\r",
                  "\r",
                  "// Execute prep\r",
                  "doCallPrep(2824, 'get_BrandList', []);\r",
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": []
            },
            "url": {
              "raw": "{{DOMAIN}}/API/",
              "host": [
                "{{DOMAIN}}"
              ],
              "path": [
                "API",
                ""
              ]
            }
          },
          "response": []
        },
        {
          "name": "get_ProductList",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            },
            {
              "listen": "prerequest",
              "script": {
                "exec": [
                  "// Retrieve the stored function from globals\r",
                  "eval(\"var doCallPrep = \" + pm.globals.get(\"doCallPrep\"));\r",
                  "\r",
                  "// Execute prep\r",
                  "doCallPrep(2824, 'get_ProductList', []);\r",
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": []
            },
            "url": {
              "raw": "{{DOMAIN}}/API/",
              "host": [
                "{{DOMAIN}}"
              ],
              "path": [
                "API",
                ""
              ]
            }
          },
          "response": []
        },
        {
          "name": "get_ProductInfo",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            },
            {
              "listen": "prerequest",
              "script": {
                "exec": [
                  "// Retrieve the stored function from globals\r",
                  "eval(\"var doCallPrep = \" + pm.globals.get(\"doCallPrep\"));\r",
                  "\r",
                  "// Execute prep\r",
                  "doCallPrep(2824, 'get_ProductInfo', {'PRODUCT_ID':20951});\r",
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": []
            },
            "url": {
              "raw": "{{DOMAIN}}/API/",
              "host": [
                "{{DOMAIN}}"
              ],
              "path": [
                "API",
                ""
              ]
            }
          },
          "response": []
        },
        {
          "name": "get_Vouchers",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  ""
                ],
                "type": "text/javascript",
                "packages": {},
                "requests": {}
              }
            },
            {
              "listen": "prerequest",
              "script": {
                "exec": [
                  "// Retrieve the stored function from globals\r",
                  "eval(\"var doCallPrep = \" + pm.globals.get(\"doCallPrep\"));\r",
                  "\r",
                  "// Execute prep\r",
                  "doCallPrep(\r",
                  "    2824, \r",
                  "    'get_Vouchers',\r",
                  "    {\r",
                  "        'REFERENCE_ID'  : Math.random(1000)*10000000,\r",
                  "        'PRODUCT_ID'    : 1,\r",
                  "        'QUANTITY'      : 1,\r",
                  "        'OUTLET_IDENTIFIER' : Math.random(1000)*10000000\r",
                  "    }\r",
                  ");\r",
                  ""
                ],
                "type": "text/javascript",
                "packages": {},
                "requests": {}
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": []
            },
            "url": {
              "raw": "{{DOMAIN}}/API/",
              "host": [
                "{{DOMAIN}}"
              ],
              "path": [
                "API",
                ""
              ]
            }
          },
          "response": []
        },
        {
          "name": "get_ProductInfo",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            },
            {
              "listen": "prerequest",
              "script": {
                "exec": [
                  "// Retrieve the stored function from globals\r",
                  "eval(\"var doCallPrep = \" + pm.globals.get(\"doCallPrep\"));\r",
                  "\r",
                  "// Execute prep\r",
                  "doCallPrep(\r",
                  "    2824,\r",
                  "    'get_ProductInfo',\r",
                  "    {\r",
                  "        'PRODUCT_ID': 319\r",
                  "    }\r",
                  ");\r",
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": []
            },
            "url": {
              "raw": "{{DOMAIN}}/API/",
              "host": [
                "{{DOMAIN}}"
              ],
              "path": [
                "API",
                ""
              ]
            }
          },
          "response": []
        },
        {
          "name": "get_ProductAvailability",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            },
            {
              "listen": "prerequest",
              "script": {
                "exec": [
                  "// Retrieve the stored function from globals\r",
                  "eval(\"var doCallPrep = \" + pm.globals.get(\"doCallPrep\"));\r",
                  "\r",
                  "// Execute prep\r",
                  "doCallPrep(\r",
                  "    2824, \r",
                  "    'get_ProductAvailability',\r",
                  "    {\r",
                  "        'PRODUCT_ID'    : 319\r",
                  "    }\r",
                  ");\r",
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": []
            },
            "url": {
              "raw": "{{DOMAIN}}/API/",
              "host": [
                "{{DOMAIN}}"
              ],
              "path": [
                "API",
                ""
              ]
            }
          },
          "response": []
        },
        {
          "name": "get_AllProductAvailability",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            },
            {
              "listen": "prerequest",
              "script": {
                "exec": [
                  "// Retrieve the stored function from globals\r",
                  "eval(\"var doCallPrep = \" + pm.globals.get(\"doCallPrep\"));\r",
                  "\r",
                  "// Execute prep\r",
                  "doCallPrep(\r",
                  "    2824, \r",
                  "    'get_AllProductAvailability',\r",
                  "    {}\r",
                  ");\r",
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": []
            },
            "url": {
              "raw": "{{DOMAIN}}/API/",
              "host": [
                "{{DOMAIN}}"
              ],
              "path": [
                "API",
                ""
              ]
            }
          },
          "response": []
        },
        {
          "name": "get_FinancialTransaction_ByDateRange",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            },
            {
              "listen": "prerequest",
              "script": {
                "exec": [
                  "// Retrieve the stored function from globals\r",
                  "eval(\"var doCallPrep = \" + pm.globals.get(\"doCallPrep\"));\r",
                  "\r",
                  "// Execute prep\r",
                  "doCallPrep(\r",
                  "    2824, \r",
                  "    'get_FinancialTransaction_ByDateRange',\r",
                  "    {\r",
                  "        'FROM_DATE'     : '2025-03-11',\r",
                  "        'TO_DATE'       : '2025-03-11'\r",
                  "    }\r",
                  ");\r",
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": []
            },
            "url": {
              "raw": "{{DOMAIN}}/API/",
              "host": [
                "{{DOMAIN}}"
              ],
              "path": [
                "API",
                ""
              ]
            }
          },
          "response": []
        },
        {
          "name": "get_SalesTransaction_ByDateRange",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            },
            {
              "listen": "prerequest",
              "script": {
                "exec": [
                  "// Retrieve the stored function from globals\r",
                  "eval(\"var doCallPrep = \" + pm.globals.get(\"doCallPrep\"));\r",
                  "\r",
                  "// Execute prep\r",
                  "doCallPrep(\r",
                  "    2824, \r",
                  "    'get_SalesTransaction_ByDateRange',\r",
                  "    {\r",
                  "        'FROM_DATE'     : '2025-03-11',\r",
                  "        'TO_DATE'       : '2025-03-11'\r",
                  "    }\r",
                  ");\r",
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": []
            },
            "url": {
              "raw": "{{DOMAIN}}/API/",
              "host": [
                "{{DOMAIN}}"
              ],
              "path": [
                "API",
                ""
              ]
            }
          },
          "response": []
        },
        {
          "name": "get_SalesTransaction_ByReferenceId",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            },
            {
              "listen": "prerequest",
              "script": {
                "exec": [
                  "// Retrieve the stored function from globals\r",
                  "eval(\"var doCallPrep = \" + pm.globals.get(\"doCallPrep\"));\r",
                  "\r",
                  "// Execute prep\r",
                  "doCallPrep(\r",
                  "    2824, \r",
                  "    'get_SalesTransaction_ByReferenceId',\r",
                  "    {\r",
                  "        'REFERENCE_ID'      : 1\r",
                  "    }\r",
                  ");\r",
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": []
            },
            "url": {
              "raw": "{{DOMAIN}}/API/",
              "host": [
                "{{DOMAIN}}"
              ],
              "path": [
                "API",
                ""
              ]
            }
          },
          "response": []
        },
        {
          "name": "get_SalesTransaction_ByTransactionId",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            },
            {
              "listen": "prerequest",
              "script": {
                "exec": [
                  "// Retrieve the stored function from globals\r",
                  "eval(\"var doCallPrep = \" + pm.globals.get(\"doCallPrep\"));\r",
                  "\r",
                  "// Execute prep\r",
                  "doCallPrep(\r",
                  "    2824, \r",
                  "    'get_SalesTransaction_ByReferenceId',\r",
                  "    {\r",
                  "        'REFERENCE_ID'          : 1,\r",
                  "        'TRANSACTION_ID'        : 1\r",
                  "    }\r",
                  ");\r",
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": []
            },
            "url": {
              "raw": "{{DOMAIN}}/API/",
              "host": [
                "{{DOMAIN}}"
              ],
              "path": [
                "API",
                ""
              ]
            }
          },
          "response": []
        },
        {
          "name": "get_ProductFormats",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            },
            {
              "listen": "prerequest",
              "script": {
                "exec": [
                  "// Retrieve the stored function from globals\r",
                  "eval(\"var doCallPrep = \" + pm.globals.get(\"doCallPrep\"));\r",
                  "\r",
                  "// Execute prep\r",
                  "doCallPrep(\r",
                  "    2824, \r",
                  "    'get_ProductFormats',\r",
                  "    {}\r",
                  ");\r",
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": []
            },
            "url": {
              "raw": "{{DOMAIN}}/API/",
              "host": [
                "{{DOMAIN}}"
              ],
              "path": [
                "API",
                ""
              ]
            }
          },
          "response": []
        },
        {
          "name": "get_MaxAllowedVouchersPerCall",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            },
            {
              "listen": "prerequest",
              "script": {
                "exec": [
                  "// Retrieve the stored function from globals\r",
                  "eval(\"var doCallPrep = \" + pm.globals.get(\"doCallPrep\"));\r",
                  "\r",
                  "// Execute prep\r",
                  "doCallPrep(\r",
                  "    2824, \r",
                  "    'get_MaxAllowedVouchersPerCall',\r",
                  "    {}\r",
                  ");\r",
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": []
            },
            "url": {
              "raw": "{{DOMAIN}}/API/",
              "host": [
                "{{DOMAIN}}"
              ],
              "path": [
                "API",
                ""
              ]
            }
          },
          "response": []
        }
      ],
      "event": [
        {
          "listen": "prerequest",
          "script": {
            "type": "text/javascript",
            "packages": {},
            "exec": [
              ""
            ]
          }
        },
        {
          "listen": "test",
          "script": {
            "type": "text/javascript",
            "packages": {},
            "exec": [
              ""
            ]
          }
        }
      ]
    },
    {
      "name": "POSA API",
      "item": [
        {
          "name": "activate",
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "exec": [
                  "// Retrieve the stored function from globals\r",
                  "eval(\"var doCallPrep = \" + pm.globals.get(\"doCallPrep\"));\r",
                  "\r",
                  "// Execute prep\r",
                  "doCallPrep(\r",
                  "    54346, \r",
                  "    'activate',\r",
                  "    {\r",
                  "        'CLIENT_REFERENCE'  : Math.random(1000)*10000000,\r",
                  "        'VC_SERIAL': '[ENTER]',\r",
                  "        'VC_EAN': '[ENTER]',\r",
                  "        'VC_OUTLET': '[ENTER]'\r",
                  "    }\r",
                  ");\r",
                  ""
                ],
                "type": "text/javascript",
                "packages": {},
                "requests": {}
              }
            },
            {
              "listen": "test",
              "script": {
                "exec": [
                  ""
                ],
                "type": "text/javascript",
                "packages": {},
                "requests": {}
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": []
            },
            "url": {
              "raw": "{{DOMAIN}}/API/",
              "host": [
                "{{DOMAIN}}"
              ],
              "path": [
                "API",
                ""
              ]
            }
          },
          "response": []
        },
        {
          "name": "cancel",
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "exec": [
                  "// Retrieve the stored function from globals\r",
                  "eval(\"var doCallPrep = \" + pm.globals.get(\"doCallPrep\"));\r",
                  "\r",
                  "// Execute prep\r",
                  "doCallPrep(\r",
                  "    54346, \r",
                  "    'cancel',\r",
                  "    {\r",
                  "        'CLIENT_REFERENCE'  : Math.random(1000)*10000000,\r",
                  "        'VC_SERIAL': '[ENTER]',\r",
                  "        'VC_EAN': '[ENTER]',\r",
                  "        'VC_OUTLET': '[ENTER]'\r",
                  "    }\r",
                  ");\r",
                  ""
                ],
                "type": "text/javascript",
                "packages": {},
                "requests": {}
              }
            },
            {
              "listen": "test",
              "script": {
                "exec": [
                  ""
                ],
                "type": "text/javascript",
                "packages": {},
                "requests": {}
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": []
            },
            "url": {
              "raw": "{{DOMAIN}}/API/",
              "host": [
                "{{DOMAIN}}"
              ],
              "path": [
                "API",
                ""
              ]
            }
          },
          "response": []
        },
        {
          "name": "status",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  ""
                ],
                "type": "text/javascript",
                "packages": {},
                "requests": {}
              }
            },
            {
              "listen": "prerequest",
              "script": {
                "exec": [
                  "// Retrieve the stored function from globals\r",
                  "eval(\"var doCallPrep = \" + pm.globals.get(\"doCallPrep\"));\r",
                  "\r",
                  "// Execute prep\r",
                  "doCallPrep(\r",
                  "    54346, \r",
                  "    'status',\r",
                  "    {\r",
                  "        'VC_SERIAL': '[ENTER]',\r",
                  "        'VC_EAN': '[ENTER]',\r",
                  "        'VC_OUTLET': '[ENTER]'\r",
                  "    }\r",
                  ");\r",
                  ""
                ],
                "type": "text/javascript",
                "packages": {},
                "requests": {}
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": []
            },
            "url": {
              "raw": "{{DOMAIN}}/API/",
              "host": [
                "{{DOMAIN}}"
              ],
              "path": [
                "API",
                ""
              ]
            }
          },
          "response": []
        },
        {
          "name": "transaction_ByTransactionID",
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "exec": [
                  "// Retrieve the stored function from globals\r",
                  "eval(\"var doCallPrep = \" + pm.globals.get(\"doCallPrep\"));\r",
                  "\r",
                  "// Execute prep\r",
                  "doCallPrep(\r",
                  "    54346, \r",
                  "    'transaction_ByTransactionID',\r",
                  "    {\r",
                  "        'TRANSACTION_ID': 0\r",
                  "    }\r",
                  ");\r",
                  ""
                ],
                "type": "text/javascript",
                "packages": {},
                "requests": {}
              }
            },
            {
              "listen": "test",
              "script": {
                "exec": [
                  ""
                ],
                "type": "text/javascript",
                "packages": {},
                "requests": {}
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": []
            },
            "url": {
              "raw": "{{DOMAIN}}/API/",
              "host": [
                "{{DOMAIN}}"
              ],
              "path": [
                "API",
                ""
              ]
            }
          },
          "response": []
        },
        {
          "name": "transaction_ByReferenceID",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  ""
                ],
                "type": "text/javascript",
                "packages": {},
                "requests": {}
              }
            },
            {
              "listen": "prerequest",
              "script": {
                "exec": [
                  "// Retrieve the stored function from globals\r",
                  "eval(\"var doCallPrep = \" + pm.globals.get(\"doCallPrep\"));\r",
                  "\r",
                  "// Execute prep\r",
                  "doCallPrep(\r",
                  "    54346, \r",
                  "    'transaction_ByReferenceID',\r",
                  "    {\r",
                  "        'CLIENT_REFERENCE': '[ENTER]'\r",
                  "    }\r",
                  ");\r",
                  ""
                ],
                "type": "text/javascript",
                "packages": {},
                "requests": {}
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": []
            },
            "url": {
              "raw": "{{DOMAIN}}/API/",
              "host": [
                "{{DOMAIN}}"
              ],
              "path": [
                "API",
                ""
              ]
            }
          },
          "response": []
        },
        {
          "name": "transactions_ByDateRange",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            },
            {
              "listen": "prerequest",
              "script": {
                "exec": [
                  "// Retrieve the stored function from globals\r",
                  "eval(\"var doCallPrep = \" + pm.globals.get(\"doCallPrep\"));\r",
                  "\r",
                  "// Execute prep\r",
                  "doCallPrep(\r",
                  "    54346, \r",
                  "    'transactions_ByDateRange',\r",
                  "    {\r",
                  "        'FROM_DATE': '2025-07-01',\r",
                  "        'TO_DATE': '2025-07-10'\r",
                  "    }\r",
                  ");\r",
                  ""
                ],
                "type": "text/javascript",
                "packages": {}
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [],
            "body": {
              "mode": "formdata",
              "formdata": []
            },
            "url": {
              "raw": "{{DOMAIN}}/API/",
              "host": [
                "{{DOMAIN}}"
              ],
              "path": [
                "API",
                ""
              ]
            }
          },
          "response": []
        }
      ],
      "event": [
        {
          "listen": "prerequest",
          "script": {
            "type": "text/javascript",
            "packages": {},
            "exec": [
              ""
            ]
          }
        },
        {
          "listen": "test",
          "script": {
            "type": "text/javascript",
            "packages": {},
            "exec": [
              ""
            ]
          }
        }
      ]
    }
  ],
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "type": "text/javascript",
        "packages": {},
        "requests": {},
        "exec": [
          "// Load CryptoJS from a CDN\r",
          "const cryptoJsUrl = 'https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js';\r",
          "pm.sendRequest(cryptoJsUrl, function (err, res) {\r",
          "    if (err) {\r",
          "        console.error('Failed to load CryptoJS:', err);\r",
          "    } else {\r",
          "        // Evaluate the CryptoJS library\r",
          "        eval(res.text());\r",
          "        console.log('CryptoJS loaded successfully');\r",
          "    }\r",
          "});\r",
          "\r",
          "// Timestamp\r",
          "const dte = new Date();\r",
          "const year = dte.getFullYear();\r",
          "const month = String(dte.getMonth() + 1).padStart(2, '0'); // Months are 0-indexed\r",
          "const day = String(dte.getDate()).padStart(2, '0');\r",
          "const hours = String(dte.getHours()).padStart(2, '0');\r",
          "const minutes = String(dte.getMinutes()).padStart(2, '0');\r",
          "const seconds = String(dte.getSeconds()).padStart(2, '0');\r",
          "const timestamp = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\r",
          "\r",
          "// General variables / parameter\r",
          "let parms = {\r",
          "    'SERVER_DEBUG'          : false,\r",
          "    'FAULTY_PROXY'          : false,\r",
          "    'DEBUG_OUTPUT'          : true,\r",
          "    'PARAMETERS'            : [],\r",
          "    'ENCRYPT_RESPONSE'      : false, // Best use case is production environment\r",
          "    'PUBLIC_KEY'            : pm.collectionVariables.get('PUBLIC_KEY'),\r",
          "    'PRIVATE_KEY'           : 'REMOVED',\r",
          "    'USERNAME'              : pm.collectionVariables.get('USERNAME'),\r",
          "    'PASSWORD'              : pm.collectionVariables.get('PASSWORD'),\r",
          "    'FUNCTION'              : 'PENDING',\r",
          "    'SOURCE_IP'             : pm.globals.set('SERVER_IP'),\r",
          "    'API_VERSION'           : '2.2.7',\r",
          "    'SERVER_URI'            : pm.collectionVariables.get('DOMAIN')+'/API/',\r",
          "    'SERVER_TIMESTAMP'      : timestamp,\r",
          "    'SERVER_TIMEZONE'       : 'Africa/Johannesburg', // Adjust to own TZ\r",
          "    'HASH_STUB'             : Math.floor(Math.random() * 1000000000),\r",
          "};\r",
          "pm.globals.set('parms', parms);\r",
          "\r",
          "// Get public IP address, not really required.\r",
          "pm.sendRequest(\"https://api64.ipify.org?format=json\", function (err, res) {\r",
          "    if (!err) {\r",
          "        let ip = res.json().ip;\r",
          "        pm.globals.set('SERVER_IP', ip);\r",
          "        console.log(\"Public IP:\", ip);\r",
          "    }\r",
          "});\r",
          "\r",
          "// Decryption process\r",
          "pm.globals.set(\"decryptResponse\", (function() {\r",
          "    return function() {\r",
          "        let body = pm.globals.get('parms');\r",
          "        let responseJson = pm.response.json();  // Get original response\r",
          "        let encryptedBase64 = responseJson.CONTENT;  // Get encrypted field\r",
          "\r",
          "        if (body.ENCRYPT_RESPONSE == true) {\r",
          "\r",
          "            if (encryptedBase64) {\r",
          "                let key = pm.collectionVariables.get(\"PRIVATE_KEY\");  // Encryption key\r",
          "                let iv = pm.globals.get(\"IV\");  // Initialization vector\r",
          "\r",
          "                // Convert key & IV to WordArray\r",
          "                let keyUtf8 = CryptoJS.enc.Utf8.parse(key);\r",
          "                let ivUtf8 = CryptoJS.enc.Utf8.parse(iv);\r",
          "\r",
          "                // Convert Base64 encoded data to WordArray\r",
          "                let encryptedData = CryptoJS.enc.Base64.parse(encryptedBase64);\r",
          "\r",
          "                // Decrypt AES-256-CBC\r",
          "                let decrypted = CryptoJS.AES.decrypt(\r",
          "                    { ciphertext: encryptedData },\r",
          "                    keyUtf8,\r",
          "                    { iv: ivUtf8, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }\r",
          "                );\r",
          "\r",
          "                // Convert decrypted data to string\r",
          "                let decryptedText = decrypted.toString(CryptoJS.enc.Utf8);\r",
          "\r",
          "                // 🔹 Overwrite the original CONTENT field\r",
          "                responseJson.CONTENT = decryptedText;\r",
          "\r",
          "                // 🔹 Store the updated response object in an environment variable\r",
          "                pm.globals.set(\"RESPONSE\", JSON.stringify(responseJson));\r",
          "\r",
          "            }\r",
          "        } else {\r",
          "            pm.globals.set(\"RESPONSE\", JSON.stringify(responseJson));\r",
          "        }\r",
          "\r",
          "        console.log(\"Response:\", responseJson);\r",
          "\r",
          "    };\r",
          "})().toString());\r",
          "\r",
          "// Do preparations for calling VVS\r",
          "pm.globals.set(\"doCallPrep\", (function() {\r",
          "    return function(endPoint, functionCall, parameters) {\r",
          "        console.log('doCallPrep');\r",
          "        console.log('Function call:'+functionCall);\r",
          "        console.log(parameters);\r",
          "\r",
          "        let body = pm.globals.get('parms');\r",
          "        body.SERVER_URI += endPoint + '/';\r",
          "        body.FUNCTION = functionCall;\r",
          "        body.PARAMETERS = parameters;\r",
          "\r",
          "        // Add endpoint ID to URL\r",
          "        let url = pm.request.url.toString(); \r",
          "        url += endPoint+'/';\r",
          "        pm.request.url = url;\r",
          "\r",
          "        // Define the private key and IV\r",
          "        const privateKey = pm.collectionVariables.get('PRIVATE_KEY');\r",
          "        const iv = CryptoJS.lib.WordArray.random(16); // Use a random IV if not provided\r",
          "\r",
          "        pm.globals.set('IV', iv);\r",
          "\r",
          "        let content = JSON.stringify(body);\r",
          "\r",
          "        // Perform AES-256-CBC encryption\r",
          "        const encrypted = CryptoJS.AES.encrypt(content, CryptoJS.enc.Utf8.parse(privateKey), {\r",
          "            iv: CryptoJS.enc.Utf8.parse(iv),\r",
          "            mode: CryptoJS.mode.CBC,\r",
          "            padding: CryptoJS.pad.Pkcs7\r",
          "        });\r",
          "\r",
          "        let hmacHash = CryptoJS.HmacSHA256(content, privateKey).toString(CryptoJS.enc.Hex);\r",
          "\r",
          "        // Convert the encrypted data to Base64\r",
          "        const encryptedBase64 = encrypted.toString();\r",
          "\r",
          "        pm.request.body.formdata.add({key: 'PUBLIC_KEY', value: pm.collectionVariables.get('PUBLIC_KEY')})\r",
          "        pm.request.body.formdata.add({key: 'ENC_METHOD', value: 'AES-CBC-256-OPENSSL'})\r",
          "        pm.request.body.formdata.add({key: 'ZAPI', value: iv.toString()})\r",
          "        pm.request.body.formdata.add({key: 'CONTENT', value: encryptedBase64})\r",
          "\r",
          "        // Add multiple headers\r",
          "        const headersToAdd = [\r",
          "            { key: 'X-Public-Key', value: pm.collectionVariables.get('PUBLIC_KEY') },\r",
          "            { key: 'X-Hash', value:  CryptoJS.HmacSHA256(content, privateKey).toString(CryptoJS.enc.Hex) },\r",
          "            { key: 'X-Timestamp', value: new Date().toISOString() },\r",
          "            { key: 'X-Sourceip', value: pm.collectionVariables.get('SERVER_IP')},\r",
          "            { key: 'X-Forwarded-For-Override', value: pm.collectionVariables.get('SERVER_IP')}\r",
          "        ];\r",
          "        headersToAdd.forEach(header => {\r",
          "            pm.request.headers.add(header);\r",
          "        });\r",
          "\r",
          "    };\r",
          "})().toString());"
        ]
      }
    },
    {
      "listen": "test",
      "script": {
        "type": "text/javascript",
        "packages": {},
        "requests": {},
        "exec": [
          "// Retrieve the stored function from globals\r",
          "eval(\"var decryptResponse = \" + pm.globals.get(\"decryptResponse\"));\r",
          "\r",
          "// Execute prep\r",
          "decryptResponse();"
        ]
      }
    }
  ],
  "variable": [
    {
      "key": "DOMAIN",
      "value": "https://vvsdemo.paythem.net"
    },
    {
      "key": "PUBLIC_KEY",
      "value": "U07640"
    },
    {
      "key": "PRIVATE_KEY",
      "value": "ywwzjinw"
    },
    {
      "key": "USERNAME",
      "value": "hqmwyaxbrxaajugsmdrtearkebwdwjzz"
    },
    {
      "key": "PASSWORD",
      "value": "yorgdfhsobkieoggshqksycmqwntzuvk"
    }
  ]
}