{
  "info": {
    "name": "eSIMify Partners API v1",
    "description": "Requests for every endpoint of the eSIMify Partners API v1.\n\nSet two variables, either in the collection or in the sandbox environment file (`esimify-partners.postman_environment.json`, published next to this collection):\n- `baseUrl`: the base URL shown in your Business portal → Developers (no trailing slash)\n- `apiKey`: a test key (`sk_test_…`)\n\nIf you import the environment, set the two values THERE: an environment variable wins over a collection variable of the same name, so the `PASTE_…` placeholders would be sent otherwise.\n\nThen run the **Sandbox walkthrough** folder top to bottom. It saves `package_id`, `order_id`, `iccid`, `topup_package_id`, `topup_id`, `event_id` and `qr_token` for the other folders. All example values are fake.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "",
      "description": "Base URL shown in your Business portal → Developers"
    },
    {
      "key": "apiKey",
      "value": "",
      "description": "Your sk_test_… key"
    },
    {
      "key": "package_id",
      "value": "pkg_10482"
    },
    {
      "key": "order_id",
      "value": "ord_test_3f9a1c07b2e4"
    },
    {
      "key": "iccid",
      "value": "8999999000000012345"
    },
    {
      "key": "topup_package_id",
      "value": "pkg_10483"
    },
    {
      "key": "topup_id",
      "value": "top_test_5b1e9c2a7d40"
    },
    {
      "key": "event_id",
      "value": "evt_5c1d9e7a3b2f4c6d8e0a1b2c"
    },
    {
      "key": "qr_token",
      "value": "",
      "description": "Token part of an eSIM's qr_code_url. Set by \"5. Get eSIM\" and \"Retrieve an eSIM\"."
    }
  ],
  "item": [
    {
      "name": "Sandbox walkthrough",
      "description": "A runnable story with a test key: list packages → balance → create order → get order → get eSIM → top-up packages → top-up → simulate activation → simulate usage → list events. Each step saves what the next one needs (`package_id`, `order_id`, `iccid`, `topup_package_id`, `topup_id`, `qr_token`, `event_id`). Run it top to bottom: a sandbox eSIM must be activated before its usage can be simulated.",
      "item": [
        {
          "name": "1. List packages",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/packages?country=TH",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "packages"
              ],
              "query": [
                {
                  "key": "country",
                  "value": "TH",
                  "description": "ISO 3166-1 alpha-2"
                },
                {
                  "key": "region",
                  "value": "",
                  "description": "Only packages for this region",
                  "disabled": true
                },
                {
                  "key": "unlimited",
                  "value": "true",
                  "description": "Only unlimited-data packages",
                  "disabled": true
                },
                {
                  "key": "q",
                  "value": "",
                  "description": "Free-text search",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "25",
                  "description": "1-100, default 25",
                  "disabled": true
                },
                {
                  "key": "cursor",
                  "value": "",
                  "description": "next_cursor of the previous page",
                  "disabled": true
                }
              ]
            },
            "description": "Packages you can order, with your price."
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is 200\", function () { pm.expect(pm.response.code).to.be.oneOf([200]); });",
                  "var body = pm.response.json();",
                  "pm.test(\"at least one package\", function () { pm.expect(body.data).to.be.an(\"array\").that.is.not.empty; });",
                  "if (body.data && body.data.length) {",
                  "  // prefer a package that can also be used as a top-up, so step 7 has something to add",
                  "  var first = body.data[0];",
                  "  var pick = first.topup ? first : (body.data.filter(function (x) { return x.topup; })[0] || first);",
                  "  pm.collectionVariables.set(\"package_id\", pick.id);",
                  "}"
                ]
              }
            }
          ],
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/packages?country=TH",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "packages"
                  ],
                  "query": [
                    {
                      "key": "country",
                      "value": "TH",
                      "description": "ISO 3166-1 alpha-2"
                    },
                    {
                      "key": "region",
                      "value": "",
                      "description": "Only packages for this region",
                      "disabled": true
                    },
                    {
                      "key": "unlimited",
                      "value": "true",
                      "description": "Only unlimited-data packages",
                      "disabled": true
                    },
                    {
                      "key": "q",
                      "value": "",
                      "description": "Free-text search",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "25",
                      "description": "1-100, default 25",
                      "disabled": true
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "description": "next_cursor of the previous page",
                      "disabled": true
                    }
                  ]
                },
                "description": "Packages you can order, with your price."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "120"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "117"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"pkg_10482\",\n      \"name\": \"Thailand 5 GB 15 Days\",\n      \"type\": \"country\",\n      \"country\": \"TH\",\n      \"countries\": [\n        \"TH\"\n      ],\n      \"data_mb\": 5120,\n      \"unlimited\": false,\n      \"validity_days\": 15,\n      \"price\": {\n        \"amount\": \"249.00\",\n        \"currency\": \"INR\"\n      },\n      \"retail_price\": {\n        \"amount\": \"349.00\",\n        \"currency\": \"INR\"\n      },\n      \"topup\": true\n    },\n    {\n      \"id\": \"pkg_10519\",\n      \"name\": \"Thailand Unlimited 7 Days\",\n      \"type\": \"country\",\n      \"country\": \"TH\",\n      \"countries\": [\n        \"TH\"\n      ],\n      \"data_mb\": null,\n      \"unlimited\": true,\n      \"validity_days\": 7,\n      \"price\": {\n        \"amount\": \"599.00\",\n        \"currency\": \"INR\"\n      },\n      \"retail_price\": {\n        \"amount\": \"799.00\",\n        \"currency\": \"INR\"\n      },\n      \"topup\": false\n    }\n  ],\n  \"has_more\": true,\n  \"next_cursor\": \"MTA1MTk\"\n}"
            }
          ]
        },
        {
          "name": "2. Check balance",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/balance",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "balance"
              ]
            },
            "description": "Your prepaid balance for the key's mode. With a test key this is the virtual sandbox balance."
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is 200\", function () { pm.expect(pm.response.code).to.be.oneOf([200]); });",
                  "var body = pm.response.json();",
                  "pm.test(\"test mode\", function () { pm.expect(body.mode).to.eql(\"test\"); });",
                  "pm.test(\"balance is a money object\", function () { pm.expect(body.balance.amount).to.match(/^-?\\d+\\.\\d{2}$/); });"
                ]
              }
            }
          ],
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/balance",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "balance"
                  ]
                },
                "description": "Your prepaid balance for the key's mode. With a test key this is the virtual sandbox balance."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "120"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "117"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"balance\": {\n    \"amount\": \"999751.00\",\n    \"currency\": \"INR\"\n  },\n  \"low_balance_threshold\": null,\n  \"mode\": \"test\"\n}"
            }
          ]
        },
        {
          "name": "3. Create order",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/orders",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "orders"
              ]
            },
            "description": "Buys eSIMs of one package. 201 for a new order, 200 with `Idempotent-Replayed: true` for a replay. Always check `status`: an order can be `processing`, `partially_completed` or `failed`.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"package_id\": \"{{package_id}}\",\n  \"quantity\": 1,\n  \"customer_ref\": \"walkthrough-001\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is 201 or 200\", function () { pm.expect(pm.response.code).to.be.oneOf([201, 200]); });",
                  "var body = pm.response.json();",
                  "pm.test(\"order has an id\", function () { pm.expect(body.id).to.match(/^ord_/); });",
                  "pm.collectionVariables.set(\"order_id\", body.id);",
                  "if (body.esims && body.esims.length) { pm.collectionVariables.set(\"iccid\", body.esims[0].iccid); }"
                ]
              }
            }
          ],
          "response": [
            {
              "name": "201 Created",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/orders",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "orders"
                  ]
                },
                "description": "Buys eSIMs of one package. 201 for a new order, 200 with `Idempotent-Replayed: true` for a replay. Always check `status`: an order can be `processing`, `partially_completed` or `failed`.",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"package_id\": \"{{package_id}}\",\n  \"quantity\": 1,\n  \"customer_ref\": \"walkthrough-001\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "30"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "29"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"id\": \"ord_test_3f9a1c07b2e4\",\n  \"status\": \"completed\",\n  \"mode\": \"test\",\n  \"package_id\": \"pkg_10482\",\n  \"quantity\": 1,\n  \"items\": [\n    {\n      \"package_id\": \"pkg_10482\",\n      \"quantity\": 1\n    }\n  ],\n  \"customer_ref\": \"walkthrough-001\",\n  \"total\": {\n    \"amount\": \"249.00\",\n    \"currency\": \"INR\"\n  },\n  \"refunded\": {\n    \"amount\": \"0.00\",\n    \"currency\": \"INR\"\n  },\n  \"balance_after\": {\n    \"amount\": \"999751.00\",\n    \"currency\": \"INR\"\n  },\n  \"created\": \"2026-10-02T09:14:07Z\",\n  \"esims\": [\n    {\n      \"iccid\": \"8999999000000012345\",\n      \"status\": \"ready\"\n    }\n  ]\n}"
            }
          ]
        },
        {
          "name": "4. Get order",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/orders/{{order_id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "orders",
                "{{order_id}}"
              ]
            },
            "description": "One order by id."
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is 200\", function () { pm.expect(pm.response.code).to.be.oneOf([200]); });",
                  "var body = pm.response.json();",
                  "pm.test(\"order completed\", function () { pm.expect(body.status).to.eql(\"completed\"); });",
                  "if (body.esims && body.esims.length) { pm.collectionVariables.set(\"iccid\", body.esims[0].iccid); }"
                ]
              }
            }
          ],
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/orders/{{order_id}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "orders",
                    "{{order_id}}"
                  ]
                },
                "description": "One order by id."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "120"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "117"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"id\": \"ord_test_3f9a1c07b2e4\",\n  \"status\": \"completed\",\n  \"mode\": \"test\",\n  \"package_id\": \"pkg_10482\",\n  \"quantity\": 1,\n  \"items\": [\n    {\n      \"package_id\": \"pkg_10482\",\n      \"quantity\": 1\n    }\n  ],\n  \"customer_ref\": \"walkthrough-001\",\n  \"total\": {\n    \"amount\": \"249.00\",\n    \"currency\": \"INR\"\n  },\n  \"refunded\": {\n    \"amount\": \"0.00\",\n    \"currency\": \"INR\"\n  },\n  \"balance_after\": {\n    \"amount\": \"999751.00\",\n    \"currency\": \"INR\"\n  },\n  \"created\": \"2026-10-02T09:14:07Z\",\n  \"esims\": [\n    {\n      \"iccid\": \"8999999000000012345\",\n      \"status\": \"ready\"\n    }\n  ]\n}"
            }
          ]
        },
        {
          "name": "5. Get eSIM",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/esims/{{iccid}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "esims",
                "{{iccid}}"
              ]
            },
            "description": "The full eSIM, including the activation block and install links."
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is 200\", function () { pm.expect(pm.response.code).to.be.oneOf([200]); });",
                  "var body = pm.response.json();",
                  "pm.test(\"sandbox ICCID\", function () { pm.expect(body.iccid).to.match(/^8999999/); });",
                  "pm.test(\"has activation details\", function () { pm.expect(body.activation.lpa).to.match(/^LPA:1\\$/); });",
                  "var m = /\\/v1\\/qr\\/(.+)\\.png$/.exec(body.qr_code_url || \"\"); if (m) { pm.collectionVariables.set(\"qr_token\", m[1]); }"
                ]
              }
            }
          ],
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/esims/{{iccid}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "esims",
                    "{{iccid}}"
                  ]
                },
                "description": "The full eSIM, including the activation block and install links."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "120"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "117"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"iccid\": \"8999999000000012345\",\n  \"status\": \"ready\",\n  \"mode\": \"test\",\n  \"order_id\": \"ord_test_3f9a1c07b2e4\",\n  \"customer_ref\": \"walkthrough-001\",\n  \"package\": {\n    \"id\": \"pkg_10482\",\n    \"name\": \"Thailand 5 GB 15 Days\"\n  },\n  \"qr_code_url\": \"https://api.example.com/partner/api/v1/qr/ODk5OTk5OTAwMDAwMDAxMjM0NQ.3f9a1c2b5e8d7c6b4a39281706f5e4d3c2b1a098.png\",\n  \"activation\": {\n    \"lpa\": \"LPA:1$sandbox.esimify.in$TEST-7K2M9QX4B1TZ\",\n    \"smdp_address\": \"sandbox.esimify.in\",\n    \"activation_code\": \"TEST-7K2M9QX4B1TZ\"\n  },\n  \"install_links\": {\n    \"ios\": \"https://esimsetup.apple.com/esim_qrcode_provisioning?carddata=LPA%3A1%24sandbox.esimify.in%24TEST-7K2M9QX4B1TZ\",\n    \"android\": \"https://esimsetup.android.com/esim_qrcode_provisioning?carddata=LPA%3A1%24sandbox.esimify.in%24TEST-7K2M9QX4B1TZ\"\n  },\n  \"data\": {\n    \"unlimited\": false,\n    \"total_mb\": 5120,\n    \"used_mb\": 0,\n    \"remaining_mb\": 5120\n  },\n  \"validity_days\": 15,\n  \"activated_at\": null,\n  \"expires_at\": null,\n  \"created\": \"2026-10-02T09:14:07Z\"\n}"
            }
          ]
        },
        {
          "name": "6. List top-up packages",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/esims/{{iccid}}/topup-packages",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "esims",
                "{{iccid}}",
                "topup-packages"
              ]
            },
            "description": "Packages that can be added to this eSIM."
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is 200\", function () { pm.expect(pm.response.code).to.be.oneOf([200]); });",
                  "var body = pm.response.json();",
                  "pm.test(\"data is an array\", function () { pm.expect(body.data).to.be.an(\"array\"); });",
                  "pm.test(\"the eSIM can be topped up\", function () { pm.expect(body.data).to.not.be.empty; });",
                  "if (body.data && body.data.length) { pm.collectionVariables.set(\"topup_package_id\", body.data[0].id); }"
                ]
              }
            }
          ],
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/esims/{{iccid}}/topup-packages",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "esims",
                    "{{iccid}}",
                    "topup-packages"
                  ]
                },
                "description": "Packages that can be added to this eSIM."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "120"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "117"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"pkg_10483\",\n      \"name\": \"Thailand 3 GB 7 Days\",\n      \"type\": \"country\",\n      \"country\": \"TH\",\n      \"countries\": [\n        \"TH\"\n      ],\n      \"data_mb\": 3072,\n      \"unlimited\": false,\n      \"validity_days\": 7,\n      \"price\": {\n        \"amount\": \"159.00\",\n        \"currency\": \"INR\"\n      },\n      \"retail_price\": {\n        \"amount\": \"229.00\",\n        \"currency\": \"INR\"\n      },\n      \"topup\": true\n    }\n  ]\n}"
            }
          ]
        },
        {
          "name": "7. Top up the eSIM",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/esims/{{iccid}}/topups",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "esims",
                "{{iccid}}",
                "topups"
              ]
            },
            "description": "Adds a top-up package to the eSIM and debits your balance. 201 for a new top-up. Check `status`: a top-up can come back as `failed` (nothing added, amount returned).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"package_id\": \"{{topup_package_id}}\",\n  \"customer_ref\": \"booking-78231\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is 201 or 200\", function () { pm.expect(pm.response.code).to.be.oneOf([201, 200]); });",
                  "var body = pm.response.json();",
                  "pm.test(\"top-up is for this eSIM\", function () { pm.expect(body.iccid).to.eql(pm.collectionVariables.get(\"iccid\")); });",
                  "pm.test(\"top-up completed\", function () { pm.expect(body.status).to.eql(\"completed\"); });",
                  "if (body.id) { pm.collectionVariables.set(\"topup_id\", body.id); }"
                ]
              }
            }
          ],
          "response": [
            {
              "name": "201 Created",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/esims/{{iccid}}/topups",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "esims",
                    "{{iccid}}",
                    "topups"
                  ]
                },
                "description": "Adds a top-up package to the eSIM and debits your balance. 201 for a new top-up. Check `status`: a top-up can come back as `failed` (nothing added, amount returned).",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"package_id\": \"{{topup_package_id}}\",\n  \"customer_ref\": \"booking-78231\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "30"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "29"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"id\": \"top_test_5b1e9c2a7d40\",\n  \"status\": \"completed\",\n  \"iccid\": \"8999999000000012345\",\n  \"package_id\": \"pkg_10483\",\n  \"customer_ref\": null,\n  \"total\": {\n    \"amount\": \"159.00\",\n    \"currency\": \"INR\"\n  },\n  \"balance_after\": {\n    \"amount\": \"999592.00\",\n    \"currency\": \"INR\"\n  },\n  \"created\": \"2026-10-02T09:31:55Z\"\n}"
            }
          ]
        },
        {
          "name": "8. Simulate activation",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/sandbox/esims/{{iccid}}/simulate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "sandbox",
                "esims",
                "{{iccid}}",
                "simulate"
              ]
            },
            "description": "Test keys only. `event` is one of activated, usage_80, usage_100, expired, sent in that order: an eSIM must be activated before its usage or expiry can be simulated (otherwise 409 `invalid_state`). Updates the sandbox eSIM and sends the matching webhook to your test-mode endpoints. An event that changes nothing returns the eSIM unchanged and sends no webhook. A live key gets 404.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"event\": \"activated\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is 200\", function () { pm.expect(pm.response.code).to.be.oneOf([200]); });",
                  "var body = pm.response.json();",
                  "pm.test(\"eSIM is active\", function () { pm.expect(body.status).to.eql(\"active\"); });"
                ]
              }
            }
          ],
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/sandbox/esims/{{iccid}}/simulate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "sandbox",
                    "esims",
                    "{{iccid}}",
                    "simulate"
                  ]
                },
                "description": "Test keys only. `event` is one of activated, usage_80, usage_100, expired, sent in that order: an eSIM must be activated before its usage or expiry can be simulated (otherwise 409 `invalid_state`). Updates the sandbox eSIM and sends the matching webhook to your test-mode endpoints. An event that changes nothing returns the eSIM unchanged and sends no webhook. A live key gets 404.",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"activated\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "30"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "29"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"iccid\": \"8999999000000012345\",\n  \"status\": \"active\",\n  \"mode\": \"test\",\n  \"order_id\": \"ord_test_3f9a1c07b2e4\",\n  \"customer_ref\": \"walkthrough-001\",\n  \"package\": {\n    \"id\": \"pkg_10482\",\n    \"name\": \"Thailand 5 GB 15 Days\"\n  },\n  \"qr_code_url\": \"https://api.example.com/partner/api/v1/qr/ODk5OTk5OTAwMDAwMDAxMjM0NQ.3f9a1c2b5e8d7c6b4a39281706f5e4d3c2b1a098.png\",\n  \"activation\": {\n    \"lpa\": \"LPA:1$sandbox.esimify.in$TEST-7K2M9QX4B1TZ\",\n    \"smdp_address\": \"sandbox.esimify.in\",\n    \"activation_code\": \"TEST-7K2M9QX4B1TZ\"\n  },\n  \"install_links\": {\n    \"ios\": \"https://esimsetup.apple.com/esim_qrcode_provisioning?carddata=LPA%3A1%24sandbox.esimify.in%24TEST-7K2M9QX4B1TZ\",\n    \"android\": \"https://esimsetup.android.com/esim_qrcode_provisioning?carddata=LPA%3A1%24sandbox.esimify.in%24TEST-7K2M9QX4B1TZ\"\n  },\n  \"data\": {\n    \"unlimited\": false,\n    \"total_mb\": 5120,\n    \"used_mb\": 0,\n    \"remaining_mb\": 5120\n  },\n  \"validity_days\": 15,\n  \"activated_at\": \"2026-10-02T09:20:41Z\",\n  \"expires_at\": \"2026-10-17T09:20:41Z\",\n  \"created\": \"2026-10-02T09:14:07Z\"\n}"
            }
          ]
        },
        {
          "name": "9. Simulate usage (80%)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/sandbox/esims/{{iccid}}/simulate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "sandbox",
                "esims",
                "{{iccid}}",
                "simulate"
              ]
            },
            "description": "Test keys only. `event` is one of activated, usage_80, usage_100, expired, sent in that order: an eSIM must be activated before its usage or expiry can be simulated (otherwise 409 `invalid_state`). Updates the sandbox eSIM and sends the matching webhook to your test-mode endpoints. An event that changes nothing returns the eSIM unchanged and sends no webhook. A live key gets 404.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"event\": \"usage_80\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is 200\", function () { pm.expect(pm.response.code).to.be.oneOf([200]); });",
                  "var body = pm.response.json();",
                  "pm.test(\"80% of the data is used\", function () { pm.expect(body.data.used_mb).to.be.at.least(0.8 * body.data.total_mb); });"
                ]
              }
            }
          ],
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/sandbox/esims/{{iccid}}/simulate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "sandbox",
                    "esims",
                    "{{iccid}}",
                    "simulate"
                  ]
                },
                "description": "Test keys only. `event` is one of activated, usage_80, usage_100, expired, sent in that order: an eSIM must be activated before its usage or expiry can be simulated (otherwise 409 `invalid_state`). Updates the sandbox eSIM and sends the matching webhook to your test-mode endpoints. An event that changes nothing returns the eSIM unchanged and sends no webhook. A live key gets 404.",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"usage_80\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "30"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "29"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"iccid\": \"8999999000000012345\",\n  \"status\": \"active\",\n  \"mode\": \"test\",\n  \"order_id\": \"ord_test_3f9a1c07b2e4\",\n  \"customer_ref\": \"walkthrough-001\",\n  \"package\": {\n    \"id\": \"pkg_10482\",\n    \"name\": \"Thailand 5 GB 15 Days\"\n  },\n  \"qr_code_url\": \"https://api.example.com/partner/api/v1/qr/ODk5OTk5OTAwMDAwMDAxMjM0NQ.3f9a1c2b5e8d7c6b4a39281706f5e4d3c2b1a098.png\",\n  \"activation\": {\n    \"lpa\": \"LPA:1$sandbox.esimify.in$TEST-7K2M9QX4B1TZ\",\n    \"smdp_address\": \"sandbox.esimify.in\",\n    \"activation_code\": \"TEST-7K2M9QX4B1TZ\"\n  },\n  \"install_links\": {\n    \"ios\": \"https://esimsetup.apple.com/esim_qrcode_provisioning?carddata=LPA%3A1%24sandbox.esimify.in%24TEST-7K2M9QX4B1TZ\",\n    \"android\": \"https://esimsetup.android.com/esim_qrcode_provisioning?carddata=LPA%3A1%24sandbox.esimify.in%24TEST-7K2M9QX4B1TZ\"\n  },\n  \"data\": {\n    \"unlimited\": false,\n    \"total_mb\": 5120,\n    \"used_mb\": 4096,\n    \"remaining_mb\": 1024\n  },\n  \"validity_days\": 15,\n  \"activated_at\": \"2026-10-02T09:20:41Z\",\n  \"expires_at\": \"2026-10-17T09:20:41Z\",\n  \"created\": \"2026-10-02T09:14:07Z\"\n}"
            }
          ]
        },
        {
          "name": "10. List events",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/events",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "events"
              ],
              "query": [
                {
                  "key": "type",
                  "value": "order.completed",
                  "description": "Only events of this type",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "25",
                  "description": "1-100, default 25",
                  "disabled": true
                },
                {
                  "key": "cursor",
                  "value": "",
                  "description": "next_cursor of the previous page",
                  "disabled": true
                }
              ]
            },
            "description": "Events from the last 30 days, newest first, for reconciliation. Order them by `sequence`."
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is 200\", function () { pm.expect(pm.response.code).to.be.oneOf([200]); });",
                  "var body = pm.response.json();",
                  "pm.test(\"data is an array\", function () { pm.expect(body.data).to.be.an(\"array\"); });",
                  "if (body.data && body.data.length) { pm.collectionVariables.set(\"event_id\", body.data[0].id); }"
                ]
              }
            }
          ],
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/events",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "events"
                  ],
                  "query": [
                    {
                      "key": "type",
                      "value": "order.completed",
                      "description": "Only events of this type",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "25",
                      "description": "1-100, default 25",
                      "disabled": true
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "description": "next_cursor of the previous page",
                      "disabled": true
                    }
                  ]
                },
                "description": "Events from the last 30 days, newest first, for reconciliation. Order them by `sequence`."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "120"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "117"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"evt_0a1b2c3d4e5f60718293a4b5\",\n      \"type\": \"esim.usage_80\",\n      \"mode\": \"test\",\n      \"created\": \"2026-10-02T09:40:12Z\",\n      \"sequence\": 41,\n      \"data\": {\n        \"iccid\": \"8999999000000012345\",\n        \"status\": \"active\",\n        \"order_id\": \"ord_test_3f9a1c07b2e4\",\n        \"customer_ref\": \"walkthrough-001\",\n        \"data\": {\n          \"unlimited\": false,\n          \"total_mb\": 5120,\n          \"used_mb\": 4198,\n          \"remaining_mb\": 922\n        },\n        \"expires_at\": \"2026-10-17T09:20:41Z\"\n      }\n    },\n    {\n      \"id\": \"evt_5c1d9e7a3b2f4c6d8e0a1b2c\",\n      \"type\": \"order.completed\",\n      \"mode\": \"test\",\n      \"created\": \"2026-10-02T09:14:07Z\",\n      \"sequence\": 42,\n      \"data\": {\n        \"id\": \"ord_test_3f9a1c07b2e4\",\n        \"status\": \"completed\",\n        \"mode\": \"test\",\n        \"package_id\": \"pkg_10482\",\n        \"quantity\": 1,\n        \"items\": [\n          {\n            \"package_id\": \"pkg_10482\",\n            \"quantity\": 1\n          }\n        ],\n        \"customer_ref\": \"walkthrough-001\",\n        \"total\": {\n          \"amount\": \"249.00\",\n          \"currency\": \"INR\"\n        },\n        \"refunded\": {\n          \"amount\": \"0.00\",\n          \"currency\": \"INR\"\n        },\n        \"balance_after\": {\n          \"amount\": \"999751.00\",\n          \"currency\": \"INR\"\n        },\n        \"created\": \"2026-10-02T09:14:07Z\",\n        \"esims\": [\n          {\n            \"iccid\": \"8999999000000012345\",\n            \"status\": \"ready\"\n          }\n        ]\n      }\n    }\n  ],\n  \"has_more\": false,\n  \"next_cursor\": null\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "Catalogue",
      "item": [
        {
          "name": "List countries and regions",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/countries",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "countries"
              ]
            },
            "description": "Countries and regions that have packages. Not paginated."
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/countries",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "countries"
                  ]
                },
                "description": "Countries and regions that have packages. Not paginated."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "120"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "117"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"data\": [\n    {\n      \"code\": \"TH\",\n      \"name\": \"Thailand\",\n      \"type\": \"country\",\n      \"packages_count\": 12\n    },\n    {\n      \"code\": \"AE\",\n      \"name\": \"United Arab Emirates\",\n      \"type\": \"country\",\n      \"packages_count\": 9\n    }\n  ]\n}"
            }
          ]
        },
        {
          "name": "List packages",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/packages?country=TH",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "packages"
              ],
              "query": [
                {
                  "key": "country",
                  "value": "TH",
                  "description": "ISO 3166-1 alpha-2"
                },
                {
                  "key": "region",
                  "value": "",
                  "description": "Only packages for this region",
                  "disabled": true
                },
                {
                  "key": "unlimited",
                  "value": "true",
                  "description": "Only unlimited-data packages",
                  "disabled": true
                },
                {
                  "key": "q",
                  "value": "",
                  "description": "Free-text search",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "25",
                  "description": "1-100, default 25",
                  "disabled": true
                },
                {
                  "key": "cursor",
                  "value": "",
                  "description": "next_cursor of the previous page",
                  "disabled": true
                }
              ]
            },
            "description": "Packages you can order, with your price."
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/packages?country=TH",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "packages"
                  ],
                  "query": [
                    {
                      "key": "country",
                      "value": "TH",
                      "description": "ISO 3166-1 alpha-2"
                    },
                    {
                      "key": "region",
                      "value": "",
                      "description": "Only packages for this region",
                      "disabled": true
                    },
                    {
                      "key": "unlimited",
                      "value": "true",
                      "description": "Only unlimited-data packages",
                      "disabled": true
                    },
                    {
                      "key": "q",
                      "value": "",
                      "description": "Free-text search",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "25",
                      "description": "1-100, default 25",
                      "disabled": true
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "description": "next_cursor of the previous page",
                      "disabled": true
                    }
                  ]
                },
                "description": "Packages you can order, with your price."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "120"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "117"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"pkg_10482\",\n      \"name\": \"Thailand 5 GB 15 Days\",\n      \"type\": \"country\",\n      \"country\": \"TH\",\n      \"countries\": [\n        \"TH\"\n      ],\n      \"data_mb\": 5120,\n      \"unlimited\": false,\n      \"validity_days\": 15,\n      \"price\": {\n        \"amount\": \"249.00\",\n        \"currency\": \"INR\"\n      },\n      \"retail_price\": {\n        \"amount\": \"349.00\",\n        \"currency\": \"INR\"\n      },\n      \"topup\": true\n    },\n    {\n      \"id\": \"pkg_10519\",\n      \"name\": \"Thailand Unlimited 7 Days\",\n      \"type\": \"country\",\n      \"country\": \"TH\",\n      \"countries\": [\n        \"TH\"\n      ],\n      \"data_mb\": null,\n      \"unlimited\": true,\n      \"validity_days\": 7,\n      \"price\": {\n        \"amount\": \"599.00\",\n        \"currency\": \"INR\"\n      },\n      \"retail_price\": {\n        \"amount\": \"799.00\",\n        \"currency\": \"INR\"\n      },\n      \"topup\": false\n    }\n  ],\n  \"has_more\": true,\n  \"next_cursor\": \"MTA1MTk\"\n}"
            }
          ]
        },
        {
          "name": "Retrieve a package",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/packages/{{package_id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "packages",
                "{{package_id}}"
              ]
            },
            "description": "One package by id."
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/packages/{{package_id}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "packages",
                    "{{package_id}}"
                  ]
                },
                "description": "One package by id."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "120"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "117"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"id\": \"pkg_10482\",\n  \"name\": \"Thailand 5 GB 15 Days\",\n  \"type\": \"country\",\n  \"country\": \"TH\",\n  \"countries\": [\n    \"TH\"\n  ],\n  \"data_mb\": 5120,\n  \"unlimited\": false,\n  \"validity_days\": 15,\n  \"price\": {\n    \"amount\": \"249.00\",\n    \"currency\": \"INR\"\n  },\n  \"retail_price\": {\n    \"amount\": \"349.00\",\n    \"currency\": \"INR\"\n  },\n  \"topup\": true\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "Balance",
      "item": [
        {
          "name": "Retrieve balance",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/balance",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "balance"
              ]
            },
            "description": "Your prepaid balance for the key's mode. With a test key this is the virtual sandbox balance."
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/balance",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "balance"
                  ]
                },
                "description": "Your prepaid balance for the key's mode. With a test key this is the virtual sandbox balance."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "120"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "117"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"balance\": {\n    \"amount\": \"999751.00\",\n    \"currency\": \"INR\"\n  },\n  \"low_balance_threshold\": null,\n  \"mode\": \"test\"\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "Orders",
      "item": [
        {
          "name": "Create an order",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/orders",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "orders"
              ]
            },
            "description": "Buys eSIMs of one package. 201 for a new order, 200 with `Idempotent-Replayed: true` for a replay.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"package_id\": \"{{package_id}}\",\n  \"quantity\": 1,\n  \"customer_ref\": \"booking-78231\",\n  \"customer\": {\n    \"name\": \"Test Traveller\",\n    \"email\": \"traveller@example.com\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "201 Created",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/orders",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "orders"
                  ]
                },
                "description": "Buys eSIMs of one package. 201 for a new order, 200 with `Idempotent-Replayed: true` for a replay.",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"package_id\": \"{{package_id}}\",\n  \"quantity\": 1,\n  \"customer_ref\": \"booking-78231\",\n  \"customer\": {\n    \"name\": \"Test Traveller\",\n    \"email\": \"traveller@example.com\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "30"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "29"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"id\": \"ord_test_3f9a1c07b2e4\",\n  \"status\": \"completed\",\n  \"mode\": \"test\",\n  \"package_id\": \"pkg_10482\",\n  \"quantity\": 1,\n  \"items\": [\n    {\n      \"package_id\": \"pkg_10482\",\n      \"quantity\": 1\n    }\n  ],\n  \"customer_ref\": \"booking-78231\",\n  \"total\": {\n    \"amount\": \"249.00\",\n    \"currency\": \"INR\"\n  },\n  \"refunded\": {\n    \"amount\": \"0.00\",\n    \"currency\": \"INR\"\n  },\n  \"balance_after\": {\n    \"amount\": \"999751.00\",\n    \"currency\": \"INR\"\n  },\n  \"created\": \"2026-10-02T09:14:07Z\",\n  \"esims\": [\n    {\n      \"iccid\": \"8999999000000012345\",\n      \"status\": \"ready\"\n    }\n  ]\n}"
            }
          ]
        },
        {
          "name": "Retrieve an order",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/orders/{{order_id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "orders",
                "{{order_id}}"
              ]
            },
            "description": "One order by id."
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/orders/{{order_id}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "orders",
                    "{{order_id}}"
                  ]
                },
                "description": "One order by id."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "120"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "117"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"id\": \"ord_test_3f9a1c07b2e4\",\n  \"status\": \"completed\",\n  \"mode\": \"test\",\n  \"package_id\": \"pkg_10482\",\n  \"quantity\": 1,\n  \"items\": [\n    {\n      \"package_id\": \"pkg_10482\",\n      \"quantity\": 1\n    }\n  ],\n  \"customer_ref\": \"booking-78231\",\n  \"total\": {\n    \"amount\": \"249.00\",\n    \"currency\": \"INR\"\n  },\n  \"refunded\": {\n    \"amount\": \"0.00\",\n    \"currency\": \"INR\"\n  },\n  \"balance_after\": {\n    \"amount\": \"999751.00\",\n    \"currency\": \"INR\"\n  },\n  \"created\": \"2026-10-02T09:14:07Z\",\n  \"esims\": [\n    {\n      \"iccid\": \"8999999000000012345\",\n      \"status\": \"ready\"\n    }\n  ]\n}"
            }
          ]
        },
        {
          "name": "List orders",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/orders",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "orders"
              ],
              "query": [
                {
                  "key": "status",
                  "value": "completed",
                  "description": "processing | completed | partially_completed | failed | cancelled",
                  "disabled": true
                },
                {
                  "key": "customer_ref",
                  "value": "booking-78231",
                  "description": "Your own reference",
                  "disabled": true
                },
                {
                  "key": "created_after",
                  "value": "2026-10-01T00:00:00Z",
                  "description": "ISO 8601 UTC",
                  "disabled": true
                },
                {
                  "key": "created_before",
                  "value": "2026-10-31T23:59:59Z",
                  "description": "ISO 8601 UTC",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "25",
                  "description": "1-100, default 25",
                  "disabled": true
                },
                {
                  "key": "cursor",
                  "value": "",
                  "description": "next_cursor of the previous page",
                  "disabled": true
                }
              ]
            },
            "description": "Your orders, newest first."
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/orders",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "orders"
                  ],
                  "query": [
                    {
                      "key": "status",
                      "value": "completed",
                      "description": "processing | completed | partially_completed | failed | cancelled",
                      "disabled": true
                    },
                    {
                      "key": "customer_ref",
                      "value": "booking-78231",
                      "description": "Your own reference",
                      "disabled": true
                    },
                    {
                      "key": "created_after",
                      "value": "2026-10-01T00:00:00Z",
                      "description": "ISO 8601 UTC",
                      "disabled": true
                    },
                    {
                      "key": "created_before",
                      "value": "2026-10-31T23:59:59Z",
                      "description": "ISO 8601 UTC",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "25",
                      "description": "1-100, default 25",
                      "disabled": true
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "description": "next_cursor of the previous page",
                      "disabled": true
                    }
                  ]
                },
                "description": "Your orders, newest first."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "120"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "117"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ord_test_3f9a1c07b2e4\",\n      \"status\": \"completed\",\n      \"mode\": \"test\",\n      \"package_id\": \"pkg_10482\",\n      \"quantity\": 1,\n      \"items\": [\n        {\n          \"package_id\": \"pkg_10482\",\n          \"quantity\": 1\n        }\n      ],\n      \"customer_ref\": \"booking-78231\",\n      \"total\": {\n        \"amount\": \"249.00\",\n        \"currency\": \"INR\"\n      },\n      \"refunded\": {\n        \"amount\": \"0.00\",\n        \"currency\": \"INR\"\n      },\n      \"balance_after\": {\n        \"amount\": \"999751.00\",\n        \"currency\": \"INR\"\n      },\n      \"created\": \"2026-10-02T09:14:07Z\",\n      \"esims\": [\n        {\n          \"iccid\": \"8999999000000012345\",\n          \"status\": \"ready\"\n        }\n      ]\n    }\n  ],\n  \"has_more\": false,\n  \"next_cursor\": null\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "eSIMs",
      "item": [
        {
          "name": "List eSIMs",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/esims",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "esims"
              ],
              "query": [
                {
                  "key": "status",
                  "value": "active",
                  "description": "ready | active | depleted | expired | cancelled",
                  "disabled": true
                },
                {
                  "key": "customer_ref",
                  "value": "booking-78231",
                  "description": "Your own reference",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "25",
                  "description": "1-100, default 25",
                  "disabled": true
                },
                {
                  "key": "cursor",
                  "value": "",
                  "description": "next_cursor of the previous page",
                  "disabled": true
                }
              ]
            },
            "description": "Your eSIMs in summary form (no activation block)."
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/esims",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "esims"
                  ],
                  "query": [
                    {
                      "key": "status",
                      "value": "active",
                      "description": "ready | active | depleted | expired | cancelled",
                      "disabled": true
                    },
                    {
                      "key": "customer_ref",
                      "value": "booking-78231",
                      "description": "Your own reference",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "25",
                      "description": "1-100, default 25",
                      "disabled": true
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "description": "next_cursor of the previous page",
                      "disabled": true
                    }
                  ]
                },
                "description": "Your eSIMs in summary form (no activation block)."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "120"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "117"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"data\": [\n    {\n      \"iccid\": \"8999999000000012345\",\n      \"status\": \"ready\",\n      \"mode\": \"test\",\n      \"order_id\": \"ord_test_3f9a1c07b2e4\",\n      \"customer_ref\": \"booking-78231\",\n      \"package\": {\n        \"id\": \"pkg_10482\",\n        \"name\": \"Thailand 5 GB 15 Days\"\n      },\n      \"qr_code_url\": \"https://api.example.com/partner/api/v1/qr/ODk5OTk5OTAwMDAwMDAxMjM0NQ.3f9a1c2b5e8d7c6b4a39281706f5e4d3c2b1a098.png\",\n      \"install_links\": {\n        \"ios\": \"https://esimsetup.apple.com/esim_qrcode_provisioning?carddata=LPA%3A1%24sandbox.esimify.in%24TEST-7K2M9QX4B1TZ\",\n        \"android\": \"https://esimsetup.android.com/esim_qrcode_provisioning?carddata=LPA%3A1%24sandbox.esimify.in%24TEST-7K2M9QX4B1TZ\"\n      },\n      \"data\": {\n        \"unlimited\": false,\n        \"total_mb\": 5120,\n        \"used_mb\": 0,\n        \"remaining_mb\": 5120\n      },\n      \"validity_days\": 15,\n      \"activated_at\": null,\n      \"expires_at\": null,\n      \"created\": \"2026-10-02T09:14:07Z\"\n    }\n  ],\n  \"has_more\": false,\n  \"next_cursor\": null\n}"
            }
          ]
        },
        {
          "name": "Retrieve an eSIM",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/esims/{{iccid}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "esims",
                "{{iccid}}"
              ]
            },
            "description": "The full eSIM, including the activation block and install links."
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/esims/{{iccid}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "esims",
                    "{{iccid}}"
                  ]
                },
                "description": "The full eSIM, including the activation block and install links."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "120"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "117"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"iccid\": \"8999999000000012345\",\n  \"status\": \"ready\",\n  \"mode\": \"test\",\n  \"order_id\": \"ord_test_3f9a1c07b2e4\",\n  \"customer_ref\": \"booking-78231\",\n  \"package\": {\n    \"id\": \"pkg_10482\",\n    \"name\": \"Thailand 5 GB 15 Days\"\n  },\n  \"qr_code_url\": \"https://api.example.com/partner/api/v1/qr/ODk5OTk5OTAwMDAwMDAxMjM0NQ.3f9a1c2b5e8d7c6b4a39281706f5e4d3c2b1a098.png\",\n  \"activation\": {\n    \"lpa\": \"LPA:1$sandbox.esimify.in$TEST-7K2M9QX4B1TZ\",\n    \"smdp_address\": \"sandbox.esimify.in\",\n    \"activation_code\": \"TEST-7K2M9QX4B1TZ\"\n  },\n  \"install_links\": {\n    \"ios\": \"https://esimsetup.apple.com/esim_qrcode_provisioning?carddata=LPA%3A1%24sandbox.esimify.in%24TEST-7K2M9QX4B1TZ\",\n    \"android\": \"https://esimsetup.android.com/esim_qrcode_provisioning?carddata=LPA%3A1%24sandbox.esimify.in%24TEST-7K2M9QX4B1TZ\"\n  },\n  \"data\": {\n    \"unlimited\": false,\n    \"total_mb\": 5120,\n    \"used_mb\": 0,\n    \"remaining_mb\": 5120\n  },\n  \"validity_days\": 15,\n  \"activated_at\": null,\n  \"expires_at\": null,\n  \"created\": \"2026-10-02T09:14:07Z\"\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "var body = pm.response.json();",
                  "var m = /\\/v1\\/qr\\/(.+)\\.png$/.exec(body.qr_code_url || \"\"); if (m) { pm.collectionVariables.set(\"qr_token\", m[1]); }"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Top-ups",
      "item": [
        {
          "name": "List top-up packages",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/esims/{{iccid}}/topup-packages",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "esims",
                "{{iccid}}",
                "topup-packages"
              ]
            },
            "description": "Packages that can be added to this eSIM."
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/esims/{{iccid}}/topup-packages",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "esims",
                    "{{iccid}}",
                    "topup-packages"
                  ]
                },
                "description": "Packages that can be added to this eSIM."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "120"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "117"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"pkg_10483\",\n      \"name\": \"Thailand 3 GB 7 Days\",\n      \"type\": \"country\",\n      \"country\": \"TH\",\n      \"countries\": [\n        \"TH\"\n      ],\n      \"data_mb\": 3072,\n      \"unlimited\": false,\n      \"validity_days\": 7,\n      \"price\": {\n        \"amount\": \"159.00\",\n        \"currency\": \"INR\"\n      },\n      \"retail_price\": {\n        \"amount\": \"229.00\",\n        \"currency\": \"INR\"\n      },\n      \"topup\": true\n    }\n  ]\n}"
            }
          ]
        },
        {
          "name": "Top up an eSIM",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/esims/{{iccid}}/topups",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "esims",
                "{{iccid}}",
                "topups"
              ]
            },
            "description": "Adds a top-up package to the eSIM and debits your balance. 201 for a new top-up. Check `status`: a top-up can come back as `failed` (nothing added, amount returned).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"package_id\": \"{{topup_package_id}}\",\n  \"customer_ref\": \"booking-78231\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "201 Created",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/esims/{{iccid}}/topups",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "esims",
                    "{{iccid}}",
                    "topups"
                  ]
                },
                "description": "Adds a top-up package to the eSIM and debits your balance.",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"package_id\": \"{{topup_package_id}}\",\n  \"customer_ref\": \"booking-78231\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "30"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "29"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"id\": \"top_test_5b1e9c2a7d40\",\n  \"status\": \"completed\",\n  \"iccid\": \"8999999000000012345\",\n  \"package_id\": \"pkg_10483\",\n  \"customer_ref\": null,\n  \"total\": {\n    \"amount\": \"159.00\",\n    \"currency\": \"INR\"\n  },\n  \"balance_after\": {\n    \"amount\": \"999592.00\",\n    \"currency\": \"INR\"\n  },\n  \"created\": \"2026-10-02T09:31:55Z\"\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "var body = pm.response.json();",
                  "if (body && body.id) { pm.collectionVariables.set(\"topup_id\", body.id); }"
                ]
              }
            }
          ]
        },
        {
          "name": "List top-ups of an eSIM",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/esims/{{iccid}}/topups",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "esims",
                "{{iccid}}",
                "topups"
              ]
            },
            "description": "Every top-up of one eSIM, newest first, whatever its status. Use it to reconcile a top-up whose response you lost."
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/esims/{{iccid}}/topups",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "esims",
                    "{{iccid}}",
                    "topups"
                  ]
                },
                "description": "Every top-up of one eSIM, newest first, whatever its status. Use it to reconcile a top-up whose response you lost."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "120"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "117"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"top_test_5b1e9c2a7d40\",\n      \"status\": \"completed\",\n      \"iccid\": \"8999999000000012345\",\n      \"package_id\": \"pkg_10483\",\n      \"customer_ref\": null,\n      \"total\": {\n        \"amount\": \"159.00\",\n        \"currency\": \"INR\"\n      },\n      \"balance_after\": {\n        \"amount\": \"999592.00\",\n        \"currency\": \"INR\"\n      },\n      \"created\": \"2026-10-02T09:31:55Z\"\n    }\n  ],\n  \"has_more\": false,\n  \"next_cursor\": null\n}"
            }
          ]
        },
        {
          "name": "Retrieve a top-up",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/topups/{{topup_id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "topups",
                "{{topup_id}}"
              ]
            },
            "description": "One top-up by id. `topup_id` is set by the top-up requests."
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/topups/{{topup_id}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "topups",
                    "{{topup_id}}"
                  ]
                },
                "description": "One top-up by id. `topup_id` is set by the top-up requests."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "120"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "117"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"id\": \"top_test_5b1e9c2a7d40\",\n  \"status\": \"completed\",\n  \"iccid\": \"8999999000000012345\",\n  \"package_id\": \"pkg_10483\",\n  \"customer_ref\": null,\n  \"total\": {\n    \"amount\": \"159.00\",\n    \"currency\": \"INR\"\n  },\n  \"balance_after\": {\n    \"amount\": \"999592.00\",\n    \"currency\": \"INR\"\n  },\n  \"created\": \"2026-10-02T09:31:55Z\"\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "Events",
      "item": [
        {
          "name": "List events",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/events",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "events"
              ],
              "query": [
                {
                  "key": "type",
                  "value": "order.completed",
                  "description": "Only events of this type",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "25",
                  "description": "1-100, default 25",
                  "disabled": true
                },
                {
                  "key": "cursor",
                  "value": "",
                  "description": "next_cursor of the previous page",
                  "disabled": true
                }
              ]
            },
            "description": "Events from the last 30 days, for reconciliation."
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/events",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "events"
                  ],
                  "query": [
                    {
                      "key": "type",
                      "value": "order.completed",
                      "description": "Only events of this type",
                      "disabled": true
                    },
                    {
                      "key": "limit",
                      "value": "25",
                      "description": "1-100, default 25",
                      "disabled": true
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "description": "next_cursor of the previous page",
                      "disabled": true
                    }
                  ]
                },
                "description": "Events from the last 30 days, for reconciliation."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "120"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "117"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"evt_0a1b2c3d4e5f60718293a4b5\",\n      \"type\": \"esim.usage_80\",\n      \"mode\": \"test\",\n      \"created\": \"2026-10-02T09:40:12Z\",\n      \"sequence\": 43,\n      \"data\": {\n        \"iccid\": \"8999999000000012345\",\n        \"status\": \"active\",\n        \"order_id\": \"ord_test_3f9a1c07b2e4\",\n        \"customer_ref\": \"booking-78231\",\n        \"data\": {\n          \"unlimited\": false,\n          \"total_mb\": 5120,\n          \"used_mb\": 4198,\n          \"remaining_mb\": 922\n        },\n        \"expires_at\": \"2026-10-17T09:20:41Z\"\n      }\n    },\n    {\n      \"id\": \"evt_5c1d9e7a3b2f4c6d8e0a1b2c\",\n      \"type\": \"order.completed\",\n      \"mode\": \"test\",\n      \"created\": \"2026-10-02T09:14:07Z\",\n      \"sequence\": 44,\n      \"data\": {\n        \"id\": \"ord_test_3f9a1c07b2e4\",\n        \"status\": \"completed\",\n        \"mode\": \"test\",\n        \"package_id\": \"pkg_10482\",\n        \"quantity\": 1,\n        \"items\": [\n          {\n            \"package_id\": \"pkg_10482\",\n            \"quantity\": 1\n          }\n        ],\n        \"customer_ref\": \"booking-78231\",\n        \"total\": {\n          \"amount\": \"249.00\",\n          \"currency\": \"INR\"\n        },\n        \"refunded\": {\n          \"amount\": \"0.00\",\n          \"currency\": \"INR\"\n        },\n        \"balance_after\": {\n          \"amount\": \"999751.00\",\n          \"currency\": \"INR\"\n        },\n        \"created\": \"2026-10-02T09:14:07Z\",\n        \"esims\": [\n          {\n            \"iccid\": \"8999999000000012345\",\n            \"status\": \"ready\"\n          }\n        ]\n      }\n    }\n  ],\n  \"has_more\": false,\n  \"next_cursor\": null\n}"
            }
          ]
        },
        {
          "name": "Retrieve an event",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/events/{{event_id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "events",
                "{{event_id}}"
              ]
            },
            "description": "One event by id."
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/events/{{event_id}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "events",
                    "{{event_id}}"
                  ]
                },
                "description": "One event by id."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "120"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "117"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"id\": \"evt_5c1d9e7a3b2f4c6d8e0a1b2c\",\n  \"type\": \"order.completed\",\n  \"mode\": \"test\",\n  \"created\": \"2026-10-02T09:14:07Z\",\n  \"sequence\": 45,\n  \"data\": {\n    \"id\": \"ord_test_3f9a1c07b2e4\",\n    \"status\": \"completed\",\n    \"mode\": \"test\",\n    \"package_id\": \"pkg_10482\",\n    \"quantity\": 1,\n    \"items\": [\n      {\n        \"package_id\": \"pkg_10482\",\n        \"quantity\": 1\n      }\n    ],\n    \"customer_ref\": \"booking-78231\",\n    \"total\": {\n      \"amount\": \"249.00\",\n      \"currency\": \"INR\"\n    },\n    \"refunded\": {\n      \"amount\": \"0.00\",\n      \"currency\": \"INR\"\n    },\n    \"balance_after\": {\n      \"amount\": \"999751.00\",\n      \"currency\": \"INR\"\n    },\n    \"created\": \"2026-10-02T09:14:07Z\",\n    \"esims\": [\n      {\n        \"iccid\": \"8999999000000012345\",\n        \"status\": \"ready\"\n      }\n    ]\n  }\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "Sandbox",
      "description": "Test keys only. Run the four Simulate requests in this order (activated → usage_80 → usage_100 → expired) on an eSIM from the walkthrough.",
      "item": [
        {
          "name": "Simulate: activated",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/sandbox/esims/{{iccid}}/simulate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "sandbox",
                "esims",
                "{{iccid}}",
                "simulate"
              ]
            },
            "description": "Test keys only. `event` is one of activated, usage_80, usage_100, expired, sent in that order: an eSIM must be activated before its usage or expiry can be simulated (otherwise 409 `invalid_state`). Updates the sandbox eSIM and sends the matching webhook to your test-mode endpoints. An event that changes nothing returns the eSIM unchanged and sends no webhook. A live key gets 404.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"event\": \"activated\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/sandbox/esims/{{iccid}}/simulate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "sandbox",
                    "esims",
                    "{{iccid}}",
                    "simulate"
                  ]
                },
                "description": "Test keys only. `event` is one of activated, usage_80, usage_100, expired, sent in that order: an eSIM must be activated before its usage or expiry can be simulated (otherwise 409 `invalid_state`). Updates the sandbox eSIM and sends the matching webhook to your test-mode endpoints. An event that changes nothing returns the eSIM unchanged and sends no webhook. A live key gets 404.",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"activated\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "30"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "29"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"iccid\": \"8999999000000012345\",\n  \"status\": \"active\",\n  \"mode\": \"test\",\n  \"order_id\": \"ord_test_3f9a1c07b2e4\",\n  \"customer_ref\": \"booking-78231\",\n  \"package\": {\n    \"id\": \"pkg_10482\",\n    \"name\": \"Thailand 5 GB 15 Days\"\n  },\n  \"qr_code_url\": \"https://api.example.com/partner/api/v1/qr/ODk5OTk5OTAwMDAwMDAxMjM0NQ.3f9a1c2b5e8d7c6b4a39281706f5e4d3c2b1a098.png\",\n  \"activation\": {\n    \"lpa\": \"LPA:1$sandbox.esimify.in$TEST-7K2M9QX4B1TZ\",\n    \"smdp_address\": \"sandbox.esimify.in\",\n    \"activation_code\": \"TEST-7K2M9QX4B1TZ\"\n  },\n  \"install_links\": {\n    \"ios\": \"https://esimsetup.apple.com/esim_qrcode_provisioning?carddata=LPA%3A1%24sandbox.esimify.in%24TEST-7K2M9QX4B1TZ\",\n    \"android\": \"https://esimsetup.android.com/esim_qrcode_provisioning?carddata=LPA%3A1%24sandbox.esimify.in%24TEST-7K2M9QX4B1TZ\"\n  },\n  \"data\": {\n    \"unlimited\": false,\n    \"total_mb\": 5120,\n    \"used_mb\": 0,\n    \"remaining_mb\": 5120\n  },\n  \"validity_days\": 15,\n  \"activated_at\": \"2026-10-02T09:20:41Z\",\n  \"expires_at\": \"2026-10-17T09:20:41Z\",\n  \"created\": \"2026-10-02T09:14:07Z\"\n}"
            }
          ]
        },
        {
          "name": "Simulate: usage_80",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/sandbox/esims/{{iccid}}/simulate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "sandbox",
                "esims",
                "{{iccid}}",
                "simulate"
              ]
            },
            "description": "Test keys only. `event` is one of activated, usage_80, usage_100, expired, sent in that order: an eSIM must be activated before its usage or expiry can be simulated (otherwise 409 `invalid_state`). Updates the sandbox eSIM and sends the matching webhook to your test-mode endpoints. An event that changes nothing returns the eSIM unchanged and sends no webhook. A live key gets 404.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"event\": \"usage_80\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/sandbox/esims/{{iccid}}/simulate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "sandbox",
                    "esims",
                    "{{iccid}}",
                    "simulate"
                  ]
                },
                "description": "Test keys only. `event` is one of activated, usage_80, usage_100, expired, sent in that order: an eSIM must be activated before its usage or expiry can be simulated (otherwise 409 `invalid_state`). Updates the sandbox eSIM and sends the matching webhook to your test-mode endpoints. An event that changes nothing returns the eSIM unchanged and sends no webhook. A live key gets 404.",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"usage_80\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "30"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "29"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"iccid\": \"8999999000000012345\",\n  \"status\": \"active\",\n  \"mode\": \"test\",\n  \"order_id\": \"ord_test_3f9a1c07b2e4\",\n  \"customer_ref\": \"booking-78231\",\n  \"package\": {\n    \"id\": \"pkg_10482\",\n    \"name\": \"Thailand 5 GB 15 Days\"\n  },\n  \"qr_code_url\": \"https://api.example.com/partner/api/v1/qr/ODk5OTk5OTAwMDAwMDAxMjM0NQ.3f9a1c2b5e8d7c6b4a39281706f5e4d3c2b1a098.png\",\n  \"activation\": {\n    \"lpa\": \"LPA:1$sandbox.esimify.in$TEST-7K2M9QX4B1TZ\",\n    \"smdp_address\": \"sandbox.esimify.in\",\n    \"activation_code\": \"TEST-7K2M9QX4B1TZ\"\n  },\n  \"install_links\": {\n    \"ios\": \"https://esimsetup.apple.com/esim_qrcode_provisioning?carddata=LPA%3A1%24sandbox.esimify.in%24TEST-7K2M9QX4B1TZ\",\n    \"android\": \"https://esimsetup.android.com/esim_qrcode_provisioning?carddata=LPA%3A1%24sandbox.esimify.in%24TEST-7K2M9QX4B1TZ\"\n  },\n  \"data\": {\n    \"unlimited\": false,\n    \"total_mb\": 5120,\n    \"used_mb\": 4096,\n    \"remaining_mb\": 1024\n  },\n  \"validity_days\": 15,\n  \"activated_at\": \"2026-10-02T09:20:41Z\",\n  \"expires_at\": \"2026-10-17T09:20:41Z\",\n  \"created\": \"2026-10-02T09:14:07Z\"\n}"
            }
          ]
        },
        {
          "name": "Simulate: usage_100",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/sandbox/esims/{{iccid}}/simulate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "sandbox",
                "esims",
                "{{iccid}}",
                "simulate"
              ]
            },
            "description": "Test keys only. `event` is one of activated, usage_80, usage_100, expired, sent in that order: an eSIM must be activated before its usage or expiry can be simulated (otherwise 409 `invalid_state`). Updates the sandbox eSIM and sends the matching webhook to your test-mode endpoints. An event that changes nothing returns the eSIM unchanged and sends no webhook. A live key gets 404.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"event\": \"usage_100\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/sandbox/esims/{{iccid}}/simulate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "sandbox",
                    "esims",
                    "{{iccid}}",
                    "simulate"
                  ]
                },
                "description": "Test keys only. `event` is one of activated, usage_80, usage_100, expired, sent in that order: an eSIM must be activated before its usage or expiry can be simulated (otherwise 409 `invalid_state`). Updates the sandbox eSIM and sends the matching webhook to your test-mode endpoints. An event that changes nothing returns the eSIM unchanged and sends no webhook. A live key gets 404.",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"usage_100\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "30"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "29"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"iccid\": \"8999999000000012345\",\n  \"status\": \"depleted\",\n  \"mode\": \"test\",\n  \"order_id\": \"ord_test_3f9a1c07b2e4\",\n  \"customer_ref\": \"booking-78231\",\n  \"package\": {\n    \"id\": \"pkg_10482\",\n    \"name\": \"Thailand 5 GB 15 Days\"\n  },\n  \"qr_code_url\": \"https://api.example.com/partner/api/v1/qr/ODk5OTk5OTAwMDAwMDAxMjM0NQ.3f9a1c2b5e8d7c6b4a39281706f5e4d3c2b1a098.png\",\n  \"activation\": {\n    \"lpa\": \"LPA:1$sandbox.esimify.in$TEST-7K2M9QX4B1TZ\",\n    \"smdp_address\": \"sandbox.esimify.in\",\n    \"activation_code\": \"TEST-7K2M9QX4B1TZ\"\n  },\n  \"install_links\": {\n    \"ios\": \"https://esimsetup.apple.com/esim_qrcode_provisioning?carddata=LPA%3A1%24sandbox.esimify.in%24TEST-7K2M9QX4B1TZ\",\n    \"android\": \"https://esimsetup.android.com/esim_qrcode_provisioning?carddata=LPA%3A1%24sandbox.esimify.in%24TEST-7K2M9QX4B1TZ\"\n  },\n  \"data\": {\n    \"unlimited\": false,\n    \"total_mb\": 5120,\n    \"used_mb\": 5120,\n    \"remaining_mb\": 0\n  },\n  \"validity_days\": 15,\n  \"activated_at\": \"2026-10-02T09:20:41Z\",\n  \"expires_at\": \"2026-10-17T09:20:41Z\",\n  \"created\": \"2026-10-02T09:14:07Z\"\n}"
            }
          ]
        },
        {
          "name": "Simulate: expired",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/sandbox/esims/{{iccid}}/simulate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "sandbox",
                "esims",
                "{{iccid}}",
                "simulate"
              ]
            },
            "description": "Test keys only. `event` is one of activated, usage_80, usage_100, expired, sent in that order: an eSIM must be activated before its usage or expiry can be simulated (otherwise 409 `invalid_state`). Updates the sandbox eSIM and sends the matching webhook to your test-mode endpoints. An event that changes nothing returns the eSIM unchanged and sends no webhook. A live key gets 404.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"event\": \"expired\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "200 OK",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/sandbox/esims/{{iccid}}/simulate",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "sandbox",
                    "esims",
                    "{{iccid}}",
                    "simulate"
                  ]
                },
                "description": "Test keys only. `event` is one of activated, usage_80, usage_100, expired, sent in that order: an eSIM must be activated before its usage or expiry can be simulated (otherwise 409 `invalid_state`). Updates the sandbox eSIM and sends the matching webhook to your test-mode endpoints. An event that changes nothing returns the eSIM unchanged and sends no webhook. A live key gets 404.",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"expired\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "30"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "29"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"iccid\": \"8999999000000012345\",\n  \"status\": \"expired\",\n  \"mode\": \"test\",\n  \"order_id\": \"ord_test_3f9a1c07b2e4\",\n  \"customer_ref\": \"booking-78231\",\n  \"package\": {\n    \"id\": \"pkg_10482\",\n    \"name\": \"Thailand 5 GB 15 Days\"\n  },\n  \"qr_code_url\": \"https://api.example.com/partner/api/v1/qr/ODk5OTk5OTAwMDAwMDAxMjM0NQ.3f9a1c2b5e8d7c6b4a39281706f5e4d3c2b1a098.png\",\n  \"activation\": {\n    \"lpa\": \"LPA:1$sandbox.esimify.in$TEST-7K2M9QX4B1TZ\",\n    \"smdp_address\": \"sandbox.esimify.in\",\n    \"activation_code\": \"TEST-7K2M9QX4B1TZ\"\n  },\n  \"install_links\": {\n    \"ios\": \"https://esimsetup.apple.com/esim_qrcode_provisioning?carddata=LPA%3A1%24sandbox.esimify.in%24TEST-7K2M9QX4B1TZ\",\n    \"android\": \"https://esimsetup.android.com/esim_qrcode_provisioning?carddata=LPA%3A1%24sandbox.esimify.in%24TEST-7K2M9QX4B1TZ\"\n  },\n  \"data\": {\n    \"unlimited\": false,\n    \"total_mb\": 5120,\n    \"used_mb\": 5120,\n    \"remaining_mb\": 0\n  },\n  \"validity_days\": 15,\n  \"activated_at\": \"2026-10-02T09:20:41Z\",\n  \"expires_at\": \"2026-10-05T14:02:11Z\",\n  \"created\": \"2026-10-02T09:14:07Z\"\n}"
            }
          ]
        },
        {
          "name": "Trigger: insufficient balance (402)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/orders",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "orders"
              ]
            },
            "description": "Buys eSIMs of one package. 201 for a new order, 200 with `Idempotent-Replayed: true` for a replay.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"package_id\": \"{{package_id}}\",\n  \"quantity\": 1,\n  \"customer_ref\": \"test_insufficient_balance-001\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "402 Payment Required",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/orders",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "orders"
                  ]
                },
                "description": "Buys eSIMs of one package. 201 for a new order, 200 with `Idempotent-Replayed: true` for a replay.",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"package_id\": \"{{package_id}}\",\n  \"quantity\": 1,\n  \"customer_ref\": \"test_insufficient_balance-001\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Payment Required",
              "code": 402,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "30"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "29"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"error\": {\n    \"code\": \"insufficient_balance\",\n    \"message\": \"Your balance is too low for this purchase.\",\n    \"request_id\": \"req_8f3a1c9d2b7e4a60\"\n  }\n}"
            }
          ]
        },
        {
          "name": "Trigger: order failed",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/orders",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "orders"
              ]
            },
            "description": "Buys eSIMs of one package. 201 for a new order, 200 with `Idempotent-Replayed: true` for a replay.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"package_id\": \"{{package_id}}\",\n  \"quantity\": 1,\n  \"customer_ref\": \"test_order_failed-001\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "201 Created",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/orders",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "orders"
                  ]
                },
                "description": "Buys eSIMs of one package. 201 for a new order, 200 with `Idempotent-Replayed: true` for a replay.",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"package_id\": \"{{package_id}}\",\n  \"quantity\": 1,\n  \"customer_ref\": \"test_order_failed-001\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "30"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "29"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"id\": \"ord_test_9d8c7b6a5f4e\",\n  \"status\": \"failed\",\n  \"mode\": \"test\",\n  \"package_id\": \"pkg_10482\",\n  \"quantity\": 1,\n  \"items\": [\n    {\n      \"package_id\": \"pkg_10482\",\n      \"quantity\": 1\n    }\n  ],\n  \"customer_ref\": \"test_order_failed-001\",\n  \"total\": {\n    \"amount\": \"249.00\",\n    \"currency\": \"INR\"\n  },\n  \"refunded\": {\n    \"amount\": \"249.00\",\n    \"currency\": \"INR\"\n  },\n  \"balance_after\": {\n    \"amount\": \"1000000.00\",\n    \"currency\": \"INR\"\n  },\n  \"created\": \"2026-10-02T09:14:07Z\",\n  \"esims\": []\n}"
            }
          ]
        },
        {
          "name": "Trigger: processing, completes 10 to 25 s later",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/orders",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "orders"
              ]
            },
            "description": "Buys eSIMs of one package. 201 for a new order, 200 with `Idempotent-Replayed: true` for a replay.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"package_id\": \"{{package_id}}\",\n  \"quantity\": 1,\n  \"customer_ref\": \"test_processing-001\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "201 Created",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/orders",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "orders"
                  ]
                },
                "description": "Buys eSIMs of one package. 201 for a new order, 200 with `Idempotent-Replayed: true` for a replay.",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"package_id\": \"{{package_id}}\",\n  \"quantity\": 1,\n  \"customer_ref\": \"test_processing-001\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "30"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "29"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"id\": \"ord_test_a41b7c9d0e2f\",\n  \"status\": \"processing\",\n  \"mode\": \"test\",\n  \"package_id\": \"pkg_10482\",\n  \"quantity\": 1,\n  \"items\": [\n    {\n      \"package_id\": \"pkg_10482\",\n      \"quantity\": 1\n    }\n  ],\n  \"customer_ref\": \"test_processing-001\",\n  \"total\": {\n    \"amount\": \"249.00\",\n    \"currency\": \"INR\"\n  },\n  \"refunded\": {\n    \"amount\": \"0.00\",\n    \"currency\": \"INR\"\n  },\n  \"balance_after\": {\n    \"amount\": \"999751.00\",\n    \"currency\": \"INR\"\n  },\n  \"created\": \"2026-10-02T09:14:07Z\",\n  \"esims\": []\n}"
            }
          ]
        },
        {
          "name": "Trigger: supplier unavailable (503)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/orders",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "orders"
              ]
            },
            "description": "Buys eSIMs of one package. 201 for a new order, 200 with `Idempotent-Replayed: true` for a replay.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"package_id\": \"{{package_id}}\",\n  \"quantity\": 1,\n  \"customer_ref\": \"test_supplier_down-001\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "503 Service Unavailable",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "Required on every POST. A new value per logical operation; reuse it only to retry the same request."
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/orders",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "orders"
                  ]
                },
                "description": "Buys eSIMs of one package. 201 for a new order, 200 with `Idempotent-Replayed: true` for a replay.",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"package_id\": \"{{package_id}}\",\n  \"quantity\": 1,\n  \"customer_ref\": \"test_supplier_down-001\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Service Unavailable",
              "code": 503,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json; charset=utf-8"
                },
                {
                  "key": "X-Request-Id",
                  "value": "req_8f3a1c9d2b7e4a60"
                },
                {
                  "key": "X-RateLimit-Limit",
                  "value": "30"
                },
                {
                  "key": "X-RateLimit-Remaining",
                  "value": "29"
                },
                {
                  "key": "X-RateLimit-Reset",
                  "value": "1790932500"
                }
              ],
              "cookie": [],
              "body": "{\n  \"error\": {\n    \"code\": \"supplier_unavailable\",\n    \"message\": \"The eSIM could not be issued right now. Please retry shortly.\",\n    \"request_id\": \"req_8f3a1c9d2b7e4a60\"\n  }\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "QR code",
      "item": [
        {
          "name": "QR code image (public)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "image/png"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/qr/{{qr_token}}.png",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "qr",
                "{{qr_token}}.png"
              ]
            },
            "description": "PNG of the eSIM's LPA string. Public: no API key. In practice open the eSIM's `qr_code_url` as given; `qr_token` is the token part of that URL and is set by \"5. Get eSIM\" or \"Retrieve an eSIM\". The URL does not expire.",
            "auth": {
              "type": "noauth"
            }
          },
          "response": [],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test(\"status is 200\", function () { pm.expect(pm.response.code).to.be.oneOf([200]); });",
                  "pm.test(\"it is a PNG\", function () { pm.expect(pm.response.headers.get(\"Content-Type\")).to.eql(\"image/png\"); });"
                ]
              }
            }
          ]
        }
      ]
    }
  ]
}
