{
  "info": {
    "name": "Melostore H2H Public API",
    "description": "Public partner API. Two authentication headers are required together unless an operation explicitly has security=[]. Fictional order creation examples set sandbox_mode=true; omitted/null mode uses the account setting. Enter the Webhook URL in the dashboard. Rotate Keys generates the API Key, Secret Key, and Webhook Secret together and shows them once; later rotations replace all three immediately. Update API credentials and the webhook receiver secret after rotation.\nImport the environment. Set credentials and active SKUs. Keep buyer references for retries. API invoice is available only for final live bulk orders.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "item": [
    {
      "name": "profile",
      "item": [
        {
          "name": "Profile",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{api_key}}"
              },
              {
                "key": "X-Secret-Key",
                "value": "{{secret_key}}"
              }
            ],
            "description": "Authenticated profile and tier. MC/IDR is the wallet currency; USD is a display estimate.\n\nProfil dan tier terautentikasi. Saldo tetap MC/IDR; USD hanya perkiraan.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
            "url": {
              "raw": "{{base_url}}/api/v1/h2h/profile",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "h2h",
                "profile"
              ],
              "query": []
            }
          },
          "response": [
            {
              "name": "200 example",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Authenticated profile and tier. MC/IDR is the wallet currency; USD is a display estimate.\n\nProfil dan tier terautentikasi. Saldo tetap MC/IDR; USD hanya perkiraan.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/profile",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "profile"
                  ],
                  "query": []
                }
              },
              "status": "Request succeeded.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"name\": \"Example Partner\",\n    \"email\": \"partner@example.com\",\n    \"tier\": {\n      \"name\": \"Basic\",\n      \"code\": \"basic\",\n      \"rate_limit\": 30,\n      \"max_ips\": 3\n    },\n    \"h2h_balance\": 100000,\n    \"is_sandbox_mode\": true,\n    \"total_volume_30_days\": 5000,\n    \"webhook_url\": \"https://partner.example.com/h2h-callback\",\n    \"created_at\": \"2026-10-02T03:00:00+00:00\",\n    \"usd_idr_rate\": 17000,\n    \"display_usd_idr_rate\": 17000,\n    \"display_rate_updated_at\": \"2026-10-02T03:00:00+00:00\"\n  }\n}"
            },
            {
              "name": "200 referenceFxUnavailable",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Authenticated profile and tier. MC/IDR is the wallet currency; USD is a display estimate.\n\nProfil dan tier terautentikasi. Saldo tetap MC/IDR; USD hanya perkiraan.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/profile",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "profile"
                  ],
                  "query": []
                }
              },
              "status": "Request succeeded.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"name\": \"Example Partner\",\n    \"email\": \"partner@example.com\",\n    \"tier\": {\n      \"name\": \"Basic\",\n      \"code\": \"basic\",\n      \"rate_limit\": 30,\n      \"max_ips\": 3\n    },\n    \"h2h_balance\": 100000,\n    \"is_sandbox_mode\": true,\n    \"total_volume_30_days\": 5000,\n    \"webhook_url\": \"https://partner.example.com/h2h-callback\",\n    \"created_at\": \"2026-10-02T03:00:00+00:00\",\n    \"usd_idr_rate\": 17000,\n    \"display_usd_idr_rate\": null,\n    \"display_rate_updated_at\": null\n  }\n}"
            },
            {
              "name": "401 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Authenticated profile and tier. MC/IDR is the wallet currency; USD is a display estimate.\n\nProfil dan tier terautentikasi. Saldo tetap MC/IDR; USD hanya perkiraan.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/profile",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "profile"
                  ],
                  "query": []
                }
              },
              "status": "Authentication missing/invalid",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"\n}"
            },
            {
              "name": "403 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Authenticated profile and tier. MC/IDR is the wallet currency; USD is a display estimate.\n\nProfil dan tier terautentikasi. Saldo tetap MC/IDR; USD hanya perkiraan.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/profile",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "profile"
                  ],
                  "query": []
                }
              },
              "status": "Account/IP forbidden",
              "code": 403,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Forbidden: H2H API access is not active for this account.\"\n}"
            },
            {
              "name": "429 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Authenticated profile and tier. MC/IDR is the wallet currency; USD is a display estimate.\n\nProfil dan tier terautentikasi. Saldo tetap MC/IDR; USD hanya perkiraan.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/profile",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "profile"
                  ],
                  "query": []
                }
              },
              "status": "Tier, catalogue or nickname limit exceeded",
              "code": 429,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Too Many Requests\"\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP status is documented', () => pm.expect(Object.keys({\"200\":{\"description\":\"Request succeeded.\",\"headers\":{\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"success\":{\"type\":\"boolean\",\"const\":true},\"data\":{\"$ref\":\"#/components/schemas/Profile\"}},\"required\":[\"success\",\"data\"]},\"examples\":{\"example\":{\"value\":{\"success\":true,\"data\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"name\":\"Example Partner\",\"email\":\"partner@example.com\",\"tier\":{\"name\":\"Basic\",\"code\":\"basic\",\"rate_limit\":30,\"max_ips\":3},\"h2h_balance\":100000,\"is_sandbox_mode\":true,\"total_volume_30_days\":5000,\"webhook_url\":\"https://partner.example.com/h2h-callback\",\"created_at\":\"2026-10-02T03:00:00+00:00\",\"usd_idr_rate\":17000,\"display_usd_idr_rate\":17000,\"display_rate_updated_at\":\"2026-10-02T03:00:00+00:00\"}},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"},\"referenceFxUnavailable\":{\"summary\":\"FX rate unavailable\",\"value\":{\"success\":true,\"data\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"name\":\"Example Partner\",\"email\":\"partner@example.com\",\"tier\":{\"name\":\"Basic\",\"code\":\"basic\",\"rate_limit\":30,\"max_ips\":3},\"h2h_balance\":100000,\"is_sandbox_mode\":true,\"total_volume_30_days\":5000,\"webhook_url\":\"https://partner.example.com/h2h-callback\",\"created_at\":\"2026-10-02T03:00:00+00:00\",\"usd_idr_rate\":17000,\"display_usd_idr_rate\":null,\"display_rate_updated_at\":null}},\"x-summary-id\":\"Kurs belum tersedia\"}}}},\"x-description-id\":\"Request berhasil.\"},\"401\":{\"description\":\"Authentication missing/invalid\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"403\":{\"description\":\"Account/IP forbidden\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Forbidden: H2H API access is not active for this account.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"429\":{\"description\":\"Tier, catalogue or nickname limit exceeded\",\"headers\":{\"Retry-After\":{\"description\":\"Seconds to wait before retrying a rate-limited request\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Too Many Requests\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}}})).to.include(String(pm.response.code)));",
                  "if (pm.response.code >= 200 && pm.response.code < 300) { const result = pm.response.json(); pm.test('Successful response', () => pm.expect(result.success).to.eql(true)); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Balance and FX",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{api_key}}"
              },
              {
                "key": "X-Secret-Key",
                "value": "{{secret_key}}"
              }
            ],
            "description": "Reference FX is separate from configured deposit conversion. Nullable USD estimate when reference FX is unavailable.\n\nKurs tampilan terpisah dari kurs deposit. Perkiraan USD null saat kurs belum tersedia.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
            "url": {
              "raw": "{{base_url}}/api/v1/h2h/profile/balance",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "h2h",
                "profile",
                "balance"
              ],
              "query": []
            }
          },
          "response": [
            {
              "name": "200 example",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Reference FX is separate from configured deposit conversion. Nullable USD estimate when reference FX is unavailable.\n\nKurs tampilan terpisah dari kurs deposit. Perkiraan USD null saat kurs belum tersedia.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/profile/balance",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "profile",
                    "balance"
                  ],
                  "query": []
                }
              },
              "status": "Request succeeded.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"h2h_balance\": 100000,\n    \"is_sandbox_mode\": true,\n    \"usd_idr_rate\": 17000,\n    \"display_usd_idr_rate\": 17000,\n    \"display_rate_updated_at\": \"2026-10-02T03:00:00+00:00\",\n    \"h2h_balance_usd\": 5.88\n  }\n}"
            },
            {
              "name": "200 referenceFxUnavailable",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Reference FX is separate from configured deposit conversion. Nullable USD estimate when reference FX is unavailable.\n\nKurs tampilan terpisah dari kurs deposit. Perkiraan USD null saat kurs belum tersedia.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/profile/balance",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "profile",
                    "balance"
                  ],
                  "query": []
                }
              },
              "status": "Request succeeded.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"h2h_balance\": 100000,\n    \"is_sandbox_mode\": true,\n    \"usd_idr_rate\": 17000,\n    \"display_usd_idr_rate\": null,\n    \"display_rate_updated_at\": null,\n    \"h2h_balance_usd\": null\n  }\n}"
            },
            {
              "name": "401 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Reference FX is separate from configured deposit conversion. Nullable USD estimate when reference FX is unavailable.\n\nKurs tampilan terpisah dari kurs deposit. Perkiraan USD null saat kurs belum tersedia.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/profile/balance",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "profile",
                    "balance"
                  ],
                  "query": []
                }
              },
              "status": "Authentication missing/invalid",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"\n}"
            },
            {
              "name": "403 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Reference FX is separate from configured deposit conversion. Nullable USD estimate when reference FX is unavailable.\n\nKurs tampilan terpisah dari kurs deposit. Perkiraan USD null saat kurs belum tersedia.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/profile/balance",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "profile",
                    "balance"
                  ],
                  "query": []
                }
              },
              "status": "Account/IP forbidden",
              "code": 403,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Forbidden: H2H API access is not active for this account.\"\n}"
            },
            {
              "name": "429 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Reference FX is separate from configured deposit conversion. Nullable USD estimate when reference FX is unavailable.\n\nKurs tampilan terpisah dari kurs deposit. Perkiraan USD null saat kurs belum tersedia.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/profile/balance",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "profile",
                    "balance"
                  ],
                  "query": []
                }
              },
              "status": "Tier, catalogue or nickname limit exceeded",
              "code": 429,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Too Many Requests\"\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP status is documented', () => pm.expect(Object.keys({\"200\":{\"description\":\"Request succeeded.\",\"headers\":{\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"success\":{\"type\":\"boolean\",\"const\":true},\"data\":{\"$ref\":\"#/components/schemas/Balance\"}},\"required\":[\"success\",\"data\"]},\"examples\":{\"example\":{\"value\":{\"success\":true,\"data\":{\"h2h_balance\":100000,\"is_sandbox_mode\":true,\"usd_idr_rate\":17000,\"display_usd_idr_rate\":17000,\"display_rate_updated_at\":\"2026-10-02T03:00:00+00:00\",\"h2h_balance_usd\":5.88}},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"},\"referenceFxUnavailable\":{\"summary\":\"FX rate unavailable\",\"value\":{\"success\":true,\"data\":{\"h2h_balance\":100000,\"is_sandbox_mode\":true,\"usd_idr_rate\":17000,\"display_usd_idr_rate\":null,\"display_rate_updated_at\":null,\"h2h_balance_usd\":null}},\"x-summary-id\":\"Kurs belum tersedia\"}}}},\"x-description-id\":\"Request berhasil.\"},\"401\":{\"description\":\"Authentication missing/invalid\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"403\":{\"description\":\"Account/IP forbidden\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Forbidden: H2H API access is not active for this account.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"429\":{\"description\":\"Tier, catalogue or nickname limit exceeded\",\"headers\":{\"Retry-After\":{\"description\":\"Seconds to wait before retrying a rate-limited request\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Too Many Requests\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}}})).to.include(String(pm.response.code)));",
                  "if (pm.response.code >= 200 && pm.response.code < 300) { const result = pm.response.json(); pm.test('Successful response', () => pm.expect(result.success).to.eql(true)); }"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "catalog",
      "item": [
        {
          "name": "Regular catalogue",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{api_key}}"
              },
              {
                "key": "X-Secret-Key",
                "value": "{{secret_key}}"
              }
            ],
            "description": "Prices for your account tier. Choose an active sku_code and use POST /transaction. Use bulk order_count for repeated orders. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih sku_code aktif untuk POST /transaction. Gunakan bulk dengan order_count untuk pesanan berulang. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
            "url": {
              "raw": "{{base_url}}/api/v1/h2h/pricelists?limit=500",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "h2h",
                "pricelists"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "500",
                  "disabled": false,
                  "description": "Items per page, 1–1000. Use 500 for synchronisation. Without limit, regular responses return all matching products; send limit to paginate."
                },
                {
                  "key": "cursor",
                  "value": "",
                  "disabled": true,
                  "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                },
                {
                  "key": "server",
                  "value": "",
                  "disabled": true,
                  "description": "Product catalogue server_code, not the customer account zone. Omit or leave empty to include all catalogue servers."
                },
                {
                  "key": "format",
                  "value": "",
                  "disabled": true,
                  "description": "Omit or leave empty for compact. legacy embeds inquiry_fields and returns all matching items without cursor pagination."
                },
                {
                  "key": "brand_id",
                  "value": "{{brand_id}}",
                  "disabled": true,
                  "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                }
              ]
            }
          },
          "response": [
            {
              "name": "200 example",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active sku_code and use POST /transaction. Use bulk order_count for repeated orders. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih sku_code aktif untuk POST /transaction. Gunakan bulk dengan order_count untuk pesanan berulang. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/pricelists?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "pricelists"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Without limit, regular responses return all matching products; send limit to paginate."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "server",
                      "value": "",
                      "disabled": true,
                      "description": "Product catalogue server_code, not the customer account zone. Omit or leave empty to include all catalogue servers."
                    },
                    {
                      "key": "format",
                      "value": "",
                      "disabled": true,
                      "description": "Omit or leave empty for compact. legacy embeds inquiry_fields and returns all matching items without cursor pagination."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Request succeeded.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": [\n    {\n      \"name\": \"Example product\",\n      \"sku_code\": \"EXAMPLE-10\",\n      \"price\": 1000,\n      \"category_name\": \"Example category\",\n      \"brand_id\": 10,\n      \"type_name\": \"Example type\",\n      \"category_order\": 1,\n      \"type_order\": 1,\n      \"server_code\": \"global\",\n      \"server_name\": \"Global\",\n      \"status\": \"active\",\n      \"inquiry_form_key\": \"example-form\",\n      \"h2h_description\": null,\n      \"description\": null,\n      \"id\": 1\n    }\n  ],\n  \"meta\": {\n    \"brands\": [\n      {\n        \"id\": 10,\n        \"name\": \"Example brand\",\n        \"thumbnail\": null,\n        \"order\": 1\n      }\n    ],\n    \"inquiry_forms\": {\n      \"example-form\": {\n        \"fields\": [\n          {\n            \"key\": \"customer_target\",\n            \"name\": \"Player ID\",\n            \"type\": \"text\"\n          },\n          {\n            \"key\": \"customer_target_zone\",\n            \"name\": \"Zone\",\n            \"type\": \"text\"\n          }\n        ],\n        \"notice\": {\n          \"id\": \"Masukkan ID dan zone sesuai akun pembeli.\",\n          \"en\": \"Enter the ID and zone from the buyer account.\"\n        }\n      }\n    },\n    \"pagination\": {\n      \"cursor\": null,\n      \"next_cursor\": null,\n      \"limit\": 100,\n      \"total\": 1,\n      \"has_more\": false\n    }\n  }\n}"
            },
            {
              "name": "200 legacy",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active sku_code and use POST /transaction. Use bulk order_count for repeated orders. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih sku_code aktif untuk POST /transaction. Gunakan bulk dengan order_count untuk pesanan berulang. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/pricelists?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "pricelists"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Without limit, regular responses return all matching products; send limit to paginate."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "server",
                      "value": "",
                      "disabled": true,
                      "description": "Product catalogue server_code, not the customer account zone. Omit or leave empty to include all catalogue servers."
                    },
                    {
                      "key": "format",
                      "value": "",
                      "disabled": true,
                      "description": "Omit or leave empty for compact. legacy embeds inquiry_fields and returns all matching items without cursor pagination."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Request succeeded.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": [\n    {\n      \"name\": \"Example product\",\n      \"sku_code\": \"EXAMPLE-10\",\n      \"price\": 1000,\n      \"category_name\": \"Example category\",\n      \"brand_id\": 10,\n      \"type_name\": \"Example type\",\n      \"category_order\": 1,\n      \"type_order\": 1,\n      \"server_code\": \"global\",\n      \"server_name\": \"Global\",\n      \"status\": \"active\",\n      \"h2h_description\": null,\n      \"description\": null,\n      \"id\": 1,\n      \"inquiry_fields\": {\n        \"fields\": [\n          {\n            \"key\": \"customer_target\",\n            \"name\": \"Player ID\",\n            \"type\": \"text\"\n          },\n          {\n            \"key\": \"customer_target_zone\",\n            \"name\": \"Zone\",\n            \"type\": \"text\"\n          }\n        ],\n        \"notice\": null\n      },\n      \"brand_name\": \"Example brand\",\n      \"brand_order\": 1,\n      \"brand_thumbnail\": null\n    }\n  ]\n}"
            },
            {
              "name": "401 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active sku_code and use POST /transaction. Use bulk order_count for repeated orders. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih sku_code aktif untuk POST /transaction. Gunakan bulk dengan order_count untuk pesanan berulang. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/pricelists?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "pricelists"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Without limit, regular responses return all matching products; send limit to paginate."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "server",
                      "value": "",
                      "disabled": true,
                      "description": "Product catalogue server_code, not the customer account zone. Omit or leave empty to include all catalogue servers."
                    },
                    {
                      "key": "format",
                      "value": "",
                      "disabled": true,
                      "description": "Omit or leave empty for compact. legacy embeds inquiry_fields and returns all matching items without cursor pagination."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Authentication missing/invalid",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"\n}"
            },
            {
              "name": "403 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active sku_code and use POST /transaction. Use bulk order_count for repeated orders. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih sku_code aktif untuk POST /transaction. Gunakan bulk dengan order_count untuk pesanan berulang. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/pricelists?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "pricelists"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Without limit, regular responses return all matching products; send limit to paginate."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "server",
                      "value": "",
                      "disabled": true,
                      "description": "Product catalogue server_code, not the customer account zone. Omit or leave empty to include all catalogue servers."
                    },
                    {
                      "key": "format",
                      "value": "",
                      "disabled": true,
                      "description": "Omit or leave empty for compact. legacy embeds inquiry_fields and returns all matching items without cursor pagination."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Account/IP forbidden",
              "code": 403,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Forbidden: H2H API access is not active for this account.\"\n}"
            },
            {
              "name": "422 validation",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active sku_code and use POST /transaction. Use bulk order_count for repeated orders. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih sku_code aktif untuk POST /transaction. Gunakan bulk dengan order_count untuk pesanan berulang. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/pricelists?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "pricelists"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Without limit, regular responses return all matching products; send limit to paginate."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "server",
                      "value": "",
                      "disabled": true,
                      "description": "Product catalogue server_code, not the customer account zone. Omit or leave empty to include all catalogue servers."
                    },
                    {
                      "key": "format",
                      "value": "",
                      "disabled": true,
                      "description": "Omit or leave empty for compact. legacy embeds inquiry_fields and returns all matching items without cursor pagination."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Validation, product unavailable or insufficient order balance",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"message\": \"The request parameters are invalid.\",\n  \"errors\": {\n    \"limit\": [\n      \"Use an integer between 1 and 1000.\"\n    ]\n  }\n}"
            },
            {
              "name": "429 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active sku_code and use POST /transaction. Use bulk order_count for repeated orders. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih sku_code aktif untuk POST /transaction. Gunakan bulk dengan order_count untuk pesanan berulang. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/pricelists?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "pricelists"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Without limit, regular responses return all matching products; send limit to paginate."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "server",
                      "value": "",
                      "disabled": true,
                      "description": "Product catalogue server_code, not the customer account zone. Omit or leave empty to include all catalogue servers."
                    },
                    {
                      "key": "format",
                      "value": "",
                      "disabled": true,
                      "description": "Omit or leave empty for compact. legacy embeds inquiry_fields and returns all matching items without cursor pagination."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Tier, catalogue or nickname limit exceeded",
              "code": 429,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Too Many Requests\"\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP status is documented', () => pm.expect(Object.keys({\"200\":{\"description\":\"Request succeeded.\",\"headers\":{\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"anyOf\":[{\"$ref\":\"#/components/schemas/Catalogue\"},{\"$ref\":\"#/components/schemas/LegacyCatalogue\"}]},\"examples\":{\"example\":{\"value\":{\"success\":true,\"data\":[{\"name\":\"Example product\",\"sku_code\":\"EXAMPLE-10\",\"price\":1000,\"category_name\":\"Example category\",\"brand_id\":10,\"type_name\":\"Example type\",\"category_order\":1,\"type_order\":1,\"server_code\":\"global\",\"server_name\":\"Global\",\"status\":\"active\",\"inquiry_form_key\":\"example-form\",\"h2h_description\":null,\"description\":null,\"id\":1}],\"meta\":{\"brands\":[{\"id\":10,\"name\":\"Example brand\",\"thumbnail\":null,\"order\":1}],\"inquiry_forms\":{\"example-form\":{\"fields\":[{\"key\":\"customer_target\",\"name\":\"Player ID\",\"type\":\"text\"},{\"key\":\"customer_target_zone\",\"name\":\"Zone\",\"type\":\"text\"}],\"notice\":{\"id\":\"Masukkan ID dan zone sesuai akun pembeli.\",\"en\":\"Enter the ID and zone from the buyer account.\"}}},\"pagination\":{\"cursor\":null,\"next_cursor\":null,\"limit\":100,\"total\":1,\"has_more\":false}}},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"},\"legacy\":{\"summary\":\"Legacy format\",\"value\":{\"success\":true,\"data\":[{\"name\":\"Example product\",\"sku_code\":\"EXAMPLE-10\",\"price\":1000,\"category_name\":\"Example category\",\"brand_id\":10,\"type_name\":\"Example type\",\"category_order\":1,\"type_order\":1,\"server_code\":\"global\",\"server_name\":\"Global\",\"status\":\"active\",\"h2h_description\":null,\"description\":null,\"id\":1,\"inquiry_fields\":{\"fields\":[{\"key\":\"customer_target\",\"name\":\"Player ID\",\"type\":\"text\"},{\"key\":\"customer_target_zone\",\"name\":\"Zone\",\"type\":\"text\"}],\"notice\":null},\"brand_name\":\"Example brand\",\"brand_order\":1,\"brand_thumbnail\":null}]},\"x-summary-id\":\"Format legacy\"}}}},\"x-description-id\":\"Request berhasil.\"},\"401\":{\"description\":\"Authentication missing/invalid\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"403\":{\"description\":\"Account/IP forbidden\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Forbidden: H2H API access is not active for this account.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"422\":{\"description\":\"Validation, product unavailable or insufficient order balance\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"validation\":{\"value\":{\"message\":\"The request parameters are invalid.\",\"errors\":{\"limit\":[\"Use an integer between 1 and 1000.\"]}},\"x-summary-id\":\"Parameter tidak valid\",\"summary\":\"Invalid parameters\"}}}}},\"429\":{\"description\":\"Tier, catalogue or nickname limit exceeded\",\"headers\":{\"Retry-After\":{\"description\":\"Seconds to wait before retrying a rate-limited request\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Too Many Requests\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}}})).to.include(String(pm.response.code)));",
                  "if (pm.response.code >= 200 && pm.response.code < 300) { const result = pm.response.json(); pm.test('Successful response', () => pm.expect(result.success).to.eql(true)); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Regular prices by brand",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{api_key}}"
              },
              {
                "key": "X-Secret-Key",
                "value": "{{secret_key}}"
              }
            ],
            "description": "Prices for your account tier. Choose an active sku_code and use POST /transaction. Use bulk order_count for repeated orders. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih sku_code aktif untuk POST /transaction. Gunakan bulk dengan order_count untuk pesanan berulang. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
            "url": {
              "raw": "{{base_url}}/api/v1/h2h/pricelists/{{category_slug}}?limit=500",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "h2h",
                "pricelists",
                "{{category_slug}}"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "500",
                  "disabled": false,
                  "description": "Items per page, 1–1000. Use 500 for synchronisation. Without limit, regular responses return all matching products; send limit to paginate."
                },
                {
                  "key": "cursor",
                  "value": "",
                  "disabled": true,
                  "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                },
                {
                  "key": "server",
                  "value": "",
                  "disabled": true,
                  "description": "Product catalogue server_code, not the customer account zone. Omit or leave empty to include all catalogue servers."
                },
                {
                  "key": "format",
                  "value": "",
                  "disabled": true,
                  "description": "Omit or leave empty for compact. legacy embeds inquiry_fields and returns all matching items without cursor pagination."
                },
                {
                  "key": "brand_id",
                  "value": "{{brand_id}}",
                  "disabled": true,
                  "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                }
              ]
            }
          },
          "response": [
            {
              "name": "200 example",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active sku_code and use POST /transaction. Use bulk order_count for repeated orders. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih sku_code aktif untuk POST /transaction. Gunakan bulk dengan order_count untuk pesanan berulang. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/pricelists/{{category_slug}}?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "pricelists",
                    "{{category_slug}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Without limit, regular responses return all matching products; send limit to paginate."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "server",
                      "value": "",
                      "disabled": true,
                      "description": "Product catalogue server_code, not the customer account zone. Omit or leave empty to include all catalogue servers."
                    },
                    {
                      "key": "format",
                      "value": "",
                      "disabled": true,
                      "description": "Omit or leave empty for compact. legacy embeds inquiry_fields and returns all matching items without cursor pagination."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Request succeeded.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": [\n    {\n      \"name\": \"Example product\",\n      \"sku_code\": \"EXAMPLE-10\",\n      \"price\": 1000,\n      \"category_name\": \"Example category\",\n      \"brand_id\": 10,\n      \"type_name\": \"Example type\",\n      \"category_order\": 1,\n      \"type_order\": 1,\n      \"server_code\": \"global\",\n      \"server_name\": \"Global\",\n      \"status\": \"active\",\n      \"inquiry_form_key\": \"example-form\",\n      \"h2h_description\": null,\n      \"description\": null,\n      \"id\": 1\n    }\n  ],\n  \"meta\": {\n    \"brands\": [\n      {\n        \"id\": 10,\n        \"name\": \"Example brand\",\n        \"thumbnail\": null,\n        \"order\": 1\n      }\n    ],\n    \"inquiry_forms\": {\n      \"example-form\": {\n        \"fields\": [\n          {\n            \"key\": \"customer_target\",\n            \"name\": \"Player ID\",\n            \"type\": \"text\"\n          },\n          {\n            \"key\": \"customer_target_zone\",\n            \"name\": \"Zone\",\n            \"type\": \"text\"\n          }\n        ],\n        \"notice\": null\n      }\n    },\n    \"pagination\": {\n      \"cursor\": null,\n      \"next_cursor\": null,\n      \"limit\": 100,\n      \"total\": 1,\n      \"has_more\": false\n    }\n  },\n  \"category\": {\n    \"name\": \"Example brand\",\n    \"slug\": \"example-brand\"\n  }\n}"
            },
            {
              "name": "200 legacy",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active sku_code and use POST /transaction. Use bulk order_count for repeated orders. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih sku_code aktif untuk POST /transaction. Gunakan bulk dengan order_count untuk pesanan berulang. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/pricelists/{{category_slug}}?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "pricelists",
                    "{{category_slug}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Without limit, regular responses return all matching products; send limit to paginate."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "server",
                      "value": "",
                      "disabled": true,
                      "description": "Product catalogue server_code, not the customer account zone. Omit or leave empty to include all catalogue servers."
                    },
                    {
                      "key": "format",
                      "value": "",
                      "disabled": true,
                      "description": "Omit or leave empty for compact. legacy embeds inquiry_fields and returns all matching items without cursor pagination."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Request succeeded.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": [\n    {\n      \"name\": \"Example product\",\n      \"sku_code\": \"EXAMPLE-10\",\n      \"price\": 1000,\n      \"category_name\": \"Example category\",\n      \"brand_id\": 10,\n      \"type_name\": \"Example type\",\n      \"category_order\": 1,\n      \"type_order\": 1,\n      \"server_code\": \"global\",\n      \"server_name\": \"Global\",\n      \"status\": \"active\",\n      \"h2h_description\": null,\n      \"description\": null,\n      \"id\": 1,\n      \"inquiry_fields\": {\n        \"fields\": [\n          {\n            \"key\": \"customer_target\",\n            \"name\": \"Player ID\",\n            \"type\": \"text\"\n          },\n          {\n            \"key\": \"customer_target_zone\",\n            \"name\": \"Zone\",\n            \"type\": \"text\"\n          }\n        ],\n        \"notice\": null\n      },\n      \"brand_name\": \"Example brand\",\n      \"brand_order\": 1,\n      \"brand_thumbnail\": null\n    }\n  ],\n  \"category\": {\n    \"name\": \"Example brand\",\n    \"slug\": \"example-brand\"\n  }\n}"
            },
            {
              "name": "401 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active sku_code and use POST /transaction. Use bulk order_count for repeated orders. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih sku_code aktif untuk POST /transaction. Gunakan bulk dengan order_count untuk pesanan berulang. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/pricelists/{{category_slug}}?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "pricelists",
                    "{{category_slug}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Without limit, regular responses return all matching products; send limit to paginate."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "server",
                      "value": "",
                      "disabled": true,
                      "description": "Product catalogue server_code, not the customer account zone. Omit or leave empty to include all catalogue servers."
                    },
                    {
                      "key": "format",
                      "value": "",
                      "disabled": true,
                      "description": "Omit or leave empty for compact. legacy embeds inquiry_fields and returns all matching items without cursor pagination."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Authentication missing/invalid",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"\n}"
            },
            {
              "name": "403 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active sku_code and use POST /transaction. Use bulk order_count for repeated orders. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih sku_code aktif untuk POST /transaction. Gunakan bulk dengan order_count untuk pesanan berulang. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/pricelists/{{category_slug}}?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "pricelists",
                    "{{category_slug}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Without limit, regular responses return all matching products; send limit to paginate."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "server",
                      "value": "",
                      "disabled": true,
                      "description": "Product catalogue server_code, not the customer account zone. Omit or leave empty to include all catalogue servers."
                    },
                    {
                      "key": "format",
                      "value": "",
                      "disabled": true,
                      "description": "Omit or leave empty for compact. legacy embeds inquiry_fields and returns all matching items without cursor pagination."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Account/IP forbidden",
              "code": 403,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Forbidden: H2H API access is not active for this account.\"\n}"
            },
            {
              "name": "404 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active sku_code and use POST /transaction. Use bulk order_count for repeated orders. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih sku_code aktif untuk POST /transaction. Gunakan bulk dengan order_count untuk pesanan berulang. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/pricelists/{{category_slug}}?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "pricelists",
                    "{{category_slug}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Without limit, regular responses return all matching products; send limit to paginate."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "server",
                      "value": "",
                      "disabled": true,
                      "description": "Product catalogue server_code, not the customer account zone. Omit or leave empty to include all catalogue servers."
                    },
                    {
                      "key": "format",
                      "value": "",
                      "disabled": true,
                      "description": "Omit or leave empty for compact. legacy embeds inquiry_fields and returns all matching items without cursor pagination."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Owned resource/category/account not found",
              "code": 404,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Not found.\"\n}"
            },
            {
              "name": "422 validation",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active sku_code and use POST /transaction. Use bulk order_count for repeated orders. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih sku_code aktif untuk POST /transaction. Gunakan bulk dengan order_count untuk pesanan berulang. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/pricelists/{{category_slug}}?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "pricelists",
                    "{{category_slug}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Without limit, regular responses return all matching products; send limit to paginate."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "server",
                      "value": "",
                      "disabled": true,
                      "description": "Product catalogue server_code, not the customer account zone. Omit or leave empty to include all catalogue servers."
                    },
                    {
                      "key": "format",
                      "value": "",
                      "disabled": true,
                      "description": "Omit or leave empty for compact. legacy embeds inquiry_fields and returns all matching items without cursor pagination."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Validation, product unavailable or insufficient order balance",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"message\": \"The request parameters are invalid.\",\n  \"errors\": {\n    \"limit\": [\n      \"Use an integer between 1 and 1000.\"\n    ]\n  }\n}"
            },
            {
              "name": "429 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active sku_code and use POST /transaction. Use bulk order_count for repeated orders. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih sku_code aktif untuk POST /transaction. Gunakan bulk dengan order_count untuk pesanan berulang. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/pricelists/{{category_slug}}?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "pricelists",
                    "{{category_slug}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Without limit, regular responses return all matching products; send limit to paginate."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "server",
                      "value": "",
                      "disabled": true,
                      "description": "Product catalogue server_code, not the customer account zone. Omit or leave empty to include all catalogue servers."
                    },
                    {
                      "key": "format",
                      "value": "",
                      "disabled": true,
                      "description": "Omit or leave empty for compact. legacy embeds inquiry_fields and returns all matching items without cursor pagination."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Tier, catalogue or nickname limit exceeded",
              "code": 429,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Too Many Requests\"\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP status is documented', () => pm.expect(Object.keys({\"200\":{\"description\":\"Request succeeded.\",\"headers\":{\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"anyOf\":[{\"$ref\":\"#/components/schemas/Catalogue\"},{\"$ref\":\"#/components/schemas/LegacyCatalogue\"}]},\"examples\":{\"example\":{\"value\":{\"success\":true,\"data\":[{\"name\":\"Example product\",\"sku_code\":\"EXAMPLE-10\",\"price\":1000,\"category_name\":\"Example category\",\"brand_id\":10,\"type_name\":\"Example type\",\"category_order\":1,\"type_order\":1,\"server_code\":\"global\",\"server_name\":\"Global\",\"status\":\"active\",\"inquiry_form_key\":\"example-form\",\"h2h_description\":null,\"description\":null,\"id\":1}],\"meta\":{\"brands\":[{\"id\":10,\"name\":\"Example brand\",\"thumbnail\":null,\"order\":1}],\"inquiry_forms\":{\"example-form\":{\"fields\":[{\"key\":\"customer_target\",\"name\":\"Player ID\",\"type\":\"text\"},{\"key\":\"customer_target_zone\",\"name\":\"Zone\",\"type\":\"text\"}],\"notice\":null}},\"pagination\":{\"cursor\":null,\"next_cursor\":null,\"limit\":100,\"total\":1,\"has_more\":false}},\"category\":{\"name\":\"Example brand\",\"slug\":\"example-brand\"}},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"},\"legacy\":{\"summary\":\"Legacy format\",\"value\":{\"success\":true,\"data\":[{\"name\":\"Example product\",\"sku_code\":\"EXAMPLE-10\",\"price\":1000,\"category_name\":\"Example category\",\"brand_id\":10,\"type_name\":\"Example type\",\"category_order\":1,\"type_order\":1,\"server_code\":\"global\",\"server_name\":\"Global\",\"status\":\"active\",\"h2h_description\":null,\"description\":null,\"id\":1,\"inquiry_fields\":{\"fields\":[{\"key\":\"customer_target\",\"name\":\"Player ID\",\"type\":\"text\"},{\"key\":\"customer_target_zone\",\"name\":\"Zone\",\"type\":\"text\"}],\"notice\":null},\"brand_name\":\"Example brand\",\"brand_order\":1,\"brand_thumbnail\":null}],\"category\":{\"name\":\"Example brand\",\"slug\":\"example-brand\"}},\"x-summary-id\":\"Format legacy\"}}}},\"x-description-id\":\"Request berhasil.\"},\"401\":{\"description\":\"Authentication missing/invalid\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"403\":{\"description\":\"Account/IP forbidden\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Forbidden: H2H API access is not active for this account.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"404\":{\"description\":\"Owned resource/category/account not found\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Not found.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"422\":{\"description\":\"Validation, product unavailable or insufficient order balance\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"validation\":{\"value\":{\"message\":\"The request parameters are invalid.\",\"errors\":{\"limit\":[\"Use an integer between 1 and 1000.\"]}},\"x-summary-id\":\"Parameter tidak valid\",\"summary\":\"Invalid parameters\"}}}}},\"429\":{\"description\":\"Tier, catalogue or nickname limit exceeded\",\"headers\":{\"Retry-After\":{\"description\":\"Seconds to wait before retrying a rate-limited request\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Too Many Requests\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}}})).to.include(String(pm.response.code)));",
                  "if (pm.response.code >= 200 && pm.response.code < 300) { const result = pm.response.json(); pm.test('Successful response', () => pm.expect(result.success).to.eql(true)); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Smart catalogue",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{api_key}}"
              },
              {
                "key": "X-Secret-Key",
                "value": "{{secret_key}}"
              }
            ],
            "description": "Prices for your account tier. Choose an active smart_sku_code and use POST /smart-transaction. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih smart_sku_code aktif untuk POST /smart-transaction. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
            "url": {
              "raw": "{{base_url}}/api/v1/h2h/smart-pricelists?limit=500",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "h2h",
                "smart-pricelists"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "500",
                  "disabled": false,
                  "description": "Items per page, 1–1000. Use 500 for synchronisation. Default 500."
                },
                {
                  "key": "cursor",
                  "value": "",
                  "disabled": true,
                  "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                },
                {
                  "key": "brand",
                  "value": "",
                  "disabled": true,
                  "description": "Compatibility alias: brand ID or exact brand name. Prefer brand_id."
                },
                {
                  "key": "category",
                  "value": "",
                  "disabled": true,
                  "description": "Compatibility filter for a root category ID or exact name. Prefer brand_id or a brand slug."
                },
                {
                  "key": "search",
                  "value": "",
                  "disabled": true,
                  "description": "Search product name or Smart SKU."
                },
                {
                  "key": "brand_id",
                  "value": "{{brand_id}}",
                  "disabled": true,
                  "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                }
              ]
            }
          },
          "response": [
            {
              "name": "200 example",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active smart_sku_code and use POST /smart-transaction. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih smart_sku_code aktif untuk POST /smart-transaction. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-pricelists?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-pricelists"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Default 500."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "brand",
                      "value": "",
                      "disabled": true,
                      "description": "Compatibility alias: brand ID or exact brand name. Prefer brand_id."
                    },
                    {
                      "key": "category",
                      "value": "",
                      "disabled": true,
                      "description": "Compatibility filter for a root category ID or exact name. Prefer brand_id or a brand slug."
                    },
                    {
                      "key": "search",
                      "value": "",
                      "disabled": true,
                      "description": "Search product name or Smart SKU."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Request succeeded.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": [\n    {\n      \"name\": \"Example product\",\n      \"category_name\": \"Example category\",\n      \"brand_id\": 10,\n      \"type_name\": \"Example type\",\n      \"category_order\": 1,\n      \"type_order\": 1,\n      \"status\": \"active\",\n      \"inquiry_form_key\": \"example-form\",\n      \"h2h_description\": null,\n      \"description\": null,\n      \"smart_sku_code\": \"smartEXAMPLE\",\n      \"min_price\": 1000,\n      \"max_price\": 1000,\n      \"variant_count\": 1,\n      \"variants\": [\n        {\n          \"sku_code\": \"EXAMPLE-10\",\n          \"price\": 1000,\n          \"status\": \"active\"\n        }\n      ]\n    }\n  ],\n  \"meta\": {\n    \"brands\": [\n      {\n        \"id\": 10,\n        \"name\": \"Example brand\",\n        \"thumbnail\": null,\n        \"order\": 1\n      }\n    ],\n    \"inquiry_forms\": {\n      \"example-form\": {\n        \"fields\": [\n          {\n            \"key\": \"customer_target\",\n            \"name\": \"Player ID\",\n            \"type\": \"text\"\n          },\n          {\n            \"key\": \"customer_target_zone\",\n            \"name\": \"Zone\",\n            \"type\": \"text\"\n          }\n        ],\n        \"notice\": null\n      }\n    },\n    \"pagination\": {\n      \"cursor\": null,\n      \"next_cursor\": null,\n      \"limit\": 100,\n      \"has_more\": false\n    }\n  }\n}"
            },
            {
              "name": "401 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active smart_sku_code and use POST /smart-transaction. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih smart_sku_code aktif untuk POST /smart-transaction. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-pricelists?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-pricelists"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Default 500."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "brand",
                      "value": "",
                      "disabled": true,
                      "description": "Compatibility alias: brand ID or exact brand name. Prefer brand_id."
                    },
                    {
                      "key": "category",
                      "value": "",
                      "disabled": true,
                      "description": "Compatibility filter for a root category ID or exact name. Prefer brand_id or a brand slug."
                    },
                    {
                      "key": "search",
                      "value": "",
                      "disabled": true,
                      "description": "Search product name or Smart SKU."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Authentication missing/invalid",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"\n}"
            },
            {
              "name": "403 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active smart_sku_code and use POST /smart-transaction. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih smart_sku_code aktif untuk POST /smart-transaction. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-pricelists?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-pricelists"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Default 500."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "brand",
                      "value": "",
                      "disabled": true,
                      "description": "Compatibility alias: brand ID or exact brand name. Prefer brand_id."
                    },
                    {
                      "key": "category",
                      "value": "",
                      "disabled": true,
                      "description": "Compatibility filter for a root category ID or exact name. Prefer brand_id or a brand slug."
                    },
                    {
                      "key": "search",
                      "value": "",
                      "disabled": true,
                      "description": "Search product name or Smart SKU."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Account/IP forbidden",
              "code": 403,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Forbidden: H2H API access is not active for this account.\"\n}"
            },
            {
              "name": "422 validation",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active smart_sku_code and use POST /smart-transaction. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih smart_sku_code aktif untuk POST /smart-transaction. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-pricelists?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-pricelists"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Default 500."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "brand",
                      "value": "",
                      "disabled": true,
                      "description": "Compatibility alias: brand ID or exact brand name. Prefer brand_id."
                    },
                    {
                      "key": "category",
                      "value": "",
                      "disabled": true,
                      "description": "Compatibility filter for a root category ID or exact name. Prefer brand_id or a brand slug."
                    },
                    {
                      "key": "search",
                      "value": "",
                      "disabled": true,
                      "description": "Search product name or Smart SKU."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Validation, product unavailable or insufficient order balance",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"message\": \"The request parameters are invalid.\",\n  \"errors\": {\n    \"limit\": [\n      \"Use an integer between 1 and 1000.\"\n    ]\n  }\n}"
            },
            {
              "name": "429 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active smart_sku_code and use POST /smart-transaction. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih smart_sku_code aktif untuk POST /smart-transaction. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-pricelists?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-pricelists"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Default 500."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "brand",
                      "value": "",
                      "disabled": true,
                      "description": "Compatibility alias: brand ID or exact brand name. Prefer brand_id."
                    },
                    {
                      "key": "category",
                      "value": "",
                      "disabled": true,
                      "description": "Compatibility filter for a root category ID or exact name. Prefer brand_id or a brand slug."
                    },
                    {
                      "key": "search",
                      "value": "",
                      "disabled": true,
                      "description": "Search product name or Smart SKU."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Tier, catalogue or nickname limit exceeded",
              "code": 429,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Too Many Requests\"\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP status is documented', () => pm.expect(Object.keys({\"200\":{\"description\":\"Request succeeded.\",\"headers\":{\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/SmartCatalogue\"},\"examples\":{\"example\":{\"value\":{\"success\":true,\"data\":[{\"name\":\"Example product\",\"category_name\":\"Example category\",\"brand_id\":10,\"type_name\":\"Example type\",\"category_order\":1,\"type_order\":1,\"status\":\"active\",\"inquiry_form_key\":\"example-form\",\"h2h_description\":null,\"description\":null,\"smart_sku_code\":\"smartEXAMPLE\",\"min_price\":1000,\"max_price\":1000,\"variant_count\":1,\"variants\":[{\"sku_code\":\"EXAMPLE-10\",\"price\":1000,\"status\":\"active\"}]}],\"meta\":{\"brands\":[{\"id\":10,\"name\":\"Example brand\",\"thumbnail\":null,\"order\":1}],\"inquiry_forms\":{\"example-form\":{\"fields\":[{\"key\":\"customer_target\",\"name\":\"Player ID\",\"type\":\"text\"},{\"key\":\"customer_target_zone\",\"name\":\"Zone\",\"type\":\"text\"}],\"notice\":null}},\"pagination\":{\"cursor\":null,\"next_cursor\":null,\"limit\":100,\"has_more\":false}}},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"}}}},\"x-description-id\":\"Request berhasil.\"},\"401\":{\"description\":\"Authentication missing/invalid\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"403\":{\"description\":\"Account/IP forbidden\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Forbidden: H2H API access is not active for this account.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"422\":{\"description\":\"Validation, product unavailable or insufficient order balance\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"validation\":{\"value\":{\"message\":\"The request parameters are invalid.\",\"errors\":{\"limit\":[\"Use an integer between 1 and 1000.\"]}},\"x-summary-id\":\"Parameter tidak valid\",\"summary\":\"Invalid parameters\"}}}}},\"429\":{\"description\":\"Tier, catalogue or nickname limit exceeded\",\"headers\":{\"Retry-After\":{\"description\":\"Seconds to wait before retrying a rate-limited request\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Too Many Requests\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}}})).to.include(String(pm.response.code)));",
                  "if (pm.response.code >= 200 && pm.response.code < 300) { const result = pm.response.json(); pm.test('Successful response', () => pm.expect(result.success).to.eql(true)); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Smart prices by brand",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{api_key}}"
              },
              {
                "key": "X-Secret-Key",
                "value": "{{secret_key}}"
              }
            ],
            "description": "Prices for your account tier. Choose an active smart_sku_code and use POST /smart-transaction. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih smart_sku_code aktif untuk POST /smart-transaction. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
            "url": {
              "raw": "{{base_url}}/api/v1/h2h/smart-pricelists/{{category_slug}}?limit=500",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "h2h",
                "smart-pricelists",
                "{{category_slug}}"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "500",
                  "disabled": false,
                  "description": "Items per page, 1–1000. Use 500 for synchronisation. Default 500."
                },
                {
                  "key": "cursor",
                  "value": "",
                  "disabled": true,
                  "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                },
                {
                  "key": "brand",
                  "value": "",
                  "disabled": true,
                  "description": "Compatibility alias: brand ID or exact brand name. Prefer brand_id."
                },
                {
                  "key": "category",
                  "value": "",
                  "disabled": true,
                  "description": "Compatibility filter for a root category ID or exact name. Prefer brand_id or a brand slug."
                },
                {
                  "key": "search",
                  "value": "",
                  "disabled": true,
                  "description": "Search product name or Smart SKU."
                },
                {
                  "key": "brand_id",
                  "value": "{{brand_id}}",
                  "disabled": true,
                  "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                }
              ]
            }
          },
          "response": [
            {
              "name": "200 example",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active smart_sku_code and use POST /smart-transaction. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih smart_sku_code aktif untuk POST /smart-transaction. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-pricelists/{{category_slug}}?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-pricelists",
                    "{{category_slug}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Default 500."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "brand",
                      "value": "",
                      "disabled": true,
                      "description": "Compatibility alias: brand ID or exact brand name. Prefer brand_id."
                    },
                    {
                      "key": "category",
                      "value": "",
                      "disabled": true,
                      "description": "Compatibility filter for a root category ID or exact name. Prefer brand_id or a brand slug."
                    },
                    {
                      "key": "search",
                      "value": "",
                      "disabled": true,
                      "description": "Search product name or Smart SKU."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Request succeeded.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": [\n    {\n      \"name\": \"Example product\",\n      \"category_name\": \"Example category\",\n      \"brand_id\": 10,\n      \"type_name\": \"Example type\",\n      \"category_order\": 1,\n      \"type_order\": 1,\n      \"status\": \"active\",\n      \"inquiry_form_key\": \"example-form\",\n      \"h2h_description\": null,\n      \"description\": null,\n      \"smart_sku_code\": \"smartEXAMPLE\",\n      \"min_price\": 1000,\n      \"max_price\": 1000,\n      \"variant_count\": 1,\n      \"variants\": [\n        {\n          \"sku_code\": \"EXAMPLE-10\",\n          \"price\": 1000,\n          \"status\": \"active\"\n        }\n      ]\n    }\n  ],\n  \"meta\": {\n    \"brands\": [\n      {\n        \"id\": 10,\n        \"name\": \"Example brand\",\n        \"thumbnail\": null,\n        \"order\": 1\n      }\n    ],\n    \"inquiry_forms\": {\n      \"example-form\": {\n        \"fields\": [\n          {\n            \"key\": \"customer_target\",\n            \"name\": \"Player ID\",\n            \"type\": \"text\"\n          },\n          {\n            \"key\": \"customer_target_zone\",\n            \"name\": \"Zone\",\n            \"type\": \"text\"\n          }\n        ],\n        \"notice\": null\n      }\n    },\n    \"pagination\": {\n      \"cursor\": null,\n      \"next_cursor\": null,\n      \"limit\": 100,\n      \"has_more\": false\n    }\n  }\n}"
            },
            {
              "name": "401 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active smart_sku_code and use POST /smart-transaction. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih smart_sku_code aktif untuk POST /smart-transaction. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-pricelists/{{category_slug}}?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-pricelists",
                    "{{category_slug}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Default 500."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "brand",
                      "value": "",
                      "disabled": true,
                      "description": "Compatibility alias: brand ID or exact brand name. Prefer brand_id."
                    },
                    {
                      "key": "category",
                      "value": "",
                      "disabled": true,
                      "description": "Compatibility filter for a root category ID or exact name. Prefer brand_id or a brand slug."
                    },
                    {
                      "key": "search",
                      "value": "",
                      "disabled": true,
                      "description": "Search product name or Smart SKU."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Authentication missing/invalid",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"\n}"
            },
            {
              "name": "403 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active smart_sku_code and use POST /smart-transaction. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih smart_sku_code aktif untuk POST /smart-transaction. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-pricelists/{{category_slug}}?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-pricelists",
                    "{{category_slug}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Default 500."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "brand",
                      "value": "",
                      "disabled": true,
                      "description": "Compatibility alias: brand ID or exact brand name. Prefer brand_id."
                    },
                    {
                      "key": "category",
                      "value": "",
                      "disabled": true,
                      "description": "Compatibility filter for a root category ID or exact name. Prefer brand_id or a brand slug."
                    },
                    {
                      "key": "search",
                      "value": "",
                      "disabled": true,
                      "description": "Search product name or Smart SKU."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Account/IP forbidden",
              "code": 403,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Forbidden: H2H API access is not active for this account.\"\n}"
            },
            {
              "name": "404 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active smart_sku_code and use POST /smart-transaction. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih smart_sku_code aktif untuk POST /smart-transaction. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-pricelists/{{category_slug}}?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-pricelists",
                    "{{category_slug}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Default 500."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "brand",
                      "value": "",
                      "disabled": true,
                      "description": "Compatibility alias: brand ID or exact brand name. Prefer brand_id."
                    },
                    {
                      "key": "category",
                      "value": "",
                      "disabled": true,
                      "description": "Compatibility filter for a root category ID or exact name. Prefer brand_id or a brand slug."
                    },
                    {
                      "key": "search",
                      "value": "",
                      "disabled": true,
                      "description": "Search product name or Smart SKU."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Owned resource/category/account not found",
              "code": 404,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Not found.\"\n}"
            },
            {
              "name": "422 validation",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active smart_sku_code and use POST /smart-transaction. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih smart_sku_code aktif untuk POST /smart-transaction. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-pricelists/{{category_slug}}?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-pricelists",
                    "{{category_slug}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Default 500."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "brand",
                      "value": "",
                      "disabled": true,
                      "description": "Compatibility alias: brand ID or exact brand name. Prefer brand_id."
                    },
                    {
                      "key": "category",
                      "value": "",
                      "disabled": true,
                      "description": "Compatibility filter for a root category ID or exact name. Prefer brand_id or a brand slug."
                    },
                    {
                      "key": "search",
                      "value": "",
                      "disabled": true,
                      "description": "Search product name or Smart SKU."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Validation, product unavailable or insufficient order balance",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"message\": \"The request parameters are invalid.\",\n  \"errors\": {\n    \"limit\": [\n      \"Use an integer between 1 and 1000.\"\n    ]\n  }\n}"
            },
            {
              "name": "429 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Prices for your account tier. Choose an active smart_sku_code and use POST /smart-transaction. For one brand, pass brand_id from the matching brands list or use its slug in the path. Follow next_cursor until has_more=false.\n\nHarga sesuai tier akun Anda. Pilih smart_sku_code aktif untuk POST /smart-transaction. Untuk satu brand, gunakan brand_id dari daftar brand katalog ini atau slug brand pada path. Ikuti next_cursor sampai has_more=false.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-pricelists/{{category_slug}}?limit=500",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-pricelists",
                    "{{category_slug}}"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "500",
                      "disabled": false,
                      "description": "Items per page, 1–1000. Use 500 for synchronisation. Default 500."
                    },
                    {
                      "key": "cursor",
                      "value": "",
                      "disabled": true,
                      "description": "Copy meta.pagination.next_cursor from the previous page. Keep the same filters while paging."
                    },
                    {
                      "key": "brand",
                      "value": "",
                      "disabled": true,
                      "description": "Compatibility alias: brand ID or exact brand name. Prefer brand_id."
                    },
                    {
                      "key": "category",
                      "value": "",
                      "disabled": true,
                      "description": "Compatibility filter for a root category ID or exact name. Prefer brand_id or a brand slug."
                    },
                    {
                      "key": "search",
                      "value": "",
                      "disabled": true,
                      "description": "Search product name or Smart SKU."
                    },
                    {
                      "key": "brand_id",
                      "value": "{{brand_id}}",
                      "disabled": true,
                      "description": "Filter by data[].brand_id from the matching catalogue brands endpoint. Omit to fetch all brands."
                    }
                  ]
                }
              },
              "status": "Tier, catalogue or nickname limit exceeded",
              "code": 429,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Too Many Requests\"\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP status is documented', () => pm.expect(Object.keys({\"200\":{\"description\":\"Request succeeded.\",\"headers\":{\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/SmartCatalogue\"},\"examples\":{\"example\":{\"value\":{\"success\":true,\"data\":[{\"name\":\"Example product\",\"category_name\":\"Example category\",\"brand_id\":10,\"type_name\":\"Example type\",\"category_order\":1,\"type_order\":1,\"status\":\"active\",\"inquiry_form_key\":\"example-form\",\"h2h_description\":null,\"description\":null,\"smart_sku_code\":\"smartEXAMPLE\",\"min_price\":1000,\"max_price\":1000,\"variant_count\":1,\"variants\":[{\"sku_code\":\"EXAMPLE-10\",\"price\":1000,\"status\":\"active\"}]}],\"meta\":{\"brands\":[{\"id\":10,\"name\":\"Example brand\",\"thumbnail\":null,\"order\":1}],\"inquiry_forms\":{\"example-form\":{\"fields\":[{\"key\":\"customer_target\",\"name\":\"Player ID\",\"type\":\"text\"},{\"key\":\"customer_target_zone\",\"name\":\"Zone\",\"type\":\"text\"}],\"notice\":null}},\"pagination\":{\"cursor\":null,\"next_cursor\":null,\"limit\":100,\"has_more\":false}}},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"}}}},\"x-description-id\":\"Request berhasil.\"},\"401\":{\"description\":\"Authentication missing/invalid\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"403\":{\"description\":\"Account/IP forbidden\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Forbidden: H2H API access is not active for this account.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"404\":{\"description\":\"Owned resource/category/account not found\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Not found.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"422\":{\"description\":\"Validation, product unavailable or insufficient order balance\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"validation\":{\"value\":{\"message\":\"The request parameters are invalid.\",\"errors\":{\"limit\":[\"Use an integer between 1 and 1000.\"]}},\"x-summary-id\":\"Parameter tidak valid\",\"summary\":\"Invalid parameters\"}}}}},\"429\":{\"description\":\"Tier, catalogue or nickname limit exceeded\",\"headers\":{\"Retry-After\":{\"description\":\"Seconds to wait before retrying a rate-limited request\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Too Many Requests\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}}})).to.include(String(pm.response.code)));",
                  "if (pm.response.code >= 200 && pm.response.code < 300) { const result = pm.response.json(); pm.test('Successful response', () => pm.expect(result.success).to.eql(true)); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Regular catalogue brands",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{api_key}}"
              },
              {
                "key": "X-Secret-Key",
                "value": "{{secret_key}}"
              }
            ],
            "description": "Brands represented in the regular catalogue for your tier. Each record contains brand_id, name, slug, its parent category, and direct child product types in type[]. Sorted by parent category ID ascending, then brand name A-Z; brands without a parent category appear last. Use brand_id in the catalogue query or slug in /pricelists/{category_slug}. A listed brand or type does not guarantee an active SKU; check the matching pricelist.\n\nBrand yang memiliki produk pada katalog reguler tier Anda. Setiap record berisi brand_id, name, slug, kategori induk pada category, serta tipe produk anak langsung pada type[]. Urutan berdasarkan ID kategori induk naik, lalu nama brand A-Z; brand tanpa kategori induk di akhir. Gunakan brand_id sebagai filter katalog atau slug pada /pricelists/{category_slug}. Brand atau tipe yang terdaftar tidak menjamin SKU aktif; periksa daftar harga terkait.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
            "url": {
              "raw": "{{base_url}}/api/v1/h2h/pricelists/categories",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "h2h",
                "pricelists",
                "categories"
              ],
              "query": []
            }
          },
          "response": [
            {
              "name": "200 example",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Brands represented in the regular catalogue for your tier. Each record contains brand_id, name, slug, its parent category, and direct child product types in type[]. Sorted by parent category ID ascending, then brand name A-Z; brands without a parent category appear last. Use brand_id in the catalogue query or slug in /pricelists/{category_slug}. A listed brand or type does not guarantee an active SKU; check the matching pricelist.\n\nBrand yang memiliki produk pada katalog reguler tier Anda. Setiap record berisi brand_id, name, slug, kategori induk pada category, serta tipe produk anak langsung pada type[]. Urutan berdasarkan ID kategori induk naik, lalu nama brand A-Z; brand tanpa kategori induk di akhir. Gunakan brand_id sebagai filter katalog atau slug pada /pricelists/{category_slug}. Brand atau tipe yang terdaftar tidak menjamin SKU aktif; periksa daftar harga terkait.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/pricelists/categories",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "pricelists",
                    "categories"
                  ],
                  "query": []
                }
              },
              "status": "Request succeeded.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": [\n    {\n      \"brand_id\": 10,\n      \"name\": \"Example brand\",\n      \"slug\": \"example-brand\",\n      \"category\": {\n        \"id\": 1,\n        \"name\": \"Games\",\n        \"slug\": \"games\"\n      },\n      \"type\": [\n        {\n          \"id\": 11,\n          \"name\": \"Diamonds\",\n          \"slug\": \"example-diamonds\"\n        },\n        {\n          \"id\": 12,\n          \"name\": \"Passes\",\n          \"slug\": \"example-passes\"\n        }\n      ]\n    }\n  ]\n}"
            },
            {
              "name": "200 withoutTypes",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Brands represented in the regular catalogue for your tier. Each record contains brand_id, name, slug, its parent category, and direct child product types in type[]. Sorted by parent category ID ascending, then brand name A-Z; brands without a parent category appear last. Use brand_id in the catalogue query or slug in /pricelists/{category_slug}. A listed brand or type does not guarantee an active SKU; check the matching pricelist.\n\nBrand yang memiliki produk pada katalog reguler tier Anda. Setiap record berisi brand_id, name, slug, kategori induk pada category, serta tipe produk anak langsung pada type[]. Urutan berdasarkan ID kategori induk naik, lalu nama brand A-Z; brand tanpa kategori induk di akhir. Gunakan brand_id sebagai filter katalog atau slug pada /pricelists/{category_slug}. Brand atau tipe yang terdaftar tidak menjamin SKU aktif; periksa daftar harga terkait.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/pricelists/categories",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "pricelists",
                    "categories"
                  ],
                  "query": []
                }
              },
              "status": "Request succeeded.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": [\n    {\n      \"brand_id\": 20,\n      \"name\": \"Another brand\",\n      \"slug\": \"another-brand\",\n      \"category\": {\n        \"id\": 1,\n        \"name\": \"Games\",\n        \"slug\": \"games\"\n      },\n      \"type\": []\n    }\n  ]\n}"
            },
            {
              "name": "200 withoutParent",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Brands represented in the regular catalogue for your tier. Each record contains brand_id, name, slug, its parent category, and direct child product types in type[]. Sorted by parent category ID ascending, then brand name A-Z; brands without a parent category appear last. Use brand_id in the catalogue query or slug in /pricelists/{category_slug}. A listed brand or type does not guarantee an active SKU; check the matching pricelist.\n\nBrand yang memiliki produk pada katalog reguler tier Anda. Setiap record berisi brand_id, name, slug, kategori induk pada category, serta tipe produk anak langsung pada type[]. Urutan berdasarkan ID kategori induk naik, lalu nama brand A-Z; brand tanpa kategori induk di akhir. Gunakan brand_id sebagai filter katalog atau slug pada /pricelists/{category_slug}. Brand atau tipe yang terdaftar tidak menjamin SKU aktif; periksa daftar harga terkait.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/pricelists/categories",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "pricelists",
                    "categories"
                  ],
                  "query": []
                }
              },
              "status": "Request succeeded.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": [\n    {\n      \"brand_id\": 30,\n      \"name\": \"Uncategorized brand\",\n      \"slug\": \"uncategorized-brand\",\n      \"category\": null,\n      \"type\": []\n    }\n  ]\n}"
            },
            {
              "name": "401 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Brands represented in the regular catalogue for your tier. Each record contains brand_id, name, slug, its parent category, and direct child product types in type[]. Sorted by parent category ID ascending, then brand name A-Z; brands without a parent category appear last. Use brand_id in the catalogue query or slug in /pricelists/{category_slug}. A listed brand or type does not guarantee an active SKU; check the matching pricelist.\n\nBrand yang memiliki produk pada katalog reguler tier Anda. Setiap record berisi brand_id, name, slug, kategori induk pada category, serta tipe produk anak langsung pada type[]. Urutan berdasarkan ID kategori induk naik, lalu nama brand A-Z; brand tanpa kategori induk di akhir. Gunakan brand_id sebagai filter katalog atau slug pada /pricelists/{category_slug}. Brand atau tipe yang terdaftar tidak menjamin SKU aktif; periksa daftar harga terkait.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/pricelists/categories",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "pricelists",
                    "categories"
                  ],
                  "query": []
                }
              },
              "status": "Authentication missing/invalid",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"\n}"
            },
            {
              "name": "403 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Brands represented in the regular catalogue for your tier. Each record contains brand_id, name, slug, its parent category, and direct child product types in type[]. Sorted by parent category ID ascending, then brand name A-Z; brands without a parent category appear last. Use brand_id in the catalogue query or slug in /pricelists/{category_slug}. A listed brand or type does not guarantee an active SKU; check the matching pricelist.\n\nBrand yang memiliki produk pada katalog reguler tier Anda. Setiap record berisi brand_id, name, slug, kategori induk pada category, serta tipe produk anak langsung pada type[]. Urutan berdasarkan ID kategori induk naik, lalu nama brand A-Z; brand tanpa kategori induk di akhir. Gunakan brand_id sebagai filter katalog atau slug pada /pricelists/{category_slug}. Brand atau tipe yang terdaftar tidak menjamin SKU aktif; periksa daftar harga terkait.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/pricelists/categories",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "pricelists",
                    "categories"
                  ],
                  "query": []
                }
              },
              "status": "Account/IP forbidden",
              "code": 403,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Forbidden: H2H API access is not active for this account.\"\n}"
            },
            {
              "name": "429 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Brands represented in the regular catalogue for your tier. Each record contains brand_id, name, slug, its parent category, and direct child product types in type[]. Sorted by parent category ID ascending, then brand name A-Z; brands without a parent category appear last. Use brand_id in the catalogue query or slug in /pricelists/{category_slug}. A listed brand or type does not guarantee an active SKU; check the matching pricelist.\n\nBrand yang memiliki produk pada katalog reguler tier Anda. Setiap record berisi brand_id, name, slug, kategori induk pada category, serta tipe produk anak langsung pada type[]. Urutan berdasarkan ID kategori induk naik, lalu nama brand A-Z; brand tanpa kategori induk di akhir. Gunakan brand_id sebagai filter katalog atau slug pada /pricelists/{category_slug}. Brand atau tipe yang terdaftar tidak menjamin SKU aktif; periksa daftar harga terkait.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/pricelists/categories",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "pricelists",
                    "categories"
                  ],
                  "query": []
                }
              },
              "status": "Tier, catalogue or nickname limit exceeded",
              "code": 429,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Too Many Requests\"\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP status is documented', () => pm.expect(Object.keys({\"200\":{\"description\":\"Request succeeded.\",\"headers\":{\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"success\":{\"type\":\"boolean\"},\"data\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/CatalogueBrand\"}}},\"required\":[\"success\",\"data\"]},\"examples\":{\"example\":{\"value\":{\"success\":true,\"data\":[{\"brand_id\":10,\"name\":\"Example brand\",\"slug\":\"example-brand\",\"category\":{\"id\":1,\"name\":\"Games\",\"slug\":\"games\"},\"type\":[{\"id\":11,\"name\":\"Diamonds\",\"slug\":\"example-diamonds\"},{\"id\":12,\"name\":\"Passes\",\"slug\":\"example-passes\"}]}]},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"},\"withoutTypes\":{\"summary\":\"Brand without child types\",\"x-summary-id\":\"Brand tanpa tipe anak\",\"value\":{\"success\":true,\"data\":[{\"brand_id\":20,\"name\":\"Another brand\",\"slug\":\"another-brand\",\"category\":{\"id\":1,\"name\":\"Games\",\"slug\":\"games\"},\"type\":[]}]}},\"withoutParent\":{\"summary\":\"Brand without a parent category\",\"x-summary-id\":\"Brand tanpa kategori induk\",\"value\":{\"success\":true,\"data\":[{\"brand_id\":30,\"name\":\"Uncategorized brand\",\"slug\":\"uncategorized-brand\",\"category\":null,\"type\":[]}]}}}}},\"x-description-id\":\"Request berhasil.\"},\"401\":{\"description\":\"Authentication missing/invalid\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"403\":{\"description\":\"Account/IP forbidden\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Forbidden: H2H API access is not active for this account.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"429\":{\"description\":\"Tier, catalogue or nickname limit exceeded\",\"headers\":{\"Retry-After\":{\"description\":\"Seconds to wait before retrying a rate-limited request\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Too Many Requests\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}}})).to.include(String(pm.response.code)));",
                  "if (pm.response.code >= 200 && pm.response.code < 300) { const result = pm.response.json(); pm.test('Successful response', () => pm.expect(result.success).to.eql(true)); }",
                  "if (pm.response.code === 200) { const brand = pm.response.json().data[0]; if (brand) { pm.environment.set('brand_id', brand.brand_id); pm.environment.set('category_slug', brand.slug); } }"
                ]
              }
            }
          ]
        },
        {
          "name": "Smart catalogue brands",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{api_key}}"
              },
              {
                "key": "X-Secret-Key",
                "value": "{{secret_key}}"
              }
            ],
            "description": "Brands represented in the Smart catalogue for your tier. Each record contains brand_id, name, slug, its parent category, and direct child product types in type[]. Sorted by parent category ID ascending, then brand name A-Z; brands without a parent category appear last. Use brand_id in the catalogue query or slug in /smart-pricelists/{category_slug}. A listed brand or type does not guarantee an active SKU; check the matching pricelist.\n\nBrand yang memiliki produk pada katalog Smart tier Anda. Setiap record berisi brand_id, name, slug, kategori induk pada category, serta tipe produk anak langsung pada type[]. Urutan berdasarkan ID kategori induk naik, lalu nama brand A-Z; brand tanpa kategori induk di akhir. Gunakan brand_id sebagai filter katalog atau slug pada /smart-pricelists/{category_slug}. Brand atau tipe yang terdaftar tidak menjamin SKU aktif; periksa daftar harga terkait.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
            "url": {
              "raw": "{{base_url}}/api/v1/h2h/smart-pricelists/categories",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "h2h",
                "smart-pricelists",
                "categories"
              ],
              "query": []
            }
          },
          "response": [
            {
              "name": "200 example",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Brands represented in the Smart catalogue for your tier. Each record contains brand_id, name, slug, its parent category, and direct child product types in type[]. Sorted by parent category ID ascending, then brand name A-Z; brands without a parent category appear last. Use brand_id in the catalogue query or slug in /smart-pricelists/{category_slug}. A listed brand or type does not guarantee an active SKU; check the matching pricelist.\n\nBrand yang memiliki produk pada katalog Smart tier Anda. Setiap record berisi brand_id, name, slug, kategori induk pada category, serta tipe produk anak langsung pada type[]. Urutan berdasarkan ID kategori induk naik, lalu nama brand A-Z; brand tanpa kategori induk di akhir. Gunakan brand_id sebagai filter katalog atau slug pada /smart-pricelists/{category_slug}. Brand atau tipe yang terdaftar tidak menjamin SKU aktif; periksa daftar harga terkait.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-pricelists/categories",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-pricelists",
                    "categories"
                  ],
                  "query": []
                }
              },
              "status": "Request succeeded.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": [\n    {\n      \"brand_id\": 10,\n      \"name\": \"Example brand\",\n      \"slug\": \"example-brand\",\n      \"category\": {\n        \"id\": 1,\n        \"name\": \"Games\",\n        \"slug\": \"games\"\n      },\n      \"type\": [\n        {\n          \"id\": 11,\n          \"name\": \"Diamonds\",\n          \"slug\": \"example-diamonds\"\n        },\n        {\n          \"id\": 12,\n          \"name\": \"Passes\",\n          \"slug\": \"example-passes\"\n        }\n      ]\n    }\n  ]\n}"
            },
            {
              "name": "200 withoutTypes",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Brands represented in the Smart catalogue for your tier. Each record contains brand_id, name, slug, its parent category, and direct child product types in type[]. Sorted by parent category ID ascending, then brand name A-Z; brands without a parent category appear last. Use brand_id in the catalogue query or slug in /smart-pricelists/{category_slug}. A listed brand or type does not guarantee an active SKU; check the matching pricelist.\n\nBrand yang memiliki produk pada katalog Smart tier Anda. Setiap record berisi brand_id, name, slug, kategori induk pada category, serta tipe produk anak langsung pada type[]. Urutan berdasarkan ID kategori induk naik, lalu nama brand A-Z; brand tanpa kategori induk di akhir. Gunakan brand_id sebagai filter katalog atau slug pada /smart-pricelists/{category_slug}. Brand atau tipe yang terdaftar tidak menjamin SKU aktif; periksa daftar harga terkait.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-pricelists/categories",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-pricelists",
                    "categories"
                  ],
                  "query": []
                }
              },
              "status": "Request succeeded.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": [\n    {\n      \"brand_id\": 20,\n      \"name\": \"Another brand\",\n      \"slug\": \"another-brand\",\n      \"category\": {\n        \"id\": 1,\n        \"name\": \"Games\",\n        \"slug\": \"games\"\n      },\n      \"type\": []\n    }\n  ]\n}"
            },
            {
              "name": "200 withoutParent",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Brands represented in the Smart catalogue for your tier. Each record contains brand_id, name, slug, its parent category, and direct child product types in type[]. Sorted by parent category ID ascending, then brand name A-Z; brands without a parent category appear last. Use brand_id in the catalogue query or slug in /smart-pricelists/{category_slug}. A listed brand or type does not guarantee an active SKU; check the matching pricelist.\n\nBrand yang memiliki produk pada katalog Smart tier Anda. Setiap record berisi brand_id, name, slug, kategori induk pada category, serta tipe produk anak langsung pada type[]. Urutan berdasarkan ID kategori induk naik, lalu nama brand A-Z; brand tanpa kategori induk di akhir. Gunakan brand_id sebagai filter katalog atau slug pada /smart-pricelists/{category_slug}. Brand atau tipe yang terdaftar tidak menjamin SKU aktif; periksa daftar harga terkait.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-pricelists/categories",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-pricelists",
                    "categories"
                  ],
                  "query": []
                }
              },
              "status": "Request succeeded.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": [\n    {\n      \"brand_id\": 30,\n      \"name\": \"Uncategorized brand\",\n      \"slug\": \"uncategorized-brand\",\n      \"category\": null,\n      \"type\": []\n    }\n  ]\n}"
            },
            {
              "name": "401 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Brands represented in the Smart catalogue for your tier. Each record contains brand_id, name, slug, its parent category, and direct child product types in type[]. Sorted by parent category ID ascending, then brand name A-Z; brands without a parent category appear last. Use brand_id in the catalogue query or slug in /smart-pricelists/{category_slug}. A listed brand or type does not guarantee an active SKU; check the matching pricelist.\n\nBrand yang memiliki produk pada katalog Smart tier Anda. Setiap record berisi brand_id, name, slug, kategori induk pada category, serta tipe produk anak langsung pada type[]. Urutan berdasarkan ID kategori induk naik, lalu nama brand A-Z; brand tanpa kategori induk di akhir. Gunakan brand_id sebagai filter katalog atau slug pada /smart-pricelists/{category_slug}. Brand atau tipe yang terdaftar tidak menjamin SKU aktif; periksa daftar harga terkait.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-pricelists/categories",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-pricelists",
                    "categories"
                  ],
                  "query": []
                }
              },
              "status": "Authentication missing/invalid",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"\n}"
            },
            {
              "name": "403 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Brands represented in the Smart catalogue for your tier. Each record contains brand_id, name, slug, its parent category, and direct child product types in type[]. Sorted by parent category ID ascending, then brand name A-Z; brands without a parent category appear last. Use brand_id in the catalogue query or slug in /smart-pricelists/{category_slug}. A listed brand or type does not guarantee an active SKU; check the matching pricelist.\n\nBrand yang memiliki produk pada katalog Smart tier Anda. Setiap record berisi brand_id, name, slug, kategori induk pada category, serta tipe produk anak langsung pada type[]. Urutan berdasarkan ID kategori induk naik, lalu nama brand A-Z; brand tanpa kategori induk di akhir. Gunakan brand_id sebagai filter katalog atau slug pada /smart-pricelists/{category_slug}. Brand atau tipe yang terdaftar tidak menjamin SKU aktif; periksa daftar harga terkait.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-pricelists/categories",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-pricelists",
                    "categories"
                  ],
                  "query": []
                }
              },
              "status": "Account/IP forbidden",
              "code": 403,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Forbidden: H2H API access is not active for this account.\"\n}"
            },
            {
              "name": "429 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Brands represented in the Smart catalogue for your tier. Each record contains brand_id, name, slug, its parent category, and direct child product types in type[]. Sorted by parent category ID ascending, then brand name A-Z; brands without a parent category appear last. Use brand_id in the catalogue query or slug in /smart-pricelists/{category_slug}. A listed brand or type does not guarantee an active SKU; check the matching pricelist.\n\nBrand yang memiliki produk pada katalog Smart tier Anda. Setiap record berisi brand_id, name, slug, kategori induk pada category, serta tipe produk anak langsung pada type[]. Urutan berdasarkan ID kategori induk naik, lalu nama brand A-Z; brand tanpa kategori induk di akhir. Gunakan brand_id sebagai filter katalog atau slug pada /smart-pricelists/{category_slug}. Brand atau tipe yang terdaftar tidak menjamin SKU aktif; periksa daftar harga terkait.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-pricelists/categories",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-pricelists",
                    "categories"
                  ],
                  "query": []
                }
              },
              "status": "Tier, catalogue or nickname limit exceeded",
              "code": 429,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Too Many Requests\"\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP status is documented', () => pm.expect(Object.keys({\"200\":{\"description\":\"Request succeeded.\",\"headers\":{\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"success\":{\"type\":\"boolean\"},\"data\":{\"type\":\"array\",\"items\":{\"$ref\":\"#/components/schemas/CatalogueBrand\"}}},\"required\":[\"success\",\"data\"]},\"examples\":{\"example\":{\"value\":{\"success\":true,\"data\":[{\"brand_id\":10,\"name\":\"Example brand\",\"slug\":\"example-brand\",\"category\":{\"id\":1,\"name\":\"Games\",\"slug\":\"games\"},\"type\":[{\"id\":11,\"name\":\"Diamonds\",\"slug\":\"example-diamonds\"},{\"id\":12,\"name\":\"Passes\",\"slug\":\"example-passes\"}]}]},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"},\"withoutTypes\":{\"summary\":\"Brand without child types\",\"x-summary-id\":\"Brand tanpa tipe anak\",\"value\":{\"success\":true,\"data\":[{\"brand_id\":20,\"name\":\"Another brand\",\"slug\":\"another-brand\",\"category\":{\"id\":1,\"name\":\"Games\",\"slug\":\"games\"},\"type\":[]}]}},\"withoutParent\":{\"summary\":\"Brand without a parent category\",\"x-summary-id\":\"Brand tanpa kategori induk\",\"value\":{\"success\":true,\"data\":[{\"brand_id\":30,\"name\":\"Uncategorized brand\",\"slug\":\"uncategorized-brand\",\"category\":null,\"type\":[]}]}}}}},\"x-description-id\":\"Request berhasil.\"},\"401\":{\"description\":\"Authentication missing/invalid\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"403\":{\"description\":\"Account/IP forbidden\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Forbidden: H2H API access is not active for this account.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"429\":{\"description\":\"Tier, catalogue or nickname limit exceeded\",\"headers\":{\"Retry-After\":{\"description\":\"Seconds to wait before retrying a rate-limited request\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Too Many Requests\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}}})).to.include(String(pm.response.code)));",
                  "if (pm.response.code >= 200 && pm.response.code < 300) { const result = pm.response.json(); pm.test('Successful response', () => pm.expect(result.success).to.eql(true)); }",
                  "if (pm.response.code === 200) { const brand = pm.response.json().data[0]; if (brand) { pm.environment.set('brand_id', brand.brand_id); pm.environment.set('category_slug', brand.slug); } }"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "transactions",
      "item": [
        {
          "name": "Create regular order — Regular order (sandbox)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{api_key}}"
              },
              {
                "key": "X-Secret-Key",
                "value": "{{secret_key}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "description": "Create one regular order using an exact regular sku_code. HTTP 201 acknowledges receipt; read data.status for fulfillment. Repeat the same request with the same buyer_trx_id if the response is uncertain. Use a new reference for a new order. Optional max_price sets your maximum final charge and the full limit is held upfront. Unused hold is refunded on success; failed orders receive a full refund.\n\nBuat satu pesanan memakai sku_code reguler. HTTP 201 berarti pesanan diterima; baca data.status untuk hasilnya. Jika respons belum pasti, ulangi request yang sama dengan buyer_trx_id yang sama. Gunakan referensi baru untuk pesanan baru. max_price opsional membatasi biaya akhir dan seluruh batas ditahan di awal. Sisa saldo dikembalikan saat sukses; pesanan gagal mendapat refund penuh.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
            "url": {
              "raw": "{{base_url}}/api/v1/h2h/transaction",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "h2h",
                "transaction"
              ],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "200 example",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one regular order using an exact regular sku_code. HTTP 201 acknowledges receipt; read data.status for fulfillment. Repeat the same request with the same buyer_trx_id if the response is uncertain. Use a new reference for a new order. Optional max_price sets your maximum final charge and the full limit is held upfront. Unused hold is refunded on success; failed orders receive a full refund.\n\nBuat satu pesanan memakai sku_code reguler. HTTP 201 berarti pesanan diterima; baca data.status untuk hasilnya. Jika respons belum pasti, ulangi request yang sama dengan buyer_trx_id yang sama. Gunakan referensi baru untuk pesanan baru. max_price opsional membatasi biaya akhir dan seluruh batas ditahan di awal. Sisa saldo dikembalikan saat sukses; pesanan gagal mendapat refund penuh.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Existing buyer_trx_id: existing transaction, no extra debit",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"buyer_trx_id\": \"example-order-001\",\n    \"sku_code\": \"EXAMPLE-10\",\n    \"product_name\": \"Example product\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": \"1234\",\n    \"price\": 1000,\n    \"status\": \"processing\",\n    \"serial_number\": \"\",\n    \"webhook_delivery_status\": \"pending\",\n    \"is_sandbox\": true,\n    \"created_at\": \"2026-10-02T03:00:00+00:00\"\n  }\n}"
            },
            {
              "name": "200 with-max-price",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one regular order using an exact regular sku_code. HTTP 201 acknowledges receipt; read data.status for fulfillment. Repeat the same request with the same buyer_trx_id if the response is uncertain. Use a new reference for a new order. Optional max_price sets your maximum final charge and the full limit is held upfront. Unused hold is refunded on success; failed orders receive a full refund.\n\nBuat satu pesanan memakai sku_code reguler. HTTP 201 berarti pesanan diterima; baca data.status untuk hasilnya. Jika respons belum pasti, ulangi request yang sama dengan buyer_trx_id yang sama. Gunakan referensi baru untuk pesanan baru. max_price opsional membatasi biaya akhir dan seluruh batas ditahan di awal. Sisa saldo dikembalikan saat sukses; pesanan gagal mendapat refund penuh.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Existing buyer_trx_id: existing transaction, no extra debit",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"buyer_trx_id\": \"example-order-001\",\n    \"sku_code\": \"EXAMPLE-10\",\n    \"product_name\": \"Example product\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": \"1234\",\n    \"price\": 1100,\n    \"status\": \"processing\",\n    \"serial_number\": \"\",\n    \"webhook_delivery_status\": \"pending\",\n    \"is_sandbox\": true,\n    \"created_at\": \"2026-10-02T03:00:00+00:00\",\n    \"max_price\": 1100\n  }\n}"
            },
            {
              "name": "201 example",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one regular order using an exact regular sku_code. HTTP 201 acknowledges receipt; read data.status for fulfillment. Repeat the same request with the same buyer_trx_id if the response is uncertain. Use a new reference for a new order. Optional max_price sets your maximum final charge and the full limit is held upfront. Unused hold is refunded on success; failed orders receive a full refund.\n\nBuat satu pesanan memakai sku_code reguler. HTTP 201 berarti pesanan diterima; baca data.status untuk hasilnya. Jika respons belum pasti, ulangi request yang sama dengan buyer_trx_id yang sama. Gunakan referensi baru untuk pesanan baru. max_price opsional membatasi biaya akhir dan seluruh batas ditahan di awal. Sisa saldo dikembalikan saat sukses; pesanan gagal mendapat refund penuh.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Request accepted. Read data.status for the order result.",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"message\": \"Transaction successfully created and queued.\",\n  \"data\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"buyer_trx_id\": \"example-order-001\",\n    \"sku_code\": \"EXAMPLE-10\",\n    \"product_name\": \"Example product\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": \"1234\",\n    \"price\": 1000,\n    \"status\": \"processing\",\n    \"serial_number\": \"\",\n    \"webhook_delivery_status\": \"pending\",\n    \"is_sandbox\": true,\n    \"created_at\": \"2026-10-02T03:00:00+00:00\"\n  }\n}"
            },
            {
              "name": "201 with-max-price",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one regular order using an exact regular sku_code. HTTP 201 acknowledges receipt; read data.status for fulfillment. Repeat the same request with the same buyer_trx_id if the response is uncertain. Use a new reference for a new order. Optional max_price sets your maximum final charge and the full limit is held upfront. Unused hold is refunded on success; failed orders receive a full refund.\n\nBuat satu pesanan memakai sku_code reguler. HTTP 201 berarti pesanan diterima; baca data.status untuk hasilnya. Jika respons belum pasti, ulangi request yang sama dengan buyer_trx_id yang sama. Gunakan referensi baru untuk pesanan baru. max_price opsional membatasi biaya akhir dan seluruh batas ditahan di awal. Sisa saldo dikembalikan saat sukses; pesanan gagal mendapat refund penuh.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Request accepted. Read data.status for the order result.",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"message\": \"Transaction successfully created and queued.\",\n  \"data\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"buyer_trx_id\": \"example-order-001\",\n    \"sku_code\": \"EXAMPLE-10\",\n    \"product_name\": \"Example product\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": \"1234\",\n    \"price\": 1100,\n    \"status\": \"processing\",\n    \"serial_number\": \"\",\n    \"webhook_delivery_status\": \"pending\",\n    \"is_sandbox\": true,\n    \"created_at\": \"2026-10-02T03:00:00+00:00\",\n    \"max_price\": 1100\n  }\n}"
            },
            {
              "name": "401 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one regular order using an exact regular sku_code. HTTP 201 acknowledges receipt; read data.status for fulfillment. Repeat the same request with the same buyer_trx_id if the response is uncertain. Use a new reference for a new order. Optional max_price sets your maximum final charge and the full limit is held upfront. Unused hold is refunded on success; failed orders receive a full refund.\n\nBuat satu pesanan memakai sku_code reguler. HTTP 201 berarti pesanan diterima; baca data.status untuk hasilnya. Jika respons belum pasti, ulangi request yang sama dengan buyer_trx_id yang sama. Gunakan referensi baru untuk pesanan baru. max_price opsional membatasi biaya akhir dan seluruh batas ditahan di awal. Sisa saldo dikembalikan saat sukses; pesanan gagal mendapat refund penuh.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Authentication missing/invalid",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"\n}"
            },
            {
              "name": "403 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one regular order using an exact regular sku_code. HTTP 201 acknowledges receipt; read data.status for fulfillment. Repeat the same request with the same buyer_trx_id if the response is uncertain. Use a new reference for a new order. Optional max_price sets your maximum final charge and the full limit is held upfront. Unused hold is refunded on success; failed orders receive a full refund.\n\nBuat satu pesanan memakai sku_code reguler. HTTP 201 berarti pesanan diterima; baca data.status untuk hasilnya. Jika respons belum pasti, ulangi request yang sama dengan buyer_trx_id yang sama. Gunakan referensi baru untuk pesanan baru. max_price opsional membatasi biaya akhir dan seluruh batas ditahan di awal. Sisa saldo dikembalikan saat sukses; pesanan gagal mendapat refund penuh.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Account/IP forbidden",
              "code": 403,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Forbidden: H2H API access is not active for this account.\"\n}"
            },
            {
              "name": "422 validation",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one regular order using an exact regular sku_code. HTTP 201 acknowledges receipt; read data.status for fulfillment. Repeat the same request with the same buyer_trx_id if the response is uncertain. Use a new reference for a new order. Optional max_price sets your maximum final charge and the full limit is held upfront. Unused hold is refunded on success; failed orders receive a full refund.\n\nBuat satu pesanan memakai sku_code reguler. HTTP 201 berarti pesanan diterima; baca data.status untuk hasilnya. Jika respons belum pasti, ulangi request yang sama dengan buyer_trx_id yang sama. Gunakan referensi baru untuk pesanan baru. max_price opsional membatasi biaya akhir dan seluruh batas ditahan di awal. Sisa saldo dikembalikan saat sukses; pesanan gagal mendapat refund penuh.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Validation, product unavailable or insufficient order balance",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"message\": \"The customer target field is required.\",\n  \"errors\": {\n    \"customer_target\": [\n      \"The customer target field is required.\"\n    ]\n  }\n}"
            },
            {
              "name": "422 max-price-too-low",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one regular order using an exact regular sku_code. HTTP 201 acknowledges receipt; read data.status for fulfillment. Repeat the same request with the same buyer_trx_id if the response is uncertain. Use a new reference for a new order. Optional max_price sets your maximum final charge and the full limit is held upfront. Unused hold is refunded on success; failed orders receive a full refund.\n\nBuat satu pesanan memakai sku_code reguler. HTTP 201 berarti pesanan diterima; baca data.status untuk hasilnya. Jika respons belum pasti, ulangi request yang sama dengan buyer_trx_id yang sama. Gunakan referensi baru untuk pesanan baru. max_price opsional membatasi biaya akhir dan seluruh batas ditahan di awal. Sisa saldo dikembalikan saat sukses; pesanan gagal mendapat refund penuh.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Validation, product unavailable or insufficient order balance",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error_code\": \"MAX_PRICE_TOO_LOW\",\n  \"message\": \"max_price is below the current H2H price for your tier. Please refresh the price list.\"\n}"
            },
            {
              "name": "429 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one regular order using an exact regular sku_code. HTTP 201 acknowledges receipt; read data.status for fulfillment. Repeat the same request with the same buyer_trx_id if the response is uncertain. Use a new reference for a new order. Optional max_price sets your maximum final charge and the full limit is held upfront. Unused hold is refunded on success; failed orders receive a full refund.\n\nBuat satu pesanan memakai sku_code reguler. HTTP 201 berarti pesanan diterima; baca data.status untuk hasilnya. Jika respons belum pasti, ulangi request yang sama dengan buyer_trx_id yang sama. Gunakan referensi baru untuk pesanan baru. max_price opsional membatasi biaya akhir dan seluruh batas ditahan di awal. Sisa saldo dikembalikan saat sukses; pesanan gagal mendapat refund penuh.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Tier, catalogue or nickname limit exceeded",
              "code": 429,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Too Many Requests\"\n}"
            },
            {
              "name": "500 unavailable",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one regular order using an exact regular sku_code. HTTP 201 acknowledges receipt; read data.status for fulfillment. Repeat the same request with the same buyer_trx_id if the response is uncertain. Use a new reference for a new order. Optional max_price sets your maximum final charge and the full limit is held upfront. Unused hold is refunded on success; failed orders receive a full refund.\n\nBuat satu pesanan memakai sku_code reguler. HTTP 201 berarti pesanan diterima; baca data.status untuk hasilnya. Jika respons belum pasti, ulangi request yang sama dengan buyer_trx_id yang sama. Gunakan referensi baru untuk pesanan baru. max_price opsional membatasi biaya akhir dan seluruh batas ditahan di awal. Sisa saldo dikembalikan saat sukses; pesanan gagal mendapat refund penuh.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Request outcome is uncertain; check the order by buyer_trx_id before retrying.",
              "code": 500,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Unable to process this request. Check the order using buyer_trx_id before retrying with the same reference.\"\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP status is documented', () => pm.expect(Object.keys({\"200\":{\"description\":\"Existing buyer_trx_id: existing transaction, no extra debit\",\"headers\":{\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"success\":{\"type\":\"boolean\",\"const\":true},\"data\":{\"$ref\":\"#/components/schemas/Transaction\"}},\"required\":[\"success\",\"data\"]},\"examples\":{\"example\":{\"value\":{\"success\":true,\"data\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"buyer_trx_id\":\"example-order-001\",\"sku_code\":\"EXAMPLE-10\",\"product_name\":\"Example product\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"price\":1000,\"status\":\"processing\",\"serial_number\":\"\",\"webhook_delivery_status\":\"pending\",\"is_sandbox\":true,\"created_at\":\"2026-10-02T03:00:00+00:00\"}},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"},\"with-max-price\":{\"value\":{\"success\":true,\"data\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"buyer_trx_id\":\"example-order-001\",\"sku_code\":\"EXAMPLE-10\",\"product_name\":\"Example product\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"price\":1100,\"status\":\"processing\",\"serial_number\":\"\",\"webhook_delivery_status\":\"pending\",\"is_sandbox\":true,\"created_at\":\"2026-10-02T03:00:00+00:00\",\"max_price\":1100}},\"x-summary-id\":\"Dengan batas max_price\",\"summary\":\"With max_price limit\"}}}}},\"201\":{\"description\":\"Request accepted. Read data.status for the order result.\",\"headers\":{\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"success\":{\"type\":\"boolean\",\"const\":true},\"data\":{\"$ref\":\"#/components/schemas/Transaction\"}},\"required\":[\"success\",\"data\"]},\"examples\":{\"example\":{\"value\":{\"success\":true,\"message\":\"Transaction successfully created and queued.\",\"data\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"buyer_trx_id\":\"example-order-001\",\"sku_code\":\"EXAMPLE-10\",\"product_name\":\"Example product\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"price\":1000,\"status\":\"processing\",\"serial_number\":\"\",\"webhook_delivery_status\":\"pending\",\"is_sandbox\":true,\"created_at\":\"2026-10-02T03:00:00+00:00\"}},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"},\"with-max-price\":{\"value\":{\"success\":true,\"message\":\"Transaction successfully created and queued.\",\"data\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"buyer_trx_id\":\"example-order-001\",\"sku_code\":\"EXAMPLE-10\",\"product_name\":\"Example product\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"price\":1100,\"status\":\"processing\",\"serial_number\":\"\",\"webhook_delivery_status\":\"pending\",\"is_sandbox\":true,\"created_at\":\"2026-10-02T03:00:00+00:00\",\"max_price\":1100}},\"x-summary-id\":\"Dengan batas max_price\",\"summary\":\"With max_price limit\"}}}},\"x-description-id\":\"Request diterima. Baca data.status untuk hasil pesanan.\"},\"401\":{\"description\":\"Authentication missing/invalid\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"403\":{\"description\":\"Account/IP forbidden\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Forbidden: H2H API access is not active for this account.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"422\":{\"description\":\"Validation, product unavailable or insufficient order balance\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"validation\":{\"value\":{\"message\":\"The customer target field is required.\",\"errors\":{\"customer_target\":[\"The customer target field is required.\"]}},\"x-summary-id\":\"Parameter tidak valid\",\"summary\":\"Invalid parameters\"},\"max-price-too-low\":{\"value\":{\"success\":false,\"error_code\":\"MAX_PRICE_TOO_LOW\",\"message\":\"max_price is below the current H2H price for your tier. Please refresh the price list.\"},\"x-summary-id\":\"Batas harga terlalu rendah\",\"summary\":\"Price limit too low\"}}}}},\"429\":{\"description\":\"Tier, catalogue or nickname limit exceeded\",\"headers\":{\"Retry-After\":{\"description\":\"Seconds to wait before retrying a rate-limited request\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Too Many Requests\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"500\":{\"description\":\"Request outcome is uncertain; check the order by buyer_trx_id before retrying.\",\"x-description-id\":\"Hasil request belum pasti; cek pesanan memakai buyer_trx_id sebelum retry.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"unavailable\":{\"value\":{\"success\":false,\"message\":\"Unable to process this request. Check the order using buyer_trx_id before retrying with the same reference.\"},\"x-summary-id\":\"Produk belum tersedia\",\"summary\":\"Product unavailable\"}}}}}})).to.include(String(pm.response.code)));",
                  "if (pm.response.code >= 200 && pm.response.code < 300) { const result = pm.response.json(); pm.test('Successful response', () => pm.expect(result.success).to.eql(true)); }",
                  "if ([200,201].includes(pm.response.code)) { const data = pm.response.json().data; pm.test('Created ID exists', () => pm.expect(data.id).to.be.a('string')); pm.environment.set('transaction_id', data.id); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Create regular order — With price limit (sandbox)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{api_key}}"
              },
              {
                "key": "X-Secret-Key",
                "value": "{{secret_key}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "description": "Create one regular order using an exact regular sku_code. HTTP 201 acknowledges receipt; read data.status for fulfillment. Repeat the same request with the same buyer_trx_id if the response is uncertain. Use a new reference for a new order. Optional max_price sets your maximum final charge and the full limit is held upfront. Unused hold is refunded on success; failed orders receive a full refund.\n\nBuat satu pesanan memakai sku_code reguler. HTTP 201 berarti pesanan diterima; baca data.status untuk hasilnya. Jika respons belum pasti, ulangi request yang sama dengan buyer_trx_id yang sama. Gunakan referensi baru untuk pesanan baru. max_price opsional membatasi biaya akhir dan seluruh batas ditahan di awal. Sisa saldo dikembalikan saat sukses; pesanan gagal mendapat refund penuh.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
            "url": {
              "raw": "{{base_url}}/api/v1/h2h/transaction",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "h2h",
                "transaction"
              ],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"max_price\": {{max_price}}\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "200 example",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one regular order using an exact regular sku_code. HTTP 201 acknowledges receipt; read data.status for fulfillment. Repeat the same request with the same buyer_trx_id if the response is uncertain. Use a new reference for a new order. Optional max_price sets your maximum final charge and the full limit is held upfront. Unused hold is refunded on success; failed orders receive a full refund.\n\nBuat satu pesanan memakai sku_code reguler. HTTP 201 berarti pesanan diterima; baca data.status untuk hasilnya. Jika respons belum pasti, ulangi request yang sama dengan buyer_trx_id yang sama. Gunakan referensi baru untuk pesanan baru. max_price opsional membatasi biaya akhir dan seluruh batas ditahan di awal. Sisa saldo dikembalikan saat sukses; pesanan gagal mendapat refund penuh.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"max_price\": {{max_price}}\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Existing buyer_trx_id: existing transaction, no extra debit",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"buyer_trx_id\": \"example-order-001\",\n    \"sku_code\": \"EXAMPLE-10\",\n    \"product_name\": \"Example product\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": \"1234\",\n    \"price\": 1000,\n    \"status\": \"processing\",\n    \"serial_number\": \"\",\n    \"webhook_delivery_status\": \"pending\",\n    \"is_sandbox\": true,\n    \"created_at\": \"2026-10-02T03:00:00+00:00\"\n  }\n}"
            },
            {
              "name": "200 with-max-price",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one regular order using an exact regular sku_code. HTTP 201 acknowledges receipt; read data.status for fulfillment. Repeat the same request with the same buyer_trx_id if the response is uncertain. Use a new reference for a new order. Optional max_price sets your maximum final charge and the full limit is held upfront. Unused hold is refunded on success; failed orders receive a full refund.\n\nBuat satu pesanan memakai sku_code reguler. HTTP 201 berarti pesanan diterima; baca data.status untuk hasilnya. Jika respons belum pasti, ulangi request yang sama dengan buyer_trx_id yang sama. Gunakan referensi baru untuk pesanan baru. max_price opsional membatasi biaya akhir dan seluruh batas ditahan di awal. Sisa saldo dikembalikan saat sukses; pesanan gagal mendapat refund penuh.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"max_price\": {{max_price}}\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Existing buyer_trx_id: existing transaction, no extra debit",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"buyer_trx_id\": \"example-order-001\",\n    \"sku_code\": \"EXAMPLE-10\",\n    \"product_name\": \"Example product\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": \"1234\",\n    \"price\": 1100,\n    \"status\": \"processing\",\n    \"serial_number\": \"\",\n    \"webhook_delivery_status\": \"pending\",\n    \"is_sandbox\": true,\n    \"created_at\": \"2026-10-02T03:00:00+00:00\",\n    \"max_price\": 1100\n  }\n}"
            },
            {
              "name": "201 example",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one regular order using an exact regular sku_code. HTTP 201 acknowledges receipt; read data.status for fulfillment. Repeat the same request with the same buyer_trx_id if the response is uncertain. Use a new reference for a new order. Optional max_price sets your maximum final charge and the full limit is held upfront. Unused hold is refunded on success; failed orders receive a full refund.\n\nBuat satu pesanan memakai sku_code reguler. HTTP 201 berarti pesanan diterima; baca data.status untuk hasilnya. Jika respons belum pasti, ulangi request yang sama dengan buyer_trx_id yang sama. Gunakan referensi baru untuk pesanan baru. max_price opsional membatasi biaya akhir dan seluruh batas ditahan di awal. Sisa saldo dikembalikan saat sukses; pesanan gagal mendapat refund penuh.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"max_price\": {{max_price}}\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Request accepted. Read data.status for the order result.",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"message\": \"Transaction successfully created and queued.\",\n  \"data\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"buyer_trx_id\": \"example-order-001\",\n    \"sku_code\": \"EXAMPLE-10\",\n    \"product_name\": \"Example product\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": \"1234\",\n    \"price\": 1000,\n    \"status\": \"processing\",\n    \"serial_number\": \"\",\n    \"webhook_delivery_status\": \"pending\",\n    \"is_sandbox\": true,\n    \"created_at\": \"2026-10-02T03:00:00+00:00\"\n  }\n}"
            },
            {
              "name": "201 with-max-price",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one regular order using an exact regular sku_code. HTTP 201 acknowledges receipt; read data.status for fulfillment. Repeat the same request with the same buyer_trx_id if the response is uncertain. Use a new reference for a new order. Optional max_price sets your maximum final charge and the full limit is held upfront. Unused hold is refunded on success; failed orders receive a full refund.\n\nBuat satu pesanan memakai sku_code reguler. HTTP 201 berarti pesanan diterima; baca data.status untuk hasilnya. Jika respons belum pasti, ulangi request yang sama dengan buyer_trx_id yang sama. Gunakan referensi baru untuk pesanan baru. max_price opsional membatasi biaya akhir dan seluruh batas ditahan di awal. Sisa saldo dikembalikan saat sukses; pesanan gagal mendapat refund penuh.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"max_price\": {{max_price}}\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Request accepted. Read data.status for the order result.",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"message\": \"Transaction successfully created and queued.\",\n  \"data\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"buyer_trx_id\": \"example-order-001\",\n    \"sku_code\": \"EXAMPLE-10\",\n    \"product_name\": \"Example product\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": \"1234\",\n    \"price\": 1100,\n    \"status\": \"processing\",\n    \"serial_number\": \"\",\n    \"webhook_delivery_status\": \"pending\",\n    \"is_sandbox\": true,\n    \"created_at\": \"2026-10-02T03:00:00+00:00\",\n    \"max_price\": 1100\n  }\n}"
            },
            {
              "name": "401 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one regular order using an exact regular sku_code. HTTP 201 acknowledges receipt; read data.status for fulfillment. Repeat the same request with the same buyer_trx_id if the response is uncertain. Use a new reference for a new order. Optional max_price sets your maximum final charge and the full limit is held upfront. Unused hold is refunded on success; failed orders receive a full refund.\n\nBuat satu pesanan memakai sku_code reguler. HTTP 201 berarti pesanan diterima; baca data.status untuk hasilnya. Jika respons belum pasti, ulangi request yang sama dengan buyer_trx_id yang sama. Gunakan referensi baru untuk pesanan baru. max_price opsional membatasi biaya akhir dan seluruh batas ditahan di awal. Sisa saldo dikembalikan saat sukses; pesanan gagal mendapat refund penuh.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"max_price\": {{max_price}}\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Authentication missing/invalid",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"\n}"
            },
            {
              "name": "403 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one regular order using an exact regular sku_code. HTTP 201 acknowledges receipt; read data.status for fulfillment. Repeat the same request with the same buyer_trx_id if the response is uncertain. Use a new reference for a new order. Optional max_price sets your maximum final charge and the full limit is held upfront. Unused hold is refunded on success; failed orders receive a full refund.\n\nBuat satu pesanan memakai sku_code reguler. HTTP 201 berarti pesanan diterima; baca data.status untuk hasilnya. Jika respons belum pasti, ulangi request yang sama dengan buyer_trx_id yang sama. Gunakan referensi baru untuk pesanan baru. max_price opsional membatasi biaya akhir dan seluruh batas ditahan di awal. Sisa saldo dikembalikan saat sukses; pesanan gagal mendapat refund penuh.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"max_price\": {{max_price}}\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Account/IP forbidden",
              "code": 403,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Forbidden: H2H API access is not active for this account.\"\n}"
            },
            {
              "name": "422 validation",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one regular order using an exact regular sku_code. HTTP 201 acknowledges receipt; read data.status for fulfillment. Repeat the same request with the same buyer_trx_id if the response is uncertain. Use a new reference for a new order. Optional max_price sets your maximum final charge and the full limit is held upfront. Unused hold is refunded on success; failed orders receive a full refund.\n\nBuat satu pesanan memakai sku_code reguler. HTTP 201 berarti pesanan diterima; baca data.status untuk hasilnya. Jika respons belum pasti, ulangi request yang sama dengan buyer_trx_id yang sama. Gunakan referensi baru untuk pesanan baru. max_price opsional membatasi biaya akhir dan seluruh batas ditahan di awal. Sisa saldo dikembalikan saat sukses; pesanan gagal mendapat refund penuh.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"max_price\": {{max_price}}\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Validation, product unavailable or insufficient order balance",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"message\": \"The customer target field is required.\",\n  \"errors\": {\n    \"customer_target\": [\n      \"The customer target field is required.\"\n    ]\n  }\n}"
            },
            {
              "name": "422 max-price-too-low",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one regular order using an exact regular sku_code. HTTP 201 acknowledges receipt; read data.status for fulfillment. Repeat the same request with the same buyer_trx_id if the response is uncertain. Use a new reference for a new order. Optional max_price sets your maximum final charge and the full limit is held upfront. Unused hold is refunded on success; failed orders receive a full refund.\n\nBuat satu pesanan memakai sku_code reguler. HTTP 201 berarti pesanan diterima; baca data.status untuk hasilnya. Jika respons belum pasti, ulangi request yang sama dengan buyer_trx_id yang sama. Gunakan referensi baru untuk pesanan baru. max_price opsional membatasi biaya akhir dan seluruh batas ditahan di awal. Sisa saldo dikembalikan saat sukses; pesanan gagal mendapat refund penuh.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"max_price\": {{max_price}}\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Validation, product unavailable or insufficient order balance",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error_code\": \"MAX_PRICE_TOO_LOW\",\n  \"message\": \"max_price is below the current H2H price for your tier. Please refresh the price list.\"\n}"
            },
            {
              "name": "429 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one regular order using an exact regular sku_code. HTTP 201 acknowledges receipt; read data.status for fulfillment. Repeat the same request with the same buyer_trx_id if the response is uncertain. Use a new reference for a new order. Optional max_price sets your maximum final charge and the full limit is held upfront. Unused hold is refunded on success; failed orders receive a full refund.\n\nBuat satu pesanan memakai sku_code reguler. HTTP 201 berarti pesanan diterima; baca data.status untuk hasilnya. Jika respons belum pasti, ulangi request yang sama dengan buyer_trx_id yang sama. Gunakan referensi baru untuk pesanan baru. max_price opsional membatasi biaya akhir dan seluruh batas ditahan di awal. Sisa saldo dikembalikan saat sukses; pesanan gagal mendapat refund penuh.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"max_price\": {{max_price}}\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Tier, catalogue or nickname limit exceeded",
              "code": 429,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Too Many Requests\"\n}"
            },
            {
              "name": "500 unavailable",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one regular order using an exact regular sku_code. HTTP 201 acknowledges receipt; read data.status for fulfillment. Repeat the same request with the same buyer_trx_id if the response is uncertain. Use a new reference for a new order. Optional max_price sets your maximum final charge and the full limit is held upfront. Unused hold is refunded on success; failed orders receive a full refund.\n\nBuat satu pesanan memakai sku_code reguler. HTTP 201 berarti pesanan diterima; baca data.status untuk hasilnya. Jika respons belum pasti, ulangi request yang sama dengan buyer_trx_id yang sama. Gunakan referensi baru untuk pesanan baru. max_price opsional membatasi biaya akhir dan seluruh batas ditahan di awal. Sisa saldo dikembalikan saat sukses; pesanan gagal mendapat refund penuh.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"max_price\": {{max_price}}\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Request outcome is uncertain; check the order by buyer_trx_id before retrying.",
              "code": 500,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Unable to process this request. Check the order using buyer_trx_id before retrying with the same reference.\"\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP status is documented', () => pm.expect(Object.keys({\"200\":{\"description\":\"Existing buyer_trx_id: existing transaction, no extra debit\",\"headers\":{\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"success\":{\"type\":\"boolean\",\"const\":true},\"data\":{\"$ref\":\"#/components/schemas/Transaction\"}},\"required\":[\"success\",\"data\"]},\"examples\":{\"example\":{\"value\":{\"success\":true,\"data\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"buyer_trx_id\":\"example-order-001\",\"sku_code\":\"EXAMPLE-10\",\"product_name\":\"Example product\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"price\":1000,\"status\":\"processing\",\"serial_number\":\"\",\"webhook_delivery_status\":\"pending\",\"is_sandbox\":true,\"created_at\":\"2026-10-02T03:00:00+00:00\"}},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"},\"with-max-price\":{\"value\":{\"success\":true,\"data\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"buyer_trx_id\":\"example-order-001\",\"sku_code\":\"EXAMPLE-10\",\"product_name\":\"Example product\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"price\":1100,\"status\":\"processing\",\"serial_number\":\"\",\"webhook_delivery_status\":\"pending\",\"is_sandbox\":true,\"created_at\":\"2026-10-02T03:00:00+00:00\",\"max_price\":1100}},\"x-summary-id\":\"Dengan batas max_price\",\"summary\":\"With max_price limit\"}}}}},\"201\":{\"description\":\"Request accepted. Read data.status for the order result.\",\"headers\":{\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"success\":{\"type\":\"boolean\",\"const\":true},\"data\":{\"$ref\":\"#/components/schemas/Transaction\"}},\"required\":[\"success\",\"data\"]},\"examples\":{\"example\":{\"value\":{\"success\":true,\"message\":\"Transaction successfully created and queued.\",\"data\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"buyer_trx_id\":\"example-order-001\",\"sku_code\":\"EXAMPLE-10\",\"product_name\":\"Example product\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"price\":1000,\"status\":\"processing\",\"serial_number\":\"\",\"webhook_delivery_status\":\"pending\",\"is_sandbox\":true,\"created_at\":\"2026-10-02T03:00:00+00:00\"}},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"},\"with-max-price\":{\"value\":{\"success\":true,\"message\":\"Transaction successfully created and queued.\",\"data\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"buyer_trx_id\":\"example-order-001\",\"sku_code\":\"EXAMPLE-10\",\"product_name\":\"Example product\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"price\":1100,\"status\":\"processing\",\"serial_number\":\"\",\"webhook_delivery_status\":\"pending\",\"is_sandbox\":true,\"created_at\":\"2026-10-02T03:00:00+00:00\",\"max_price\":1100}},\"x-summary-id\":\"Dengan batas max_price\",\"summary\":\"With max_price limit\"}}}},\"x-description-id\":\"Request diterima. Baca data.status untuk hasil pesanan.\"},\"401\":{\"description\":\"Authentication missing/invalid\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"403\":{\"description\":\"Account/IP forbidden\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Forbidden: H2H API access is not active for this account.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"422\":{\"description\":\"Validation, product unavailable or insufficient order balance\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"validation\":{\"value\":{\"message\":\"The customer target field is required.\",\"errors\":{\"customer_target\":[\"The customer target field is required.\"]}},\"x-summary-id\":\"Parameter tidak valid\",\"summary\":\"Invalid parameters\"},\"max-price-too-low\":{\"value\":{\"success\":false,\"error_code\":\"MAX_PRICE_TOO_LOW\",\"message\":\"max_price is below the current H2H price for your tier. Please refresh the price list.\"},\"x-summary-id\":\"Batas harga terlalu rendah\",\"summary\":\"Price limit too low\"}}}}},\"429\":{\"description\":\"Tier, catalogue or nickname limit exceeded\",\"headers\":{\"Retry-After\":{\"description\":\"Seconds to wait before retrying a rate-limited request\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Too Many Requests\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"500\":{\"description\":\"Request outcome is uncertain; check the order by buyer_trx_id before retrying.\",\"x-description-id\":\"Hasil request belum pasti; cek pesanan memakai buyer_trx_id sebelum retry.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"unavailable\":{\"value\":{\"success\":false,\"message\":\"Unable to process this request. Check the order using buyer_trx_id before retrying with the same reference.\"},\"x-summary-id\":\"Produk belum tersedia\",\"summary\":\"Product unavailable\"}}}}}})).to.include(String(pm.response.code)));",
                  "if (pm.response.code >= 200 && pm.response.code < 300) { const result = pm.response.json(); pm.test('Successful response', () => pm.expect(result.success).to.eql(true)); }",
                  "if ([200,201].includes(pm.response.code)) { const data = pm.response.json().data; pm.test('Created ID exists', () => pm.expect(data.id).to.be.a('string')); pm.environment.set('transaction_id', data.id); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Create Smart Order",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{api_key}}"
              },
              {
                "key": "X-Secret-Key",
                "value": "{{secret_key}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "description": "Create one Smart order using smart_sku_code as sku_code and max_bid as your budget. The whole budget is held upfront. The successful final charge never exceeds max_bid; unused hold is returned. Failed orders receive a full refund. For PROVIDER_PRICE_CHANGED, refresh the catalogue and only place a new order after the previous order is final.\n\nBuat satu pesanan Smart dengan smart_sku_code sebagai sku_code dan max_bid sebagai anggaran. Seluruh anggaran ditahan di awal. Biaya akhir pesanan sukses tidak melebihi max_bid; sisa saldo dikembalikan. Pesanan gagal mendapat refund penuh. Untuk PROVIDER_PRICE_CHANGED, perbarui katalog dan buat pesanan baru setelah pesanan sebelumnya final.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
            "url": {
              "raw": "{{base_url}}/api/v1/h2h/smart-transaction",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "h2h",
                "smart-transaction"
              ],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sku_code\": \"{{smart_sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{smart_buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"max_bid\": {{max_bid}}\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "200 example",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one Smart order using smart_sku_code as sku_code and max_bid as your budget. The whole budget is held upfront. The successful final charge never exceeds max_bid; unused hold is returned. Failed orders receive a full refund. For PROVIDER_PRICE_CHANGED, refresh the catalogue and only place a new order after the previous order is final.\n\nBuat satu pesanan Smart dengan smart_sku_code sebagai sku_code dan max_bid sebagai anggaran. Seluruh anggaran ditahan di awal. Biaya akhir pesanan sukses tidak melebihi max_bid; sisa saldo dikembalikan. Pesanan gagal mendapat refund penuh. Untuk PROVIDER_PRICE_CHANGED, perbarui katalog dan buat pesanan baru setelah pesanan sebelumnya final.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{smart_sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{smart_buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"max_bid\": {{max_bid}}\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Existing buyer_trx_id: existing transaction, no extra debit",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"buyer_trx_id\": \"example-smart-order-001\",\n    \"sku_code\": \"smartEXAMPLE\",\n    \"product_name\": \"Example product\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": \"1234\",\n    \"price\": 1100,\n    \"status\": \"processing\",\n    \"serial_number\": \"\",\n    \"webhook_delivery_status\": \"pending\",\n    \"is_sandbox\": true,\n    \"created_at\": \"2026-10-02T03:00:00+00:00\",\n    \"max_bid\": 1100,\n    \"fulfilled_sku_code\": null,\n    \"attempts_count\": 0\n  }\n}"
            },
            {
              "name": "201 example",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one Smart order using smart_sku_code as sku_code and max_bid as your budget. The whole budget is held upfront. The successful final charge never exceeds max_bid; unused hold is returned. Failed orders receive a full refund. For PROVIDER_PRICE_CHANGED, refresh the catalogue and only place a new order after the previous order is final.\n\nBuat satu pesanan Smart dengan smart_sku_code sebagai sku_code dan max_bid sebagai anggaran. Seluruh anggaran ditahan di awal. Biaya akhir pesanan sukses tidak melebihi max_bid; sisa saldo dikembalikan. Pesanan gagal mendapat refund penuh. Untuk PROVIDER_PRICE_CHANGED, perbarui katalog dan buat pesanan baru setelah pesanan sebelumnya final.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{smart_sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{smart_buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"max_bid\": {{max_bid}}\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Request succeeded.",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"message\": \"Transaction successfully created and queued.\",\n  \"data\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"buyer_trx_id\": \"example-smart-order-001\",\n    \"sku_code\": \"smartEXAMPLE\",\n    \"product_name\": \"Example product\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": \"1234\",\n    \"price\": 1100,\n    \"status\": \"processing\",\n    \"serial_number\": \"\",\n    \"webhook_delivery_status\": \"pending\",\n    \"is_sandbox\": true,\n    \"created_at\": \"2026-10-02T03:00:00+00:00\",\n    \"max_bid\": 1100\n  }\n}"
            },
            {
              "name": "401 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one Smart order using smart_sku_code as sku_code and max_bid as your budget. The whole budget is held upfront. The successful final charge never exceeds max_bid; unused hold is returned. Failed orders receive a full refund. For PROVIDER_PRICE_CHANGED, refresh the catalogue and only place a new order after the previous order is final.\n\nBuat satu pesanan Smart dengan smart_sku_code sebagai sku_code dan max_bid sebagai anggaran. Seluruh anggaran ditahan di awal. Biaya akhir pesanan sukses tidak melebihi max_bid; sisa saldo dikembalikan. Pesanan gagal mendapat refund penuh. Untuk PROVIDER_PRICE_CHANGED, perbarui katalog dan buat pesanan baru setelah pesanan sebelumnya final.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{smart_sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{smart_buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"max_bid\": {{max_bid}}\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Authentication missing/invalid",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"\n}"
            },
            {
              "name": "403 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one Smart order using smart_sku_code as sku_code and max_bid as your budget. The whole budget is held upfront. The successful final charge never exceeds max_bid; unused hold is returned. Failed orders receive a full refund. For PROVIDER_PRICE_CHANGED, refresh the catalogue and only place a new order after the previous order is final.\n\nBuat satu pesanan Smart dengan smart_sku_code sebagai sku_code dan max_bid sebagai anggaran. Seluruh anggaran ditahan di awal. Biaya akhir pesanan sukses tidak melebihi max_bid; sisa saldo dikembalikan. Pesanan gagal mendapat refund penuh. Untuk PROVIDER_PRICE_CHANGED, perbarui katalog dan buat pesanan baru setelah pesanan sebelumnya final.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{smart_sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{smart_buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"max_bid\": {{max_bid}}\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Account/IP forbidden",
              "code": 403,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Forbidden: H2H API access is not active for this account.\"\n}"
            },
            {
              "name": "422 validation",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one Smart order using smart_sku_code as sku_code and max_bid as your budget. The whole budget is held upfront. The successful final charge never exceeds max_bid; unused hold is returned. Failed orders receive a full refund. For PROVIDER_PRICE_CHANGED, refresh the catalogue and only place a new order after the previous order is final.\n\nBuat satu pesanan Smart dengan smart_sku_code sebagai sku_code dan max_bid sebagai anggaran. Seluruh anggaran ditahan di awal. Biaya akhir pesanan sukses tidak melebihi max_bid; sisa saldo dikembalikan. Pesanan gagal mendapat refund penuh. Untuk PROVIDER_PRICE_CHANGED, perbarui katalog dan buat pesanan baru setelah pesanan sebelumnya final.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{smart_sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{smart_buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"max_bid\": {{max_bid}}\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Validation, product unavailable or insufficient order balance",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"message\": \"The customer target field is required.\",\n  \"errors\": {\n    \"customer_target\": [\n      \"The customer target field is required.\"\n    ]\n  }\n}"
            },
            {
              "name": "429 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one Smart order using smart_sku_code as sku_code and max_bid as your budget. The whole budget is held upfront. The successful final charge never exceeds max_bid; unused hold is returned. Failed orders receive a full refund. For PROVIDER_PRICE_CHANGED, refresh the catalogue and only place a new order after the previous order is final.\n\nBuat satu pesanan Smart dengan smart_sku_code sebagai sku_code dan max_bid sebagai anggaran. Seluruh anggaran ditahan di awal. Biaya akhir pesanan sukses tidak melebihi max_bid; sisa saldo dikembalikan. Pesanan gagal mendapat refund penuh. Untuk PROVIDER_PRICE_CHANGED, perbarui katalog dan buat pesanan baru setelah pesanan sebelumnya final.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{smart_sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{smart_buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"max_bid\": {{max_bid}}\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Tier, catalogue or nickname limit exceeded",
              "code": 429,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Too Many Requests\"\n}"
            },
            {
              "name": "500 unavailable",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Create one Smart order using smart_sku_code as sku_code and max_bid as your budget. The whole budget is held upfront. The successful final charge never exceeds max_bid; unused hold is returned. Failed orders receive a full refund. For PROVIDER_PRICE_CHANGED, refresh the catalogue and only place a new order after the previous order is final.\n\nBuat satu pesanan Smart dengan smart_sku_code sebagai sku_code dan max_bid sebagai anggaran. Seluruh anggaran ditahan di awal. Biaya akhir pesanan sukses tidak melebihi max_bid; sisa saldo dikembalikan. Pesanan gagal mendapat refund penuh. Untuk PROVIDER_PRICE_CHANGED, perbarui katalog dan buat pesanan baru setelah pesanan sebelumnya final.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/smart-transaction",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "smart-transaction"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{smart_sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"buyer_trx_id\": \"{{smart_buyer_trx_id}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"max_bid\": {{max_bid}}\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Request outcome is uncertain; check the order by buyer_trx_id before retrying.",
              "code": 500,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Unable to process this request. Check the order using buyer_trx_id before retrying with the same reference.\"\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP status is documented', () => pm.expect(Object.keys({\"200\":{\"description\":\"Existing buyer_trx_id: existing transaction, no extra debit\",\"headers\":{\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"success\":{\"type\":\"boolean\",\"const\":true},\"data\":{\"$ref\":\"#/components/schemas/SmartTransaction\"}},\"required\":[\"success\",\"data\"]},\"examples\":{\"example\":{\"value\":{\"success\":true,\"data\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"buyer_trx_id\":\"example-smart-order-001\",\"sku_code\":\"smartEXAMPLE\",\"product_name\":\"Example product\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"price\":1100,\"status\":\"processing\",\"serial_number\":\"\",\"webhook_delivery_status\":\"pending\",\"is_sandbox\":true,\"created_at\":\"2026-10-02T03:00:00+00:00\",\"max_bid\":1100,\"fulfilled_sku_code\":null,\"attempts_count\":0}},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"}}}}},\"201\":{\"description\":\"Request succeeded.\",\"headers\":{\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"success\":{\"type\":\"boolean\",\"const\":true},\"data\":{\"$ref\":\"#/components/schemas/SmartCreateAcknowledgement\"}},\"required\":[\"success\",\"data\"]},\"examples\":{\"example\":{\"value\":{\"success\":true,\"message\":\"Transaction successfully created and queued.\",\"data\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"buyer_trx_id\":\"example-smart-order-001\",\"sku_code\":\"smartEXAMPLE\",\"product_name\":\"Example product\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"price\":1100,\"status\":\"processing\",\"serial_number\":\"\",\"webhook_delivery_status\":\"pending\",\"is_sandbox\":true,\"created_at\":\"2026-10-02T03:00:00+00:00\",\"max_bid\":1100}},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"}}}},\"x-description-id\":\"Request berhasil.\"},\"401\":{\"description\":\"Authentication missing/invalid\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"403\":{\"description\":\"Account/IP forbidden\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Forbidden: H2H API access is not active for this account.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"422\":{\"description\":\"Validation, product unavailable or insufficient order balance\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"validation\":{\"value\":{\"message\":\"The customer target field is required.\",\"errors\":{\"customer_target\":[\"The customer target field is required.\"]}},\"x-summary-id\":\"Parameter tidak valid\",\"summary\":\"Invalid parameters\"}}}}},\"429\":{\"description\":\"Tier, catalogue or nickname limit exceeded\",\"headers\":{\"Retry-After\":{\"description\":\"Seconds to wait before retrying a rate-limited request\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Too Many Requests\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"500\":{\"description\":\"Request outcome is uncertain; check the order by buyer_trx_id before retrying.\",\"x-description-id\":\"Hasil request belum pasti; cek pesanan memakai buyer_trx_id sebelum retry.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"unavailable\":{\"value\":{\"success\":false,\"message\":\"Unable to process this request. Check the order using buyer_trx_id before retrying with the same reference.\"},\"x-summary-id\":\"Produk belum tersedia\",\"summary\":\"Product unavailable\"}}}}}})).to.include(String(pm.response.code)));",
                  "if (pm.response.code >= 200 && pm.response.code < 300) { const result = pm.response.json(); pm.test('Successful response', () => pm.expect(result.success).to.eql(true)); }",
                  "if ([200,201].includes(pm.response.code)) { const data = pm.response.json().data; pm.test('Created ID exists', () => pm.expect(data.id).to.be.a('string')); pm.environment.set('transaction_id', data.id); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Transaction status",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{api_key}}"
              },
              {
                "key": "X-Secret-Key",
                "value": "{{secret_key}}"
              }
            ],
            "description": "Look up your transaction by UUID or buyer_trx_id. Supports regular, Smart and individual bulk orders; use billing.transaction_id for paid account checks. Match Smart results using id/buyer_trx_id, as sku_code may differ from the ordered SKU. fulfilled_sku_code identifies the successfully fulfilled SKU. Account-check buyer_trx_id, sku_code and serial_number are null. Smart/bulk fields appear only for their order type.\n\nCari transaksi Anda melalui UUID atau buyer_trx_id. Berlaku untuk reguler, Smart, dan setiap pesanan bulk; gunakan billing.transaction_id untuk pemeriksaan akun berbayar. Cocokkan hasil Smart melalui id/buyer_trx_id karena sku_code dapat berbeda dari SKU yang dipesan. fulfilled_sku_code menunjukkan SKU yang berhasil dipenuhi. buyer_trx_id, sku_code, dan serial_number pemeriksaan akun bernilai null. Field Smart/bulk hanya muncul sesuai jenis pesanan.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
            "url": {
              "raw": "{{base_url}}/api/v1/h2h/transaction/{{transaction_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "h2h",
                "transaction",
                "{{transaction_id}}"
              ],
              "query": []
            }
          },
          "response": [
            {
              "name": "200 example",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Look up your transaction by UUID or buyer_trx_id. Supports regular, Smart and individual bulk orders; use billing.transaction_id for paid account checks. Match Smart results using id/buyer_trx_id, as sku_code may differ from the ordered SKU. fulfilled_sku_code identifies the successfully fulfilled SKU. Account-check buyer_trx_id, sku_code and serial_number are null. Smart/bulk fields appear only for their order type.\n\nCari transaksi Anda melalui UUID atau buyer_trx_id. Berlaku untuk reguler, Smart, dan setiap pesanan bulk; gunakan billing.transaction_id untuk pemeriksaan akun berbayar. Cocokkan hasil Smart melalui id/buyer_trx_id karena sku_code dapat berbeda dari SKU yang dipesan. fulfilled_sku_code menunjukkan SKU yang berhasil dipenuhi. buyer_trx_id, sku_code, dan serial_number pemeriksaan akun bernilai null. Field Smart/bulk hanya muncul sesuai jenis pesanan.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction/{{transaction_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction",
                    "{{transaction_id}}"
                  ],
                  "query": []
                }
              },
              "status": "Order details. Read data.status for the current result.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"buyer_trx_id\": \"example-order-001\",\n    \"sku_code\": \"EXAMPLE-10\",\n    \"product_name\": \"Example product\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": \"1234\",\n    \"price\": 1000,\n    \"status\": \"processing\",\n    \"serial_number\": \"\",\n    \"webhook_delivery_status\": \"pending\",\n    \"is_sandbox\": true,\n    \"created_at\": \"2026-10-02T03:00:00+00:00\"\n  }\n}"
            },
            {
              "name": "200 paidAccountCheck",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Look up your transaction by UUID or buyer_trx_id. Supports regular, Smart and individual bulk orders; use billing.transaction_id for paid account checks. Match Smart results using id/buyer_trx_id, as sku_code may differ from the ordered SKU. fulfilled_sku_code identifies the successfully fulfilled SKU. Account-check buyer_trx_id, sku_code and serial_number are null. Smart/bulk fields appear only for their order type.\n\nCari transaksi Anda melalui UUID atau buyer_trx_id. Berlaku untuk reguler, Smart, dan setiap pesanan bulk; gunakan billing.transaction_id untuk pemeriksaan akun berbayar. Cocokkan hasil Smart melalui id/buyer_trx_id karena sku_code dapat berbeda dari SKU yang dipesan. fulfilled_sku_code menunjukkan SKU yang berhasil dipenuhi. buyer_trx_id, sku_code, dan serial_number pemeriksaan akun bernilai null. Field Smart/bulk hanya muncul sesuai jenis pesanan.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction/{{transaction_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction",
                    "{{transaction_id}}"
                  ],
                  "query": []
                }
              },
              "status": "Order details. Read data.status for the current result.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"buyer_trx_id\": null,\n    \"sku_code\": null,\n    \"product_name\": \"Pemeriksaan akun\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": null,\n    \"price\": 1,\n    \"status\": \"success\",\n    \"serial_number\": null,\n    \"webhook_delivery_status\": \"skipped\",\n    \"is_sandbox\": false,\n    \"created_at\": \"2026-10-02T03:00:00+00:00\"\n  }\n}"
            },
            {
              "name": "200 smartFulfilled",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Look up your transaction by UUID or buyer_trx_id. Supports regular, Smart and individual bulk orders; use billing.transaction_id for paid account checks. Match Smart results using id/buyer_trx_id, as sku_code may differ from the ordered SKU. fulfilled_sku_code identifies the successfully fulfilled SKU. Account-check buyer_trx_id, sku_code and serial_number are null. Smart/bulk fields appear only for their order type.\n\nCari transaksi Anda melalui UUID atau buyer_trx_id. Berlaku untuk reguler, Smart, dan setiap pesanan bulk; gunakan billing.transaction_id untuk pemeriksaan akun berbayar. Cocokkan hasil Smart melalui id/buyer_trx_id karena sku_code dapat berbeda dari SKU yang dipesan. fulfilled_sku_code menunjukkan SKU yang berhasil dipenuhi. buyer_trx_id, sku_code, dan serial_number pemeriksaan akun bernilai null. Field Smart/bulk hanya muncul sesuai jenis pesanan.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction/{{transaction_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction",
                    "{{transaction_id}}"
                  ],
                  "query": []
                }
              },
              "status": "Order details. Read data.status for the current result.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"buyer_trx_id\": \"example-smart-order-001\",\n    \"sku_code\": \"EXAMPLE-10\",\n    \"product_name\": \"Example product\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": \"1234\",\n    \"price\": 1000,\n    \"status\": \"success\",\n    \"serial_number\": \"EXAMPLE-SN-001\",\n    \"webhook_delivery_status\": \"pending\",\n    \"is_sandbox\": true,\n    \"created_at\": \"2026-10-02T03:00:00+00:00\",\n    \"max_bid\": 1100,\n    \"fulfilled_sku_code\": \"EXAMPLE-10\",\n    \"attempts_count\": 1\n  }\n}"
            },
            {
              "name": "200 regular-max-price-settled",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Look up your transaction by UUID or buyer_trx_id. Supports regular, Smart and individual bulk orders; use billing.transaction_id for paid account checks. Match Smart results using id/buyer_trx_id, as sku_code may differ from the ordered SKU. fulfilled_sku_code identifies the successfully fulfilled SKU. Account-check buyer_trx_id, sku_code and serial_number are null. Smart/bulk fields appear only for their order type.\n\nCari transaksi Anda melalui UUID atau buyer_trx_id. Berlaku untuk reguler, Smart, dan setiap pesanan bulk; gunakan billing.transaction_id untuk pemeriksaan akun berbayar. Cocokkan hasil Smart melalui id/buyer_trx_id karena sku_code dapat berbeda dari SKU yang dipesan. fulfilled_sku_code menunjukkan SKU yang berhasil dipenuhi. buyer_trx_id, sku_code, dan serial_number pemeriksaan akun bernilai null. Field Smart/bulk hanya muncul sesuai jenis pesanan.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction/{{transaction_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction",
                    "{{transaction_id}}"
                  ],
                  "query": []
                }
              },
              "status": "Order details. Read data.status for the current result.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"buyer_trx_id\": \"example-order-001\",\n    \"sku_code\": \"EXAMPLE-10\",\n    \"product_name\": \"Example product\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": \"1234\",\n    \"price\": 1071,\n    \"status\": \"success\",\n    \"serial_number\": \"\",\n    \"webhook_delivery_status\": \"pending\",\n    \"is_sandbox\": true,\n    \"created_at\": \"2026-10-02T03:00:00+00:00\",\n    \"max_price\": 1100\n  }\n}"
            },
            {
              "name": "200 regular-provider-price-changed",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Look up your transaction by UUID or buyer_trx_id. Supports regular, Smart and individual bulk orders; use billing.transaction_id for paid account checks. Match Smart results using id/buyer_trx_id, as sku_code may differ from the ordered SKU. fulfilled_sku_code identifies the successfully fulfilled SKU. Account-check buyer_trx_id, sku_code and serial_number are null. Smart/bulk fields appear only for their order type.\n\nCari transaksi Anda melalui UUID atau buyer_trx_id. Berlaku untuk reguler, Smart, dan setiap pesanan bulk; gunakan billing.transaction_id untuk pemeriksaan akun berbayar. Cocokkan hasil Smart melalui id/buyer_trx_id karena sku_code dapat berbeda dari SKU yang dipesan. fulfilled_sku_code menunjukkan SKU yang berhasil dipenuhi. buyer_trx_id, sku_code, dan serial_number pemeriksaan akun bernilai null. Field Smart/bulk hanya muncul sesuai jenis pesanan.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction/{{transaction_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction",
                    "{{transaction_id}}"
                  ],
                  "query": []
                }
              },
              "status": "Order details. Read data.status for the current result.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"buyer_trx_id\": \"example-order-001\",\n    \"sku_code\": \"EXAMPLE-10\",\n    \"product_name\": \"Example product\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": \"1234\",\n    \"price\": 1100,\n    \"status\": \"failed\",\n    \"serial_number\": \"\",\n    \"webhook_delivery_status\": \"pending\",\n    \"is_sandbox\": true,\n    \"created_at\": \"2026-10-02T03:00:00+00:00\",\n    \"max_price\": 1100,\n    \"error_code\": \"PROVIDER_PRICE_CHANGED\",\n    \"message\": \"The product price has changed. Please refresh the price list and try placing a new order again in a few moments.\"\n  }\n}"
            },
            {
              "name": "200 actionRequired",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Look up your transaction by UUID or buyer_trx_id. Supports regular, Smart and individual bulk orders; use billing.transaction_id for paid account checks. Match Smart results using id/buyer_trx_id, as sku_code may differ from the ordered SKU. fulfilled_sku_code identifies the successfully fulfilled SKU. Account-check buyer_trx_id, sku_code and serial_number are null. Smart/bulk fields appear only for their order type.\n\nCari transaksi Anda melalui UUID atau buyer_trx_id. Berlaku untuk reguler, Smart, dan setiap pesanan bulk; gunakan billing.transaction_id untuk pemeriksaan akun berbayar. Cocokkan hasil Smart melalui id/buyer_trx_id karena sku_code dapat berbeda dari SKU yang dipesan. fulfilled_sku_code menunjukkan SKU yang berhasil dipenuhi. buyer_trx_id, sku_code, dan serial_number pemeriksaan akun bernilai null. Field Smart/bulk hanya muncul sesuai jenis pesanan.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction/{{transaction_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction",
                    "{{transaction_id}}"
                  ],
                  "query": []
                }
              },
              "status": "Order details. Read data.status for the current result.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"buyer_trx_id\": \"example-order-001\",\n    \"sku_code\": \"EXAMPLE-10\",\n    \"product_name\": \"Example product\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": \"1234\",\n    \"price\": 1000,\n    \"status\": \"processing\",\n    \"serial_number\": null,\n    \"webhook_delivery_status\": \"pending\",\n    \"is_sandbox\": true,\n    \"created_at\": \"2026-10-02T03:00:00+00:00\",\n    \"need_action\": true,\n    \"action\": {\n      \"id\": \"11111111-1111-4111-8111-111111111111\",\n      \"type\": \"two_factor\",\n      \"state\": \"required\",\n      \"version\": 1,\n      \"message\": \"Two-factor authentication is required to continue this order. Submit the verification code using the 2FA endpoint.\",\n      \"can_submit\": true,\n      \"updated_at\": \"2026-10-10T08:01:00+07:00\"\n    }\n  }\n}"
            },
            {
              "name": "200 codeReceived",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Look up your transaction by UUID or buyer_trx_id. Supports regular, Smart and individual bulk orders; use billing.transaction_id for paid account checks. Match Smart results using id/buyer_trx_id, as sku_code may differ from the ordered SKU. fulfilled_sku_code identifies the successfully fulfilled SKU. Account-check buyer_trx_id, sku_code and serial_number are null. Smart/bulk fields appear only for their order type.\n\nCari transaksi Anda melalui UUID atau buyer_trx_id. Berlaku untuk reguler, Smart, dan setiap pesanan bulk; gunakan billing.transaction_id untuk pemeriksaan akun berbayar. Cocokkan hasil Smart melalui id/buyer_trx_id karena sku_code dapat berbeda dari SKU yang dipesan. fulfilled_sku_code menunjukkan SKU yang berhasil dipenuhi. buyer_trx_id, sku_code, dan serial_number pemeriksaan akun bernilai null. Field Smart/bulk hanya muncul sesuai jenis pesanan.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction/{{transaction_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction",
                    "{{transaction_id}}"
                  ],
                  "query": []
                }
              },
              "status": "Order details. Read data.status for the current result.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"buyer_trx_id\": \"example-order-001\",\n    \"sku_code\": \"EXAMPLE-10\",\n    \"product_name\": \"Example product\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": \"1234\",\n    \"price\": 1000,\n    \"status\": \"processing\",\n    \"serial_number\": null,\n    \"webhook_delivery_status\": \"pending\",\n    \"is_sandbox\": true,\n    \"created_at\": \"2026-10-02T03:00:00+00:00\",\n    \"need_action\": false,\n    \"action\": {\n      \"id\": \"11111111-1111-4111-8111-111111111111\",\n      \"type\": \"two_factor\",\n      \"state\": \"submitted\",\n      \"version\": 2,\n      \"message\": \"Your verification code has been received and is awaiting admin handling.\",\n      \"can_submit\": false,\n      \"updated_at\": \"2026-10-10T08:02:00+07:00\"\n    }\n  }\n}"
            },
            {
              "name": "200 actionResolved",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Look up your transaction by UUID or buyer_trx_id. Supports regular, Smart and individual bulk orders; use billing.transaction_id for paid account checks. Match Smart results using id/buyer_trx_id, as sku_code may differ from the ordered SKU. fulfilled_sku_code identifies the successfully fulfilled SKU. Account-check buyer_trx_id, sku_code and serial_number are null. Smart/bulk fields appear only for their order type.\n\nCari transaksi Anda melalui UUID atau buyer_trx_id. Berlaku untuk reguler, Smart, dan setiap pesanan bulk; gunakan billing.transaction_id untuk pemeriksaan akun berbayar. Cocokkan hasil Smart melalui id/buyer_trx_id karena sku_code dapat berbeda dari SKU yang dipesan. fulfilled_sku_code menunjukkan SKU yang berhasil dipenuhi. buyer_trx_id, sku_code, dan serial_number pemeriksaan akun bernilai null. Field Smart/bulk hanya muncul sesuai jenis pesanan.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction/{{transaction_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction",
                    "{{transaction_id}}"
                  ],
                  "query": []
                }
              },
              "status": "Order details. Read data.status for the current result.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"buyer_trx_id\": \"example-order-001\",\n    \"sku_code\": \"EXAMPLE-10\",\n    \"product_name\": \"Example product\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": \"1234\",\n    \"price\": 1000,\n    \"status\": \"processing\",\n    \"serial_number\": null,\n    \"webhook_delivery_status\": \"pending\",\n    \"is_sandbox\": true,\n    \"created_at\": \"2026-10-02T03:00:00+00:00\",\n    \"need_action\": false,\n    \"action\": {\n      \"id\": \"11111111-1111-4111-8111-111111111111\",\n      \"type\": \"two_factor\",\n      \"state\": \"resolved\",\n      \"version\": 3,\n      \"message\": \"The requested action has been completed.\",\n      \"can_submit\": false,\n      \"updated_at\": \"2026-10-10T08:03:00+07:00\"\n    }\n  }\n}"
            },
            {
              "name": "200 actionRequestedAgain",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Look up your transaction by UUID or buyer_trx_id. Supports regular, Smart and individual bulk orders; use billing.transaction_id for paid account checks. Match Smart results using id/buyer_trx_id, as sku_code may differ from the ordered SKU. fulfilled_sku_code identifies the successfully fulfilled SKU. Account-check buyer_trx_id, sku_code and serial_number are null. Smart/bulk fields appear only for their order type.\n\nCari transaksi Anda melalui UUID atau buyer_trx_id. Berlaku untuk reguler, Smart, dan setiap pesanan bulk; gunakan billing.transaction_id untuk pemeriksaan akun berbayar. Cocokkan hasil Smart melalui id/buyer_trx_id karena sku_code dapat berbeda dari SKU yang dipesan. fulfilled_sku_code menunjukkan SKU yang berhasil dipenuhi. buyer_trx_id, sku_code, dan serial_number pemeriksaan akun bernilai null. Field Smart/bulk hanya muncul sesuai jenis pesanan.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction/{{transaction_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction",
                    "{{transaction_id}}"
                  ],
                  "query": []
                }
              },
              "status": "Order details. Read data.status for the current result.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"buyer_trx_id\": \"example-order-001\",\n    \"sku_code\": \"EXAMPLE-10\",\n    \"product_name\": \"Example product\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": \"1234\",\n    \"price\": 1000,\n    \"status\": \"processing\",\n    \"serial_number\": null,\n    \"webhook_delivery_status\": \"pending\",\n    \"is_sandbox\": true,\n    \"created_at\": \"2026-10-02T03:00:00+00:00\",\n    \"need_action\": true,\n    \"action\": {\n      \"id\": \"11111111-1111-4111-8111-111111111111\",\n      \"type\": \"two_factor\",\n      \"state\": \"required\",\n      \"version\": 4,\n      \"message\": \"Two-factor authentication is required to continue this order. Submit the verification code using the 2FA endpoint.\",\n      \"can_submit\": true,\n      \"updated_at\": \"2026-10-10T08:04:00+07:00\"\n    }\n  }\n}"
            },
            {
              "name": "401 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Look up your transaction by UUID or buyer_trx_id. Supports regular, Smart and individual bulk orders; use billing.transaction_id for paid account checks. Match Smart results using id/buyer_trx_id, as sku_code may differ from the ordered SKU. fulfilled_sku_code identifies the successfully fulfilled SKU. Account-check buyer_trx_id, sku_code and serial_number are null. Smart/bulk fields appear only for their order type.\n\nCari transaksi Anda melalui UUID atau buyer_trx_id. Berlaku untuk reguler, Smart, dan setiap pesanan bulk; gunakan billing.transaction_id untuk pemeriksaan akun berbayar. Cocokkan hasil Smart melalui id/buyer_trx_id karena sku_code dapat berbeda dari SKU yang dipesan. fulfilled_sku_code menunjukkan SKU yang berhasil dipenuhi. buyer_trx_id, sku_code, dan serial_number pemeriksaan akun bernilai null. Field Smart/bulk hanya muncul sesuai jenis pesanan.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction/{{transaction_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction",
                    "{{transaction_id}}"
                  ],
                  "query": []
                }
              },
              "status": "Authentication missing/invalid",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"\n}"
            },
            {
              "name": "403 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Look up your transaction by UUID or buyer_trx_id. Supports regular, Smart and individual bulk orders; use billing.transaction_id for paid account checks. Match Smart results using id/buyer_trx_id, as sku_code may differ from the ordered SKU. fulfilled_sku_code identifies the successfully fulfilled SKU. Account-check buyer_trx_id, sku_code and serial_number are null. Smart/bulk fields appear only for their order type.\n\nCari transaksi Anda melalui UUID atau buyer_trx_id. Berlaku untuk reguler, Smart, dan setiap pesanan bulk; gunakan billing.transaction_id untuk pemeriksaan akun berbayar. Cocokkan hasil Smart melalui id/buyer_trx_id karena sku_code dapat berbeda dari SKU yang dipesan. fulfilled_sku_code menunjukkan SKU yang berhasil dipenuhi. buyer_trx_id, sku_code, dan serial_number pemeriksaan akun bernilai null. Field Smart/bulk hanya muncul sesuai jenis pesanan.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction/{{transaction_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction",
                    "{{transaction_id}}"
                  ],
                  "query": []
                }
              },
              "status": "Account/IP forbidden",
              "code": 403,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Forbidden: H2H API access is not active for this account.\"\n}"
            },
            {
              "name": "404 not-found",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Look up your transaction by UUID or buyer_trx_id. Supports regular, Smart and individual bulk orders; use billing.transaction_id for paid account checks. Match Smart results using id/buyer_trx_id, as sku_code may differ from the ordered SKU. fulfilled_sku_code identifies the successfully fulfilled SKU. Account-check buyer_trx_id, sku_code and serial_number are null. Smart/bulk fields appear only for their order type.\n\nCari transaksi Anda melalui UUID atau buyer_trx_id. Berlaku untuk reguler, Smart, dan setiap pesanan bulk; gunakan billing.transaction_id untuk pemeriksaan akun berbayar. Cocokkan hasil Smart melalui id/buyer_trx_id karena sku_code dapat berbeda dari SKU yang dipesan. fulfilled_sku_code menunjukkan SKU yang berhasil dipenuhi. buyer_trx_id, sku_code, dan serial_number pemeriksaan akun bernilai null. Field Smart/bulk hanya muncul sesuai jenis pesanan.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction/{{transaction_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction",
                    "{{transaction_id}}"
                  ],
                  "query": []
                }
              },
              "status": "Owned resource/category/account not found",
              "code": 404,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Transaction not found.\"\n}"
            },
            {
              "name": "429 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Look up your transaction by UUID or buyer_trx_id. Supports regular, Smart and individual bulk orders; use billing.transaction_id for paid account checks. Match Smart results using id/buyer_trx_id, as sku_code may differ from the ordered SKU. fulfilled_sku_code identifies the successfully fulfilled SKU. Account-check buyer_trx_id, sku_code and serial_number are null. Smart/bulk fields appear only for their order type.\n\nCari transaksi Anda melalui UUID atau buyer_trx_id. Berlaku untuk reguler, Smart, dan setiap pesanan bulk; gunakan billing.transaction_id untuk pemeriksaan akun berbayar. Cocokkan hasil Smart melalui id/buyer_trx_id karena sku_code dapat berbeda dari SKU yang dipesan. fulfilled_sku_code menunjukkan SKU yang berhasil dipenuhi. buyer_trx_id, sku_code, dan serial_number pemeriksaan akun bernilai null. Field Smart/bulk hanya muncul sesuai jenis pesanan.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transaction/{{transaction_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transaction",
                    "{{transaction_id}}"
                  ],
                  "query": []
                }
              },
              "status": "Tier, catalogue or nickname limit exceeded",
              "code": 429,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Too Many Requests\"\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP status is documented', () => pm.expect(Object.keys({\"200\":{\"description\":\"Order details. Read data.status for the current result.\",\"headers\":{\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"success\":{\"type\":\"boolean\"},\"data\":{\"anyOf\":[{\"$ref\":\"#/components/schemas/Transaction\"},{\"$ref\":\"#/components/schemas/SmartTransaction\"}]}},\"required\":[\"success\",\"data\"]},\"examples\":{\"example\":{\"value\":{\"success\":true,\"data\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"buyer_trx_id\":\"example-order-001\",\"sku_code\":\"EXAMPLE-10\",\"product_name\":\"Example product\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"price\":1000,\"status\":\"processing\",\"serial_number\":\"\",\"webhook_delivery_status\":\"pending\",\"is_sandbox\":true,\"created_at\":\"2026-10-02T03:00:00+00:00\"}},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"},\"paidAccountCheck\":{\"summary\":\"Paid account check\",\"value\":{\"success\":true,\"data\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"buyer_trx_id\":null,\"sku_code\":null,\"product_name\":\"Pemeriksaan akun\",\"customer_target\":\"123456789\",\"customer_target_zone\":null,\"price\":1,\"status\":\"success\",\"serial_number\":null,\"webhook_delivery_status\":\"skipped\",\"is_sandbox\":false,\"created_at\":\"2026-10-02T03:00:00+00:00\"}},\"x-summary-id\":\"Pemeriksaan akun berbayar\"},\"smartFulfilled\":{\"summary\":\"Smart fulfilled\",\"value\":{\"success\":true,\"data\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"buyer_trx_id\":\"example-smart-order-001\",\"sku_code\":\"EXAMPLE-10\",\"product_name\":\"Example product\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"price\":1000,\"status\":\"success\",\"serial_number\":\"EXAMPLE-SN-001\",\"webhook_delivery_status\":\"pending\",\"is_sandbox\":true,\"created_at\":\"2026-10-02T03:00:00+00:00\",\"max_bid\":1100,\"fulfilled_sku_code\":\"EXAMPLE-10\",\"attempts_count\":1}},\"x-summary-id\":\"Smart berhasil\"},\"regular-max-price-settled\":{\"value\":{\"success\":true,\"data\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"buyer_trx_id\":\"example-order-001\",\"sku_code\":\"EXAMPLE-10\",\"product_name\":\"Example product\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"price\":1071,\"status\":\"success\",\"serial_number\":\"\",\"webhook_delivery_status\":\"pending\",\"is_sandbox\":true,\"created_at\":\"2026-10-02T03:00:00+00:00\",\"max_price\":1100}},\"x-summary-id\":\"Reguler sukses dengan batas harga\",\"summary\":\"Regular success with price limit\"},\"regular-provider-price-changed\":{\"value\":{\"success\":true,\"data\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"buyer_trx_id\":\"example-order-001\",\"sku_code\":\"EXAMPLE-10\",\"product_name\":\"Example product\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"price\":1100,\"status\":\"failed\",\"serial_number\":\"\",\"webhook_delivery_status\":\"pending\",\"is_sandbox\":true,\"created_at\":\"2026-10-02T03:00:00+00:00\",\"max_price\":1100,\"error_code\":\"PROVIDER_PRICE_CHANGED\",\"message\":\"The product price has changed. Please refresh the price list and try placing a new order again in a few moments.\"}},\"x-summary-id\":\"Gagal karena perubahan harga\",\"summary\":\"Failed due to price change\"},\"actionRequired\":{\"summary\":\"Buyer code required\",\"value\":{\"success\":true,\"data\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"buyer_trx_id\":\"example-order-001\",\"sku_code\":\"EXAMPLE-10\",\"product_name\":\"Example product\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"price\":1000,\"status\":\"processing\",\"serial_number\":null,\"webhook_delivery_status\":\"pending\",\"is_sandbox\":true,\"created_at\":\"2026-10-02T03:00:00+00:00\",\"need_action\":true,\"action\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"type\":\"two_factor\",\"state\":\"required\",\"version\":1,\"message\":\"Two-factor authentication is required to continue this order. Submit the verification code using the 2FA endpoint.\",\"can_submit\":true,\"updated_at\":\"2026-10-10T08:01:00+07:00\"}}},\"x-summary-id\":\"Kode pembeli diperlukan\"},\"codeReceived\":{\"summary\":\"Code received\",\"value\":{\"success\":true,\"data\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"buyer_trx_id\":\"example-order-001\",\"sku_code\":\"EXAMPLE-10\",\"product_name\":\"Example product\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"price\":1000,\"status\":\"processing\",\"serial_number\":null,\"webhook_delivery_status\":\"pending\",\"is_sandbox\":true,\"created_at\":\"2026-10-02T03:00:00+00:00\",\"need_action\":false,\"action\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"type\":\"two_factor\",\"state\":\"submitted\",\"version\":2,\"message\":\"Your verification code has been received and is awaiting admin handling.\",\"can_submit\":false,\"updated_at\":\"2026-10-10T08:02:00+07:00\"}}},\"x-summary-id\":\"Kode telah diterima\"},\"actionResolved\":{\"summary\":\"Verification resolved\",\"value\":{\"success\":true,\"data\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"buyer_trx_id\":\"example-order-001\",\"sku_code\":\"EXAMPLE-10\",\"product_name\":\"Example product\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"price\":1000,\"status\":\"processing\",\"serial_number\":null,\"webhook_delivery_status\":\"pending\",\"is_sandbox\":true,\"created_at\":\"2026-10-02T03:00:00+00:00\",\"need_action\":false,\"action\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"type\":\"two_factor\",\"state\":\"resolved\",\"version\":3,\"message\":\"The requested action has been completed.\",\"can_submit\":false,\"updated_at\":\"2026-10-10T08:03:00+07:00\"}}},\"x-summary-id\":\"Verifikasi selesai\"},\"actionRequestedAgain\":{\"summary\":\"New code requested\",\"value\":{\"success\":true,\"data\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"buyer_trx_id\":\"example-order-001\",\"sku_code\":\"EXAMPLE-10\",\"product_name\":\"Example product\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"price\":1000,\"status\":\"processing\",\"serial_number\":null,\"webhook_delivery_status\":\"pending\",\"is_sandbox\":true,\"created_at\":\"2026-10-02T03:00:00+00:00\",\"need_action\":true,\"action\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"type\":\"two_factor\",\"state\":\"required\",\"version\":4,\"message\":\"Two-factor authentication is required to continue this order. Submit the verification code using the 2FA endpoint.\",\"can_submit\":true,\"updated_at\":\"2026-10-10T08:04:00+07:00\"}}},\"x-summary-id\":\"Kode baru diminta\"}}}},\"x-description-id\":\"Detail pesanan. Baca data.status untuk hasil saat ini.\"},\"401\":{\"description\":\"Authentication missing/invalid\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"403\":{\"description\":\"Account/IP forbidden\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Forbidden: H2H API access is not active for this account.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"404\":{\"description\":\"Owned resource/category/account not found\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"not-found\":{\"value\":{\"success\":false,\"message\":\"Transaction not found.\"},\"x-summary-id\":\"Tidak ditemukan\",\"summary\":\"Not found\"}}}}},\"429\":{\"description\":\"Tier, catalogue or nickname limit exceeded\",\"headers\":{\"Retry-After\":{\"description\":\"Seconds to wait before retrying a rate-limited request\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Too Many Requests\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}}})).to.include(String(pm.response.code)));",
                  "if (pm.response.code >= 200 && pm.response.code < 300) { const result = pm.response.json(); pm.test('Successful response', () => pm.expect(result.success).to.eql(true)); }",
                  "if (pm.response.code === 200) { const d = pm.response.json().data; if (d.action) { pm.environment.set('action_buyer_trx_id', d.buyer_trx_id); pm.environment.set('action_id', d.action.id); pm.environment.set('action_version', d.action.version); } }"
                ]
              }
            }
          ]
        },
        {
          "name": "Submit a two-factor verification code",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{api_key}}"
              },
              {
                "key": "X-Secret-Key",
                "value": "{{secret_key}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "description": "Submit a requested code for manual admin handling, for regular or Smart orders. Requires X-API-Key and X-Secret-Key and the existing IP whitelist. Limit: 5 requests/minute per owner and transaction. HTTP 202 confirms receipt, not validity. Trim code to 1–128 characters without control characters. Retry the same code if delivery is uncertain; a different code is rejected until a new request. This endpoint never creates an order or changes transaction/financial status.\n\nKirim kode yang diminta untuk penanganan admin pada transaksi reguler atau Smart. Gunakan X-API-Key, X-Secret-Key, dan IP whitelist yang berlaku. Batas 5 permintaan/menit per pemilik dan transaksi. HTTP 202 berarti diterima, bukan terbukti valid. Ulangi kode yang sama jika respons belum diterima; kode berbeda ditolak sampai permintaan baru. Status transaksi dan keuangan tidak berubah.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
            "url": {
              "raw": "{{base_url}}/api/v1/h2h/transactions/2fa",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "h2h",
                "transactions",
                "2fa"
              ],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"buyer_trx_id\": \"{{action_buyer_trx_id}}\",\n  \"code\": \"{{two_factor_code}}\",\n  \"action_id\": \"{{action_id}}\",\n  \"action_version\": {{action_version}}\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "200 received",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Submit a requested code for manual admin handling, for regular or Smart orders. Requires X-API-Key and X-Secret-Key and the existing IP whitelist. Limit: 5 requests/minute per owner and transaction. HTTP 202 confirms receipt, not validity. Trim code to 1–128 characters without control characters. Retry the same code if delivery is uncertain; a different code is rejected until a new request. This endpoint never creates an order or changes transaction/financial status.\n\nKirim kode yang diminta untuk penanganan admin pada transaksi reguler atau Smart. Gunakan X-API-Key, X-Secret-Key, dan IP whitelist yang berlaku. Batas 5 permintaan/menit per pemilik dan transaksi. HTTP 202 berarti diterima, bukan terbukti valid. Ulangi kode yang sama jika respons belum diterima; kode berbeda ditolak sampai permintaan baru. Status transaksi dan keuangan tidak berubah.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transactions/2fa",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transactions",
                    "2fa"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"buyer_trx_id\": \"{{action_buyer_trx_id}}\",\n  \"code\": \"{{two_factor_code}}\",\n  \"action_id\": \"{{action_id}}\",\n  \"action_version\": {{action_version}}\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Identical-code retry; previous receipt returned without another notification.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"message\": \"Your verification code has been received and is awaiting admin handling.\",\n  \"data\": {\n    \"need_action\": false,\n    \"action\": {\n      \"id\": \"11111111-1111-4111-8111-111111111111\",\n      \"type\": \"two_factor\",\n      \"state\": \"submitted\",\n      \"version\": 2,\n      \"message\": \"Your verification code has been received and is awaiting admin handling.\",\n      \"can_submit\": false,\n      \"updated_at\": \"2026-10-10T08:02:00+07:00\"\n    }\n  }\n}"
            },
            {
              "name": "202 received",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Submit a requested code for manual admin handling, for regular or Smart orders. Requires X-API-Key and X-Secret-Key and the existing IP whitelist. Limit: 5 requests/minute per owner and transaction. HTTP 202 confirms receipt, not validity. Trim code to 1–128 characters without control characters. Retry the same code if delivery is uncertain; a different code is rejected until a new request. This endpoint never creates an order or changes transaction/financial status.\n\nKirim kode yang diminta untuk penanganan admin pada transaksi reguler atau Smart. Gunakan X-API-Key, X-Secret-Key, dan IP whitelist yang berlaku. Batas 5 permintaan/menit per pemilik dan transaksi. HTTP 202 berarti diterima, bukan terbukti valid. Ulangi kode yang sama jika respons belum diterima; kode berbeda ditolak sampai permintaan baru. Status transaksi dan keuangan tidak berubah.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/transactions/2fa",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "transactions",
                    "2fa"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"buyer_trx_id\": \"{{action_buyer_trx_id}}\",\n  \"code\": \"{{two_factor_code}}\",\n  \"action_id\": \"{{action_id}}\",\n  \"action_version\": {{action_version}}\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Code accepted for admin handling.",
              "code": 202,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"message\": \"Your verification code has been received and is awaiting admin handling.\",\n  \"data\": {\n    \"need_action\": false,\n    \"action\": {\n      \"id\": \"11111111-1111-4111-8111-111111111111\",\n      \"type\": \"two_factor\",\n      \"state\": \"submitted\",\n      \"version\": 2,\n      \"message\": \"Your verification code has been received and is awaiting admin handling.\",\n      \"can_submit\": false,\n      \"updated_at\": \"2026-10-10T08:02:00+07:00\"\n    }\n  }\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP status is documented', () => pm.expect(Object.keys({\"200\":{\"description\":\"Identical-code retry; previous receipt returned without another notification.\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"required\":[\"success\",\"message\",\"data\"],\"properties\":{\"success\":{\"type\":\"boolean\"},\"message\":{\"type\":\"string\"},\"data\":{\"$ref\":\"#/components/schemas/ActionSnapshot\"}}},\"examples\":{\"received\":{\"value\":{\"success\":true,\"message\":\"Your verification code has been received and is awaiting admin handling.\",\"data\":{\"need_action\":false,\"action\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"type\":\"two_factor\",\"state\":\"submitted\",\"version\":2,\"message\":\"Your verification code has been received and is awaiting admin handling.\",\"can_submit\":false,\"updated_at\":\"2026-10-10T08:02:00+07:00\"}}},\"x-summary-id\":\"Kode diterima\",\"summary\":\"Code accepted\"}}}}},\"202\":{\"description\":\"Code accepted for admin handling.\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"required\":[\"success\",\"message\",\"data\"],\"properties\":{\"success\":{\"type\":\"boolean\"},\"message\":{\"type\":\"string\"},\"data\":{\"$ref\":\"#/components/schemas/ActionSnapshot\"}}},\"examples\":{\"received\":{\"value\":{\"success\":true,\"message\":\"Your verification code has been received and is awaiting admin handling.\",\"data\":{\"need_action\":false,\"action\":{\"id\":\"11111111-1111-4111-8111-111111111111\",\"type\":\"two_factor\",\"state\":\"submitted\",\"version\":2,\"message\":\"Your verification code has been received and is awaiting admin handling.\",\"can_submit\":false,\"updated_at\":\"2026-10-10T08:02:00+07:00\"}}},\"x-summary-id\":\"Kode diterima\",\"summary\":\"Code accepted\"}}}},\"x-description-id\":\"Kode diterima untuk penanganan admin.\"},\"401\":{\"description\":\"Missing or invalid credentials.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{}}}},\"403\":{\"description\":\"Account or IP access denied.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{}}}},\"404\":{\"description\":\"Buyer reference not found in the caller profile.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{}}}},\"409\":{\"description\":\"No current action, final transaction, stale action/version, or a different code was already submitted.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{}}}},\"422\":{\"description\":\"Invalid code or payload.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{}}}},\"429\":{\"description\":\"Five submissions per minute exceeded. Wait before retrying.\",\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{}}}}})).to.include(String(pm.response.code)));",
                  "if (pm.response.code >= 200 && pm.response.code < 300) { const result = pm.response.json(); pm.test('Successful response', () => pm.expect(result.success).to.eql(true)); }"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "bulk",
      "item": [
        {
          "name": "Create bulk order",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{api_key}}"
              },
              {
                "key": "X-Secret-Key",
                "value": "{{secret_key}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "description": "Creates 1–100 separate orders for one regular SKU and one target. The full cost is deducted upfront; insufficient balance prevents creation. Use a unique buyer_bulk_id for each bulk and keep it unchanged on retries. Set order_count and omit quantity, max_bid, and order_mode; populated values for these parameters return HTTP 422.\n\nMembuat 1–100 pesanan terpisah untuk satu SKU reguler dan satu target. Total biaya dipotong di awal; saldo kurang membuat bulk tidak dapat dibuat. Gunakan buyer_bulk_id unik untuk setiap bulk dan pertahankan saat retry. Isi order_count dan jangan kirim quantity, max_bid, atau order_mode; nilai terisi pada parameter tersebut menghasilkan HTTP 422.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
            "url": {
              "raw": "{{base_url}}/api/v1/h2h/bulk-orders",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "h2h",
                "bulk-orders"
              ],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"order_count\": {{order_count}},\n  \"buyer_bulk_id\": \"{{buyer_bulk_id}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "200 example",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Creates 1–100 separate orders for one regular SKU and one target. The full cost is deducted upfront; insufficient balance prevents creation. Use a unique buyer_bulk_id for each bulk and keep it unchanged on retries. Set order_count and omit quantity, max_bid, and order_mode; populated values for these parameters return HTTP 422.\n\nMembuat 1–100 pesanan terpisah untuk satu SKU reguler dan satu target. Total biaya dipotong di awal; saldo kurang membuat bulk tidak dapat dibuat. Gunakan buyer_bulk_id unik untuk setiap bulk dan pertahankan saat retry. Isi order_count dan jangan kirim quantity, max_bid, atau order_mode; nilai terisi pada parameter tersebut menghasilkan HTTP 422.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"order_count\": {{order_count}},\n  \"buyer_bulk_id\": \"{{buyer_bulk_id}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Identical payload and key: original bulk, no additional debit",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"message\": \"Returning original bulk order.\",\n  \"data\": {\n    \"id\": \"22222222-2222-4222-8222-222222222222\",\n    \"buyer_bulk_id\": \"example-bulk-001\",\n    \"sku_code\": \"EXAMPLE-10\",\n    \"product_name\": \"Example product\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": \"1234\",\n    \"order_count\": 3,\n    \"unit_price\": 1000,\n    \"total_debit\": 0,\n    \"status\": \"queued\",\n    \"via\": \"api\",\n    \"is_sandbox\": true,\n    \"invoice_available\": false,\n    \"created_at\": \"2026-10-02T03:00:00+00:00\",\n    \"completed_at\": null,\n    \"total_count\": 3,\n    \"success_count\": 0,\n    \"failed_count\": 0,\n    \"processed_count\": 0,\n    \"remaining_count\": 3,\n    \"processing_count\": 0,\n    \"queued_count\": 3\n  }\n}"
            },
            {
              "name": "201 example",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Creates 1–100 separate orders for one regular SKU and one target. The full cost is deducted upfront; insufficient balance prevents creation. Use a unique buyer_bulk_id for each bulk and keep it unchanged on retries. Set order_count and omit quantity, max_bid, and order_mode; populated values for these parameters return HTTP 422.\n\nMembuat 1–100 pesanan terpisah untuk satu SKU reguler dan satu target. Total biaya dipotong di awal; saldo kurang membuat bulk tidak dapat dibuat. Gunakan buyer_bulk_id unik untuk setiap bulk dan pertahankan saat retry. Isi order_count dan jangan kirim quantity, max_bid, atau order_mode; nilai terisi pada parameter tersebut menghasilkan HTTP 422.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"order_count\": {{order_count}},\n  \"buyer_bulk_id\": \"{{buyer_bulk_id}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Request accepted. Read data.status for the order result.",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"message\": \"Bulk order created and queued.\",\n  \"data\": {\n    \"id\": \"22222222-2222-4222-8222-222222222222\",\n    \"buyer_bulk_id\": \"example-bulk-001\",\n    \"sku_code\": \"EXAMPLE-10\",\n    \"product_name\": \"Example product\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": \"1234\",\n    \"order_count\": 3,\n    \"unit_price\": 1000,\n    \"total_debit\": 0,\n    \"status\": \"queued\",\n    \"via\": \"api\",\n    \"is_sandbox\": true,\n    \"invoice_available\": false,\n    \"created_at\": \"2026-10-02T03:00:00+00:00\",\n    \"completed_at\": null,\n    \"total_count\": 3,\n    \"success_count\": 0,\n    \"failed_count\": 0,\n    \"processed_count\": 0,\n    \"remaining_count\": 3,\n    \"processing_count\": 0,\n    \"queued_count\": 3\n  }\n}"
            },
            {
              "name": "201 withoutZone",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Creates 1–100 separate orders for one regular SKU and one target. The full cost is deducted upfront; insufficient balance prevents creation. Use a unique buyer_bulk_id for each bulk and keep it unchanged on retries. Set order_count and omit quantity, max_bid, and order_mode; populated values for these parameters return HTTP 422.\n\nMembuat 1–100 pesanan terpisah untuk satu SKU reguler dan satu target. Total biaya dipotong di awal; saldo kurang membuat bulk tidak dapat dibuat. Gunakan buyer_bulk_id unik untuk setiap bulk dan pertahankan saat retry. Isi order_count dan jangan kirim quantity, max_bid, atau order_mode; nilai terisi pada parameter tersebut menghasilkan HTTP 422.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"order_count\": {{order_count}},\n  \"buyer_bulk_id\": \"{{buyer_bulk_id}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Request accepted. Read data.status for the order result.",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"message\": \"Bulk order created and queued.\",\n  \"data\": {\n    \"id\": \"22222222-2222-4222-8222-222222222222\",\n    \"buyer_bulk_id\": \"example-bulk-001\",\n    \"sku_code\": \"EXAMPLE-10\",\n    \"product_name\": \"Example product\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": null,\n    \"order_count\": 3,\n    \"unit_price\": 1000,\n    \"total_debit\": 0,\n    \"status\": \"queued\",\n    \"via\": \"api\",\n    \"is_sandbox\": true,\n    \"invoice_available\": false,\n    \"created_at\": \"2026-10-02T03:00:00+00:00\",\n    \"completed_at\": null,\n    \"total_count\": 3,\n    \"success_count\": 0,\n    \"failed_count\": 0,\n    \"processed_count\": 0,\n    \"remaining_count\": 3,\n    \"processing_count\": 0,\n    \"queued_count\": 3\n  }\n}"
            },
            {
              "name": "401 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Creates 1–100 separate orders for one regular SKU and one target. The full cost is deducted upfront; insufficient balance prevents creation. Use a unique buyer_bulk_id for each bulk and keep it unchanged on retries. Set order_count and omit quantity, max_bid, and order_mode; populated values for these parameters return HTTP 422.\n\nMembuat 1–100 pesanan terpisah untuk satu SKU reguler dan satu target. Total biaya dipotong di awal; saldo kurang membuat bulk tidak dapat dibuat. Gunakan buyer_bulk_id unik untuk setiap bulk dan pertahankan saat retry. Isi order_count dan jangan kirim quantity, max_bid, atau order_mode; nilai terisi pada parameter tersebut menghasilkan HTTP 422.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"order_count\": {{order_count}},\n  \"buyer_bulk_id\": \"{{buyer_bulk_id}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Authentication missing/invalid",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"\n}"
            },
            {
              "name": "403 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Creates 1–100 separate orders for one regular SKU and one target. The full cost is deducted upfront; insufficient balance prevents creation. Use a unique buyer_bulk_id for each bulk and keep it unchanged on retries. Set order_count and omit quantity, max_bid, and order_mode; populated values for these parameters return HTTP 422.\n\nMembuat 1–100 pesanan terpisah untuk satu SKU reguler dan satu target. Total biaya dipotong di awal; saldo kurang membuat bulk tidak dapat dibuat. Gunakan buyer_bulk_id unik untuk setiap bulk dan pertahankan saat retry. Isi order_count dan jangan kirim quantity, max_bid, atau order_mode; nilai terisi pada parameter tersebut menghasilkan HTTP 422.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"order_count\": {{order_count}},\n  \"buyer_bulk_id\": \"{{buyer_bulk_id}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Account/IP forbidden",
              "code": 403,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Forbidden: H2H API access is not active for this account.\"\n}"
            },
            {
              "name": "409 conflict",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Creates 1–100 separate orders for one regular SKU and one target. The full cost is deducted upfront; insufficient balance prevents creation. Use a unique buyer_bulk_id for each bulk and keep it unchanged on retries. Set order_count and omit quantity, max_bid, and order_mode; populated values for these parameters return HTTP 422.\n\nMembuat 1–100 pesanan terpisah untuk satu SKU reguler dan satu target. Total biaya dipotong di awal; saldo kurang membuat bulk tidak dapat dibuat. Gunakan buyer_bulk_id unik untuk setiap bulk dan pertahankan saat retry. Isi order_count dan jangan kirim quantity, max_bid, atau order_mode; nilai terisi pada parameter tersebut menghasilkan HTTP 422.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"order_count\": {{order_count}},\n  \"buyer_bulk_id\": \"{{buyer_bulk_id}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "A different request already uses this buyer_bulk_id",
              "code": 409,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"message\": \"buyer_bulk_id sudah digunakan dengan payload berbeda.\"\n}"
            },
            {
              "name": "422 validation",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Creates 1–100 separate orders for one regular SKU and one target. The full cost is deducted upfront; insufficient balance prevents creation. Use a unique buyer_bulk_id for each bulk and keep it unchanged on retries. Set order_count and omit quantity, max_bid, and order_mode; populated values for these parameters return HTTP 422.\n\nMembuat 1–100 pesanan terpisah untuk satu SKU reguler dan satu target. Total biaya dipotong di awal; saldo kurang membuat bulk tidak dapat dibuat. Gunakan buyer_bulk_id unik untuk setiap bulk dan pertahankan saat retry. Isi order_count dan jangan kirim quantity, max_bid, atau order_mode; nilai terisi pada parameter tersebut menghasilkan HTTP 422.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"order_count\": {{order_count}},\n  \"buyer_bulk_id\": \"{{buyer_bulk_id}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Validation, product unavailable or insufficient order balance",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"message\": \"The customer target field is required.\",\n  \"errors\": {\n    \"customer_target\": [\n      \"The customer target field is required.\"\n    ]\n  }\n}"
            },
            {
              "name": "429 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Creates 1–100 separate orders for one regular SKU and one target. The full cost is deducted upfront; insufficient balance prevents creation. Use a unique buyer_bulk_id for each bulk and keep it unchanged on retries. Set order_count and omit quantity, max_bid, and order_mode; populated values for these parameters return HTTP 422.\n\nMembuat 1–100 pesanan terpisah untuk satu SKU reguler dan satu target. Total biaya dipotong di awal; saldo kurang membuat bulk tidak dapat dibuat. Gunakan buyer_bulk_id unik untuk setiap bulk dan pertahankan saat retry. Isi order_count dan jangan kirim quantity, max_bid, atau order_mode; nilai terisi pada parameter tersebut menghasilkan HTTP 422.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"sku_code\": \"{{sku_code}}\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\",\n  \"sandbox_mode\": true,\n  \"additional_data\": {\n    \"email\": \"buyer@example.com\"\n  },\n  \"order_count\": {{order_count}},\n  \"buyer_bulk_id\": \"{{buyer_bulk_id}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Tier, catalogue or nickname limit exceeded",
              "code": 429,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Too Many Requests\"\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP status is documented', () => pm.expect(Object.keys({\"200\":{\"description\":\"Identical payload and key: original bulk, no additional debit\",\"headers\":{\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"success\":{\"type\":\"boolean\"},\"message\":{\"type\":\"string\"},\"data\":{\"$ref\":\"#/components/schemas/BulkOrder\"}},\"required\":[\"success\",\"message\",\"data\"]},\"examples\":{\"example\":{\"value\":{\"success\":true,\"message\":\"Returning original bulk order.\",\"data\":{\"id\":\"22222222-2222-4222-8222-222222222222\",\"buyer_bulk_id\":\"example-bulk-001\",\"sku_code\":\"EXAMPLE-10\",\"product_name\":\"Example product\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"order_count\":3,\"unit_price\":1000,\"total_debit\":0,\"status\":\"queued\",\"via\":\"api\",\"is_sandbox\":true,\"invoice_available\":false,\"created_at\":\"2026-10-02T03:00:00+00:00\",\"completed_at\":null,\"total_count\":3,\"success_count\":0,\"failed_count\":0,\"processed_count\":0,\"remaining_count\":3,\"processing_count\":0,\"queued_count\":3}},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"}}}}},\"201\":{\"description\":\"Request accepted. Read data.status for the order result.\",\"headers\":{\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"success\":{\"type\":\"boolean\"},\"message\":{\"type\":\"string\"},\"data\":{\"$ref\":\"#/components/schemas/BulkOrder\"}},\"required\":[\"success\",\"message\",\"data\"]},\"examples\":{\"example\":{\"value\":{\"success\":true,\"message\":\"Bulk order created and queued.\",\"data\":{\"id\":\"22222222-2222-4222-8222-222222222222\",\"buyer_bulk_id\":\"example-bulk-001\",\"sku_code\":\"EXAMPLE-10\",\"product_name\":\"Example product\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"order_count\":3,\"unit_price\":1000,\"total_debit\":0,\"status\":\"queued\",\"via\":\"api\",\"is_sandbox\":true,\"invoice_available\":false,\"created_at\":\"2026-10-02T03:00:00+00:00\",\"completed_at\":null,\"total_count\":3,\"success_count\":0,\"failed_count\":0,\"processed_count\":0,\"remaining_count\":3,\"processing_count\":0,\"queued_count\":3}},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"},\"withoutZone\":{\"summary\":\"Without zone\",\"value\":{\"success\":true,\"message\":\"Bulk order created and queued.\",\"data\":{\"id\":\"22222222-2222-4222-8222-222222222222\",\"buyer_bulk_id\":\"example-bulk-001\",\"sku_code\":\"EXAMPLE-10\",\"product_name\":\"Example product\",\"customer_target\":\"123456789\",\"customer_target_zone\":null,\"order_count\":3,\"unit_price\":1000,\"total_debit\":0,\"status\":\"queued\",\"via\":\"api\",\"is_sandbox\":true,\"invoice_available\":false,\"created_at\":\"2026-10-02T03:00:00+00:00\",\"completed_at\":null,\"total_count\":3,\"success_count\":0,\"failed_count\":0,\"processed_count\":0,\"remaining_count\":3,\"processing_count\":0,\"queued_count\":3}},\"x-summary-id\":\"Tanpa zone\"}}}},\"x-description-id\":\"Request diterima. Baca data.status untuk hasil pesanan.\"},\"401\":{\"description\":\"Authentication missing/invalid\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"403\":{\"description\":\"Account/IP forbidden\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Forbidden: H2H API access is not active for this account.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"409\":{\"description\":\"A different request already uses this buyer_bulk_id\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"conflict\":{\"value\":{\"message\":\"buyer_bulk_id sudah digunakan dengan payload berbeda.\"},\"x-summary-id\":\"Request tidak dapat dilanjutkan\",\"summary\":\"Request conflict\"}}}}},\"422\":{\"description\":\"Validation, product unavailable or insufficient order balance\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"validation\":{\"value\":{\"message\":\"The customer target field is required.\",\"errors\":{\"customer_target\":[\"The customer target field is required.\"]}},\"x-summary-id\":\"Parameter tidak valid\",\"summary\":\"Invalid parameters\"}}}}},\"429\":{\"description\":\"Tier, catalogue or nickname limit exceeded\",\"headers\":{\"Retry-After\":{\"description\":\"Seconds to wait before retrying a rate-limited request\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Too Many Requests\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}}})).to.include(String(pm.response.code)));",
                  "if (pm.response.code >= 200 && pm.response.code < 300) { const result = pm.response.json(); pm.test('Successful response', () => pm.expect(result.success).to.eql(true)); }",
                  "if ([200,201].includes(pm.response.code)) { const data = pm.response.json().data; pm.test('Created ID exists', () => pm.expect(data.id).to.be.a('string')); pm.environment.set('bulk_order_id', data.id); }",
                  "if ([200,201].includes(pm.response.code)) { const d = pm.response.json().data; pm.test('Bulk progress is consistent', () => { pm.expect(d.processed_count).to.eql(d.success_count + d.failed_count); pm.expect(d.remaining_count).to.eql(d.total_count - d.processed_count); }); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Bulk history",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{api_key}}"
              },
              {
                "key": "X-Secret-Key",
                "value": "{{secret_key}}"
              }
            ],
            "description": "Owned orders, 15 per page. Date filters use Asia/Jakarta inclusive start/end dates.\n\nPesanan milik profil, 15 per halaman. Filter tanggal inklusif zona Asia/Jakarta.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
            "url": {
              "raw": "{{base_url}}/api/v1/h2h/bulk-orders?page=1",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "h2h",
                "bulk-orders"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1",
                  "disabled": false,
                  "description": ""
                },
                {
                  "key": "status",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "search",
                  "value": "",
                  "disabled": true,
                  "description": "Buyer reference, target, SKU or product name"
                },
                {
                  "key": "start_date",
                  "value": "",
                  "disabled": true,
                  "description": "YYYY-MM-DD"
                },
                {
                  "key": "end_date",
                  "value": "",
                  "disabled": true,
                  "description": "YYYY-MM-DD, not earlier than start_date"
                }
              ]
            }
          },
          "response": [
            {
              "name": "200 example",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Owned orders, 15 per page. Date filters use Asia/Jakarta inclusive start/end dates.\n\nPesanan milik profil, 15 per halaman. Filter tanggal inklusif zona Asia/Jakarta.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders?page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1",
                      "disabled": false,
                      "description": ""
                    },
                    {
                      "key": "status",
                      "value": "",
                      "disabled": true,
                      "description": ""
                    },
                    {
                      "key": "search",
                      "value": "",
                      "disabled": true,
                      "description": "Buyer reference, target, SKU or product name"
                    },
                    {
                      "key": "start_date",
                      "value": "",
                      "disabled": true,
                      "description": "YYYY-MM-DD"
                    },
                    {
                      "key": "end_date",
                      "value": "",
                      "disabled": true,
                      "description": "YYYY-MM-DD, not earlier than start_date"
                    }
                  ]
                }
              },
              "status": "Bulk order data and progress.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"current_page\": 1,\n    \"data\": [\n      {\n        \"id\": \"22222222-2222-4222-8222-222222222222\",\n        \"buyer_bulk_id\": \"example-bulk-001\",\n        \"sku_code\": \"EXAMPLE-10\",\n        \"product_name\": \"Example product\",\n        \"customer_target\": \"123456789\",\n        \"customer_target_zone\": \"1234\",\n        \"order_count\": 3,\n        \"unit_price\": 1000,\n        \"total_debit\": 0,\n        \"status\": \"processing\",\n        \"via\": \"api\",\n        \"is_sandbox\": true,\n        \"invoice_available\": false,\n        \"created_at\": \"2026-10-02T03:00:00+00:00\",\n        \"completed_at\": null,\n        \"total_count\": 3,\n        \"success_count\": 1,\n        \"failed_count\": 1,\n        \"processed_count\": 2,\n        \"remaining_count\": 1,\n        \"processing_count\": 1,\n        \"queued_count\": 0\n      }\n    ],\n    \"first_page_url\": \"https://api.melostore.id/api/v1/h2h/bulk-orders?page=1\",\n    \"from\": 1,\n    \"last_page\": 1,\n    \"last_page_url\": \"https://api.melostore.id/api/v1/h2h/bulk-orders?page=1\",\n    \"links\": [\n      {\n        \"url\": null,\n        \"label\": \"Previous\",\n        \"active\": false\n      }\n    ],\n    \"next_page_url\": null,\n    \"path\": \"https://api.melostore.id/api/v1/h2h/bulk-orders\",\n    \"per_page\": 15,\n    \"prev_page_url\": null,\n    \"to\": 1,\n    \"total\": 1\n  }\n}"
            },
            {
              "name": "200 emptyPage",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Owned orders, 15 per page. Date filters use Asia/Jakarta inclusive start/end dates.\n\nPesanan milik profil, 15 per halaman. Filter tanggal inklusif zona Asia/Jakarta.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders?page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1",
                      "disabled": false,
                      "description": ""
                    },
                    {
                      "key": "status",
                      "value": "",
                      "disabled": true,
                      "description": ""
                    },
                    {
                      "key": "search",
                      "value": "",
                      "disabled": true,
                      "description": "Buyer reference, target, SKU or product name"
                    },
                    {
                      "key": "start_date",
                      "value": "",
                      "disabled": true,
                      "description": "YYYY-MM-DD"
                    },
                    {
                      "key": "end_date",
                      "value": "",
                      "disabled": true,
                      "description": "YYYY-MM-DD, not earlier than start_date"
                    }
                  ]
                }
              },
              "status": "Bulk order data and progress.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"current_page\": 1,\n    \"data\": [],\n    \"first_page_url\": \"https://api.melostore.id/api/v1/h2h/bulk-orders?page=1\",\n    \"from\": null,\n    \"last_page\": 1,\n    \"last_page_url\": \"https://api.melostore.id/api/v1/h2h/bulk-orders?page=1\",\n    \"links\": [\n      {\n        \"url\": null,\n        \"label\": \"Previous\",\n        \"active\": false\n      }\n    ],\n    \"next_page_url\": null,\n    \"path\": \"https://api.melostore.id/api/v1/h2h/bulk-orders\",\n    \"per_page\": 15,\n    \"prev_page_url\": null,\n    \"to\": null,\n    \"total\": 0\n  }\n}"
            },
            {
              "name": "401 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Owned orders, 15 per page. Date filters use Asia/Jakarta inclusive start/end dates.\n\nPesanan milik profil, 15 per halaman. Filter tanggal inklusif zona Asia/Jakarta.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders?page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1",
                      "disabled": false,
                      "description": ""
                    },
                    {
                      "key": "status",
                      "value": "",
                      "disabled": true,
                      "description": ""
                    },
                    {
                      "key": "search",
                      "value": "",
                      "disabled": true,
                      "description": "Buyer reference, target, SKU or product name"
                    },
                    {
                      "key": "start_date",
                      "value": "",
                      "disabled": true,
                      "description": "YYYY-MM-DD"
                    },
                    {
                      "key": "end_date",
                      "value": "",
                      "disabled": true,
                      "description": "YYYY-MM-DD, not earlier than start_date"
                    }
                  ]
                }
              },
              "status": "Authentication missing/invalid",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"\n}"
            },
            {
              "name": "403 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Owned orders, 15 per page. Date filters use Asia/Jakarta inclusive start/end dates.\n\nPesanan milik profil, 15 per halaman. Filter tanggal inklusif zona Asia/Jakarta.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders?page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1",
                      "disabled": false,
                      "description": ""
                    },
                    {
                      "key": "status",
                      "value": "",
                      "disabled": true,
                      "description": ""
                    },
                    {
                      "key": "search",
                      "value": "",
                      "disabled": true,
                      "description": "Buyer reference, target, SKU or product name"
                    },
                    {
                      "key": "start_date",
                      "value": "",
                      "disabled": true,
                      "description": "YYYY-MM-DD"
                    },
                    {
                      "key": "end_date",
                      "value": "",
                      "disabled": true,
                      "description": "YYYY-MM-DD, not earlier than start_date"
                    }
                  ]
                }
              },
              "status": "Account/IP forbidden",
              "code": 403,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Forbidden: H2H API access is not active for this account.\"\n}"
            },
            {
              "name": "422 validation",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Owned orders, 15 per page. Date filters use Asia/Jakarta inclusive start/end dates.\n\nPesanan milik profil, 15 per halaman. Filter tanggal inklusif zona Asia/Jakarta.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders?page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1",
                      "disabled": false,
                      "description": ""
                    },
                    {
                      "key": "status",
                      "value": "",
                      "disabled": true,
                      "description": ""
                    },
                    {
                      "key": "search",
                      "value": "",
                      "disabled": true,
                      "description": "Buyer reference, target, SKU or product name"
                    },
                    {
                      "key": "start_date",
                      "value": "",
                      "disabled": true,
                      "description": "YYYY-MM-DD"
                    },
                    {
                      "key": "end_date",
                      "value": "",
                      "disabled": true,
                      "description": "YYYY-MM-DD, not earlier than start_date"
                    }
                  ]
                }
              },
              "status": "Validation, product unavailable or insufficient order balance",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"message\": \"The page field must be at least 1.\",\n  \"errors\": {\n    \"page\": [\n      \"The page field must be at least 1.\"\n    ]\n  }\n}"
            },
            {
              "name": "429 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Owned orders, 15 per page. Date filters use Asia/Jakarta inclusive start/end dates.\n\nPesanan milik profil, 15 per halaman. Filter tanggal inklusif zona Asia/Jakarta.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders?page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1",
                      "disabled": false,
                      "description": ""
                    },
                    {
                      "key": "status",
                      "value": "",
                      "disabled": true,
                      "description": ""
                    },
                    {
                      "key": "search",
                      "value": "",
                      "disabled": true,
                      "description": "Buyer reference, target, SKU or product name"
                    },
                    {
                      "key": "start_date",
                      "value": "",
                      "disabled": true,
                      "description": "YYYY-MM-DD"
                    },
                    {
                      "key": "end_date",
                      "value": "",
                      "disabled": true,
                      "description": "YYYY-MM-DD, not earlier than start_date"
                    }
                  ]
                }
              },
              "status": "Tier, catalogue or nickname limit exceeded",
              "code": 429,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Too Many Requests\"\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP status is documented', () => pm.expect(Object.keys({\"200\":{\"description\":\"Bulk order data and progress.\",\"headers\":{\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"success\":{\"type\":\"boolean\",\"const\":true},\"data\":{\"$ref\":\"#/components/schemas/BulkPage\"}},\"required\":[\"success\",\"data\"]},\"examples\":{\"example\":{\"value\":{\"success\":true,\"data\":{\"current_page\":1,\"data\":[{\"id\":\"22222222-2222-4222-8222-222222222222\",\"buyer_bulk_id\":\"example-bulk-001\",\"sku_code\":\"EXAMPLE-10\",\"product_name\":\"Example product\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"order_count\":3,\"unit_price\":1000,\"total_debit\":0,\"status\":\"processing\",\"via\":\"api\",\"is_sandbox\":true,\"invoice_available\":false,\"created_at\":\"2026-10-02T03:00:00+00:00\",\"completed_at\":null,\"total_count\":3,\"success_count\":1,\"failed_count\":1,\"processed_count\":2,\"remaining_count\":1,\"processing_count\":1,\"queued_count\":0}],\"first_page_url\":\"https://api.melostore.id/api/v1/h2h/bulk-orders?page=1\",\"from\":1,\"last_page\":1,\"last_page_url\":\"https://api.melostore.id/api/v1/h2h/bulk-orders?page=1\",\"links\":[{\"url\":null,\"label\":\"Previous\",\"active\":false}],\"next_page_url\":null,\"path\":\"https://api.melostore.id/api/v1/h2h/bulk-orders\",\"per_page\":15,\"prev_page_url\":null,\"to\":1,\"total\":1}},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"},\"emptyPage\":{\"summary\":\"Empty page\",\"value\":{\"success\":true,\"data\":{\"current_page\":1,\"data\":[],\"first_page_url\":\"https://api.melostore.id/api/v1/h2h/bulk-orders?page=1\",\"from\":null,\"last_page\":1,\"last_page_url\":\"https://api.melostore.id/api/v1/h2h/bulk-orders?page=1\",\"links\":[{\"url\":null,\"label\":\"Previous\",\"active\":false}],\"next_page_url\":null,\"path\":\"https://api.melostore.id/api/v1/h2h/bulk-orders\",\"per_page\":15,\"prev_page_url\":null,\"to\":null,\"total\":0}},\"x-summary-id\":\"Halaman kosong\"}}}},\"x-description-id\":\"Data dan progres pesanan bulk.\"},\"401\":{\"description\":\"Authentication missing/invalid\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"403\":{\"description\":\"Account/IP forbidden\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Forbidden: H2H API access is not active for this account.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"422\":{\"description\":\"Validation, product unavailable or insufficient order balance\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"validation\":{\"value\":{\"message\":\"The page field must be at least 1.\",\"errors\":{\"page\":[\"The page field must be at least 1.\"]}},\"x-summary-id\":\"Parameter tidak valid\",\"summary\":\"Invalid parameters\"}}}}},\"429\":{\"description\":\"Tier, catalogue or nickname limit exceeded\",\"headers\":{\"Retry-After\":{\"description\":\"Seconds to wait before retrying a rate-limited request\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Too Many Requests\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}}})).to.include(String(pm.response.code)));",
                  "if (pm.response.code >= 200 && pm.response.code < 300) { const result = pm.response.json(); pm.test('Successful response', () => pm.expect(result.success).to.eql(true)); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Bulk progress",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{api_key}}"
              },
              {
                "key": "X-Secret-Key",
                "value": "{{secret_key}}"
              }
            ],
            "description": "Read the bulk status and order counts. processed_count includes successful and failed orders; remaining_count includes orders still waiting or processing.\n\nLihat status bulk dan jumlah pesanan. processed_count mencakup pesanan berhasil dan gagal; remaining_count mencakup pesanan yang masih menunggu atau diproses.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
            "url": {
              "raw": "{{base_url}}/api/v1/h2h/bulk-orders/{{bulk_order_id}}",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "h2h",
                "bulk-orders",
                "{{bulk_order_id}}"
              ],
              "query": []
            }
          },
          "response": [
            {
              "name": "200 example",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Read the bulk status and order counts. processed_count includes successful and failed orders; remaining_count includes orders still waiting or processing.\n\nLihat status bulk dan jumlah pesanan. processed_count mencakup pesanan berhasil dan gagal; remaining_count mencakup pesanan yang masih menunggu atau diproses.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders/{{bulk_order_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders",
                    "{{bulk_order_id}}"
                  ],
                  "query": []
                }
              },
              "status": "Bulk order data and progress.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"22222222-2222-4222-8222-222222222222\",\n    \"buyer_bulk_id\": \"example-bulk-001\",\n    \"sku_code\": \"EXAMPLE-10\",\n    \"product_name\": \"Example product\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": \"1234\",\n    \"order_count\": 3,\n    \"unit_price\": 1000,\n    \"total_debit\": 0,\n    \"status\": \"processing\",\n    \"via\": \"api\",\n    \"is_sandbox\": true,\n    \"invoice_available\": false,\n    \"created_at\": \"2026-10-02T03:00:00+00:00\",\n    \"completed_at\": null,\n    \"total_count\": 3,\n    \"success_count\": 1,\n    \"failed_count\": 1,\n    \"processed_count\": 2,\n    \"remaining_count\": 1,\n    \"processing_count\": 1,\n    \"queued_count\": 0\n  }\n}"
            },
            {
              "name": "401 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Read the bulk status and order counts. processed_count includes successful and failed orders; remaining_count includes orders still waiting or processing.\n\nLihat status bulk dan jumlah pesanan. processed_count mencakup pesanan berhasil dan gagal; remaining_count mencakup pesanan yang masih menunggu atau diproses.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders/{{bulk_order_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders",
                    "{{bulk_order_id}}"
                  ],
                  "query": []
                }
              },
              "status": "Authentication missing/invalid",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"\n}"
            },
            {
              "name": "403 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Read the bulk status and order counts. processed_count includes successful and failed orders; remaining_count includes orders still waiting or processing.\n\nLihat status bulk dan jumlah pesanan. processed_count mencakup pesanan berhasil dan gagal; remaining_count mencakup pesanan yang masih menunggu atau diproses.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders/{{bulk_order_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders",
                    "{{bulk_order_id}}"
                  ],
                  "query": []
                }
              },
              "status": "Account/IP forbidden",
              "code": 403,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Forbidden: H2H API access is not active for this account.\"\n}"
            },
            {
              "name": "404 not-found",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Read the bulk status and order counts. processed_count includes successful and failed orders; remaining_count includes orders still waiting or processing.\n\nLihat status bulk dan jumlah pesanan. processed_count mencakup pesanan berhasil dan gagal; remaining_count mencakup pesanan yang masih menunggu atau diproses.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders/{{bulk_order_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders",
                    "{{bulk_order_id}}"
                  ],
                  "query": []
                }
              },
              "status": "Owned resource/category/account not found",
              "code": 404,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"message\": \"Bulk order not found.\"\n}"
            },
            {
              "name": "429 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Read the bulk status and order counts. processed_count includes successful and failed orders; remaining_count includes orders still waiting or processing.\n\nLihat status bulk dan jumlah pesanan. processed_count mencakup pesanan berhasil dan gagal; remaining_count mencakup pesanan yang masih menunggu atau diproses.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders/{{bulk_order_id}}",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders",
                    "{{bulk_order_id}}"
                  ],
                  "query": []
                }
              },
              "status": "Tier, catalogue or nickname limit exceeded",
              "code": 429,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Too Many Requests\"\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP status is documented', () => pm.expect(Object.keys({\"200\":{\"description\":\"Bulk order data and progress.\",\"headers\":{\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"success\":{\"type\":\"boolean\",\"const\":true},\"data\":{\"$ref\":\"#/components/schemas/BulkOrder\"}},\"required\":[\"success\",\"data\"]},\"examples\":{\"example\":{\"value\":{\"success\":true,\"data\":{\"id\":\"22222222-2222-4222-8222-222222222222\",\"buyer_bulk_id\":\"example-bulk-001\",\"sku_code\":\"EXAMPLE-10\",\"product_name\":\"Example product\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"order_count\":3,\"unit_price\":1000,\"total_debit\":0,\"status\":\"processing\",\"via\":\"api\",\"is_sandbox\":true,\"invoice_available\":false,\"created_at\":\"2026-10-02T03:00:00+00:00\",\"completed_at\":null,\"total_count\":3,\"success_count\":1,\"failed_count\":1,\"processed_count\":2,\"remaining_count\":1,\"processing_count\":1,\"queued_count\":0}},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"}}}},\"x-description-id\":\"Data dan progres pesanan bulk.\"},\"401\":{\"description\":\"Authentication missing/invalid\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"403\":{\"description\":\"Account/IP forbidden\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Forbidden: H2H API access is not active for this account.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"404\":{\"description\":\"Owned resource/category/account not found\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"not-found\":{\"value\":{\"message\":\"Bulk order not found.\"},\"x-summary-id\":\"Tidak ditemukan\",\"summary\":\"Not found\"}}}}},\"429\":{\"description\":\"Tier, catalogue or nickname limit exceeded\",\"headers\":{\"Retry-After\":{\"description\":\"Seconds to wait before retrying a rate-limited request\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Too Many Requests\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}}})).to.include(String(pm.response.code)));",
                  "if (pm.response.code >= 200 && pm.response.code < 300) { const result = pm.response.json(); pm.test('Successful response', () => pm.expect(result.success).to.eql(true)); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Bulk child transactions",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{api_key}}"
              },
              {
                "key": "X-Secret-Key",
                "value": "{{secret_key}}"
              }
            ],
            "description": "Sequence-ordered child orders, 15 per page. Each has its own transaction UUID and buyer_trx_id.\n\nPesanan anak diurutkan berdasarkan giliran, 15 per halaman. Setiap anak memiliki UUID transaksi dan buyer_trx_id sendiri.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
            "url": {
              "raw": "{{base_url}}/api/v1/h2h/bulk-orders/{{bulk_order_id}}/transactions?page=1",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "h2h",
                "bulk-orders",
                "{{bulk_order_id}}",
                "transactions"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "1",
                  "disabled": false,
                  "description": ""
                }
              ]
            }
          },
          "response": [
            {
              "name": "200 example",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Sequence-ordered child orders, 15 per page. Each has its own transaction UUID and buyer_trx_id.\n\nPesanan anak diurutkan berdasarkan giliran, 15 per halaman. Setiap anak memiliki UUID transaksi dan buyer_trx_id sendiri.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders/{{bulk_order_id}}/transactions?page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders",
                    "{{bulk_order_id}}",
                    "transactions"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1",
                      "disabled": false,
                      "description": ""
                    }
                  ]
                }
              },
              "status": "Bulk order data and progress.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"current_page\": 1,\n    \"data\": [\n      {\n        \"id\": \"11111111-1111-4111-8111-111111111111\",\n        \"buyer_trx_id\": \"BULK-22222222-2222-4222-8222-222222222222-1\",\n        \"bulk_order_id\": \"22222222-2222-4222-8222-222222222222\",\n        \"buyer_bulk_id\": \"example-bulk-001\",\n        \"bulk_sequence\": 1,\n        \"sku_code\": \"EXAMPLE-10\",\n        \"customer_target\": \"123456789\",\n        \"customer_target_zone\": \"1234\",\n        \"price\": 1000,\n        \"status\": \"success\",\n        \"serial_number\": \"EXAMPLE-SN-001\",\n        \"error_code\": null,\n        \"message\": null,\n        \"created_at\": \"2026-10-02T03:00:00+00:00\",\n        \"updated_at\": \"2026-10-02T03:00:00+00:00\"\n      }\n    ],\n    \"first_page_url\": \"https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions?page=1\",\n    \"from\": 1,\n    \"last_page\": 1,\n    \"last_page_url\": \"https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions?page=1\",\n    \"links\": [\n      {\n        \"url\": null,\n        \"label\": \"Previous\",\n        \"active\": false\n      }\n    ],\n    \"next_page_url\": null,\n    \"path\": \"https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions\",\n    \"per_page\": 15,\n    \"prev_page_url\": null,\n    \"to\": 1,\n    \"total\": 1\n  }\n}"
            },
            {
              "name": "200 emptyPage",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Sequence-ordered child orders, 15 per page. Each has its own transaction UUID and buyer_trx_id.\n\nPesanan anak diurutkan berdasarkan giliran, 15 per halaman. Setiap anak memiliki UUID transaksi dan buyer_trx_id sendiri.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders/{{bulk_order_id}}/transactions?page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders",
                    "{{bulk_order_id}}",
                    "transactions"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1",
                      "disabled": false,
                      "description": ""
                    }
                  ]
                }
              },
              "status": "Bulk order data and progress.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"current_page\": 1,\n    \"data\": [],\n    \"first_page_url\": \"https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions?page=1\",\n    \"from\": null,\n    \"last_page\": 1,\n    \"last_page_url\": \"https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions?page=1\",\n    \"links\": [\n      {\n        \"url\": null,\n        \"label\": \"Previous\",\n        \"active\": false\n      }\n    ],\n    \"next_page_url\": null,\n    \"path\": \"https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions\",\n    \"per_page\": 15,\n    \"prev_page_url\": null,\n    \"to\": null,\n    \"total\": 0\n  }\n}"
            },
            {
              "name": "200 withoutZone",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Sequence-ordered child orders, 15 per page. Each has its own transaction UUID and buyer_trx_id.\n\nPesanan anak diurutkan berdasarkan giliran, 15 per halaman. Setiap anak memiliki UUID transaksi dan buyer_trx_id sendiri.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders/{{bulk_order_id}}/transactions?page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders",
                    "{{bulk_order_id}}",
                    "transactions"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1",
                      "disabled": false,
                      "description": ""
                    }
                  ]
                }
              },
              "status": "Bulk order data and progress.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"current_page\": 1,\n    \"data\": [\n      {\n        \"id\": \"11111111-1111-4111-8111-111111111111\",\n        \"buyer_trx_id\": \"BULK-22222222-2222-4222-8222-222222222222-1\",\n        \"bulk_order_id\": \"22222222-2222-4222-8222-222222222222\",\n        \"buyer_bulk_id\": \"example-bulk-001\",\n        \"bulk_sequence\": 1,\n        \"sku_code\": \"EXAMPLE-10\",\n        \"customer_target\": \"123456789\",\n        \"customer_target_zone\": null,\n        \"price\": 1000,\n        \"status\": \"success\",\n        \"serial_number\": \"EXAMPLE-SN-001\",\n        \"error_code\": null,\n        \"message\": null,\n        \"created_at\": \"2026-10-02T03:00:00+00:00\",\n        \"updated_at\": \"2026-10-02T03:00:00+00:00\"\n      }\n    ],\n    \"first_page_url\": \"https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions?page=1\",\n    \"from\": 1,\n    \"last_page\": 1,\n    \"last_page_url\": \"https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions?page=1\",\n    \"links\": [\n      {\n        \"url\": null,\n        \"label\": \"Previous\",\n        \"active\": false\n      }\n    ],\n    \"next_page_url\": null,\n    \"path\": \"https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions\",\n    \"per_page\": 15,\n    \"prev_page_url\": null,\n    \"to\": 1,\n    \"total\": 1\n  }\n}"
            },
            {
              "name": "401 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Sequence-ordered child orders, 15 per page. Each has its own transaction UUID and buyer_trx_id.\n\nPesanan anak diurutkan berdasarkan giliran, 15 per halaman. Setiap anak memiliki UUID transaksi dan buyer_trx_id sendiri.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders/{{bulk_order_id}}/transactions?page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders",
                    "{{bulk_order_id}}",
                    "transactions"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1",
                      "disabled": false,
                      "description": ""
                    }
                  ]
                }
              },
              "status": "Authentication missing/invalid",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"\n}"
            },
            {
              "name": "403 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Sequence-ordered child orders, 15 per page. Each has its own transaction UUID and buyer_trx_id.\n\nPesanan anak diurutkan berdasarkan giliran, 15 per halaman. Setiap anak memiliki UUID transaksi dan buyer_trx_id sendiri.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders/{{bulk_order_id}}/transactions?page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders",
                    "{{bulk_order_id}}",
                    "transactions"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1",
                      "disabled": false,
                      "description": ""
                    }
                  ]
                }
              },
              "status": "Account/IP forbidden",
              "code": 403,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Forbidden: H2H API access is not active for this account.\"\n}"
            },
            {
              "name": "404 not-found",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Sequence-ordered child orders, 15 per page. Each has its own transaction UUID and buyer_trx_id.\n\nPesanan anak diurutkan berdasarkan giliran, 15 per halaman. Setiap anak memiliki UUID transaksi dan buyer_trx_id sendiri.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders/{{bulk_order_id}}/transactions?page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders",
                    "{{bulk_order_id}}",
                    "transactions"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1",
                      "disabled": false,
                      "description": ""
                    }
                  ]
                }
              },
              "status": "Owned resource/category/account not found",
              "code": 404,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"message\": \"Bulk order not found.\"\n}"
            },
            {
              "name": "422 validation",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Sequence-ordered child orders, 15 per page. Each has its own transaction UUID and buyer_trx_id.\n\nPesanan anak diurutkan berdasarkan giliran, 15 per halaman. Setiap anak memiliki UUID transaksi dan buyer_trx_id sendiri.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders/{{bulk_order_id}}/transactions?page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders",
                    "{{bulk_order_id}}",
                    "transactions"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1",
                      "disabled": false,
                      "description": ""
                    }
                  ]
                }
              },
              "status": "Validation, product unavailable or insufficient order balance",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"message\": \"The page field must be at least 1.\",\n  \"errors\": {\n    \"page\": [\n      \"The page field must be at least 1.\"\n    ]\n  }\n}"
            },
            {
              "name": "429 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Sequence-ordered child orders, 15 per page. Each has its own transaction UUID and buyer_trx_id.\n\nPesanan anak diurutkan berdasarkan giliran, 15 per halaman. Setiap anak memiliki UUID transaksi dan buyer_trx_id sendiri.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders/{{bulk_order_id}}/transactions?page=1",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders",
                    "{{bulk_order_id}}",
                    "transactions"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1",
                      "disabled": false,
                      "description": ""
                    }
                  ]
                }
              },
              "status": "Tier, catalogue or nickname limit exceeded",
              "code": 429,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Too Many Requests\"\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP status is documented', () => pm.expect(Object.keys({\"200\":{\"description\":\"Bulk order data and progress.\",\"headers\":{\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"success\":{\"type\":\"boolean\",\"const\":true},\"data\":{\"$ref\":\"#/components/schemas/ChildPage\"}},\"required\":[\"success\",\"data\"]},\"examples\":{\"example\":{\"value\":{\"success\":true,\"data\":{\"current_page\":1,\"data\":[{\"id\":\"11111111-1111-4111-8111-111111111111\",\"buyer_trx_id\":\"BULK-22222222-2222-4222-8222-222222222222-1\",\"bulk_order_id\":\"22222222-2222-4222-8222-222222222222\",\"buyer_bulk_id\":\"example-bulk-001\",\"bulk_sequence\":1,\"sku_code\":\"EXAMPLE-10\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"price\":1000,\"status\":\"success\",\"serial_number\":\"EXAMPLE-SN-001\",\"error_code\":null,\"message\":null,\"created_at\":\"2026-10-02T03:00:00+00:00\",\"updated_at\":\"2026-10-02T03:00:00+00:00\"}],\"first_page_url\":\"https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions?page=1\",\"from\":1,\"last_page\":1,\"last_page_url\":\"https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions?page=1\",\"links\":[{\"url\":null,\"label\":\"Previous\",\"active\":false}],\"next_page_url\":null,\"path\":\"https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions\",\"per_page\":15,\"prev_page_url\":null,\"to\":1,\"total\":1}},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"},\"emptyPage\":{\"summary\":\"Empty page\",\"value\":{\"success\":true,\"data\":{\"current_page\":1,\"data\":[],\"first_page_url\":\"https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions?page=1\",\"from\":null,\"last_page\":1,\"last_page_url\":\"https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions?page=1\",\"links\":[{\"url\":null,\"label\":\"Previous\",\"active\":false}],\"next_page_url\":null,\"path\":\"https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions\",\"per_page\":15,\"prev_page_url\":null,\"to\":null,\"total\":0}},\"x-summary-id\":\"Halaman kosong\"},\"withoutZone\":{\"summary\":\"Without zone\",\"value\":{\"success\":true,\"data\":{\"current_page\":1,\"data\":[{\"id\":\"11111111-1111-4111-8111-111111111111\",\"buyer_trx_id\":\"BULK-22222222-2222-4222-8222-222222222222-1\",\"bulk_order_id\":\"22222222-2222-4222-8222-222222222222\",\"buyer_bulk_id\":\"example-bulk-001\",\"bulk_sequence\":1,\"sku_code\":\"EXAMPLE-10\",\"customer_target\":\"123456789\",\"customer_target_zone\":null,\"price\":1000,\"status\":\"success\",\"serial_number\":\"EXAMPLE-SN-001\",\"error_code\":null,\"message\":null,\"created_at\":\"2026-10-02T03:00:00+00:00\",\"updated_at\":\"2026-10-02T03:00:00+00:00\"}],\"first_page_url\":\"https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions?page=1\",\"from\":1,\"last_page\":1,\"last_page_url\":\"https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions?page=1\",\"links\":[{\"url\":null,\"label\":\"Previous\",\"active\":false}],\"next_page_url\":null,\"path\":\"https://api.melostore.id/api/v1/h2h/bulk-orders/22222222-2222-4222-8222-222222222222/transactions\",\"per_page\":15,\"prev_page_url\":null,\"to\":1,\"total\":1}},\"x-summary-id\":\"Tanpa zone\"}}}},\"x-description-id\":\"Data dan progres pesanan bulk.\"},\"401\":{\"description\":\"Authentication missing/invalid\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"403\":{\"description\":\"Account/IP forbidden\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Forbidden: H2H API access is not active for this account.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"404\":{\"description\":\"Owned resource/category/account not found\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"not-found\":{\"value\":{\"message\":\"Bulk order not found.\"},\"x-summary-id\":\"Tidak ditemukan\",\"summary\":\"Not found\"}}}}},\"422\":{\"description\":\"Validation, product unavailable or insufficient order balance\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"validation\":{\"value\":{\"message\":\"The page field must be at least 1.\",\"errors\":{\"page\":[\"The page field must be at least 1.\"]}},\"x-summary-id\":\"Parameter tidak valid\",\"summary\":\"Invalid parameters\"}}}}},\"429\":{\"description\":\"Tier, catalogue or nickname limit exceeded\",\"headers\":{\"Retry-After\":{\"description\":\"Seconds to wait before retrying a rate-limited request\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Too Many Requests\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}}})).to.include(String(pm.response.code)));",
                  "if (pm.response.code >= 200 && pm.response.code < 300) { const result = pm.response.json(); pm.test('Successful response', () => pm.expect(result.success).to.eql(true)); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Download final bulk invoice",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{api_key}}"
              },
              {
                "key": "X-Secret-Key",
                "value": "{{secret_key}}"
              }
            ],
            "description": "Download one PDF summarising the completed bulk's costs and refunds. HTTP 409 means the invoice is not yet available or the bulk uses sandbox. A live bulk where all orders fail shows a full refund and zero final cost.\n\nUnduh satu PDF yang merangkum biaya dan refund bulk yang selesai. HTTP 409 berarti invoice belum tersedia atau bulk menggunakan sandbox. Jika semua pesanan live gagal, invoice menunjukkan refund penuh dan biaya akhir nol.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
            "url": {
              "raw": "{{base_url}}/api/v1/h2h/bulk-orders/{{bulk_order_id}}/invoice",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "h2h",
                "bulk-orders",
                "{{bulk_order_id}}",
                "invoice"
              ],
              "query": []
            }
          },
          "response": [
            {
              "name": "401 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Download one PDF summarising the completed bulk's costs and refunds. HTTP 409 means the invoice is not yet available or the bulk uses sandbox. A live bulk where all orders fail shows a full refund and zero final cost.\n\nUnduh satu PDF yang merangkum biaya dan refund bulk yang selesai. HTTP 409 berarti invoice belum tersedia atau bulk menggunakan sandbox. Jika semua pesanan live gagal, invoice menunjukkan refund penuh dan biaya akhir nol.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders/{{bulk_order_id}}/invoice",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders",
                    "{{bulk_order_id}}",
                    "invoice"
                  ],
                  "query": []
                }
              },
              "status": "Authentication missing/invalid",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"\n}"
            },
            {
              "name": "403 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Download one PDF summarising the completed bulk's costs and refunds. HTTP 409 means the invoice is not yet available or the bulk uses sandbox. A live bulk where all orders fail shows a full refund and zero final cost.\n\nUnduh satu PDF yang merangkum biaya dan refund bulk yang selesai. HTTP 409 berarti invoice belum tersedia atau bulk menggunakan sandbox. Jika semua pesanan live gagal, invoice menunjukkan refund penuh dan biaya akhir nol.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders/{{bulk_order_id}}/invoice",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders",
                    "{{bulk_order_id}}",
                    "invoice"
                  ],
                  "query": []
                }
              },
              "status": "Account/IP forbidden",
              "code": 403,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Forbidden: H2H API access is not active for this account.\"\n}"
            },
            {
              "name": "404 not-found",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Download one PDF summarising the completed bulk's costs and refunds. HTTP 409 means the invoice is not yet available or the bulk uses sandbox. A live bulk where all orders fail shows a full refund and zero final cost.\n\nUnduh satu PDF yang merangkum biaya dan refund bulk yang selesai. HTTP 409 berarti invoice belum tersedia atau bulk menggunakan sandbox. Jika semua pesanan live gagal, invoice menunjukkan refund penuh dan biaya akhir nol.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders/{{bulk_order_id}}/invoice",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders",
                    "{{bulk_order_id}}",
                    "invoice"
                  ],
                  "query": []
                }
              },
              "status": "Owned resource/category/account not found",
              "code": 404,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"message\": \"Bulk order not found.\"\n}"
            },
            {
              "name": "409 conflict",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Download one PDF summarising the completed bulk's costs and refunds. HTTP 409 means the invoice is not yet available or the bulk uses sandbox. A live bulk where all orders fail shows a full refund and zero final cost.\n\nUnduh satu PDF yang merangkum biaya dan refund bulk yang selesai. HTTP 409 berarti invoice belum tersedia atau bulk menggunakan sandbox. Jika semua pesanan live gagal, invoice menunjukkan refund penuh dan biaya akhir nol.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders/{{bulk_order_id}}/invoice",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders",
                    "{{bulk_order_id}}",
                    "invoice"
                  ],
                  "query": []
                }
              },
              "status": "Invoice not yet available, or bulk uses sandbox",
              "code": 409,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"message\": \"Invoice bulk tersedia setelah seluruh transaksi riil selesai.\"\n}"
            },
            {
              "name": "429 error",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  }
                ],
                "description": "Download one PDF summarising the completed bulk's costs and refunds. HTTP 409 means the invoice is not yet available or the bulk uses sandbox. A live bulk where all orders fail shows a full refund and zero final cost.\n\nUnduh satu PDF yang merangkum biaya dan refund bulk yang selesai. HTTP 409 berarti invoice belum tersedia atau bulk menggunakan sandbox. Jika semua pesanan live gagal, invoice menunjukkan refund penuh dan biaya akhir nol.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/bulk-orders/{{bulk_order_id}}/invoice",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "bulk-orders",
                    "{{bulk_order_id}}",
                    "invoice"
                  ],
                  "query": []
                }
              },
              "status": "Tier, catalogue or nickname limit exceeded",
              "code": 429,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Too Many Requests\"\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP status is documented', () => pm.expect(Object.keys({\"200\":{\"description\":\"Final PDF attachment, stable number H2H-BULK-{UUID}\",\"headers\":{\"Content-Disposition\":{\"schema\":{\"type\":\"string\"},\"description\":\"attachment; filename=\\\"H2H-BULK-{UUID}.pdf\\\"\"},\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/pdf\":{\"schema\":{\"type\":\"string\",\"format\":\"binary\"}}},\"x-description-id\":\"Lampiran PDF akhir dengan nomor invoice tetap H2H-BULK-{UUID}.\"},\"401\":{\"description\":\"Authentication missing/invalid\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"403\":{\"description\":\"Account/IP forbidden\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Forbidden: H2H API access is not active for this account.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"404\":{\"description\":\"Owned resource/category/account not found\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"not-found\":{\"value\":{\"message\":\"Bulk order not found.\"},\"x-summary-id\":\"Tidak ditemukan\",\"summary\":\"Not found\"}}}}},\"409\":{\"description\":\"Invoice not yet available, or bulk uses sandbox\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"conflict\":{\"value\":{\"message\":\"Invoice bulk tersedia setelah seluruh transaksi riil selesai.\"},\"x-summary-id\":\"Request tidak dapat dilanjutkan\",\"summary\":\"Request conflict\"}}}}},\"429\":{\"description\":\"Tier, catalogue or nickname limit exceeded\",\"headers\":{\"Retry-After\":{\"description\":\"Seconds to wait before retrying a rate-limited request\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Limit\":{\"description\":\"General requests per minute for the account tier\",\"schema\":{\"type\":\"integer\"}},\"X-RateLimit-Remaining\":{\"description\":\"Remaining general requests in the current minute\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Too Many Requests\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}}})).to.include(String(pm.response.code)));",
                  "if (pm.response.code === 200) pm.test('PDF response', () => pm.expect(pm.response.headers.get('Content-Type')).to.include('application/pdf')); "
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "accounts",
      "item": [
        {
          "name": "Supported accounts/games",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "description": "Public list and zone requirements. Zone reference in these docs is a snapshot.\n\nDaftar publik serta kebutuhan zone. Referensi zone docs merupakan snapshot.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
            "url": {
              "raw": "{{base_url}}/api/v1/h2h/check-nickname/games",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "h2h",
                "check-nickname",
                "games"
              ],
              "query": []
            }
          },
          "response": [
            {
              "name": "200 example",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "description": "Public list and zone requirements. Zone reference in these docs is a snapshot.\n\nDaftar publik serta kebutuhan zone. Referensi zone docs merupakan snapshot.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/check-nickname/games",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "check-nickname",
                    "games"
                  ],
                  "query": []
                }
              },
              "status": "Request succeeded.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"games\": [\n    {\n      \"game_code\": \"mobile-legends\",\n      \"name\": \"Mobile Legends\",\n      \"type\": \"game\",\n      \"zone_required\": true,\n      \"zone_values\": null,\n      \"params\": [\n        {\n          \"name\": \"customer_target\"\n        },\n        {\n          \"name\": \"customer_target_zone\"\n        }\n      ],\n      \"status\": \"available\"\n    }\n  ]\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP status is documented', () => pm.expect(Object.keys({\"200\":{\"description\":\"Request succeeded.\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Games\"},\"examples\":{\"example\":{\"value\":{\"success\":true,\"games\":[{\"game_code\":\"mobile-legends\",\"name\":\"Mobile Legends\",\"type\":\"game\",\"zone_required\":true,\"zone_values\":null,\"params\":[{\"name\":\"customer_target\"},{\"name\":\"customer_target_zone\"}],\"status\":\"available\"}]},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"}}}},\"x-description-id\":\"Request berhasil.\"}})).to.include(String(pm.response.code)));",
                  "if (pm.response.code >= 200 && pm.response.code < 300) { const result = pm.response.json(); pm.test('Successful response', () => pm.expect(result.success).to.eql(true)); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Account-check plan",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "description": "Public current allowance/rates. Values in examples are fictional snapshots, not an active quote.\n\nJatah/tarif aktif publik. Angka contoh adalah snapshot fiktif, bukan tarif aktif.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
            "url": {
              "raw": "{{base_url}}/api/v1/h2h/check-nickname/plan",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "h2h",
                "check-nickname",
                "plan"
              ],
              "query": []
            }
          },
          "response": [
            {
              "name": "200 example",
              "originalRequest": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "description": "Public current allowance/rates. Values in examples are fictional snapshots, not an active quote.\n\nJatah/tarif aktif publik. Angka contoh adalah snapshot fiktif, bukan tarif aktif.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/check-nickname/plan",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "check-nickname",
                    "plan"
                  ],
                  "query": []
                }
              },
              "status": "Request succeeded.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"free_daily_limit\": 40,\n    \"free_minute_limit\": 20,\n    \"paid_price_mc\": 1,\n    \"paid_minute_limit\": 20,\n    \"resets_at\": \"00:00 UTC\"\n  }\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP status is documented', () => pm.expect(Object.keys({\"200\":{\"description\":\"Request succeeded.\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"success\":{\"type\":\"boolean\",\"const\":true},\"data\":{\"$ref\":\"#/components/schemas/NicknamePlan\"}},\"required\":[\"success\",\"data\"]},\"examples\":{\"example\":{\"value\":{\"success\":true,\"data\":{\"free_daily_limit\":40,\"free_minute_limit\":20,\"paid_price_mc\":1,\"paid_minute_limit\":20,\"resets_at\":\"00:00 UTC\"}},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"}}}},\"x-description-id\":\"Request berhasil.\"}})).to.include(String(pm.response.code)));",
                  "if (pm.response.code >= 200 && pm.response.code < 300) { const result = pm.response.json(); pm.test('Successful response', () => pm.expect(result.success).to.eql(true)); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Check account nickname",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{api_key}}"
              },
              {
                "key": "X-Secret-Key",
                "value": "{{secret_key}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "description": "Account mode governs billing; no per-request sandbox override. Found and not-found consume allowance or paid charge, including repeated checks.\n\nMode akun menentukan billing; tidak ada override sandbox per request. Ditemukan/tidak ditemukan memakai jatah atau biaya, termasuk pemeriksaan ulang.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
            "url": {
              "raw": "{{base_url}}/api/v1/h2h/check-nickname",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "h2h",
                "check-nickname"
              ],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"game_code\": \"mobile-legends\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "200 example",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Account mode governs billing; no per-request sandbox override. Found and not-found consume allowance or paid charge, including repeated checks.\n\nMode akun menentukan billing; tidak ada override sandbox per request. Ditemukan/tidak ditemukan memakai jatah atau biaya, termasuk pemeriksaan ulang.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/check-nickname",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "check-nickname"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"game_code\": \"mobile-legends\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Request succeeded.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"game_code\": \"mobile-legends\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": \"1234\",\n    \"username\": \"Example Player\",\n    \"region\": \"ID\",\n    \"region_type\": \"country\"\n  },\n  \"billing\": {\n    \"charged_mc\": 0,\n    \"free_remaining_today\": 39,\n    \"transaction_id\": null\n  }\n}"
            },
            {
              "name": "200 withoutZoneOrRegion",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Account mode governs billing; no per-request sandbox override. Found and not-found consume allowance or paid charge, including repeated checks.\n\nMode akun menentukan billing; tidak ada override sandbox per request. Ditemukan/tidak ditemukan memakai jatah atau biaya, termasuk pemeriksaan ulang.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/check-nickname",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "check-nickname"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"game_code\": \"mobile-legends\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Request succeeded.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"game_code\": \"pubg-mobile\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": null,\n    \"username\": \"Example Player\",\n    \"region\": null,\n    \"region_type\": null\n  },\n  \"billing\": {\n    \"charged_mc\": 0,\n    \"free_remaining_today\": 39,\n    \"transaction_id\": null\n  }\n}"
            },
            {
              "name": "401 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Account mode governs billing; no per-request sandbox override. Found and not-found consume allowance or paid charge, including repeated checks.\n\nMode akun menentukan billing; tidak ada override sandbox per request. Ditemukan/tidak ditemukan memakai jatah atau biaya, termasuk pemeriksaan ulang.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/check-nickname",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "check-nickname"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"game_code\": \"mobile-legends\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Authentication missing/invalid",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"\n}"
            },
            {
              "name": "402 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Account mode governs billing; no per-request sandbox override. Found and not-found consume allowance or paid charge, including repeated checks.\n\nMode akun menentukan billing; tidak ada override sandbox per request. Ditemukan/tidak ditemukan memakai jatah atau biaya, termasuk pemeriksaan ulang.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/check-nickname",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "check-nickname"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"game_code\": \"mobile-legends\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Insufficient account-check balance",
              "code": 402,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Saldo H2H tidak mencukupi untuk pemeriksaan akun.\",\n  \"error\": {\n    \"code\": 4020,\n    \"message\": \"Saldo H2H tidak mencukupi untuk pemeriksaan akun.\",\n    \"category\": \"insufficient_balance\"\n  }\n}"
            },
            {
              "name": "403 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Account mode governs billing; no per-request sandbox override. Found and not-found consume allowance or paid charge, including repeated checks.\n\nMode akun menentukan billing; tidak ada override sandbox per request. Ditemukan/tidak ditemukan memakai jatah atau biaya, termasuk pemeriksaan ulang.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/check-nickname",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "check-nickname"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"game_code\": \"mobile-legends\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Account/IP forbidden",
              "code": 403,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Forbidden: H2H API access is not active for this account.\"\n}"
            },
            {
              "name": "404 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Account mode governs billing; no per-request sandbox override. Found and not-found consume allowance or paid charge, including repeated checks.\n\nMode akun menentukan billing; tidak ada override sandbox per request. Ditemukan/tidak ditemukan memakai jatah atau biaya, termasuk pemeriksaan ulang.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/check-nickname",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "check-nickname"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"game_code\": \"mobile-legends\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Owned resource/category/account not found",
              "code": 404,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Akun tidak ditemukan.\",\n  \"error\": {\n    \"code\": 4001,\n    \"message\": \"Akun tidak ditemukan.\",\n    \"category\": \"not_found\"\n  },\n  \"billing\": {\n    \"charged_mc\": 0,\n    \"free_remaining_today\": 39,\n    \"transaction_id\": null\n  }\n}"
            },
            {
              "name": "422 validation",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Account mode governs billing; no per-request sandbox override. Found and not-found consume allowance or paid charge, including repeated checks.\n\nMode akun menentukan billing; tidak ada override sandbox per request. Ditemukan/tidak ditemukan memakai jatah atau biaya, termasuk pemeriksaan ulang.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/check-nickname",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "check-nickname"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"game_code\": \"mobile-legends\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Validation, product unavailable or insufficient order balance",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"message\": \"The customer target field is required.\",\n  \"errors\": {\n    \"customer_target\": [\n      \"The customer target field is required.\"\n    ]\n  }\n}"
            },
            {
              "name": "429 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Account mode governs billing; no per-request sandbox override. Found and not-found consume allowance or paid charge, including repeated checks.\n\nMode akun menentukan billing; tidak ada override sandbox per request. Ditemukan/tidak ditemukan memakai jatah atau biaya, termasuk pemeriksaan ulang.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/check-nickname",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "check-nickname"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"game_code\": \"mobile-legends\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Tier, catalogue or nickname limit exceeded",
              "code": 429,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Batas pemeriksaan akun tercapai. Coba lagi setelah kuota diperbarui.\",\n  \"error\": {\n    \"code\": 4290,\n    \"category\": \"limit_reached\"\n  }\n}"
            },
            {
              "name": "502 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Account mode governs billing; no per-request sandbox override. Found and not-found consume allowance or paid charge, including repeated checks.\n\nMode akun menentukan billing; tidak ada override sandbox per request. Ditemukan/tidak ditemukan memakai jatah atau biaya, termasuk pemeriksaan ulang.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/check-nickname",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "check-nickname"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"game_code\": \"mobile-legends\",\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Account check temporarily unavailable",
              "code": 502,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Sistem verifikasi sedang mengalami gangguan.\",\n  \"error\": {\n    \"code\": 4007,\n    \"message\": \"Sistem verifikasi sedang mengalami gangguan.\",\n    \"category\": \"server\"\n  }\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP status is documented', () => pm.expect(Object.keys({\"200\":{\"description\":\"Request succeeded.\",\"headers\":{\"X-Nickname-RateLimit-Limit\":{\"description\":\"Account-check requests per minute\",\"schema\":{\"type\":\"integer\"}},\"X-Nickname-RateLimit-Remaining\":{\"description\":\"Remaining account-check requests\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/NicknameResult\"},\"examples\":{\"example\":{\"value\":{\"success\":true,\"data\":{\"game_code\":\"mobile-legends\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"username\":\"Example Player\",\"region\":\"ID\",\"region_type\":\"country\"},\"billing\":{\"charged_mc\":0,\"free_remaining_today\":39,\"transaction_id\":null}},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"},\"withoutZoneOrRegion\":{\"summary\":\"Without zone or region\",\"value\":{\"success\":true,\"data\":{\"game_code\":\"pubg-mobile\",\"customer_target\":\"123456789\",\"customer_target_zone\":null,\"username\":\"Example Player\",\"region\":null,\"region_type\":null},\"billing\":{\"charged_mc\":0,\"free_remaining_today\":39,\"transaction_id\":null}},\"x-summary-id\":\"Tanpa zone atau region\"}}}},\"x-description-id\":\"Request berhasil.\"},\"401\":{\"description\":\"Authentication missing/invalid\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"402\":{\"description\":\"Insufficient account-check balance\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Saldo H2H tidak mencukupi untuk pemeriksaan akun.\",\"error\":{\"code\":4020,\"message\":\"Saldo H2H tidak mencukupi untuk pemeriksaan akun.\",\"category\":\"insufficient_balance\"}},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"403\":{\"description\":\"Account/IP forbidden\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Forbidden: H2H API access is not active for this account.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"404\":{\"description\":\"Owned resource/category/account not found\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Akun tidak ditemukan.\",\"error\":{\"code\":4001,\"message\":\"Akun tidak ditemukan.\",\"category\":\"not_found\"},\"billing\":{\"charged_mc\":0,\"free_remaining_today\":39,\"transaction_id\":null}},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"422\":{\"description\":\"Validation, product unavailable or insufficient order balance\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"validation\":{\"value\":{\"message\":\"The customer target field is required.\",\"errors\":{\"customer_target\":[\"The customer target field is required.\"]}},\"x-summary-id\":\"Parameter tidak valid\",\"summary\":\"Invalid parameters\"}}}}},\"429\":{\"description\":\"Tier, catalogue or nickname limit exceeded\",\"headers\":{\"Retry-After\":{\"description\":\"Seconds to wait before retrying a rate-limited request\",\"schema\":{\"type\":\"integer\"}},\"X-Nickname-RateLimit-Limit\":{\"description\":\"Account-check requests per minute\",\"schema\":{\"type\":\"integer\"}},\"X-Nickname-RateLimit-Remaining\":{\"description\":\"Remaining account-check requests\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Batas pemeriksaan akun tercapai. Coba lagi setelah kuota diperbarui.\",\"error\":{\"code\":4290,\"category\":\"limit_reached\"}},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"502\":{\"description\":\"Account check temporarily unavailable\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Sistem verifikasi sedang mengalami gangguan.\",\"error\":{\"code\":4007,\"message\":\"Sistem verifikasi sedang mengalami gangguan.\",\"category\":\"server\"}},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}}})).to.include(String(pm.response.code)));",
                  "if (pm.response.code >= 200 && pm.response.code < 300) { const result = pm.response.json(); pm.test('Successful response', () => pm.expect(result.success).to.eql(true)); }"
                ]
              }
            }
          ]
        },
        {
          "name": "Mobile Legends purchase limit",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-API-Key",
                "value": "{{api_key}}"
              },
              {
                "key": "X-Secret-Key",
                "value": "{{secret_key}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "description": "Separate account-check endpoint. Returns per-package flags; do not infer numeric limits from failures. Uses the same billing/quota as nickname.\n\nEndpoint pemeriksaan terpisah. Mengembalikan flag per paket; kegagalan bukan batas numerik. Berbagi jatah/billing nickname.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
            "url": {
              "raw": "{{base_url}}/api/v1/h2h/mobile-legends/purchase-limit",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "api",
                "v1",
                "h2h",
                "mobile-legends",
                "purchase-limit"
              ],
              "query": []
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "200 example",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Separate account-check endpoint. Returns per-package flags; do not infer numeric limits from failures. Uses the same billing/quota as nickname.\n\nEndpoint pemeriksaan terpisah. Mengembalikan flag per paket; kegagalan bukan batas numerik. Berbagi jatah/billing nickname.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/mobile-legends/purchase-limit",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "mobile-legends",
                    "purchase-limit"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Request succeeded.",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"game_code\": \"mobile-legends\",\n    \"customer_target\": \"123456789\",\n    \"customer_target_zone\": \"1234\",\n    \"username\": \"Example Player\",\n    \"weekly_pass\": {\n      \"limit_reached\": false,\n      \"items\": [\n        {\n          \"package_code\": \"weekly-pass\",\n          \"limit_reached\": false\n        }\n      ]\n    },\n    \"double_diamonds\": {\n      \"eligible\": true,\n      \"items\": [\n        {\n          \"package_code\": \"double-diamonds-50\",\n          \"limit_reached\": false\n        }\n      ]\n    }\n  },\n  \"billing\": {\n    \"charged_mc\": 0,\n    \"free_remaining_today\": 39,\n    \"transaction_id\": null\n  }\n}"
            },
            {
              "name": "401 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Separate account-check endpoint. Returns per-package flags; do not infer numeric limits from failures. Uses the same billing/quota as nickname.\n\nEndpoint pemeriksaan terpisah. Mengembalikan flag per paket; kegagalan bukan batas numerik. Berbagi jatah/billing nickname.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/mobile-legends/purchase-limit",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "mobile-legends",
                    "purchase-limit"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Authentication missing/invalid",
              "code": 401,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"\n}"
            },
            {
              "name": "402 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Separate account-check endpoint. Returns per-package flags; do not infer numeric limits from failures. Uses the same billing/quota as nickname.\n\nEndpoint pemeriksaan terpisah. Mengembalikan flag per paket; kegagalan bukan batas numerik. Berbagi jatah/billing nickname.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/mobile-legends/purchase-limit",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "mobile-legends",
                    "purchase-limit"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Insufficient account-check balance",
              "code": 402,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Saldo H2H tidak mencukupi untuk pemeriksaan akun.\",\n  \"error\": {\n    \"code\": 4020,\n    \"message\": \"Saldo H2H tidak mencukupi untuk pemeriksaan akun.\",\n    \"category\": \"insufficient_balance\"\n  }\n}"
            },
            {
              "name": "403 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Separate account-check endpoint. Returns per-package flags; do not infer numeric limits from failures. Uses the same billing/quota as nickname.\n\nEndpoint pemeriksaan terpisah. Mengembalikan flag per paket; kegagalan bukan batas numerik. Berbagi jatah/billing nickname.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/mobile-legends/purchase-limit",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "mobile-legends",
                    "purchase-limit"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Account/IP forbidden",
              "code": 403,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Forbidden: H2H API access is not active for this account.\"\n}"
            },
            {
              "name": "404 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Separate account-check endpoint. Returns per-package flags; do not infer numeric limits from failures. Uses the same billing/quota as nickname.\n\nEndpoint pemeriksaan terpisah. Mengembalikan flag per paket; kegagalan bukan batas numerik. Berbagi jatah/billing nickname.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/mobile-legends/purchase-limit",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "mobile-legends",
                    "purchase-limit"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Owned resource/category/account not found",
              "code": 404,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Akun tidak ditemukan.\",\n  \"error\": {\n    \"code\": 4001,\n    \"message\": \"Akun tidak ditemukan.\",\n    \"category\": \"not_found\"\n  },\n  \"billing\": {\n    \"charged_mc\": 0,\n    \"free_remaining_today\": 39,\n    \"transaction_id\": null\n  }\n}"
            },
            {
              "name": "422 validation",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Separate account-check endpoint. Returns per-package flags; do not infer numeric limits from failures. Uses the same billing/quota as nickname.\n\nEndpoint pemeriksaan terpisah. Mengembalikan flag per paket; kegagalan bukan batas numerik. Berbagi jatah/billing nickname.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/mobile-legends/purchase-limit",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "mobile-legends",
                    "purchase-limit"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Validation, product unavailable or insufficient order balance",
              "code": 422,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"message\": \"The customer target field is required.\",\n  \"errors\": {\n    \"customer_target\": [\n      \"The customer target field is required.\"\n    ]\n  }\n}"
            },
            {
              "name": "429 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Separate account-check endpoint. Returns per-package flags; do not infer numeric limits from failures. Uses the same billing/quota as nickname.\n\nEndpoint pemeriksaan terpisah. Mengembalikan flag per paket; kegagalan bukan batas numerik. Berbagi jatah/billing nickname.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/mobile-legends/purchase-limit",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "mobile-legends",
                    "purchase-limit"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Tier, catalogue or nickname limit exceeded",
              "code": 429,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Batas pemeriksaan akun tercapai. Coba lagi setelah kuota diperbarui.\",\n  \"error\": {\n    \"code\": 4290,\n    \"category\": \"limit_reached\"\n  }\n}"
            },
            {
              "name": "502 error",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "key": "X-API-Key",
                    "value": "{{api_key}}"
                  },
                  {
                    "key": "X-Secret-Key",
                    "value": "{{secret_key}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "description": "Separate account-check endpoint. Returns per-package flags; do not infer numeric limits from failures. Uses the same billing/quota as nickname.\n\nEndpoint pemeriksaan terpisah. Mengembalikan flag per paket; kegagalan bukan batas numerik. Berbagi jatah/billing nickname.\n\nCreate examples use sandbox. Account checks use the account mode and their own billing. Keep buyer references unchanged on retries.",
                "url": {
                  "raw": "{{base_url}}/api/v1/h2h/mobile-legends/purchase-limit",
                  "host": [
                    "{{base_url}}"
                  ],
                  "path": [
                    "api",
                    "v1",
                    "h2h",
                    "mobile-legends",
                    "purchase-limit"
                  ],
                  "query": []
                },
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"customer_target\": \"{{customer_target}}\",\n  \"customer_target_zone\": \"{{customer_target_zone}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Account check temporarily unavailable",
              "code": 502,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"message\": \"Sistem verifikasi sedang mengalami gangguan.\",\n  \"error\": {\n    \"code\": 4007,\n    \"message\": \"Sistem verifikasi sedang mengalami gangguan.\",\n    \"category\": \"server\"\n  }\n}"
            }
          ],
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('HTTP status is documented', () => pm.expect(Object.keys({\"200\":{\"description\":\"Request succeeded.\",\"headers\":{\"X-Nickname-RateLimit-Limit\":{\"description\":\"Account-check requests per minute\",\"schema\":{\"type\":\"integer\"}},\"X-Nickname-RateLimit-Remaining\":{\"description\":\"Remaining account-check requests\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/PurchaseLimitResult\"},\"examples\":{\"example\":{\"value\":{\"success\":true,\"data\":{\"game_code\":\"mobile-legends\",\"customer_target\":\"123456789\",\"customer_target_zone\":\"1234\",\"username\":\"Example Player\",\"weekly_pass\":{\"limit_reached\":false,\"items\":[{\"package_code\":\"weekly-pass\",\"limit_reached\":false}]},\"double_diamonds\":{\"eligible\":true,\"items\":[{\"package_code\":\"double-diamonds-50\",\"limit_reached\":false}]}},\"billing\":{\"charged_mc\":0,\"free_remaining_today\":39,\"transaction_id\":null}},\"x-summary-id\":\"Contoh berhasil\",\"summary\":\"Successful example\"}}}},\"x-description-id\":\"Request berhasil.\"},\"401\":{\"description\":\"Authentication missing/invalid\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Unauthorized: Missing X-API-Key or X-Secret-Key headers.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"402\":{\"description\":\"Insufficient account-check balance\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Saldo H2H tidak mencukupi untuk pemeriksaan akun.\",\"error\":{\"code\":4020,\"message\":\"Saldo H2H tidak mencukupi untuk pemeriksaan akun.\",\"category\":\"insufficient_balance\"}},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"403\":{\"description\":\"Account/IP forbidden\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Forbidden: H2H API access is not active for this account.\"},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"404\":{\"description\":\"Owned resource/category/account not found\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Akun tidak ditemukan.\",\"error\":{\"code\":4001,\"message\":\"Akun tidak ditemukan.\",\"category\":\"not_found\"},\"billing\":{\"charged_mc\":0,\"free_remaining_today\":39,\"transaction_id\":null}},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"422\":{\"description\":\"Validation, product unavailable or insufficient order balance\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"validation\":{\"value\":{\"message\":\"The customer target field is required.\",\"errors\":{\"customer_target\":[\"The customer target field is required.\"]}},\"x-summary-id\":\"Parameter tidak valid\",\"summary\":\"Invalid parameters\"}}}}},\"429\":{\"description\":\"Tier, catalogue or nickname limit exceeded\",\"headers\":{\"Retry-After\":{\"description\":\"Seconds to wait before retrying a rate-limited request\",\"schema\":{\"type\":\"integer\"}},\"X-Nickname-RateLimit-Limit\":{\"description\":\"Account-check requests per minute\",\"schema\":{\"type\":\"integer\"}},\"X-Nickname-RateLimit-Remaining\":{\"description\":\"Remaining account-check requests\",\"schema\":{\"type\":\"integer\"}}},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Batas pemeriksaan akun tercapai. Coba lagi setelah kuota diperbarui.\",\"error\":{\"code\":4290,\"category\":\"limit_reached\"}},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}},\"502\":{\"description\":\"Account check temporarily unavailable\",\"headers\":{},\"content\":{\"application/json\":{\"schema\":{\"$ref\":\"#/components/schemas/Error\"},\"examples\":{\"error\":{\"value\":{\"success\":false,\"message\":\"Sistem verifikasi sedang mengalami gangguan.\",\"error\":{\"code\":4007,\"message\":\"Sistem verifikasi sedang mengalami gangguan.\",\"category\":\"server\"}},\"x-summary-id\":\"Galat\",\"summary\":\"Error\"}}}}}})).to.include(String(pm.response.code)));",
                  "if (pm.response.code >= 200 && pm.response.code < 300) { const result = pm.response.json(); pm.test('Successful response', () => pm.expect(result.success).to.eql(true)); }"
                ]
              }
            }
          ]
        }
      ]
    },
    {
      "name": "Webhook examples",
      "item": [
        {
          "name": "Callback payload reference (do not send)",
          "request": {
            "method": "GET",
            "url": "https://partner.example.invalid/callback-reference",
            "description": "Final results for API orders and individual bulk orders. Verify raw-body HMAC-SHA256 using Webhook Secret, save events durably before returning 2xx, and deduplicate repeated deliveries. Action events can arrive while processing; they do not finalize an order. Final callback delivery uses up to three attempts with retry delays of 30 and 120 seconds; delivery may be later. Respond within 10 seconds. If delivery fails, check transaction status. Dashboard orders do not send partner callbacks.\nSaved examples only. Do not run this reference item."
          },
          "response": [
            {
              "name": "regular-success",
              "originalRequest": {
                "method": "POST",
                "url": "https://partner.example.invalid/h2h-callback",
                "header": [
                  {
                    "key": "X-H2H-Signature",
                    "value": "HMAC_SHA256_RAW_BODY_WITH_WEBHOOK_SECRET"
                  }
                ]
              },
              "status": "Callback payload reference",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"11111111-1111-4111-8111-111111111111\",\n  \"buyer_trx_id\": \"example-order-001\",\n  \"sku_code\": \"EXAMPLE-10\",\n  \"customer_target\": \"123456789\",\n  \"customer_target_zone\": \"1234\",\n  \"status\": \"success\",\n  \"serial_number\": \"EXAMPLE-SN-001\",\n  \"is_sandbox\": true,\n  \"created_at\": \"2026-10-02T03:00:00+00:00\",\n  \"price_charged\": 1000,\n  \"updated_at\": \"2026-10-02T03:00:00+00:00\"\n}"
            },
            {
              "name": "regular-failed",
              "originalRequest": {
                "method": "POST",
                "url": "https://partner.example.invalid/h2h-callback",
                "header": [
                  {
                    "key": "X-H2H-Signature",
                    "value": "HMAC_SHA256_RAW_BODY_WITH_WEBHOOK_SECRET"
                  }
                ]
              },
              "status": "Callback payload reference",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"11111111-1111-4111-8111-111111111111\",\n  \"buyer_trx_id\": \"example-order-001\",\n  \"sku_code\": \"EXAMPLE-10\",\n  \"customer_target\": \"123456789\",\n  \"customer_target_zone\": \"1234\",\n  \"status\": \"failed\",\n  \"serial_number\": \"\",\n  \"is_sandbox\": true,\n  \"created_at\": \"2026-10-02T03:00:00+00:00\",\n  \"price_charged\": 1000,\n  \"updated_at\": \"2026-10-02T03:00:00+00:00\",\n  \"error_code\": \"SUPPLIER_ERROR\",\n  \"message\": \"Supplier error.\"\n}"
            },
            {
              "name": "smart-success",
              "originalRequest": {
                "method": "POST",
                "url": "https://partner.example.invalid/h2h-callback",
                "header": [
                  {
                    "key": "X-H2H-Signature",
                    "value": "HMAC_SHA256_RAW_BODY_WITH_WEBHOOK_SECRET"
                  }
                ]
              },
              "status": "Callback payload reference",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"11111111-1111-4111-8111-111111111111\",\n  \"buyer_trx_id\": \"example-smart-order-001\",\n  \"sku_code\": \"EXAMPLE\",\n  \"customer_target\": \"123456789\",\n  \"customer_target_zone\": \"1234\",\n  \"status\": \"success\",\n  \"serial_number\": \"EXAMPLE-SN-001\",\n  \"is_sandbox\": true,\n  \"created_at\": \"2026-10-02T03:00:00+00:00\",\n  \"price_charged\": 1000,\n  \"updated_at\": \"2026-10-02T03:00:00+00:00\",\n  \"max_bid\": 1100,\n  \"fulfilled_sku_code\": \"EXAMPLE-10\",\n  \"attempts_count\": 1\n}"
            },
            {
              "name": "smart-failed",
              "originalRequest": {
                "method": "POST",
                "url": "https://partner.example.invalid/h2h-callback",
                "header": [
                  {
                    "key": "X-H2H-Signature",
                    "value": "HMAC_SHA256_RAW_BODY_WITH_WEBHOOK_SECRET"
                  }
                ]
              },
              "status": "Callback payload reference",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"11111111-1111-4111-8111-111111111111\",\n  \"buyer_trx_id\": \"example-smart-order-001\",\n  \"sku_code\": \"EXAMPLE\",\n  \"customer_target\": \"123456789\",\n  \"customer_target_zone\": \"1234\",\n  \"status\": \"failed\",\n  \"serial_number\": \"\",\n  \"is_sandbox\": true,\n  \"created_at\": \"2026-10-02T03:00:00+00:00\",\n  \"price_charged\": 1000,\n  \"updated_at\": \"2026-10-02T03:00:00+00:00\",\n  \"error_code\": \"SUPPLIER_ERROR\",\n  \"message\": \"Supplier error.\",\n  \"max_bid\": 1100,\n  \"fulfilled_sku_code\": null,\n  \"attempts_count\": 1\n}"
            },
            {
              "name": "bulk-success",
              "originalRequest": {
                "method": "POST",
                "url": "https://partner.example.invalid/h2h-callback",
                "header": [
                  {
                    "key": "X-H2H-Signature",
                    "value": "HMAC_SHA256_RAW_BODY_WITH_WEBHOOK_SECRET"
                  }
                ]
              },
              "status": "Callback payload reference",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"11111111-1111-4111-8111-111111111111\",\n  \"buyer_trx_id\": \"BULK-22222222-2222-4222-8222-222222222222-1\",\n  \"sku_code\": \"EXAMPLE-10\",\n  \"customer_target\": \"123456789\",\n  \"customer_target_zone\": \"1234\",\n  \"status\": \"success\",\n  \"serial_number\": \"EXAMPLE-SN-001\",\n  \"is_sandbox\": true,\n  \"created_at\": \"2026-10-02T03:00:00+00:00\",\n  \"price_charged\": 1000,\n  \"updated_at\": \"2026-10-02T03:00:00+00:00\",\n  \"bulk_order_id\": \"22222222-2222-4222-8222-222222222222\",\n  \"buyer_bulk_id\": \"example-bulk-001\",\n  \"bulk_sequence\": 1\n}"
            },
            {
              "name": "bulk-failed",
              "originalRequest": {
                "method": "POST",
                "url": "https://partner.example.invalid/h2h-callback",
                "header": [
                  {
                    "key": "X-H2H-Signature",
                    "value": "HMAC_SHA256_RAW_BODY_WITH_WEBHOOK_SECRET"
                  }
                ]
              },
              "status": "Callback payload reference",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"11111111-1111-4111-8111-111111111111\",\n  \"buyer_trx_id\": \"BULK-22222222-2222-4222-8222-222222222222-1\",\n  \"sku_code\": \"EXAMPLE-10\",\n  \"customer_target\": \"123456789\",\n  \"customer_target_zone\": \"1234\",\n  \"status\": \"failed\",\n  \"serial_number\": \"\",\n  \"is_sandbox\": true,\n  \"created_at\": \"2026-10-02T03:00:00+00:00\",\n  \"price_charged\": 1000,\n  \"updated_at\": \"2026-10-02T03:00:00+00:00\",\n  \"error_code\": \"SUPPLIER_ERROR\",\n  \"message\": \"Supplier error.\",\n  \"bulk_order_id\": \"22222222-2222-4222-8222-222222222222\",\n  \"buyer_bulk_id\": \"example-bulk-001\",\n  \"bulk_sequence\": 1\n}"
            },
            {
              "name": "regular-provider-price-changed",
              "originalRequest": {
                "method": "POST",
                "url": "https://partner.example.invalid/h2h-callback",
                "header": [
                  {
                    "key": "X-H2H-Signature",
                    "value": "HMAC_SHA256_RAW_BODY_WITH_WEBHOOK_SECRET"
                  }
                ]
              },
              "status": "Callback payload reference",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"11111111-1111-4111-8111-111111111111\",\n  \"buyer_trx_id\": \"example-order-001\",\n  \"sku_code\": \"EXAMPLE-10\",\n  \"customer_target\": \"123456789\",\n  \"customer_target_zone\": \"1234\",\n  \"status\": \"failed\",\n  \"serial_number\": \"\",\n  \"is_sandbox\": true,\n  \"created_at\": \"2026-10-02T03:00:00+00:00\",\n  \"price_charged\": 1100,\n  \"updated_at\": \"2026-10-02T03:00:00+00:00\",\n  \"error_code\": \"PROVIDER_PRICE_CHANGED\",\n  \"message\": \"The product price has changed. Please refresh the price list and try placing a new order again in a few moments.\",\n  \"max_price\": 1100\n}"
            },
            {
              "name": "actionRequired",
              "originalRequest": {
                "method": "POST",
                "url": "https://partner.example.invalid/h2h-callback",
                "header": [
                  {
                    "key": "X-H2H-Signature",
                    "value": "HMAC_SHA256_RAW_BODY_WITH_WEBHOOK_SECRET"
                  }
                ]
              },
              "status": "Callback payload reference",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"event\": \"transaction.action_change\",\n  \"event_id\": \"22222222-2222-4222-8222-000000000001\",\n  \"id\": \"example-transaction-001\",\n  \"buyer_trx_id\": \"example-order-001\",\n  \"status\": \"processing\",\n  \"updated_at\": \"2026-10-10T08:01:00+07:00\",\n  \"need_action\": true,\n  \"action\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"type\": \"two_factor\",\n    \"state\": \"required\",\n    \"version\": 1,\n    \"message\": \"Two-factor authentication is required to continue this order. Submit the verification code using the 2FA endpoint.\",\n    \"can_submit\": true,\n    \"updated_at\": \"2026-10-10T08:01:00+07:00\"\n  }\n}"
            },
            {
              "name": "codeReceived",
              "originalRequest": {
                "method": "POST",
                "url": "https://partner.example.invalid/h2h-callback",
                "header": [
                  {
                    "key": "X-H2H-Signature",
                    "value": "HMAC_SHA256_RAW_BODY_WITH_WEBHOOK_SECRET"
                  }
                ]
              },
              "status": "Callback payload reference",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"event\": \"transaction.action_change\",\n  \"event_id\": \"22222222-2222-4222-8222-000000000002\",\n  \"id\": \"example-transaction-001\",\n  \"buyer_trx_id\": \"example-order-001\",\n  \"status\": \"processing\",\n  \"updated_at\": \"2026-10-10T08:02:00+07:00\",\n  \"need_action\": false,\n  \"action\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"type\": \"two_factor\",\n    \"state\": \"submitted\",\n    \"version\": 2,\n    \"message\": \"Your verification code has been received and is awaiting admin handling.\",\n    \"can_submit\": false,\n    \"updated_at\": \"2026-10-10T08:02:00+07:00\"\n  }\n}"
            },
            {
              "name": "actionResolved",
              "originalRequest": {
                "method": "POST",
                "url": "https://partner.example.invalid/h2h-callback",
                "header": [
                  {
                    "key": "X-H2H-Signature",
                    "value": "HMAC_SHA256_RAW_BODY_WITH_WEBHOOK_SECRET"
                  }
                ]
              },
              "status": "Callback payload reference",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"event\": \"transaction.action_change\",\n  \"event_id\": \"22222222-2222-4222-8222-000000000003\",\n  \"id\": \"example-transaction-001\",\n  \"buyer_trx_id\": \"example-order-001\",\n  \"status\": \"processing\",\n  \"updated_at\": \"2026-10-10T08:03:00+07:00\",\n  \"need_action\": false,\n  \"action\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"type\": \"two_factor\",\n    \"state\": \"resolved\",\n    \"version\": 3,\n    \"message\": \"The requested action has been completed.\",\n    \"can_submit\": false,\n    \"updated_at\": \"2026-10-10T08:03:00+07:00\"\n  }\n}"
            },
            {
              "name": "actionRequestedAgain",
              "originalRequest": {
                "method": "POST",
                "url": "https://partner.example.invalid/h2h-callback",
                "header": [
                  {
                    "key": "X-H2H-Signature",
                    "value": "HMAC_SHA256_RAW_BODY_WITH_WEBHOOK_SECRET"
                  }
                ]
              },
              "status": "Callback payload reference",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"event\": \"transaction.action_change\",\n  \"event_id\": \"22222222-2222-4222-8222-000000000004\",\n  \"id\": \"example-transaction-001\",\n  \"buyer_trx_id\": \"example-order-001\",\n  \"status\": \"processing\",\n  \"updated_at\": \"2026-10-10T08:04:00+07:00\",\n  \"need_action\": true,\n  \"action\": {\n    \"id\": \"11111111-1111-4111-8111-111111111111\",\n    \"type\": \"two_factor\",\n    \"state\": \"required\",\n    \"version\": 4,\n    \"message\": \"Two-factor authentication is required to continue this order. Submit the verification code using the 2FA endpoint.\",\n    \"can_submit\": true,\n    \"updated_at\": \"2026-10-10T08:04:00+07:00\"\n  }\n}"
            }
          ],
          "event": [
            {
              "listen": "prerequest",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.execution.skipRequest(); // Saved examples only; never send to partner."
                ]
              }
            }
          ]
        }
      ]
    }
  ]
}
