{
  "info": {
    "name": "Happytel Partner API v1",
    "_postman_id": "1c0fb6e0-2026-04-22-happytel-partner",
    "description": "Универсальный REST API для интеграции партнёров с платформой Happytel eSIM. Подробности — README.ru.md.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "apikey",
    "apikey": [
      { "key": "key", "value": "X-API-Key", "type": "string" },
      { "key": "value", "value": "{{apiKey}}", "type": "string" },
      { "key": "in", "value": "header", "type": "string" }
    ]
  },
  "variable": [
    { "key": "baseUrl", "value": "https://api.happytel.uz" },
    { "key": "apiKey", "value": "REPLACE_WITH_YOUR_KEY" },
    { "key": "externalId", "value": "paynet-tx-{{$timestamp}}" },
    { "key": "planId", "value": "101" },
    { "key": "regionId", "value": "2" },
    { "key": "transactionId", "value": "1" }
  ],
  "item": [
    {
      "name": "Me / Balance",
      "item": [
        {
          "name": "GET /me",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "application/json" }],
            "url": { "raw": "{{baseUrl}}/api/partner/v1/me", "host": ["{{baseUrl}}"], "path": ["api", "partner", "v1", "me"] }
          }
        },
        {
          "name": "GET /balance",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "application/json" }],
            "url": { "raw": "{{baseUrl}}/api/partner/v1/balance", "host": ["{{baseUrl}}"], "path": ["api", "partner", "v1", "balance"] }
          }
        }
      ]
    },
    {
      "name": "Catalog",
      "item": [
        {
          "name": "GET /regions",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "application/json" }],
            "url": { "raw": "{{baseUrl}}/api/partner/v1/regions", "host": ["{{baseUrl}}"], "path": ["api", "partner", "v1", "regions"] }
          }
        },
        {
          "name": "GET /regions/{regionId}/plans",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "application/json" }],
            "url": {
              "raw": "{{baseUrl}}/api/partner/v1/regions/{{regionId}}/plans",
              "host": ["{{baseUrl}}"],
              "path": ["api", "partner", "v1", "regions", "{{regionId}}", "plans"]
            }
          }
        },
        {
          "name": "GET /plans/{planId}",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "application/json" }],
            "url": {
              "raw": "{{baseUrl}}/api/partner/v1/plans/{{planId}}",
              "host": ["{{baseUrl}}"],
              "path": ["api", "partner", "v1", "plans", "{{planId}}"]
            }
          }
        }
      ]
    },
    {
      "name": "Orders",
      "item": [
        {
          "name": "POST /orders",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Accept", "value": "application/json" },
              { "key": "Content-Type", "value": "application/json" },
              { "key": "Idempotency-Key", "value": "{{externalId}}" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"partner_external_id\": \"{{externalId}}\",\n  \"plan_id\": {{planId}},\n  \"region_id\": {{regionId}},\n  \"client\": {\n    \"phone\": \"+998901234567\",\n    \"full_name\": \"Test Client\",\n    \"email\": \"test@example.com\"\n  },\n  \"idempotency_key\": \"{{externalId}}\"\n}"
            },
            "url": { "raw": "{{baseUrl}}/api/partner/v1/orders", "host": ["{{baseUrl}}"], "path": ["api", "partner", "v1", "orders"] }
          }
        },
        {
          "name": "GET /orders/{externalId}",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "application/json" }],
            "url": {
              "raw": "{{baseUrl}}/api/partner/v1/orders/{{externalId}}",
              "host": ["{{baseUrl}}"],
              "path": ["api", "partner", "v1", "orders", "{{externalId}}"]
            }
          }
        },
        {
          "name": "GET /orders/{externalId}/qr",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "application/json" }],
            "url": {
              "raw": "{{baseUrl}}/api/partner/v1/orders/{{externalId}}/qr",
              "host": ["{{baseUrl}}"],
              "path": ["api", "partner", "v1", "orders", "{{externalId}}", "qr"]
            }
          }
        }
      ]
    },
    {
      "name": "Top-up",
      "item": [
        {
          "name": "POST /topup",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Accept", "value": "application/json" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": 100000,\n  \"payment_type\": \"click\",\n  \"phone\": \"998901234567\"\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/partner/v1/topup",
              "host": ["{{baseUrl}}"],
              "path": ["api", "partner", "v1", "topup"]
            }
          }
        },
        {
          "name": "GET /topup/{transactionId}/status",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "application/json" }],
            "url": {
              "raw": "{{baseUrl}}/api/partner/v1/topup/{{transactionId}}/status",
              "host": ["{{baseUrl}}"],
              "path": ["api", "partner", "v1", "topup", "{{transactionId}}", "status"]
            }
          }
        },
        {
          "name": "GET /topups",
          "request": {
            "method": "GET",
            "header": [{ "key": "Accept", "value": "application/json" }],
            "url": {
              "raw": "{{baseUrl}}/api/partner/v1/topups?status=completed&payment_type=click&per_page=20&page=1",
              "host": ["{{baseUrl}}"],
              "path": ["api", "partner", "v1", "topups"],
              "query": [
                { "key": "status", "value": "completed" },
                { "key": "payment_type", "value": "click" },
                { "key": "per_page", "value": "20" },
                { "key": "page", "value": "1" }
              ]
            }
          }
        }
      ]
    }
  ]
}
