{
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "exec": [
          ""
        ],
        "type": "text/javascript"
      }
    },
    {
      "listen": "test",
      "script": {
        "exec": [
          "// Set response object as internal variable",
          "let jsonData = {};",
          "try {",
          "  jsonData = pm.response.json();",
          "} catch (e) {}",
          "",
          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
          "if (jsonData?.payment_id) {",
          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
          "  console.log(\"[LOG]::payment_id - \" + jsonData.payment_id);",
          "}",
          "",
          "console.log(\"[LOG]::x-request-id - \" + pm.response.headers.get(\"x-request-id\"));",
          ""
        ],
        "type": "text/javascript"
      }
    }
  ],
  "item": [
    {
      "name": "Health check",
      "item": [
        {
          "name": "New Request",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  "// Validate status 2xx",
                  "pm.test(\"[POST]::/accounts - Status code is 2xx\", function () {",
                  "  pm.response.to.be.success;",
                  "});",
                  ""
                ],
                "type": "text/javascript"
              }
            }
          ],
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/health",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "health"
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Flow Testcases",
      "item": [
        {
          "name": "QuickStart",
          "item": [
            {
              "name": "Merchant Account - Create",
              "event": [
                {
                  "listen": "prerequest",
                  "script": {
                    "exec": [
                      ""
                    ],
                    "type": "text/javascript"
                  }
                },
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "// Validate status 2xx",
                      "pm.test(\"[POST]::/accounts - Status code is 2xx\", function () {",
                      "  pm.response.to.be.success;",
                      "});",
                      "",
                      "// Validate if response header has matching content-type",
                      "pm.test(\"[POST]::/accounts - Content-Type is application/json\", function () {",
                      "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                      "    \"application/json\",",
                      "  );",
                      "});",
                      "",
                      "// Set response object as internal variable",
                      "let jsonData = {};",
                      "try {",
                      "  jsonData = pm.response.json();",
                      "} catch (e) {}",
                      "",
                      "// pm.collectionVariables - Set merchant_id as variable for jsonData.merchant_id",
                      "if (jsonData?.merchant_id) {",
                      "  pm.collectionVariables.set(\"merchant_id\", jsonData.merchant_id);",
                      "  console.log(",
                      "    \"- use {{merchant_id}} as collection variable for value\",",
                      "    jsonData.merchant_id,",
                      "  );",
                      "} else {",
                      "  console.log(",
                      "    \"INFO - Unable to assign variable {{merchant_id}}, as jsonData.merchant_id is undefined.\",",
                      "  );",
                      "}",
                      "",
                      "// pm.collectionVariables - Set api_key as variable for jsonData.api_key",
                      "if (jsonData?.api_key) {",
                      "  pm.collectionVariables.set(\"api_key\", jsonData.api_key);",
                      "  console.log(",
                      "    \"- use {{api_key}} as collection variable for value\",",
                      "    jsonData.api_key,",
                      "  );",
                      "} else {",
                      "  console.log(",
                      "    \"INFO - Unable to assign variable {{api_key}}, as jsonData.api_key is undefined.\",",
                      "  );",
                      "}",
                      "",
                      "// pm.collectionVariables - Set publishable_key as variable for jsonData.publishable_key",
                      "if (jsonData?.publishable_key) {",
                      "  pm.collectionVariables.set(\"publishable_key\", jsonData.publishable_key);",
                      "  console.log(",
                      "    \"- use {{publishable_key}} as collection variable for value\",",
                      "    jsonData.publishable_key,",
                      "  );",
                      "} else {",
                      "  console.log(",
                      "    \"INFO - Unable to assign variable {{publishable_key}}, as jsonData.publishable_key is undefined.\",",
                      "  );",
                      "}",
                      ""
                    ],
                    "type": "text/javascript"
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "apikey",
                  "apikey": [
                    {
                      "key": "value",
                      "value": "{{admin_api_key}}",
                      "type": "string"
                    },
                    {
                      "key": "key",
                      "value": "api-key",
                      "type": "string"
                    },
                    {
                      "key": "in",
                      "value": "header",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  },
                  "raw": "{\"merchant_id\":\"postman_merchant_GHAction_{{$guid}}\",\"locker_id\":\"m0010\",\"merchant_name\":\"NewAge Retailer\",\"primary_business_details\":[{\"country\":\"US\",\"business\":\"default\"}],\"merchant_details\":{\"primary_contact_person\":\"John Test\",\"primary_email\":\"JohnTest@test.com\",\"primary_phone\":\"sunt laborum\",\"secondary_contact_person\":\"John Test2\",\"secondary_email\":\"JohnTest2@test.com\",\"secondary_phone\":\"cillum do dolor id\",\"website\":\"www.example.com\",\"about_business\":\"Online Retail with a wide selection of organic products for North America\",\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\"}},\"return_url\":\"https://duck.com\",\"webhook_details\":{\"webhook_version\":\"1.0.1\",\"webhook_username\":\"ekart_retail\",\"webhook_password\":\"password_ekart@123\",\"payment_created_enabled\":true,\"payment_succeeded_enabled\":true,\"payment_failed_enabled\":true},\"sub_merchants_enabled\":false,\"metadata\":{\"city\":\"NY\",\"unit\":\"245\"}}"
                },
                "url": {
                  "raw": "{{baseUrl}}/accounts",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "accounts"
                  ]
                },
                "description": "Create a new account for a merchant. The merchant could be a seller or retailer or client who likes to receive and send payments."
              },
              "response": []
            },
            {
              "name": "API Key - Create",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "// Validate status 2xx",
                      "pm.test(\"[POST]::/api_keys/:merchant_id - Status code is 2xx\", function () {",
                      "  pm.response.to.be.success;",
                      "});",
                      "",
                      "// Validate if response header has matching content-type",
                      "pm.test(",
                      "  \"[POST]::/api_keys/:merchant_id - Content-Type is application/json\",",
                      "  function () {",
                      "    pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                      "      \"application/json\",",
                      "    );",
                      "  },",
                      ");",
                      "",
                      "// Set response object as internal variable",
                      "let jsonData = {};",
                      "try {",
                      "  jsonData = pm.response.json();",
                      "} catch (e) {}",
                      "",
                      "// pm.collectionVariables - Set api_key_id as variable for jsonData.key_id",
                      "if (jsonData?.key_id) {",
                      "  pm.collectionVariables.set(\"api_key_id\", jsonData.key_id);",
                      "  console.log(",
                      "    \"- use {{api_key_id}} as collection variable for value\",",
                      "    jsonData.key_id,",
                      "  );",
                      "} else {",
                      "  console.log(",
                      "    \"INFO - Unable to assign variable {{api_key_id}}, as jsonData.key_id is undefined.\",",
                      "  );",
                      "}",
                      "",
                      "// pm.collectionVariables - Set api_key as variable for jsonData.api_key",
                      "if (jsonData?.api_key) {",
                      "  pm.collectionVariables.set(\"api_key\", jsonData.api_key);",
                      "  console.log(",
                      "    \"- use {{api_key}} as collection variable for value\",",
                      "    jsonData.api_key,",
                      "  );",
                      "} else {",
                      "  console.log(",
                      "    \"INFO - Unable to assign variable {{api_key}}, as jsonData.api_key is undefined.\",",
                      "  );",
                      "}",
                      ""
                    ],
                    "type": "text/javascript"
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "apikey",
                  "apikey": [
                    {
                      "key": "value",
                      "value": "{{admin_api_key}}",
                      "type": "string"
                    },
                    {
                      "key": "key",
                      "value": "api-key",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\"name\":\"API Key 1\",\"description\":null,\"expiration\":\"2069-09-23T01:02:03.000Z\"}"
                },
                "url": {
                  "raw": "{{baseUrl}}/api_keys/:merchant_id",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "api_keys",
                    ":merchant_id"
                  ],
                  "variable": [
                    {
                      "key": "merchant_id",
                      "value": "{{merchant_id}}"
                    }
                  ]
                }
              },
              "response": []
            },
            {
              "name": "Payment Connector - Create",
              "event": [
                {
                  "listen": "prerequest",
                  "script": {
                    "exec": [
                      ""
                    ],
                    "type": "text/javascript"
                  }
                },
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "// Validate status 2xx",
                      "pm.test(",
                      "  \"[POST]::/account/:account_id/connectors - Status code is 2xx\",",
                      "  function () {",
                      "    pm.response.to.be.success;",
                      "  },",
                      ");",
                      "",
                      "// Validate if response header has matching content-type",
                      "pm.test(",
                      "  \"[POST]::/account/:account_id/connectors - Content-Type is application/json\",",
                      "  function () {",
                      "    pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                      "      \"application/json\",",
                      "    );",
                      "  },",
                      ");",
                      "",
                      "// Set response object as internal variable",
                      "let jsonData = {};",
                      "try {",
                      "  jsonData = pm.response.json();",
                      "} catch (e) {}",
                      "",
                      "// pm.collectionVariables - Set merchant_connector_id as variable for jsonData.merchant_connector_id",
                      "if (jsonData?.merchant_connector_id) {",
                      "  pm.collectionVariables.set(",
                      "    \"merchant_connector_id\",",
                      "    jsonData.merchant_connector_id,",
                      "  );",
                      "  console.log(",
                      "    \"- use {{merchant_connector_id}} as collection variable for value\",",
                      "    jsonData.merchant_connector_id,",
                      "  );",
                      "} else {",
                      "  console.log(",
                      "    \"INFO - Unable to assign variable {{merchant_connector_id}}, as jsonData.merchant_connector_id is undefined.\",",
                      "  );",
                      "}",
                      ""
                    ],
                    "type": "text/javascript"
                  }
                }
              ],
              "request": {
                "auth": {
                  "type": "apikey",
                  "apikey": [
                    {
                      "key": "value",
                      "value": "{{api_key}}",
                      "type": "string"
                    },
                    {
                      "key": "key",
                      "value": "api-key",
                      "type": "string"
                    },
                    {
                      "key": "in",
                      "value": "header",
                      "type": "string"
                    }
                  ]
                },
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  },
                  "raw": "{\"connector_type\":\"payment_processor\",\"connector_name\":\"nmi\",\"connector_account_details\":{\"auth_type\":\"BodyKey\",\"api_key\":\"{{connector_api_key}}\",\"key1\":\"{{connector_key1}}\"},\"test_mode\":false,\"disabled\":false,\"business_country\":\"US\",\"business_label\":\"default\",\"payment_methods_enabled\":[{\"payment_method\":\"card\",\"payment_method_types\":[{\"payment_method_type\":\"credit\",\"minimum_amount\":1,\"maximum_amount\":68607706,\"recurring_enabled\":true,\"installment_payment_enabled\":true}]},{\"payment_method\":\"card\",\"payment_method_types\":[{\"payment_method_type\":\"debit\",\"minimum_amount\":1,\"maximum_amount\":68607706,\"recurring_enabled\":true,\"installment_payment_enabled\":true}]},{\"payment_method\":\"wallet\",\"payment_method_types\":[{\"payment_method_type\":\"apple_pay\",\"payment_experience\":\"invoke_sdk_client\",\"minimum_amount\":1,\"maximum_amount\":68607706,\"recurring_enabled\":true,\"installment_payment_enabled\":true}]},{\"payment_method\":\"wallet\",\"payment_method_types\":[{\"payment_method_type\":\"google_pay\",\"payment_experience\":\"invoke_sdk_client\",\"minimum_amount\":1,\"maximum_amount\":68607706,\"recurring_enabled\":true,\"installment_payment_enabled\":true}]}]}"
                },
                "url": {
                  "raw": "{{baseUrl}}/account/:account_id/connectors",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "account",
                    ":account_id",
                    "connectors"
                  ],
                  "variable": [
                    {
                      "key": "account_id",
                      "value": "{{merchant_id}}",
                      "description": "(Required) The unique identifier for the merchant account"
                    }
                  ]
                },
                "description": "Create a new Payment Connector for the merchant account. The connector could be a payment processor / facilitator / acquirer or specialised services like Fraud / Accounting etc."
              },
              "response": []
            },
            {
              "name": "Payments - Create",
              "event": [
                {
                  "listen": "prerequest",
                  "script": {
                    "exec": [
                      "pm.environment.set(\"random_number\", _.random(1000, 100000));",
                      ""
                    ],
                    "type": "text/javascript"
                  }
                },
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "pm.environment.set(\"random_number\", _.random(1000, 100000));",
                      "",
                      "// Set the environment variable 'amount' with the value from the response",
                      "pm.environment.set(\"amount\", pm.response.json().amount);",
                      "",
                      "// Validate status 2xx",
                      "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                      "  pm.response.to.be.success;",
                      "});",
                      "",
                      "// Validate if response header has matching content-type",
                      "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                      "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                      "    \"application/json\",",
                      "  );",
                      "});",
                      "",
                      "// Validate if response has JSON Body",
                      "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                      "  pm.response.to.have.jsonBody();",
                      "});",
                      "",
                      "// Set response object as internal variable",
                      "let jsonData = {};",
                      "try {",
                      "  jsonData = pm.response.json();",
                      "} catch (e) {}",
                      "",
                      "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                      "if (jsonData?.payment_id) {",
                      "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                      "  console.log(",
                      "    \"- use {{payment_id}} as collection variable for value\",",
                      "    jsonData.payment_id,",
                      "  );",
                      "} else {",
                      "  console.log(",
                      "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                      "  );",
                      "}",
                      "",
                      "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                      "if (jsonData?.mandate_id) {",
                      "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                      "  console.log(",
                      "    \"- use {{mandate_id}} as collection variable for value\",",
                      "    jsonData.mandate_id,",
                      "  );",
                      "} else {",
                      "  console.log(",
                      "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                      "  );",
                      "}",
                      "",
                      "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                      "if (jsonData?.client_secret) {",
                      "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                      "  console.log(",
                      "    \"- use {{client_secret}} as collection variable for value\",",
                      "    jsonData.client_secret,",
                      "  );",
                      "} else {",
                      "  console.log(",
                      "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                      "  );",
                      "}",
                      ""
                    ],
                    "type": "text/javascript"
                  }
                }
              ],
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  },
                  "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":true,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"StripeCustomer\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+1\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"payment_method\":\"card\",\"payment_method_data\":{\"card\":{\"card_number\":\"4111111111111111\",\"card_exp_month\":\"10\",\"card_exp_year\":\"30\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"123\"}},\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                },
                "url": {
                  "raw": "{{baseUrl}}/payments",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "payments"
                  ]
                },
                "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
              },
              "response": []
            },
            {
              "name": "Payments - Retrieve",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "// Validate status 2xx",
                      "pm.test(\"[GET]::/refunds/:id - Status code is 2xx\", function () {",
                      "  pm.response.to.be.success;",
                      "});",
                      "",
                      "// Validate if response header has matching content-type",
                      "pm.test(\"[GET]::/refunds/:id - Content-Type is application/json\", function () {",
                      "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                      "    \"application/json\",",
                      "  );",
                      "});",
                      "",
                      "// Set response object as internal variable",
                      "let jsonData = {};",
                      "try {",
                      "  jsonData = pm.response.json();",
                      "} catch (e) {}",
                      "",
                      "// pm.collectionVariables - Set refund_id as variable for jsonData.payment_id",
                      "if (jsonData?.refund_id) {",
                      "  pm.collectionVariables.set(\"refund_id\", jsonData.refund_id);",
                      "  console.log(",
                      "    \"- use {{refund_id}} as collection variable for value\",",
                      "    jsonData.refund_id,",
                      "  );",
                      "} else {",
                      "  console.log(",
                      "    \"INFO - Unable to assign variable {{refund_id}}, as jsonData.refund_id is undefined.\",",
                      "  );",
                      "}",
                      ""
                    ],
                    "type": "text/javascript"
                  }
                }
              ],
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "payments",
                    ":id"
                  ],
                  "query": [
                    {
                      "key": "force_sync",
                      "value": "true"
                    }
                  ],
                  "variable": [
                    {
                      "key": "id",
                      "value": "{{payment_id}}",
                      "description": "(Required) unique refund id"
                    }
                  ]
                },
                "description": "To retrieve the properties of a Refund. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
              },
              "response": []
            },
            {
              "name": "Refunds - Create",
              "event": [
                {
                  "listen": "prerequest",
                  "script": {
                    "exec": [
                      ""
                    ],
                    "type": "text/javascript"
                  }
                },
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "// Get the value of 'amount' from the environment",
                      "const amount = pm.environment.get(\"amount\");",
                      "",
                      "// Validate status 2xx",
                      "pm.test(\"[POST]::/refunds - Status code is 2xx\", function () {",
                      "  pm.response.to.be.success;",
                      "});",
                      "",
                      "// Validate if response header has matching content-type",
                      "pm.test(\"[POST]::/refunds - Content-Type is application/json\", function () {",
                      "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                      "    \"application/json\",",
                      "  );",
                      "});",
                      "",
                      "// Set response object as internal variable",
                      "let jsonData = {};",
                      "try {",
                      "  jsonData = pm.response.json();",
                      "} catch (e) {}",
                      "",
                      "// pm.collectionVariables - Set refund_id as variable for jsonData.payment_id",
                      "if (jsonData?.refund_id) {",
                      "  pm.collectionVariables.set(\"refund_id\", jsonData.refund_id);",
                      "  console.log(",
                      "    \"- use {{refund_id}} as collection variable for value\",",
                      "    jsonData.refund_id,",
                      "  );",
                      "} else {",
                      "  console.log(",
                      "    \"INFO - Unable to assign variable {{refund_id}}, as jsonData.refund_id is undefined.\",",
                      "  );",
                      "}",
                      ""
                    ],
                    "type": "text/javascript"
                  }
                }
              ],
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  },
                  "raw": "{\"payment_id\":\"{{payment_id}}\",\"amount\":\"{{amount}}\",\"reason\":\"Customer returned product\",\"refund_type\":\"instant\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                },
                "url": {
                  "raw": "{{baseUrl}}/refunds",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "refunds"
                  ]
                },
                "description": "To create a refund against an already processed payment"
              },
              "response": []
            },
            {
              "name": "Refunds - Retrieve",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "exec": [
                      "// Validate status 2xx",
                      "pm.test(\"[GET]::/refunds/:id - Status code is 2xx\", function () {",
                      "  pm.response.to.be.success;",
                      "});",
                      "",
                      "// Validate if response header has matching content-type",
                      "pm.test(\"[GET]::/refunds/:id - Content-Type is application/json\", function () {",
                      "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                      "    \"application/json\",",
                      "  );",
                      "});",
                      "",
                      "// Set response object as internal variable",
                      "let jsonData = {};",
                      "try {",
                      "  jsonData = pm.response.json();",
                      "} catch (e) {}",
                      "",
                      "// pm.collectionVariables - Set refund_id as variable for jsonData.payment_id",
                      "if (jsonData?.refund_id) {",
                      "  pm.collectionVariables.set(\"refund_id\", jsonData.refund_id);",
                      "  console.log(",
                      "    \"- use {{refund_id}} as collection variable for value\",",
                      "    jsonData.refund_id,",
                      "  );",
                      "} else {",
                      "  console.log(",
                      "    \"INFO - Unable to assign variable {{refund_id}}, as jsonData.refund_id is undefined.\",",
                      "  );",
                      "}",
                      ""
                    ],
                    "type": "text/javascript"
                  }
                }
              ],
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/refunds/:id?force_sync=true",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "refunds",
                    ":id"
                  ],
                  "query": [
                    {
                      "key": "force_sync",
                      "value": "true"
                    }
                  ],
                  "variable": [
                    {
                      "key": "id",
                      "value": "{{refund_id}}",
                      "description": "(Required) unique refund id"
                    }
                  ]
                },
                "description": "To retrieve the properties of a Refund. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
              },
              "response": []
            }
          ]
        },
        {
          "name": "Happy Cases",
          "item": [
            {
              "name": "Scenario1-Create payment with confirm true",
              "item": [
                {
                  "name": "Payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(1000, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":true,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"StripeCustomer\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"payment_method\":\"card\",\"payment_method_data\":{\"card\":{\"card_number\":\"4111111111111111\",\"card_exp_month\":\"10\",\"card_exp_year\":\"30\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"123\"}},\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"Succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "Scenario2-Create payment with confirm false",
              "item": [
                {
                  "name": "Payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(1000, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"requires_confirmation\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'requires_confirmation'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"requires_confirmation\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":false,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"StripeCustomer\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my last payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"payment_method\":\"card\",\"payment_method_data\":{\"card\":{\"card_number\":\"4111111111111111\",\"card_exp_month\":\"10\",\"card_exp_year\":\"30\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"123\"}},\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Confirm",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments/:id/confirm - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(",
                          "  \"[POST]::/payments/:id/confirm - Content-Type is application/json\",",
                          "  function () {",
                          "    pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "      \"application/json\",",
                          "    );",
                          "  },",
                          ");",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments/:id/confirm - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id/confirm - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "auth": {
                      "type": "apikey",
                      "apikey": [
                        {
                          "key": "value",
                          "value": "{{publishable_key}}",
                          "type": "string"
                        },
                        {
                          "key": "key",
                          "value": "api-key",
                          "type": "string"
                        },
                        {
                          "key": "in",
                          "value": "header",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"client_secret\":\"{{client_secret}}\"}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id/confirm",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id",
                        "confirm"
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "This API is to confirm the payment request and forward payment to the payment processor. This API provides more granular control upon when the API is forwarded to the payment processor. Alternatively you can confirm the payment within the Payments-Create API"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments:id - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "Scenario2a-Create payment with confirm false card holder name null",
              "item": [
                {
                  "name": "Payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(1000, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"requires_payment_method\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'requires_payment_method'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"requires_payment_method\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":false,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"StripeCustomer\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Confirm",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments/:id/confirm - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(",
                          "  \"[POST]::/payments/:id/confirm - Content-Type is application/json\",",
                          "  function () {",
                          "    pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "      \"application/json\",",
                          "    );",
                          "  },",
                          ");",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments/:id/confirm - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id/confirm - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "auth": {
                      "type": "apikey",
                      "apikey": [
                        {
                          "key": "value",
                          "value": "{{publishable_key}}",
                          "type": "string"
                        },
                        {
                          "key": "key",
                          "value": "api-key",
                          "type": "string"
                        },
                        {
                          "key": "in",
                          "value": "header",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"payment_method\":\"card\",\"payment_method_data\":{\"card\":{\"card_number\":\"4111111111111111\",\"card_exp_month\":\"10\",\"card_exp_year\":\"69\",\"card_holder_name\":null,\"card_cvc\":\"123\"}},\"client_secret\":\"{{client_secret}}\",\"browser_info\":{\"user_agent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36\",\"accept_header\":\"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\",\"language\":\"nl-NL\",\"color_depth\":24,\"screen_height\":723,\"screen_width\":1536,\"time_zone\":0,\"java_enabled\":true,\"java_script_enabled\":true,\"ip_address\":\"125.0.0.1\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id/confirm",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id",
                        "confirm"
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "This API is to confirm the payment request and forward payment to the payment processor. This API provides more granular control upon when the API is forwarded to the payment processor. Alternatively you can confirm the payment within the Payments-Create API"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments:id - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "Scenario2b-Create payment with confirm false card holder name empty",
              "item": [
                {
                  "name": "Payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(1000, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"requires_payment_method\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'requires_payment_method'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"requires_payment_method\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":false,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"StripeCustomer\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Confirm",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(",
                          "  \"[POST]::/payments/:id/confirm - Content-Type is application/json\",",
                          "  function () {",
                          "    pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "      \"application/json\",",
                          "    );",
                          "  },",
                          ");",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments/:id/confirm - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id/confirm - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}"
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "auth": {
                      "type": "apikey",
                      "apikey": [
                        {
                          "key": "value",
                          "value": "{{publishable_key}}",
                          "type": "string"
                        },
                        {
                          "key": "key",
                          "value": "api-key",
                          "type": "string"
                        },
                        {
                          "key": "in",
                          "value": "header",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"payment_method\":\"card\",\"payment_method_data\":{\"card\":{\"card_number\":\"4111111111111111\",\"card_exp_month\":\"10\",\"card_exp_year\":\"69\",\"card_holder_name\":\"\",\"card_cvc\":\"123\"}},\"client_secret\":\"{{client_secret}}\",\"browser_info\":{\"user_agent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36\",\"accept_header\":\"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\",\"language\":\"nl-NL\",\"color_depth\":24,\"screen_height\":723,\"screen_width\":1536,\"time_zone\":0,\"java_enabled\":true,\"java_script_enabled\":true,\"ip_address\":\"125.0.0.1\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id/confirm",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id",
                        "confirm"
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "This API is to confirm the payment request and forward payment to the payment processor. This API provides more granular control upon when the API is forwarded to the payment processor. Alternatively you can confirm the payment within the Payments-Create API"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments:id - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}"
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "Scenario3-Create payment without PMD",
              "item": [
                {
                  "name": "Payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(1000, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"requires_payment_method\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'requires_payment_method'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"requires_payment_method\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":false,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"StripeCustomer\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Confirm",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments/:id/confirm - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(",
                          "  \"[POST]::/payments/:id/confirm - Content-Type is application/json\",",
                          "  function () {",
                          "    pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "      \"application/json\",",
                          "    );",
                          "  },",
                          ");",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments/:id/confirm - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments:id/confirm - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "auth": {
                      "type": "apikey",
                      "apikey": [
                        {
                          "key": "value",
                          "value": "{{publishable_key}}",
                          "type": "string"
                        },
                        {
                          "key": "key",
                          "value": "api-key",
                          "type": "string"
                        },
                        {
                          "key": "in",
                          "value": "header",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"client_secret\":\"{{client_secret}}\",\"payment_method\":\"card\",\"payment_method_data\":{\"card\":{\"card_number\":\"4111111111111111\",\"card_exp_month\":\"10\",\"card_exp_year\":\"69\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"123\"}}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id/confirm",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id",
                        "confirm"
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "This API is to confirm the payment request and forward payment to the payment processor. This API provides more granular control upon when the API is forwarded to the payment processor. Alternatively you can confirm the payment within the Payments-Create API"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments:id - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "Scenario4-Create payment with Manual capture",
              "item": [
                {
                  "name": "Payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(1000, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"amount\", pm.response.json().amount);",
                          "",
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"requires_capture\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'requires_capture'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"requires_capture\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":true,\"capture_method\":\"manual\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"StripeCustomer\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"payment_method\":\"card\",\"payment_method_data\":{\"card\":{\"card_number\":\"4111111111111111\",\"card_exp_month\":\"10\",\"card_exp_year\":\"30\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"123\"}},\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'requires_capture'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"requires_capture\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Capture",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Get the value of 'amount' from the environment",
                          "const amount = pm.environment.get(\"amount\");",
                          "",
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments/:id/capture - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(",
                          "  \"[POST]::/payments/:id/capture - Content-Type is application/json\",",
                          "  function () {",
                          "    pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "      \"application/json\",",
                          "    );",
                          "  },",
                          ");",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments/:id/capture - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]:://payments/:id/capture - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"{{amount}}\" for \"amount\"",
                          "if (jsonData?.amount) {",
                          "  pm.test(",
                          "    \"[post]:://payments/:id/capture - Content check if value for 'amount' matches '{{amount}}'\",",
                          "    function () {",
                          "      pm.expect(jsonData.amount).to.eql(amount);",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"{{amount}}\" for \"amount_received\"",
                          "if (jsonData?.amount_received) {",
                          "  pm.test(",
                          "    \"[POST]::/payments:id/capture - Content check if value for 'amount_received' matches '{{amount}}'\",",
                          "    function () {",
                          "      pm.expect(jsonData.amount_received).to.eql(amount);",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount_to_capture\":\"{{amount}}\",\"statement_descriptor_name\":\"Joseph\",\"statement_descriptor_suffix\":\"JS\"}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id/capture",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id",
                        "capture"
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To capture the funds for an uncaptured payment"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve-copy",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "Scenario5-Void the payment",
              "item": [
                {
                  "name": "Payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(1000, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"requires_capture\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'requires_capture'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"requires_capture\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":true,\"capture_method\":\"manual\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"StripeCustomer\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"payment_method\":\"card\",\"payment_method_data\":{\"card\":{\"card_number\":\"4111111111111111\",\"card_exp_month\":\"10\",\"card_exp_year\":\"30\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"123\"}},\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"cancelled\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id - Content check if value for 'status' matches 'requires_capture'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"requires_capture\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Cancel",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments/:id/cancel - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(",
                          "  \"[POST]::/payments/:id/cancel - Content-Type is application/json\",",
                          "  function () {",
                          "    pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "      \"application/json\",",
                          "    );",
                          "  },",
                          ");",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments/:id/cancel - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"cancelled\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id/cancel - Content check if value for 'status' matches 'processing'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"processing\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"cancellation_reason\":\"user_cancel\"}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id/cancel",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id",
                        "cancel"
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "A Payment could can be cancelled when it is in one of these statuses: requires_payment_method, requires_capture, requires_confirmation, requires_customer_action"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve-copy",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"cancelled\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id - Content check if value for 'status' matches 'cancelled'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"cancelled\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "Scenario6-Refund full payment",
              "item": [
                {
                  "name": "Payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(1000, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Set the environment variable 'amount' with the value from the response",
                          "pm.environment.set(\"amount\", pm.response.json().amount);",
                          "",
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":true,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"StripeCustomer\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"payment_method\":\"card\",\"payment_method_data\":{\"card\":{\"card_number\":\"4111111111111111\",\"card_exp_month\":\"10\",\"card_exp_year\":\"30\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"123\"}},\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"Succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                },
                {
                  "name": "Refunds - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Get the value of 'amount' from the environment",
                          "const amount = pm.environment.get(\"amount\");",
                          "",
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/refunds - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/refunds - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set refund_id as variable for jsonData.payment_id",
                          "if (jsonData?.refund_id) {",
                          "  pm.collectionVariables.set(\"refund_id\", jsonData.refund_id);",
                          "  console.log(",
                          "    \"- use {{refund_id}} as collection variable for value\",",
                          "    jsonData.refund_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{refund_id}}, as jsonData.refund_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/refunds - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value for \"amount\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/refunds - Content check if value for 'amount' matches '{{amount}}'\",",
                          "    function () {",
                          "      pm.expect(jsonData.amount).to.eql(amount);",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"payment_id\":\"{{payment_id}}\",\"amount\":\"{{amount}}\",\"reason\":\"Customer returned product\",\"refund_type\":\"instant\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/refunds",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "refunds"
                      ]
                    },
                    "description": "To create a refund against an already processed payment"
                  },
                  "response": []
                },
                {
                  "name": "Refunds - Retrieve",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Get the value of 'amount' from the environment",
                          "const refund_amount = pm.environment.get(\"amount\");",
                          "",
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/refunds/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/refunds/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set refund_id as variable for jsonData.payment_id",
                          "if (jsonData?.refund_id) {",
                          "  pm.collectionVariables.set(\"refund_id\", jsonData.refund_id);",
                          "  console.log(",
                          "    \"- use {{refund_id}} as collection variable for value\",",
                          "    jsonData.refund_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{refund_id}}, as jsonData.refund_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/refunds - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"{{refund_amount}}\" for \"amount\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/refunds - Content check if value for 'amount' matches '{{refund_amount}}'\",",
                          "    function () {",
                          "      pm.expect(jsonData.amount).to.eql(refund_amount);",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/refunds/:id",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "refunds",
                        ":id"
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{refund_id}}",
                          "description": "(Required) unique refund id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Refund. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "Scenario7-Partial refund",
              "item": [
                {
                  "name": "Payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(1000, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":true,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"StripeCustomer\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"payment_method\":\"card\",\"payment_method_data\":{\"card\":{\"card_number\":\"4111111111111111\",\"card_exp_month\":\"10\",\"card_exp_year\":\"30\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"123\"}},\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"Succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                },
                {
                  "name": "Refunds - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/refunds - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/refunds - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set refund_id as variable for jsonData.payment_id",
                          "if (jsonData?.refund_id) {",
                          "  pm.collectionVariables.set(\"refund_id\", jsonData.refund_id);",
                          "  console.log(",
                          "    \"- use {{refund_id}} as collection variable for value\",",
                          "    jsonData.refund_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{refund_id}}, as jsonData.refund_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/refunds - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"540\" for \"amount\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/refunds - Content check if value for 'amount' matches '100'\",",
                          "    function () {",
                          "      pm.expect(jsonData.amount).to.eql(100);",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"payment_id\":\"{{payment_id}}\",\"amount\":100,\"reason\":\"Customer returned product\",\"refund_type\":\"instant\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/refunds",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "refunds"
                      ]
                    },
                    "description": "To create a refund against an already processed payment"
                  },
                  "response": []
                },
                {
                  "name": "Refunds - Retrieve",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/refunds/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/refunds/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set refund_id as variable for jsonData.payment_id",
                          "if (jsonData?.refund_id) {",
                          "  pm.collectionVariables.set(\"refund_id\", jsonData.refund_id);",
                          "  console.log(",
                          "    \"- use {{refund_id}} as collection variable for value\",",
                          "    jsonData.refund_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{refund_id}}, as jsonData.refund_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/refunds - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"6540\" for \"amount\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/refunds - Content check if value for 'amount' matches '100'\",",
                          "    function () {",
                          "      pm.expect(jsonData.amount).to.eql(100);",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/refunds/:id",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "refunds",
                        ":id"
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{refund_id}}",
                          "description": "(Required) unique refund id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Refund. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                },
                {
                  "name": "Refunds - Create-copy",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/refunds - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/refunds - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set refund_id as variable for jsonData.payment_id",
                          "if (jsonData?.refund_id) {",
                          "  pm.collectionVariables.set(\"refund_id\", jsonData.refund_id);",
                          "  console.log(",
                          "    \"- use {{refund_id}} as collection variable for value\",",
                          "    jsonData.refund_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{refund_id}}, as jsonData.refund_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/refunds - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"1000\" for \"amount\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/refunds - Content check if value for 'amount' matches '10'\",",
                          "    function () {",
                          "      pm.expect(jsonData.amount).to.eql(10);",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"payment_id\":\"{{payment_id}}\",\"amount\":10,\"reason\":\"Customer returned product\",\"refund_type\":\"instant\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/refunds",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "refunds"
                      ]
                    },
                    "description": "To create a refund against an already processed payment"
                  },
                  "response": []
                },
                {
                  "name": "Refunds - Retrieve-copy",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/refunds/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/refunds/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set refund_id as variable for jsonData.payment_id",
                          "if (jsonData?.refund_id) {",
                          "  pm.collectionVariables.set(\"refund_id\", jsonData.refund_id);",
                          "  console.log(",
                          "    \"- use {{refund_id}} as collection variable for value\",",
                          "    jsonData.refund_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{refund_id}}, as jsonData.refund_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/refunds - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"6540\" for \"amount\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/refunds - Content check if value for 'amount' matches '10'\",",
                          "    function () {",
                          "      pm.expect(jsonData.amount).to.eql(10);",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/refunds/:id",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "refunds",
                        ":id"
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{refund_id}}",
                          "description": "(Required) unique refund id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Refund. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve-copy",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"Succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have \"refunds\"",
                          "pm.test(\"[POST]::/payments - Content check if 'refunds' exists\", function () {",
                          "  pm.expect(typeof jsonData.refunds !== \"undefined\").to.be.true;",
                          "});",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "Scenario8-Create a failure card payment with confirm true",
              "item": [
                {
                  "name": "Payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(1000, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'failed'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"failed\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have \"connector_transaction_id\"",
                          "pm.test(",
                          "  \"[POST]::/payments - Content check if 'connector_transaction_id' exists\",",
                          "  function () {",
                          "    pm.expect(typeof jsonData.connector_transaction_id !== \"undefined\").to.be",
                          "      .true;",
                          "  },",
                          ");",
                          "",
                          "// Response body should have value \"200\" for \"error_code\"",
                          "if (jsonData?.error_code) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id/confirm - Content check if value for 'error_code' matches '200'\",",
                          "    function () {",
                          "      pm.expect(jsonData.error_code).to.eql(\"200\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"message - DECLINE\"",
                          "if (jsonData?.error_message) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id/confirm - Content check if value for 'error_message' matches 'DECLINE'\",",
                          "    function () {",
                          "      pm.expect(jsonData.error_message).to.eql(\"DECLINE\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":true,\"business_country\":\"US\",\"business_label\":\"default\",\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"bernard123\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"setup_future_usage\":\"on_session\",\"customer_acceptance\":{\"acceptance_type\":\"online\",\"accepted_at\":\"2022-09-10T10:11:12Z\",\"online\":{\"ip_address\":\"123.32.25.123\",\"user_agent\":\"Mozilla/5.0 (Linux; Android 12; SM-S906N Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.119 Mobile Safari/537.36\"}},\"payment_method\":\"card\",\"payment_method_type\":\"debit\",\"payment_method_data\":{\"card\":{\"card_number\":\"4242424242424242\",\"card_exp_month\":\"01\",\"card_exp_year\":\"30\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"123\"}},\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\",\"last_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\",\"last_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"Succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id - Content check if value for 'status' matches 'failed'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"failed\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have \"connector_transaction_id\"",
                          "pm.test(",
                          "  \"[POST]::/payments - Content check if 'connector_transaction_id' exists\",",
                          "  function () {",
                          "    pm.expect(typeof jsonData.connector_transaction_id !== \"undefined\").to.be",
                          "      .true;",
                          "  },",
                          ");",
                          "",
                          "// Response body should have value \"200\" for \"error_code\"",
                          "if (jsonData?.error_code) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id/confirm - Content check if value for 'error_code' matches '200'\",",
                          "    function () {",
                          "      pm.expect(jsonData.error_code).to.eql(\"200\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"message - DECLINE\"",
                          "if (jsonData?.error_message) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id/confirm - Content check if value for 'error_message' matches 'DECLINE'\",",
                          "    function () {",
                          "      pm.expect(jsonData.error_message).to.eql(\"DECLINE\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "Scenario9-Update amount with automatic capture",
              "item": [
                {
                  "name": "Payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(1000, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Set the environment variable 'amount' with the value from the response",
                          "pm.environment.set(\"amount\", pm.response.json().amount);",
                          "",
                          "// Validate status 2xx ",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "   pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "   pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");",
                          "});",
                          "",
                          "// Validate if response has JSON Body ",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "    pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {jsonData = pm.response.json();}catch(e){}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "   pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "   console.log(\"- use {{payment_id}} as collection variable for value\",jsonData.payment_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.');",
                          "};",
                          "",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "   pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "   console.log(\"- use {{mandate_id}} as collection variable for value\",jsonData.mandate_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.');",
                          "};",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "   pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "   console.log(\"- use {{client_secret}} as collection variable for value\",jsonData.client_secret);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.');",
                          "};",
                          "",
                          "// pm.collectionVariables - Set customer_id as variable for jsonData.customer_id",
                          "if (jsonData?.customer_id) {",
                          "   pm.collectionVariables.set(\"customer_id\", jsonData.customer_id);",
                          "   console.log(\"- use {{customer_id}} as collection variable for value\",jsonData.customer_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{customer_id}}, as jsonData.customer_id is undefined.');",
                          "};",
                          "// Response body should have value \"requires_payment_method\" for \"status\"",
                          "if (jsonData?.status) {",
                          "pm.test(\"[POST]::/payments - Content check if value for 'status' matches 'requires_payment_method'\", function() {",
                          "  pm.expect(jsonData.status).to.eql(\"requires_payment_method\");",
                          "})};",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":false,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"StripeCustomer\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Update",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "// Get the value of 'amount' from the environment",
                          "pm.environment.set(\"another_random_number\", _.random(100, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Set the environment variable 'amount' with the value from the response",
                          "pm.environment.set(\"amount\", pm.response.json().amount);",
                          "",
                          "// Get the value of 'amount' from the environment",
                          "const updated_amount = pm.environment.get(\"amount\");",
                          "",
                          "// Validate status 2xx ",
                          "pm.test(\"[POST]::/payments/:id - Status code is 2xx\", function () {",
                          "   pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments/:id - Content-Type is application/json\", function () {",
                          "   pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");",
                          "});",
                          "",
                          "// Validate if response has JSON Body ",
                          "pm.test(\"[POST]::/payments/:id - Response has JSON Body\", function () {",
                          "    pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "",
                          "// Parse the JSON response",
                          "var jsonData = pm.response.json();",
                          "",
                          "// Check if the 'amount' is equal to \"updated_amount\"",
                          "pm.test(\"[POST]::/payments/:id -Content Check if 'amount' matches '{{updated_amount}}'\", function () {",
                          "    pm.expect(jsonData.amount).to.eql(updated_amount);",
                          "});",
                          "",
                          "",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{another_random_number}}\",\"amount_to_capture\":\"{{another_random_number}}\"}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}"
                        }
                      ]
                    },
                    "description": "To update the properties of a PaymentIntent object. This may include attaching a payment method, or attaching customer object or metadata fields after the Payment is created "
                  },
                  "response": []
                },
                {
                  "name": "Payments - Confirm",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Get the value of 'amount' from the environment",
                          "const amount = pm.environment.get(\"amount\");",
                          "",
                          "// Validate status 2xx ",
                          "pm.test(\"[POST]::/payments/:id/confirm - Status code is 2xx\", function () {",
                          "   pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments/:id/confirm - Content-Type is application/json\", function () {",
                          "   pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {jsonData = pm.response.json();}catch(e){}",
                          "",
                          "// Validate if response has JSON Body ",
                          "pm.test(\"[POST]::/payments/:id/confirm - Response has JSON Body\", function () {",
                          "    pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "//// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "pm.test(\"[POST]::/payments - Content check if value for 'status' matches 'succeeded'\", function() {",
                          "  pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "})};",
                          "",
                          "",
                          "// Check if the 'amount' is equal to \"amount\"",
                          "pm.test(\"[POST]::/payments/:id -Content Check if 'amount' matches '{{amount}}' \", function () {",
                          "    pm.expect(jsonData.amount).to.eql(amount);",
                          "});",
                          "",
                          "//// Response body should have value \"amount_received\" for \"amount\"",
                          "if (jsonData?.amount_received) {",
                          "pm.test(\"[POST]::/payments - Content check if value for 'amount_received' matches '{{amount}}'\", function() {",
                          "  pm.expect(jsonData.amount_received).to.eql(amount);",
                          "})};",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "auth": {
                      "type": "apikey",
                      "apikey": [
                        {
                          "key": "value",
                          "value": "{{publishable_key}}",
                          "type": "string"
                        },
                        {
                          "key": "key",
                          "value": "api-key",
                          "type": "string"
                        },
                        {
                          "key": "in",
                          "value": "header",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      },
                      {
                        "key": "publishable_key",
                        "value": "",
                        "type": "text",
                        "disabled": true
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"client_secret\":\"{{client_secret}}\",\"payment_method\":\"card\",\"payment_method_type\":\"debit\",\"payment_method_data\":{\"card\":{\"card_number\":\"4111111111111111\",\"card_exp_month\":\"03\",\"card_exp_year\":\"69\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"737\"}},\"setup_future_usage\":\"on_session\",\"customer_acceptance\":{\"acceptance_type\":\"online\",\"accepted_at\":\"2022-09-10T10:11:12Z\",\"online\":{\"ip_address\":\"123.32.25.123\",\"user_agent\":\"Mozilla/5.0 (Linux; Android 12; SM-S906N Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.119 Mobile Safari/537.36\"}},\"browser_info\":{\"user_agent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36\",\"accept_header\":\"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\",\"language\":\"nl-NL\",\"color_depth\":24,\"screen_height\":723,\"screen_width\":1536,\"time_zone\":0,\"java_enabled\":true,\"java_script_enabled\":true,\"ip_address\":\"128.0.0.1\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id/confirm",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id",
                        "confirm"
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}"
                        }
                      ]
                    },
                    "description": "This API is to confirm the payment request and forward payment to the payment processor. This API provides more granular control upon when the API is forwarded to the payment processor. Alternatively you can confirm the payment within the Payments-Create API"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Get the value of 'amount' from the environment",
                          "const amount = pm.environment.get(\"amount\");",
                          "",
                          "// Validate status 2xx ",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "   pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "   pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");",
                          "});",
                          "",
                          "// Validate if response has JSON Body ",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "    pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {jsonData = pm.response.json();}catch(e){}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "   pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "   console.log(\"- use {{payment_id}} as collection variable for value\",jsonData.payment_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.');",
                          "};",
                          "",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "   pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "   console.log(\"- use {{mandate_id}} as collection variable for value\",jsonData.mandate_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.');",
                          "};",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "   pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "   console.log(\"- use {{client_secret}} as collection variable for value\",jsonData.client_secret);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.');",
                          "};",
                          "",
                          "//// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "pm.test(\"[POST]::/payments - Content check if value for 'status' matches 'succeeded'\", function() {",
                          "  pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "})};",
                          "",
                          "",
                          "// Check if the 'amount' is equal to \"amount\"",
                          "pm.test(\"[POST]::/payments/:id -Content Check if 'amount' matches '{{amount}}' \", function () {",
                          "    pm.expect(jsonData.amount).to.eql(amount);",
                          "});",
                          "",
                          "//// Response body should have value \"amount_received\" for \"amount\"",
                          "if (jsonData?.amount_received) {",
                          "pm.test(\"[POST]::/payments - Content check if value for 'amount_received' matches '{{amount}}'\", function() {",
                          "  pm.expect(jsonData.amount_received).to.eql(amount);",
                          "})};",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "Scenario9a-Update amount with manual capture",
              "item": [
                {
                  "name": "Payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(100, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Set the environment variable 'amount' with the value from the response",
                          "pm.environment.set(\"amount\", pm.response.json().amount);",
                          "",
                          "// Validate status 2xx ",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "   pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "   pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");",
                          "});",
                          "",
                          "// Validate if response has JSON Body ",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "    pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {jsonData = pm.response.json();}catch(e){}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "   pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "   console.log(\"- use {{payment_id}} as collection variable for value\",jsonData.payment_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.');",
                          "};",
                          "",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "   pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "   console.log(\"- use {{mandate_id}} as collection variable for value\",jsonData.mandate_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.');",
                          "};",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "   pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "   console.log(\"- use {{client_secret}} as collection variable for value\",jsonData.client_secret);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.');",
                          "};",
                          "",
                          "// pm.collectionVariables - Set customer_id as variable for jsonData.customer_id",
                          "if (jsonData?.customer_id) {",
                          "   pm.collectionVariables.set(\"customer_id\", jsonData.customer_id);",
                          "   console.log(\"- use {{customer_id}} as collection variable for value\",jsonData.customer_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{customer_id}}, as jsonData.customer_id is undefined.');",
                          "};",
                          "// Response body should have value \"requires_payment_method\" for \"status\"",
                          "if (jsonData?.status) {",
                          "pm.test(\"[POST]::/payments - Content check if value for 'status' matches 'requires_payment_method'\", function() {",
                          "  pm.expect(jsonData.status).to.eql(\"requires_payment_method\");",
                          "})};",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":false,\"capture_method\":\"manual\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"StripeCustomer\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Update",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "// Get the value of 'amount' from the environment",
                          "pm.environment.set(\"another_random_number\", _.random(100, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Set the environment variable 'amount' with the value from the response",
                          "pm.environment.set(\"amount\", pm.response.json().amount);",
                          "",
                          "// Get the value of 'amount' from the environment",
                          "const updated_amount = pm.environment.get(\"amount\");",
                          "",
                          "// Validate status 2xx ",
                          "pm.test(\"[POST]::/payments/:id - Status code is 2xx\", function () {",
                          "   pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments/:id - Content-Type is application/json\", function () {",
                          "   pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");",
                          "});",
                          "",
                          "// Validate if response has JSON Body ",
                          "pm.test(\"[POST]::/payments/:id - Response has JSON Body\", function () {",
                          "    pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "",
                          "// Parse the JSON response",
                          "var jsonData = pm.response.json();",
                          "",
                          "// Check if the 'amount' is equal to \"updated_amount\"",
                          "pm.test(\"[POST]::/payments/:id -Content Check if 'amount' matches '{{updated_amount}}'\", function () {",
                          "    pm.expect(jsonData.amount).to.eql(updated_amount);",
                          "});",
                          "",
                          "",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{another_random_number}}\",\"amount_to_capture\":\"{{another_random_number}}\"}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}"
                        }
                      ]
                    },
                    "description": "To update the properties of a PaymentIntent object. This may include attaching a payment method, or attaching customer object or metadata fields after the Payment is created "
                  },
                  "response": []
                },
                {
                  "name": "Payments - Confirm",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Get the value of 'amount' from the environment",
                          "const amount = pm.environment.get(\"amount\");",
                          "",
                          "// Validate status 2xx ",
                          "pm.test(\"[POST]::/payments/:id/confirm - Status code is 2xx\", function () {",
                          "   pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments/:id/confirm - Content-Type is application/json\", function () {",
                          "   pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {jsonData = pm.response.json();}catch(e){}",
                          "",
                          "// Validate if response has JSON Body ",
                          "pm.test(\"[POST]::/payments/:id/confirm - Response has JSON Body\", function () {",
                          "    pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "//// Response body should have value \"requires_capture\" for \"status\"",
                          "if (jsonData?.status) {",
                          "pm.test(\"[POST]::/payments - Content check if value for 'status' matches 'requires_capture'\", function() {",
                          "  pm.expect(jsonData.status).to.eql(\"requires_capture\");",
                          "})};",
                          "",
                          "",
                          "// Check if the 'amount' is equal to \"amount\"",
                          "pm.test(\"[POST]::/payments/:id -Content Check if 'amount' matches '{{amount}}' \", function () {",
                          "    pm.expect(jsonData.amount).to.eql(amount);",
                          "});",
                          "",
                          "//// Response body should have value \"amount_received\" for \"amount\"",
                          "if (jsonData?.amount_received) {",
                          "pm.test(\"[POST]::/payments - Content check if value for 'amount_received' matches '{{amount}}'\", function() {",
                          "  pm.expect(jsonData.amount_received).to.eql(amount);",
                          "})};",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "auth": {
                      "type": "apikey",
                      "apikey": [
                        {
                          "key": "value",
                          "value": "{{publishable_key}}",
                          "type": "string"
                        },
                        {
                          "key": "key",
                          "value": "api-key",
                          "type": "string"
                        },
                        {
                          "key": "in",
                          "value": "header",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      },
                      {
                        "key": "publishable_key",
                        "value": "",
                        "type": "text",
                        "disabled": true
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"client_secret\":\"{{client_secret}}\",\"payment_method\":\"card\",\"payment_method_type\":\"debit\",\"payment_method_data\":{\"card\":{\"card_number\":\"4111111111111111\",\"card_exp_month\":\"03\",\"card_exp_year\":\"69\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"737\"}},\"setup_future_usage\":\"on_session\",\"customer_acceptance\":{\"acceptance_type\":\"online\",\"accepted_at\":\"2022-09-10T10:11:12Z\",\"online\":{\"ip_address\":\"123.32.25.123\",\"user_agent\":\"Mozilla/5.0 (Linux; Android 12; SM-S906N Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.119 Mobile Safari/537.36\"}},\"browser_info\":{\"user_agent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36\",\"accept_header\":\"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\",\"language\":\"nl-NL\",\"color_depth\":24,\"screen_height\":723,\"screen_width\":1536,\"time_zone\":0,\"java_enabled\":true,\"java_script_enabled\":true,\"ip_address\":\"128.0.0.1\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id/confirm",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id",
                        "confirm"
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}"
                        }
                      ]
                    },
                    "description": "This API is to confirm the payment request and forward payment to the payment processor. This API provides more granular control upon when the API is forwarded to the payment processor. Alternatively you can confirm the payment within the Payments-Create API"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Get the value of 'amount' from the environment",
                          "const amount = pm.environment.get(\"amount\");",
                          "",
                          "// Validate status 2xx ",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "   pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "   pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");",
                          "});",
                          "",
                          "// Validate if response has JSON Body ",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "    pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {jsonData = pm.response.json();}catch(e){}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "   pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "   console.log(\"- use {{payment_id}} as collection variable for value\",jsonData.payment_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.');",
                          "};",
                          "",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "   pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "   console.log(\"- use {{mandate_id}} as collection variable for value\",jsonData.mandate_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.');",
                          "};",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "   pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "   console.log(\"- use {{client_secret}} as collection variable for value\",jsonData.client_secret);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.');",
                          "};",
                          "",
                          "//// Response body should have value \"requires_capture\" for \"status\"",
                          "if (jsonData?.status) {",
                          "pm.test(\"[POST]::/payments - Content check if value for 'status' matches 'requires_capture'\", function() {",
                          "  pm.expect(jsonData.status).to.eql(\"requires_capture\");",
                          "})};",
                          "",
                          "",
                          "// Check if the 'amount' is equal to \"amount\"",
                          "pm.test(\"[POST]::/payments/:id -Content Check if 'amount' matches '{{amount}}' \", function () {",
                          "    pm.expect(jsonData.amount).to.eql(amount);",
                          "});",
                          "",
                          "//// Response body should have value \"amount_received\" for \"amount\"",
                          "if (jsonData?.amount_received) {",
                          "pm.test(\"[POST]::/payments - Content check if value for 'amount_received' matches '{{amount}}'\", function() {",
                          "  pm.expect(jsonData.amount_received).to.eql(amount);",
                          "})};",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Capture",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Get the value of 'amount' from the environment",
                          "const amount = pm.environment.get(\"amount\");",
                          "",
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments/:id/capture - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(",
                          "  \"[POST]::/payments/:id/capture - Content-Type is application/json\",",
                          "  function () {",
                          "    pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "      \"application/json\",",
                          "    );",
                          "  },",
                          ");",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments/:id/capture - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]:://payments/:id/capture - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Validate the connector",
                          "pm.test(\"[POST]::/payments - connector\", function () {",
                          "  pm.expect(jsonData.connector).to.eql(\"nmi\");",
                          "});",
                          "",
                          "// Response body should have value \"amount\" for \"amount_received\"",
                          "if (jsonData?.amount_received) {",
                          "  pm.test(",
                          "    \"[POST]::/payments:id/capture - Content check if value for 'amount_received' matches '{{amount}}'\",",
                          "    function () {",
                          "      pm.expect(jsonData.amount_received).to.eql(amount);",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"0\" for \"amount_capturable\"",
                          "if (jsonData?.amount_capturable) {",
                          "  pm.test(",
                          "    \"[post]:://payments/:id/capture - Content check if value for 'amount_capturable' matches 'amount - 0'\",",
                          "    function () {",
                          "      pm.expect(jsonData.amount_capturable).to.eql(amount);",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount_to_capture\":\"{{amount}}\",\"statement_descriptor_name\":\"Joseph\",\"statement_descriptor_suffix\":\"JS\"}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id/capture",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id",
                        "capture"
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To capture the funds for an uncaptured payment"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve Copy",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Get the value of 'amount' from the environment",
                          "const amount = pm.environment.get(\"amount\");",
                          "",
                          "// Validate status 2xx ",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "   pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "   pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");",
                          "});",
                          "",
                          "// Validate if response has JSON Body ",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "    pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {jsonData = pm.response.json();}catch(e){}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "   pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "   console.log(\"- use {{payment_id}} as collection variable for value\",jsonData.payment_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.');",
                          "};",
                          "",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "   pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "   console.log(\"- use {{mandate_id}} as collection variable for value\",jsonData.mandate_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.');",
                          "};",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "   pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "   console.log(\"- use {{client_secret}} as collection variable for value\",jsonData.client_secret);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.');",
                          "};",
                          "",
                          "//// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "pm.test(\"[POST]::/payments - Content check if value for 'status' matches 'succeeded'\", function() {",
                          "  pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "})};",
                          "",
                          "",
                          "// Check if the 'amount' is equal to \"amount\"",
                          "pm.test(\"[POST]::/payments/:id -Content Check if 'amount' matches '{{amount}}' \", function () {",
                          "    pm.expect(jsonData.amount).to.eql(amount);",
                          "});",
                          "",
                          "//// Response body should have value \"amount_received\" for \"amount\"",
                          "if (jsonData?.amount_received) {",
                          "pm.test(\"[POST]::/payments - Content check if value for 'amount_received' matches '{{amount}}'\", function() {",
                          "  pm.expect(jsonData.amount_received).to.eql(amount);",
                          "})};",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "Scenario10-Add card flow",
              "item": [
                {
                  "name": "Payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(100, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx ",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "   pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "   pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");",
                          "});",
                          "",
                          "// Validate if response has JSON Body ",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "    pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {jsonData = pm.response.json();}catch(e){}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "   pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "   console.log(\"- use {{payment_id}} as collection variable for value\",jsonData.payment_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.');",
                          "};",
                          "",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "   pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "   console.log(\"- use {{mandate_id}} as collection variable for value\",jsonData.mandate_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.');",
                          "};",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "   pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "   console.log(\"- use {{client_secret}} as collection variable for value\",jsonData.client_secret);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.');",
                          "};",
                          "",
                          "if (jsonData?.customer_id) {",
                          "   pm.collectionVariables.set(\"customer_id\", jsonData.customer_id);",
                          "   console.log(\"- use {{customer_id}} as collection variable for value\",jsonData.customer_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{customer_id}}, as jsonData.customer_id is undefined.');",
                          "};",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "   pm.test(\"[POST]::/payments/:id/confirm - Content check if value for 'status' matches 'succeeded'\", function() {",
                          "     pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "   })};"
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":true,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"stripesavecard\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"setup_future_usage\":\"on_session\",\"customer_acceptance\":{\"acceptance_type\":\"online\",\"accepted_at\":\"2022-09-10T10:11:12Z\",\"online\":{\"ip_address\":\"123.32.25.123\",\"user_agent\":\"Mozilla/5.0 (Linux; Android 12; SM-S906N Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.119 Mobile Safari/537.36\"}},\"payment_method\":\"card\",\"payment_method_type\":\"credit\",\"payment_method_data\":{\"card\":{\"card_number\":\"4111111111111111\",\"card_exp_month\":\"03\",\"card_exp_year\":\"2030\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"737\"}},\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"joseph\",\"last_name\":\"Doe\"},\"phone\":{\"number\":\"9123456789\",\"country_code\":\"+91\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"joseph\",\"last_name\":\"Doe\"},\"phone\":{\"number\":\"9123456789\",\"country_code\":\"+91\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\"",
                          "  );",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\"",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\"",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\"",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                },
                {
                  "name": "List payment methods for a Customer",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx ",
                          "pm.test(\"[GET]::/payment_methods/:customer_id - Status code is 2xx\", function () {",
                          "   pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payment_methods/:customer_id - Content-Type is application/json\", function () {",
                          "   pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {jsonData = pm.response.json();}catch(e){}",
                          "",
                          "if (jsonData?.customer_payment_methods[0]?.payment_token) {",
                          "   pm.collectionVariables.set(\"payment_token\", jsonData.customer_payment_methods[0].payment_token);",
                          "   console.log(\"- use {{payment_token}} as collection variable for value\", jsonData.customer_payment_methods[0].payment_token);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{payment_token}}, as jsonData.customer_payment_methods[0].payment_token is undefined.');",
                          "}"
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/customers/:customer_id/payment_methods",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "customers",
                        ":customer_id",
                        "payment_methods"
                      ],
                      "query": [
                        {
                          "key": "accepted_country",
                          "value": "co",
                          "disabled": true
                        },
                        {
                          "key": "accepted_country",
                          "value": "pa",
                          "disabled": true
                        },
                        {
                          "key": "accepted_currency",
                          "value": "voluptate ea",
                          "disabled": true
                        },
                        {
                          "key": "accepted_currency",
                          "value": "exercitation",
                          "disabled": true
                        },
                        {
                          "key": "minimum_amount",
                          "value": "100",
                          "disabled": true
                        },
                        {
                          "key": "maximum_amount",
                          "value": "10000000",
                          "disabled": true
                        },
                        {
                          "key": "recurring_payment_enabled",
                          "value": "true",
                          "disabled": true
                        },
                        {
                          "key": "installment_payment_enabled",
                          "value": "true",
                          "disabled": true
                        }
                      ],
                      "variable": [
                        {
                          "key": "customer_id",
                          "value": "{{customer_id}}",
                          "description": "//Pass the customer id"
                        }
                      ]
                    },
                    "description": "To filter and list the applicable payment methods for a particular Customer ID"
                  },
                  "response": []
                },
                {
                  "name": "Save card payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(100, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx ",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "   pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "   pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");",
                          "});",
                          "",
                          "// Validate if response has JSON Body ",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "    pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {jsonData = pm.response.json();}catch(e){}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "   pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "   console.log(\"- use {{payment_id}} as collection variable for value\",jsonData.payment_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.');",
                          "};",
                          "",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "   pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "   console.log(\"- use {{mandate_id}} as collection variable for value\",jsonData.mandate_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.');",
                          "};",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "   pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "   console.log(\"- use {{client_secret}} as collection variable for value\",jsonData.client_secret);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.');",
                          "};",
                          "",
                          "if (jsonData?.customer_id) {",
                          "   pm.collectionVariables.set(\"customer_id\", jsonData.customer_id);",
                          "   console.log(\"- use {{customer_id}} as collection variable for value\",jsonData.customer_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{customer_id}}, as jsonData.customer_id is undefined.');",
                          "};"
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":false,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"{{customer_id}}\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"joseph\",\"last_name\":\"Doe\"},\"phone\":{\"number\":\"9123456789\",\"country_code\":\"+91\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"joseph\",\"last_name\":\"Doe\"},\"phone\":{\"number\":\"9123456789\",\"country_code\":\"+91\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Save card payments - Confirm",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments/:id/confirm - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(",
                          "  \"[POST]::/payments/:id/confirm - Content-Type is application/json\",",
                          "  function () {",
                          "    pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "      \"application/json\",",
                          "    );",
                          "  },",
                          ");",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments/:id/confirm - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id/confirm - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "",
                          "// Response body should have value \"nmi\" for \"connector\"",
                          "if (jsonData?.connector) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id/confirm - Content check if value for 'connector' matches 'nmi'\",",
                          "    function () {",
                          "      pm.expect(jsonData.connector).to.eql(\"nmi\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "auth": {
                      "type": "apikey",
                      "apikey": [
                        {
                          "key": "value",
                          "value": "{{publishable_key}}",
                          "type": "string"
                        },
                        {
                          "key": "key",
                          "value": "api-key",
                          "type": "string"
                        },
                        {
                          "key": "in",
                          "value": "header",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"client_secret\":\"{{client_secret}}\",\"payment_method\":\"card\",\"payment_token\":\"{{payment_token}}\",\"card_cvc\":\"737\"}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id/confirm",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id",
                        "confirm"
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "This API is to confirm the payment request and forward payment to the payment processor. This API provides more granular control upon when the API is forwarded to the payment processor. Alternatively you can confirm the payment within the Payments-Create API"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "Scenario11-Don't Pass CVV for save card flow and verify success payment",
              "item": [
                {
                  "name": "Payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(100, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\"",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\"",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\"",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\"",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    }",
                          "  );",
                          "}",
                          "",
                          "if (jsonData?.customer_id) {",
                          "  pm.collectionVariables.set(\"customer_id\", jsonData.customer_id);",
                          "  console.log(",
                          "    \"- use {{customer_id}} as collection variable for value\",",
                          "    jsonData.customer_id",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{customer_id}}, as jsonData.customer_id is undefined.\"",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":true,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"stripesavecard\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"setup_future_usage\":\"on_session\",\"customer_acceptance\":{\"acceptance_type\":\"online\",\"accepted_at\":\"2022-09-10T10:11:12Z\",\"online\":{\"ip_address\":\"123.32.25.123\",\"user_agent\":\"Mozilla/5.0 (Linux; Android 12; SM-S906N Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.119 Mobile Safari/537.36\"}},\"payment_method\":\"card\",\"payment_method_type\":\"credit\",\"payment_method_data\":{\"card\":{\"card_number\":\"4111111111111111\",\"card_exp_month\":\"03\",\"card_exp_year\":\"2030\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"7373\"}},\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"joseph\",\"last_name\":\"Doe\"},\"phone\":{\"number\":\"9123456789\",\"country_code\":\"+91\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"joseph\",\"last_name\":\"Doe\"},\"phone\":{\"number\":\"9123456789\",\"country_code\":\"+91\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\"",
                          "  );",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\"",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\"",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\"",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                },
                {
                  "name": "List payment methods for a Customer",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx ",
                          "pm.test(\"[GET]::/payment_methods/:customer_id - Status code is 2xx\", function () {",
                          "   pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payment_methods/:customer_id - Content-Type is application/json\", function () {",
                          "   pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {jsonData = pm.response.json();}catch(e){}",
                          "",
                          "if (jsonData?.customer_payment_methods[0]?.payment_token) {",
                          "   pm.collectionVariables.set(\"payment_token\", jsonData.customer_payment_methods[0].payment_token);",
                          "   console.log(\"- use {{payment_token}} as collection variable for value\", jsonData.customer_payment_methods[0].payment_token);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{payment_token}}, as jsonData.customer_payment_methods[0].payment_token is undefined.');",
                          "}"
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/customers/:customer_id/payment_methods",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "customers",
                        ":customer_id",
                        "payment_methods"
                      ],
                      "query": [
                        {
                          "key": "accepted_country",
                          "value": "co",
                          "disabled": true
                        },
                        {
                          "key": "accepted_country",
                          "value": "pa",
                          "disabled": true
                        },
                        {
                          "key": "accepted_currency",
                          "value": "voluptate ea",
                          "disabled": true
                        },
                        {
                          "key": "accepted_currency",
                          "value": "exercitation",
                          "disabled": true
                        },
                        {
                          "key": "minimum_amount",
                          "value": "100",
                          "disabled": true
                        },
                        {
                          "key": "maximum_amount",
                          "value": "10000000",
                          "disabled": true
                        },
                        {
                          "key": "recurring_payment_enabled",
                          "value": "true",
                          "disabled": true
                        },
                        {
                          "key": "installment_payment_enabled",
                          "value": "true",
                          "disabled": true
                        }
                      ],
                      "variable": [
                        {
                          "key": "customer_id",
                          "value": "{{customer_id}}",
                          "description": "//Pass the customer id"
                        }
                      ]
                    },
                    "description": "To filter and list the applicable payment methods for a particular Customer ID"
                  },
                  "response": []
                },
                {
                  "name": "Save card payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(100, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx ",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "   pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "   pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");",
                          "});",
                          "",
                          "// Validate if response has JSON Body ",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "    pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {jsonData = pm.response.json();}catch(e){}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "   pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "   console.log(\"- use {{payment_id}} as collection variable for value\",jsonData.payment_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.');",
                          "};",
                          "",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "   pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "   console.log(\"- use {{mandate_id}} as collection variable for value\",jsonData.mandate_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.');",
                          "};",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "   pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "   console.log(\"- use {{client_secret}} as collection variable for value\",jsonData.client_secret);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.');",
                          "};",
                          "",
                          "// Response body should have value \"requires_payment_method\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'requires_payment_method'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"requires_payment_method\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "if (jsonData?.customer_id) {",
                          "   pm.collectionVariables.set(\"customer_id\", jsonData.customer_id);",
                          "   console.log(\"- use {{customer_id}} as collection variable for value\",jsonData.customer_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{customer_id}}, as jsonData.customer_id is undefined.');",
                          "};"
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":false,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"{{customer_id}}\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"joseph\",\"last_name\":\"Doe\"},\"phone\":{\"number\":\"9123456789\",\"country_code\":\"+91\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"joseph\",\"last_name\":\"Doe\"},\"phone\":{\"number\":\"9123456789\",\"country_code\":\"+91\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Save card payments - Confirm",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments/:id/confirm - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(",
                          "  \"[POST]::/payments/:id/confirm - Content-Type is application/json\",",
                          "  function () {",
                          "    pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "      \"application/json\",",
                          "    );",
                          "  },",
                          ");",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments/:id/confirm - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"nmi\" for \"connector\"",
                          "if (jsonData?.connector) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id/confirm - Content check if value for 'connector' matches 'nmi'\",",
                          "    function () {",
                          "      pm.expect(jsonData.connector).to.eql(\"nmi\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(\"[POST]::/payments/:id/confirm - Content check if value for 'status' matches 'succeeded'\", function() {",
                          "    pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "  })};"
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "auth": {
                      "type": "apikey",
                      "apikey": [
                        {
                          "key": "value",
                          "value": "{{publishable_key}}",
                          "type": "string"
                        },
                        {
                          "key": "key",
                          "value": "api-key",
                          "type": "string"
                        },
                        {
                          "key": "in",
                          "value": "header",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"client_secret\":\"{{client_secret}}\",\"payment_method\":\"card\",\"payment_token\":\"{{payment_token}}\"}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id/confirm",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id",
                        "confirm"
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "This API is to confirm the payment request and forward payment to the payment processor. This API provides more granular control upon when the API is forwarded to the payment processor. Alternatively you can confirm the payment within the Payments-Create API"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "Scenario12-Save card payment with manual capture",
              "item": [
                {
                  "name": "Payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(100, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx ",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "   pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "   pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");",
                          "});",
                          "",
                          "// Validate if response has JSON Body ",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "    pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {jsonData = pm.response.json();}catch(e){}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "   pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "   console.log(\"- use {{payment_id}} as collection variable for value\",jsonData.payment_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.');",
                          "};",
                          "",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "   pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "   console.log(\"- use {{mandate_id}} as collection variable for value\",jsonData.mandate_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.');",
                          "};",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "   pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "   console.log(\"- use {{client_secret}} as collection variable for value\",jsonData.client_secret);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.');",
                          "};",
                          "",
                          "if (jsonData?.customer_id) {",
                          "   pm.collectionVariables.set(\"customer_id\", jsonData.customer_id);",
                          "   console.log(\"- use {{customer_id}} as collection variable for value\",jsonData.customer_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{customer_id}}, as jsonData.customer_id is undefined.');",
                          "};",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}"
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":true,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"nmisavecard_{{random_number}}\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"setup_future_usage\":\"on_session\",\"customer_acceptance\":{\"acceptance_type\":\"online\",\"accepted_at\":\"2022-09-10T10:11:12Z\",\"online\":{\"ip_address\":\"123.32.25.123\",\"user_agent\":\"Mozilla/5.0 (Linux; Android 12; SM-S906N Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.119 Mobile Safari/537.36\"}},\"payment_method\":\"card\",\"payment_method_type\":\"credit\",\"payment_method_data\":{\"card\":{\"card_number\":\"4111111111111111\",\"card_exp_month\":\"03\",\"card_exp_year\":\"69\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"7373\"}},\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"joseph\",\"last_name\":\"Doe\"},\"phone\":{\"number\":\"9123456789\",\"country_code\":\"+91\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"joseph\",\"last_name\":\"Doe\"},\"phone\":{\"number\":\"9123456789\",\"country_code\":\"+91\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"Succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Validate the connector",
                          "pm.test(\"[POST]::/payments - connector\", function () {",
                          "  pm.expect(jsonData.connector).to.eql(\"nmi\");",
                          "});",
                          "",
                          "// Response body should have value \"0\" for \"amount_capturable\"",
                          "if (jsonData?.amount) {",
                          "  pm.test(",
                          "    \"[post]:://payments/:id/capture - Content check if value for 'amount_capturable' matches 'amount - 0'\",",
                          "    function () {",
                          "      pm.expect(jsonData.amount_capturable).to.eql(0);",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                },
                {
                  "name": "List payment methods for a Customer",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx ",
                          "pm.test(\"[GET]::/payment_methods/:customer_id - Status code is 2xx\", function () {",
                          "   pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payment_methods/:customer_id - Content-Type is application/json\", function () {",
                          "   pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {jsonData = pm.response.json();}catch(e){}",
                          "",
                          "if (jsonData?.customer_payment_methods[0]?.payment_token) {",
                          "   pm.collectionVariables.set(\"payment_token\", jsonData.customer_payment_methods[0].payment_token);",
                          "   console.log(\"- use {{payment_token}} as collection variable for value\", jsonData.customer_payment_methods[0].payment_token);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{payment_token}}, as jsonData.customer_payment_methods[0].payment_token is undefined.');",
                          "}"
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/customers/:customer_id/payment_methods",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "customers",
                        ":customer_id",
                        "payment_methods"
                      ],
                      "query": [
                        {
                          "key": "accepted_country",
                          "value": "co",
                          "disabled": true
                        },
                        {
                          "key": "accepted_country",
                          "value": "pa",
                          "disabled": true
                        },
                        {
                          "key": "accepted_currency",
                          "value": "voluptate ea",
                          "disabled": true
                        },
                        {
                          "key": "accepted_currency",
                          "value": "exercitation",
                          "disabled": true
                        },
                        {
                          "key": "minimum_amount",
                          "value": "100",
                          "disabled": true
                        },
                        {
                          "key": "maximum_amount",
                          "value": "10000000",
                          "disabled": true
                        },
                        {
                          "key": "recurring_payment_enabled",
                          "value": "true",
                          "disabled": true
                        },
                        {
                          "key": "installment_payment_enabled",
                          "value": "true",
                          "disabled": true
                        }
                      ],
                      "variable": [
                        {
                          "key": "customer_id",
                          "value": "{{customer_id}}",
                          "description": "//Pass the customer id"
                        }
                      ]
                    },
                    "description": "To filter and list the applicable payment methods for a particular Customer ID"
                  },
                  "response": []
                },
                {
                  "name": "Save card payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(100, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Set the environment variable 'amount' with the value from the response",
                          "pm.environment.set(\"amount\", pm.response.json().amount);",
                          "",
                          "// Validate status 2xx ",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "   pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "   pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(\"application/json\");",
                          "});",
                          "",
                          "// Validate if response has JSON Body ",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "    pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {jsonData = pm.response.json();}catch(e){}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "   pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "   console.log(\"- use {{payment_id}} as collection variable for value\",jsonData.payment_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.');",
                          "};",
                          "",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "   pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "   console.log(\"- use {{mandate_id}} as collection variable for value\",jsonData.mandate_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.');",
                          "};",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "   pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "   console.log(\"- use {{client_secret}} as collection variable for value\",jsonData.client_secret);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.');",
                          "};",
                          "",
                          "// Response body should have value \"requires_payment_method\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'requires_payment_method'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"requires_payment_method\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "if (jsonData?.customer_id) {",
                          "   pm.collectionVariables.set(\"customer_id\", jsonData.customer_id);",
                          "   console.log(\"- use {{customer_id}} as collection variable for value\",jsonData.customer_id);",
                          "} else {",
                          "   console.log('INFO - Unable to assign variable {{customer_id}}, as jsonData.customer_id is undefined.');",
                          "};"
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":false,\"capture_method\":\"manual\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"{{customer_id}}\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"joseph\",\"last_name\":\"Doe\"},\"phone\":{\"number\":\"9123456789\",\"country_code\":\"+91\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"joseph\",\"last_name\":\"Doe\"},\"phone\":{\"number\":\"9123456789\",\"country_code\":\"+91\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Save card payments - Confirm",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments/:id/confirm - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(",
                          "  \"[POST]::/payments/:id/confirm - Content-Type is application/json\",",
                          "  function () {",
                          "    pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "      \"application/json\",",
                          "    );",
                          "  },",
                          ");",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments/:id/confirm - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"requires_capture\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id/confirm - Content check if value for 'status' matches 'requires_capture'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"requires_capture\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "",
                          "// Response body should have value \"nmi\" for \"connector\"",
                          "if (jsonData?.connector) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id/confirm - Content check if value for 'connector' matches 'nmi'\",",
                          "    function () {",
                          "      pm.expect(jsonData.connector).to.eql(\"nmi\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "auth": {
                      "type": "apikey",
                      "apikey": [
                        {
                          "key": "value",
                          "value": "{{publishable_key}}",
                          "type": "string"
                        },
                        {
                          "key": "key",
                          "value": "api-key",
                          "type": "string"
                        },
                        {
                          "key": "in",
                          "value": "header",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"client_secret\":\"{{client_secret}}\",\"payment_method\":\"card\",\"payment_token\":\"{{payment_token}}\",\"card_cvc\":\"7373\"}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id/confirm",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id",
                        "confirm"
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "This API is to confirm the payment request and forward payment to the payment processor. This API provides more granular control upon when the API is forwarded to the payment processor. Alternatively you can confirm the payment within the Payments-Create API"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve-copy",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Get the value of 'amount' from the environment",
                          "const amount = pm.environment.get(\"amount\");",
                          "",
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"requires_capture\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id - Content check if value for 'status' matches 'requires_capture'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"requires_capture\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Validate the connector",
                          "pm.test(\"[POST]::/payments - connector\", function () {",
                          "  pm.expect(jsonData.connector).to.eql(\"nmi\");",
                          "});",
                          "",
                          "// Response body should have value \"amount\" for \"amount\"",
                          "if (jsonData?.amount) {",
                          "  pm.test(",
                          "    \"[post]:://payments/:id/capture - Content check if value for 'amount' matches '{{amount}}'\",",
                          "    function () {",
                          "      pm.expect(jsonData.amount).to.eql(amount);",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"amount\" for \"amount_received\"",
                          "if (jsonData?.amount_received) {",
                          "  pm.test(",
                          "    \"[POST]::/payments:id/capture - Content check if value for 'amount_received' matches '{{amount}}'\",",
                          "    function () {",
                          "      pm.expect(jsonData.amount_received).to.eql(amount);",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"amount\" for \"amount_capturable\"",
                          "if (jsonData?.amount) {",
                          "  pm.test(",
                          "    \"[post]:://payments/:id/capture - Content check if value for 'amount_capturable' matches 'amount - {{amount}}'\",",
                          "    function () {",
                          "      pm.expect(jsonData.amount_capturable).to.eql(amount);",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Capture",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Get the value of 'amount' from the environment",
                          "const amount = pm.environment.get(\"amount\");",
                          "",
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments/:id/capture - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(",
                          "  \"[POST]::/payments/:id/capture - Content-Type is application/json\",",
                          "  function () {",
                          "    pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "      \"application/json\",",
                          "    );",
                          "  },",
                          ");",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments/:id/capture - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]:://payments/:id/capture - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Validate the connector",
                          "pm.test(\"[POST]::/payments - connector\", function () {",
                          "  pm.expect(jsonData.connector).to.eql(\"nmi\");",
                          "});",
                          "",
                          "// Response body should have value \"amount\" for \"amount_received\"",
                          "if (jsonData?.amount_received) {",
                          "  pm.test(",
                          "    \"[POST]::/payments:id/capture - Content check if value for 'amount_received' matches '{{amount}}'\",",
                          "    function () {",
                          "      pm.expect(jsonData.amount_received).to.eql(amount);",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"0\" for \"amount_capturable\"",
                          "if (jsonData?.amount_capturable) {",
                          "  pm.test(",
                          "    \"[post]:://payments/:id/capture - Content check if value for 'amount_capturable' matches 'amount - 0'\",",
                          "    function () {",
                          "      pm.expect(jsonData.amount_capturable).to.eql(amount);",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount_to_capture\":\"{{amount}}\",\"statement_descriptor_name\":\"Joseph\",\"statement_descriptor_suffix\":\"JS\"}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id/capture",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id",
                        "capture"
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To capture the funds for an uncaptured payment"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve-copy-2",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Get the value of 'amount' from the environment",
                          "const amount = pm.environment.get(\"amount\");",
                          "",
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"Succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Validate the connector",
                          "pm.test(\"[POST]::/payments - connector\", function () {",
                          "  pm.expect(jsonData.connector).to.eql(\"nmi\");",
                          "});",
                          "",
                          "// Response body should have value \"amount\" for \"amount\"",
                          "if (jsonData?.amount) {",
                          "  pm.test(",
                          "    \"[post]:://payments/:id/capture - Content check if value for 'amount' matches '{{amount}}'\",",
                          "    function () {",
                          "      pm.expect(jsonData.amount).to.eql(amount);",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"amount\" for \"amount_received\"",
                          "if (jsonData?.amount_received) {",
                          "  pm.test(",
                          "    \"[POST]::/payments:id/capture - Content check if value for 'amount_received' matches '{{amount}}'\",",
                          "    function () {",
                          "      pm.expect(jsonData.amount_received).to.eql(amount);",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"6540\" for \"amount_capturable\"",
                          "if (jsonData?.amount) {",
                          "  pm.test(",
                          "    \"[post]:://payments/:id/capture - Content check if value for 'amount_capturable' matches 'amount - 540'\",",
                          "    function () {",
                          "      pm.expect(jsonData.amount_capturable).to.eql(0);",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                },
                {
                  "name": "Refunds - Create Copy",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/refunds - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/refunds - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set refund_id as variable for jsonData.payment_id",
                          "if (jsonData?.refund_id) {",
                          "  pm.collectionVariables.set(\"refund_id\", jsonData.refund_id);",
                          "  console.log(",
                          "    \"- use {{refund_id}} as collection variable for value\",",
                          "    jsonData.refund_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{refund_id}}, as jsonData.refund_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/refunds - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"10\" for \"amount\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/refunds - Content check if value for 'amount' matches '10'\",",
                          "    function () {",
                          "      pm.expect(jsonData.amount).to.eql(10);",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Validate the connector",
                          "pm.test(\"[POST]::/payments - connector\", function () {",
                          "  pm.expect(jsonData.connector).to.eql(\"nmi\");",
                          "});",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"payment_id\":\"{{payment_id}}\",\"amount\":10,\"reason\":\"Customer returned product\",\"refund_type\":\"instant\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/refunds",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "refunds"
                      ]
                    },
                    "description": "To create a refund against an already processed payment"
                  },
                  "response": []
                },
                {
                  "name": "Refunds - Retrieve Copy",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/refunds/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/refunds/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set refund_id as variable for jsonData.payment_id",
                          "if (jsonData?.refund_id) {",
                          "  pm.collectionVariables.set(\"refund_id\", jsonData.refund_id);",
                          "  console.log(",
                          "    \"- use {{refund_id}} as collection variable for value\",",
                          "    jsonData.refund_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{refund_id}}, as jsonData.refund_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/refunds - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"10\" for \"amount\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/refunds - Content check if value for 'amount' matches '10'\",",
                          "    function () {",
                          "      pm.expect(jsonData.amount).to.eql(10);",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/refunds/:id",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "refunds",
                        ":id"
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{refund_id}}",
                          "description": "(Required) unique refund id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Refund. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "Scenario13-Create payment without customer_id and with billing address and shipping address",
              "item": [
                {
                  "name": "Payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(100, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have \"connector_transaction_id\"",
                          "pm.test(",
                          "  \"[POST]::/payments - Content check if 'connector_transaction_id' exists\",",
                          "  function () {",
                          "    pm.expect(typeof jsonData.connector_transaction_id !== \"undefined\").to.be",
                          "      .true;",
                          "  },",
                          ");",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":true,\"business_country\":\"US\",\"business_label\":\"default\",\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"bernard123\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"setup_future_usage\":\"on_session\",\"customer_acceptance\":{\"acceptance_type\":\"online\",\"accepted_at\":\"2022-09-10T10:11:12Z\",\"online\":{\"ip_address\":\"123.32.25.123\",\"user_agent\":\"Mozilla/5.0 (Linux; Android 12; SM-S906N Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.119 Mobile Safari/537.36\"}},\"payment_method\":\"card\",\"payment_method_type\":\"debit\",\"payment_method_data\":{\"card\":{\"card_number\":\"4111111111111111\",\"card_exp_month\":\"01\",\"card_exp_year\":\"69\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"123\"}},\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\",\"last_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\",\"last_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"Succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have \"connector_transaction_id\"",
                          "pm.test(",
                          "  \"[POST]::/payments - Content check if 'connector_transaction_id' exists\",",
                          "  function () {",
                          "    pm.expect(typeof jsonData.connector_transaction_id !== \"undefined\").to.be",
                          "      .true;",
                          "  },",
                          ");",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                }
              ]
            }
          ]
        },
        {
          "name": "Variation Cases",
          "item": [
            {
              "name": "Scenario1-Create payment with Invalid card details",
              "item": [
                {
                  "name": "Payments - Create(Invalid card number)",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(100, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 4xx",
                          "pm.test(\"[POST]::/payments - Status code is 4xx\", function () {",
                          "  pm.response.to.be.error;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have \"error\"",
                          "pm.test(\"[POST]::/payments - Content check if 'error' exists\", function () {",
                          "  pm.expect(typeof jsonData.error !== \"undefined\").to.be.true;",
                          "});",
                          "",
                          "// Response body should have value \"connector error\" for \"error type\"",
                          "if (jsonData?.error?.type) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'error.type' matches 'connector_error'\",",
                          "    function () {",
                          "      pm.expect(jsonData.error.type).to.eql(\"connector_error\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":true,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"StripeCustomer\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"payment_method\":\"card\",\"payment_method_data\":{\"card\":{\"card_number\":\"123456\",\"card_exp_month\":\"10\",\"card_exp_year\":\"30\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"123\"}},\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Create(Invalid Exp month)",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 4xx",
                          "pm.test(\"[POST]::/payments - Status code is 4xx\", function () {",
                          "  pm.response.to.be.error;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have \"next_action.redirect_to_url\"",
                          "pm.test(\"[POST]::/payments - Content check if 'error' exists\", function () {",
                          "  pm.expect(typeof jsonData.error !== \"undefined\").to.be.true;",
                          "});",
                          "",
                          "// Response body should have value \"connector error\" for \"error type\"",
                          "if (jsonData?.error?.type) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'error.type' matches 'invalid_request'\",",
                          "    function () {",
                          "      pm.expect(jsonData.error.type).to.eql(\"invalid_request\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":2222,\"currency\":\"USD\",\"confirm\":true,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":2222,\"customer_id\":\"StripeCustomer\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"payment_method\":\"card\",\"payment_method_data\":{\"card\":{\"card_number\":\"4111111111111111\",\"card_exp_month\":\"01\",\"card_exp_year\":\"2023\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"123\"}},\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Create(Invalid Exp Year)",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(100, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 4xx",
                          "pm.test(\"[POST]::/payments - Status code is 4xx\", function () {",
                          "  pm.response.to.be.error;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have \"next_action.redirect_to_url\"",
                          "pm.test(\"[POST]::/payments - Content check if 'error' exists\", function () {",
                          "  pm.expect(typeof jsonData.error !== \"undefined\").to.be.true;",
                          "});",
                          "",
                          "// Response body should have value \"connector error\" for \"error type\"",
                          "if (jsonData?.error?.type) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'error.type' matches 'invalid_request'\",",
                          "    function () {",
                          "      pm.expect(jsonData.error.type).to.eql(\"invalid_request\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":true,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"StripeCustomer\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"payment_method\":\"card\",\"payment_method_data\":{\"card\":{\"card_number\":\"4242424242424242\",\"card_exp_month\":\"10\",\"card_exp_year\":\"2022\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"123\"}},\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Create(invalid CVV)",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 4xx",
                          "pm.test(\"[POST]::/payments - Status code is 4xx\", function () {",
                          "  pm.response.to.be.error;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have \"error\"",
                          "pm.test(\"[POST]::/payments - Content check if 'error' exists\", function () {",
                          "  pm.expect(typeof jsonData.error !== \"undefined\").to.be.true;",
                          "});",
                          "",
                          "// Response body should have value \"connector error\" for \"error type\"",
                          "if (jsonData?.error?.type) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'error.type' matches 'connector'\",",
                          "    function () {",
                          "      pm.expect(jsonData.error.type).to.eql(\"connector\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":6540,\"currency\":\"USD\",\"confirm\":true,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":6540,\"customer_id\":\"StripeCustomer\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"payment_method\":\"card\",\"payment_method_data\":{\"card\":{\"card_number\":\"123456\",\"card_exp_month\":\"10\",\"card_exp_year\":\"30\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"12345\"}},\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "Scenario2-Confirming the payment without PMD",
              "item": [
                {
                  "name": "Payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(100, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"requires_payment_method\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'requires_payment_method'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"requires_payment_method\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":false,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"StripeCustomer\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Confirm",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 4xx",
                          "pm.test(\"[POST]::/payments - Status code is 4xx\", function () {",
                          "  pm.response.to.be.error;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(",
                          "  \"[POST]::/payments/:id/confirm - Content-Type is application/json\",",
                          "  function () {",
                          "    pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "      \"application/json\",",
                          "    );",
                          "  },",
                          ");",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments/:id/confirm - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have \"error\"",
                          "pm.test(",
                          "  \"[POST]::/payments/:id/confirm - Content check if 'error' exists\",",
                          "  function () {",
                          "    pm.expect(typeof jsonData.error !== \"undefined\").to.be.true;",
                          "  },",
                          ");",
                          "",
                          "// Response body should have value \"connector error\" for \"error type\"",
                          "if (jsonData?.error?.type) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id/confirm - Content check if value for 'error.type' matches 'invalid_request'\",",
                          "    function () {",
                          "      pm.expect(jsonData.error.type).to.eql(\"invalid_request\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "auth": {
                      "type": "apikey",
                      "apikey": [
                        {
                          "key": "value",
                          "value": "{{publishable_key}}",
                          "type": "string"
                        },
                        {
                          "key": "key",
                          "value": "api-key",
                          "type": "string"
                        },
                        {
                          "key": "in",
                          "value": "header",
                          "type": "string"
                        }
                      ]
                    },
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"client_secret\":\"{{client_secret}}\"}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id/confirm",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id",
                        "confirm"
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "This API is to confirm the payment request and forward payment to the payment processor. This API provides more granular control upon when the API is forwarded to the payment processor. Alternatively you can confirm the payment within the Payments-Create API"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "Scenario3-Capture greater amount",
              "item": [
                {
                  "name": "Payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(100, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"requires_capture\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'requires_capture'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"requires_capture\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":true,\"capture_method\":\"manual\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"StripeCustomer\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"payment_method\":\"card\",\"payment_method_data\":{\"card\":{\"card_number\":\"4111111111111111\",\"card_exp_month\":\"10\",\"card_exp_year\":\"30\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"123\"}},\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"requires_capture\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'requires_capture'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"requires_capture\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Capture",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Get the value of 'amount' from the environment",
                          "const capture_amount = parseInt(pm.environment.get(\"amount\")) + 1000;",
                          "",
                          "// Validate status 4xx",
                          "pm.test(\"[POST]::/payments/:id/capture - Status code is 4xx\", function () {",
                          "  pm.response.to.be.error;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(",
                          "  \"[POST]::/payments/:id/capture - Content-Type is application/json\",",
                          "  function () {",
                          "    pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "      \"application/json\",",
                          "    );",
                          "  },",
                          ");",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments/:id/capture - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have \"error\"",
                          "pm.test(",
                          "  \"[POST]::/payments/:id/confirm - Content check if 'error' exists\",",
                          "  function () {",
                          "    pm.expect(typeof jsonData.error !== \"undefined\").to.be.true;",
                          "  },",
                          ");",
                          "",
                          "// Response body should have value \"connector error\" for \"error type\"",
                          "if (jsonData?.error?.type) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id/confirm - Content check if value for 'error.type' matches 'invalid_request'\",",
                          "    function () {",
                          "      pm.expect(jsonData.error.type).to.eql(\"invalid_request\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount_to_capture\":\"{{capture_amount}}\",\"statement_descriptor_name\":\"Joseph\",\"statement_descriptor_suffix\":\"JS\"}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id/capture",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id",
                        "capture"
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To capture the funds for an uncaptured payment"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve-copy",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"requires_capture\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'requires_capture'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"requires_capture\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "Scenario4-Capture the succeeded payment",
              "item": [
                {
                  "name": "Payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(100, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":true,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"StripeCustomer\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"payment_method\":\"card\",\"payment_method_data\":{\"card\":{\"card_number\":\"4111111111111111\",\"card_exp_month\":\"10\",\"card_exp_year\":\"30\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"123\"}},\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"Succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Capture",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 4xx",
                          "pm.test(\"[POST]::/payments/:id/capture - Status code is 4xx\", function () {",
                          "  pm.response.to.be.error;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(",
                          "  \"[POST]::/payments/:id/capture - Content-Type is application/json\",",
                          "  function () {",
                          "    pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "      \"application/json\",",
                          "    );",
                          "  },",
                          ");",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments/:id/capture - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have \"error\"",
                          "pm.test(",
                          "  \"[POST]::/payments/:id/confirm - Content check if 'error' exists\",",
                          "  function () {",
                          "    pm.expect(typeof jsonData.error !== \"undefined\").to.be.true;",
                          "  },",
                          ");",
                          "",
                          "// Response body should have value \"connector error\" for \"error type\"",
                          "if (jsonData?.error?.type) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id/confirm - Content check if value for 'error.type' matches 'invalid_request'\",",
                          "    function () {",
                          "      pm.expect(jsonData.error.type).to.eql(\"invalid_request\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount_to_capture\":7000,\"statement_descriptor_name\":\"Joseph\",\"statement_descriptor_suffix\":\"JS\"}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id/capture",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id",
                        "capture"
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To capture the funds for an uncaptured payment"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve-copy",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"Succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "Scenario5-Void the success_slash_failure payment",
              "item": [
                {
                  "name": "Payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(100, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":true,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"StripeCustomer\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"payment_method\":\"card\",\"payment_method_data\":{\"card\":{\"card_number\":\"4111111111111111\",\"card_exp_month\":\"10\",\"card_exp_year\":\"30\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"123\"}},\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"Succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Cancel",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 4xx",
                          "pm.test(\"[POST]::/payments/:id/cancel - Status code is 4xx\", function () {",
                          "  pm.response.to.be.error;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(",
                          "  \"[POST]::/payments/:id/cancel - Content-Type is application/json\",",
                          "  function () {",
                          "    pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "      \"application/json\",",
                          "    );",
                          "  },",
                          ");",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments/:id/cancel - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have \"error\"",
                          "pm.test(",
                          "  \"[POST]::/payments/:id/confirm - Content check if 'error' exists\",",
                          "  function () {",
                          "    pm.expect(typeof jsonData.error !== \"undefined\").to.be.true;",
                          "  },",
                          ");",
                          "",
                          "// Response body should have value \"connector error\" for \"error type\"",
                          "if (jsonData?.error?.type) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id/confirm - Content check if value for 'error.type' matches 'invalid_request'\",",
                          "    function () {",
                          "      pm.expect(jsonData.error.type).to.eql(\"invalid_request\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"cancellation_reason\":\"user_cancel\"}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id/cancel",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id",
                        "cancel"
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "A Payment could can be cancelled when it is in one of these statuses: requires_payment_method, requires_capture, requires_confirmation, requires_customer_action"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "Scenario7-Refund exceeds amount",
              "item": [
                {
                  "name": "Payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(100, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Set the environment variable 'amount' with the value from the response",
                          "pm.environment.set(\"amount\", pm.response.json().amount);",
                          "",
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":true,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"StripeCustomer\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"payment_method\":\"card\",\"payment_method_data\":{\"card\":{\"card_number\":\"4111111111111111\",\"card_exp_month\":\"10\",\"card_exp_year\":\"30\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"123\"}},\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Get the value of 'amount' from the environment",
                          "const amount = parseInt(pm.environment.get(\"amount\")) + 100000;",
                          "",
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"Succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id - Content check if value for 'status' matches 'succeeded'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"succeeded\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                },
                {
                  "name": "Refunds - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Get the value of 'amount' from the environment",
                          "const refund_amount = parseInt(pm.environment.get(\"amount\") + 100000);",
                          "",
                          "// Set 'refund_amount' as an environment variable for the current request",
                          "pm.environment.set(\"refund_amount\", refund_amount);",
                          "",
                          "// Validate status 4xx",
                          "pm.test(\"[POST]::/refunds - Status code is 4xx\", function () {",
                          "  pm.response.to.be.error;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/refunds - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set refund_id as variable for jsonData.payment_id",
                          "if (jsonData?.refund_id) {",
                          "  pm.collectionVariables.set(\"refund_id\", jsonData.refund_id);",
                          "  console.log(",
                          "    \"- use {{refund_id}} as collection variable for value\",",
                          "    jsonData.refund_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{refund_id}}, as jsonData.refund_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have \"error\"",
                          "pm.test(",
                          "  \"[POST]::/payments/:id/confirm - Content check if 'error' exists\",",
                          "  function () {",
                          "    pm.expect(typeof jsonData.error !== \"undefined\").to.be.true;",
                          "  },",
                          ");",
                          "",
                          "// Response body should have value \"connector error\" for \"error type\"",
                          "if (jsonData?.error?.type) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id/confirm - Content check if value for 'error.type' matches 'invalid_request'\",",
                          "    function () {",
                          "      pm.expect(jsonData.error.type).to.eql(\"invalid_request\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"payment_id\":\"{{payment_id}}\",\"amount\":\"{{refund_amount}}\",\"reason\":\"Customer returned product\",\"refund_type\":\"instant\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/refunds",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "refunds"
                      ]
                    },
                    "description": "To create a refund against an already processed payment"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "Scenario8-Refund for unsuccessful payment",
              "item": [
                {
                  "name": "Payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(100, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"requires_confirmation\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments - Content check if value for 'status' matches 'requires_confirmation'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"requires_confirmation\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":false,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"StripeCustomer\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"payment_method\":\"card\",\"payment_method_data\":{\"card\":{\"card_number\":\"4111111111111111\",\"card_exp_month\":\"10\",\"card_exp_year\":\"30\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"123\"}},\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                },
                {
                  "name": "Payments - Retrieve",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[GET]::/payments/:id - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[GET]::/payments/:id - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[GET]::/payments/:id - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set payment_id as variable for jsonData.payment_id",
                          "if (jsonData?.payment_id) {",
                          "  pm.collectionVariables.set(\"payment_id\", jsonData.payment_id);",
                          "  console.log(",
                          "    \"- use {{payment_id}} as collection variable for value\",",
                          "    jsonData.payment_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{payment_id}}, as jsonData.payment_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set mandate_id as variable for jsonData.mandate_id",
                          "if (jsonData?.mandate_id) {",
                          "  pm.collectionVariables.set(\"mandate_id\", jsonData.mandate_id);",
                          "  console.log(",
                          "    \"- use {{mandate_id}} as collection variable for value\",",
                          "    jsonData.mandate_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{mandate_id}}, as jsonData.mandate_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// pm.collectionVariables - Set client_secret as variable for jsonData.client_secret",
                          "if (jsonData?.client_secret) {",
                          "  pm.collectionVariables.set(\"client_secret\", jsonData.client_secret);",
                          "  console.log(",
                          "    \"- use {{client_secret}} as collection variable for value\",",
                          "    jsonData.client_secret,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{client_secret}}, as jsonData.client_secret is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"Succeeded\" for \"status\"",
                          "if (jsonData?.status) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id - Content check if value for 'status' matches 'requires_confirmation'\",",
                          "    function () {",
                          "      pm.expect(jsonData.status).to.eql(\"requires_confirmation\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "header": [
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "url": {
                      "raw": "{{baseUrl}}/payments/:id?force_sync=true",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments",
                        ":id"
                      ],
                      "query": [
                        {
                          "key": "force_sync",
                          "value": "true"
                        }
                      ],
                      "variable": [
                        {
                          "key": "id",
                          "value": "{{payment_id}}",
                          "description": "(Required) unique payment id"
                        }
                      ]
                    },
                    "description": "To retrieve the properties of a Payment. This may be used to get the status of a previously initiated payment or next action for an ongoing payment"
                  },
                  "response": []
                },
                {
                  "name": "Refunds - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 4xx",
                          "pm.test(\"[POST]::/refunds - Status code is 4xx\", function () {",
                          "  pm.response.to.be.error;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/refunds - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// pm.collectionVariables - Set refund_id as variable for jsonData.payment_id",
                          "if (jsonData?.refund_id) {",
                          "  pm.collectionVariables.set(\"refund_id\", jsonData.refund_id);",
                          "  console.log(",
                          "    \"- use {{refund_id}} as collection variable for value\",",
                          "    jsonData.refund_id,",
                          "  );",
                          "} else {",
                          "  console.log(",
                          "    \"INFO - Unable to assign variable {{refund_id}}, as jsonData.refund_id is undefined.\",",
                          "  );",
                          "}",
                          "",
                          "// Response body should have \"error\"",
                          "pm.test(",
                          "  \"[POST]::/payments/:id/confirm - Content check if 'error' exists\",",
                          "  function () {",
                          "    pm.expect(typeof jsonData.error !== \"undefined\").to.be.true;",
                          "  },",
                          ");",
                          "",
                          "// Response body should have value \"invalid_request\" for \"error type\"",
                          "if (jsonData?.error?.type) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id/confirm - Content check if value for 'error.type' matches 'invalid_request'\",",
                          "    function () {",
                          "      pm.expect(jsonData.error.type).to.eql(\"invalid_request\");",
                          "    },",
                          "  );",
                          "}",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"payment_id\":\"{{payment_id}}\",\"amount\":540,\"reason\":\"Customer returned product\",\"refund_type\":\"instant\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/refunds",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "refunds"
                      ]
                    },
                    "description": "To create a refund against an already processed payment"
                  },
                  "response": []
                }
              ]
            },
            {
              "name": "Scenario9-Create a mandate payment",
              "item": [
                {
                  "name": "Payments - Create",
                  "event": [
                    {
                      "listen": "prerequest",
                      "script": {
                        "exec": [
                          "pm.environment.set(\"random_number\", _.random(100, 100000));",
                          ""
                        ],
                        "type": "text/javascript"
                      }
                    },
                    {
                      "listen": "test",
                      "script": {
                        "exec": [
                          "// Validate status 2xx",
                          "pm.test(\"[POST]::/payments - Status code is 2xx\", function () {",
                          "  pm.response.to.be.success;",
                          "});",
                          "",
                          "// Validate if response header has matching content-type",
                          "pm.test(\"[POST]::/payments - Content-Type is application/json\", function () {",
                          "  pm.expect(pm.response.headers.get(\"Content-Type\")).to.include(",
                          "    \"application/json\",",
                          "  );",
                          "});",
                          "",
                          "// Validate if response has JSON Body",
                          "pm.test(\"[POST]::/payments - Response has JSON Body\", function () {",
                          "  pm.response.to.have.jsonBody();",
                          "});",
                          "",
                          "// Set response object as internal variable",
                          "let jsonData = {};",
                          "try {",
                          "  jsonData = pm.response.json();",
                          "} catch (e) {}",
                          "",
                          "// Response body should have value \"invalid_request\" for \"error type\"",
                          "if (jsonData?.error?.type) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id/confirm - Content check if value for 'error.type' matches 'invalid_request'\" ,",
                          "    function () {",
                          "      pm.expect(jsonData.error.type).to.eql(\"invalid_request\");",
                          "    },",
                          "  );",
                          "}",
                          "",
                          "// Response body should have value \"mandate payment is not supported by nmi\" for \"error reason\"",
                          "if (jsonData?.error?.message) {",
                          "  pm.test(",
                          "    \"[POST]::/payments/:id/confirm - Content check if value for 'error.reason' matches 'credit mandate payment is not supported by nmi'\" ,",
                          "    function () {",
                          "      pm.expect(jsonData.error.reason).to.eql(\"credit mandate payment is not supported by nmi\");",
                          "    },",
                          "  );",
                          "}"
                        ],
                        "type": "text/javascript"
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      },
                      {
                        "key": "Accept",
                        "value": "application/json"
                      }
                    ],
                    "body": {
                      "mode": "raw",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      },
                      "raw": "{\"amount\":\"{{random_number}}\",\"currency\":\"USD\",\"confirm\":true,\"capture_method\":\"automatic\",\"capture_on\":\"2022-09-10T10:11:12Z\",\"amount_to_capture\":\"{{random_number}}\",\"customer_id\":\"StripeCustomer\",\"email\":\"guest@example.com\",\"name\":\"John Doe\",\"phone\":\"999999999\",\"phone_country_code\":\"+65\",\"description\":\"Its my first payment request\",\"authentication_type\":\"no_three_ds\",\"return_url\":\"https://duck.com\",\"payment_method\":\"card\",\"payment_method_data\":{\"card\":{\"card_number\":\"4242424242424242\",\"card_exp_month\":\"10\",\"card_exp_year\":\"69\",\"card_holder_name\":\"joseph Doe\",\"card_cvc\":\"123\"}},\"setup_future_usage\":\"off_session\",\"mandate_data\":{\"customer_acceptance\":{\"acceptance_type\":\"offline\",\"accepted_at\":\"1963-05-03T04:07:52.723Z\",\"online\":{\"ip_address\":\"127.0.0.1\",\"user_agent\":\"amet irure esse\"}},\"mandate_type\":{\"single_use\":{\"amount\":7000,\"currency\":\"USD\"}}},\"customer_acceptance\":{\"acceptance_type\":\"online\",\"accepted_at\":\"2022-09-10T10:11:12Z\",\"online\":{\"ip_address\":\"123.32.25.123\",\"user_agent\":\"Mozilla/5.0 (Linux; Android 12; SM-S906N Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.119 Mobile Safari/537.36\"}},\"billing\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"shipping\":{\"address\":{\"line1\":\"1467\",\"line2\":\"Harrison Street\",\"line3\":\"Harrison Street\",\"city\":\"San Fransico\",\"state\":\"California\",\"zip\":\"94122\",\"country\":\"US\",\"first_name\":\"John\"}},\"statement_descriptor_name\":\"joseph\",\"statement_descriptor_suffix\":\"JS\",\"metadata\":{\"udf1\":\"value1\",\"new_customer\":\"true\",\"login_date\":\"2019-09-10T10:11:12Z\"}}"
                    },
                    "url": {
                      "raw": "{{baseUrl}}/payments",
                      "host": [
                        "{{baseUrl}}"
                      ],
                      "path": [
                        "payments"
                      ]
                    },
                    "description": "To process a payment you will have to create a payment, attach a payment method and confirm. Depending on the user journey you wish to achieve, you may opt to all the steps in a single request or in a sequence of API request using following APIs: (i) Payments - Update, (ii) Payments - Confirm, and (iii) Payments - Capture"
                  },
                  "response": []
                }
              ]
            }
          ]
        }
      ]
    }
  ],
  "auth": {
    "type": "apikey",
    "apikey": [
      {
        "key": "value",
        "value": "{{api_key}}",
        "type": "string"
      },
      {
        "key": "key",
        "value": "api-key",
        "type": "string"
      },
      {
        "key": "in",
        "value": "header",
        "type": "string"
      }
    ]
  },
  "info": {
    "_postman_id": "83b726fc-8895-4afd-8f07-a9545e209490",
    "name": "nmi",
    "description": "## Get started\n\nJuspay Router provides a collection of APIs that enable you to process and manage payments. Our APIs accept and return JSON in the HTTP body, and return standard HTTP response codes.  \nYou can consume the APIs directly using your favorite HTTP/REST library.  \nWe have a testing environment referred to \"sandbox\", which you can setup to test API calls without affecting production data.\n\n### Base URLs\n\nUse the following base URLs when making requests to the APIs:\n\n| Environment | Base URL |\n| --- | --- |\n| Sandbox | [https://sandbox.hyperswitch.io](https://sandbox.hyperswitch.io) |\n| Production | [https://router.juspay.io](https://router.juspay.io) |\n\n# Authentication\n\nWhen you sign up for an account, you are given a secret key (also referred as api-key). You may authenticate all API requests with Juspay server by providing the appropriate key in the request Authorization header.  \nNever share your secret api keys. Keep them guarded and secure.\n\nContact Support:  \nName: Juspay Support  \nEmail: [support@juspay.in](mailto:support@juspay.in)",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "_exporter_id": "25737662"
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://sandbox.hyperswitch.io",
      "type": "string"
    },
    {
      "key": "admin_api_key",
      "value": "",
      "type": "string"
    },
    {
      "key": "api_key",
      "value": "",
      "type": "string"
    },
    {
      "key": "merchant_id",
      "value": ""
    },
    {
      "key": "payment_id",
      "value": ""
    },
    {
      "key": "customer_id",
      "value": ""
    },
    {
      "key": "mandate_id",
      "value": ""
    },
    {
      "key": "payment_method_id",
      "value": ""
    },
    {
      "key": "refund_id",
      "value": ""
    },
    {
      "key": "merchant_connector_id",
      "value": ""
    },
    {
      "key": "client_secret",
      "value": "",
      "type": "string"
    },
    {
      "key": "connector_api_key",
      "value": "",
      "type": "string"
    },
    {
      "key": "connector_key1",
      "value": "",
      "type": "string"
    },
    {
      "key": "publishable_key",
      "value": "",
      "type": "string"
    },
    {
      "key": "api_key_id",
      "value": "",
      "type": "string"
    },
    {
      "key": "payment_token",
      "value": ""
    },
    {
      "key": "gateway_merchant_id",
      "value": "",
      "type": "string"
    },
    {
      "key": "certificate",
      "value": "",
      "type": "string"
    },
    {
      "key": "certificate_keys",
      "value": "",
      "type": "string"
    }
  ]
}
