{
  "item": [
    {
      "id": "0b3ae419-a4d9-4c67-871e-5c0070b488d0",
      "name": "Auth (Mobile)",
      "description": {
        "content": "Авторизация клиента в мобильном приложении (SMS-код, Telegram)",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "18bfc954-3218-4544-a3f7-265056a97f03",
          "name": "Отправить SMS-код",
          "request": {
            "name": "Отправить SMS-код",
            "description": {},
            "url": {
              "path": [
                "auth",
                "send-otp"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{base_url}}/auth/send-otp"
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Token",
                "value": "{{tenant_token}}"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone\": \"+992901234567\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "7c61b499-ee28-4976-a1ba-879eebdf7755",
              "name": "Код отправлен",
              "originalRequest": {
                "url": {
                  "path": [
                    "auth",
                    "send-otp"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone\": \"+992901234567\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"message\": \"OTP отправлен.\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0006a837-a5e8-4458-8d63-f104a31f13e6",
              "name": "Не авторизован (нет/неверный токен или подпись)",
              "originalRequest": {
                "url": {
                  "path": [
                    "auth",
                    "send-otp"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone\": \"+992901234567\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e55eb9e2-044e-4c76-b431-954c869ef770",
              "name": "Ошибка валидации или бизнес-правила",
              "originalRequest": {
                "url": {
                  "path": [
                    "auth",
                    "send-otp"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone\": \"+992901234567\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "def898c8-a275-4514-a21c-acf95a9b869b",
          "name": "Вход по коду (существующий клиент)",
          "request": {
            "name": "Вход по коду (существующий клиент)",
            "description": {},
            "url": {
              "path": [
                "auth",
                "verify-otp"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{base_url}}/auth/verify-otp"
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Token",
                "value": "{{tenant_token}}"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone\": \"+992901234567\",\n  \"code\": \"123456\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "8a4c536c-1192-4302-8a6d-032117328412",
              "name": "Токен выдан",
              "originalRequest": {
                "url": {
                  "path": [
                    "auth",
                    "verify-otp"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone\": \"+992901234567\",\n  \"code\": \"123456\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"token\": \"12|aBcDeFplainTextToken\",\n    \"client_id\": 42\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "facd75da-a92e-459b-9007-55f57abe4020",
              "name": "Клиент не найден — требуется регистрация",
              "originalRequest": {
                "url": {
                  "path": [
                    "auth",
                    "verify-otp"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone\": \"+992901234567\",\n  \"code\": \"123456\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e8b8f9dc-9960-4873-a86b-dd53845b683f",
              "name": "Ошибка валидации или бизнес-правила",
              "originalRequest": {
                "url": {
                  "path": [
                    "auth",
                    "verify-otp"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone\": \"+992901234567\",\n  \"code\": \"123456\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "3f5d56fe-98b0-42b4-9aa2-efd135d293c6",
          "name": "Регистрация нового клиента",
          "request": {
            "name": "Регистрация нового клиента",
            "description": {},
            "url": {
              "path": [
                "auth",
                "register"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{base_url}}/auth/register"
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Token",
                "value": "{{tenant_token}}"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone\": \"+992901234567\",\n  \"code\": \"123456\",\n  \"full_name\": \"Парвиз Солиев\",\n  \"referral_code\": \"AB12CD34\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "dd03b114-dc76-4597-b067-370c5e2ba3a0",
              "name": "Клиент создан, токен выдан",
              "originalRequest": {
                "url": {
                  "path": [
                    "auth",
                    "register"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone\": \"+992901234567\",\n  \"code\": \"123456\",\n  \"full_name\": \"Парвиз Солиев\",\n  \"referral_code\": \"AB12CD34\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"token\": \"13|eFgHplainTextToken\",\n    \"client_id\": 43\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "bace18a7-157c-4324-b121-44de78ee9d4e",
              "name": "Ошибка валидации или бизнес-правила",
              "originalRequest": {
                "url": {
                  "path": [
                    "auth",
                    "register"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone\": \"+992901234567\",\n  \"code\": \"123456\",\n  \"full_name\": \"Парвиз Солиев\",\n  \"referral_code\": \"AB12CD34\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "f3c1381a-547c-4ed6-b24e-169795330912",
          "name": "Вход через Telegram (Mini App)",
          "request": {
            "name": "Вход через Telegram (Mini App)",
            "description": {},
            "url": {
              "path": [
                "auth",
                "telegram"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{base_url}}/auth/telegram"
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Token",
                "value": "{{tenant_token}}"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"init_data\": \"ullamco aute\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "c9d799db-02e9-4277-b119-780405149279",
              "name": "Токен и клиент",
              "originalRequest": {
                "url": {
                  "path": [
                    "auth",
                    "telegram"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"init_data\": \"ullamco aute\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"token\": \"proident adipisicing mollit\",\n    \"client\": {\n      \"id\": 42,\n      \"phone\": \"+992901234567\",\n      \"barcode_ean13\": \"2000000000420\",\n      \"club_card_number\": \"001-0000123\",\n      \"account_number\": \"ACC-000042\",\n      \"full_name\": \"Парвиз Солиев\",\n      \"birth_date\": \"1990-05-01\",\n      \"gender\": \"male\",\n      \"bonus_balance\": 150,\n      \"welcome_bonus_balance\": 0,\n      \"welcome_expires_at\": \"1987-02-15T07:11:06.944Z\",\n      \"birthday_bonus_balance\": 0,\n      \"birthday_expires_at\": \"1976-03-07T05:54:26.493Z\",\n      \"total_spent\": 1200,\n      \"tier\": {\n        \"id\": 2,\n        \"name\": \"Gold\",\n        \"color\": \"#C9A227\"\n      },\n      \"telegram_username\": \"parviz\",\n      \"has_mobile_app\": true,\n      \"is_blocked\": false,\n      \"last_visit_at\": \"1988-05-22T14:29:41.343Z\"\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "31661902-f2c5-40a5-89c1-cc6e109798c4",
              "name": "Некорректный запрос",
              "originalRequest": {
                "url": {
                  "path": [
                    "auth",
                    "telegram"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"init_data\": \"ullamco aute\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c606a876-d5c0-4548-aada-4cfd00f04980",
              "name": "Не авторизован (нет/неверный токен или подпись)",
              "originalRequest": {
                "url": {
                  "path": [
                    "auth",
                    "telegram"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"init_data\": \"ullamco aute\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "43928950-0000-4232-9b51-7da015ee3835",
              "name": "Аккаунт не привязан — используйте /auth/telegram-contact",
              "originalRequest": {
                "url": {
                  "path": [
                    "auth",
                    "telegram"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"init_data\": \"ullamco aute\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "418acfbe-3699-4ced-bc45-574b64a89e77",
          "name": "Первый вход через Telegram (привязка по контакту)",
          "request": {
            "name": "Первый вход через Telegram (привязка по контакту)",
            "description": {},
            "url": {
              "path": [
                "auth",
                "telegram-contact"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{base_url}}/auth/telegram-contact"
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Token",
                "value": "{{tenant_token}}"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"init_data\": \"velit cupidatat non\",\n  \"contact\": \"elit irure officia\",\n  \"referral_code\": \"quis paria\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "1d2ad98d-de28-41bf-957b-d7f296ef71ec",
              "name": "Существующий клиент — токен выдан",
              "originalRequest": {
                "url": {
                  "path": [
                    "auth",
                    "telegram-contact"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"init_data\": \"velit cupidatat non\",\n  \"contact\": \"elit irure officia\",\n  \"referral_code\": \"quis paria\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"token\": \"proident adipisicing mollit\",\n    \"client\": {\n      \"id\": 42,\n      \"phone\": \"+992901234567\",\n      \"barcode_ean13\": \"2000000000420\",\n      \"club_card_number\": \"001-0000123\",\n      \"account_number\": \"ACC-000042\",\n      \"full_name\": \"Парвиз Солиев\",\n      \"birth_date\": \"1990-05-01\",\n      \"gender\": \"male\",\n      \"bonus_balance\": 150,\n      \"welcome_bonus_balance\": 0,\n      \"welcome_expires_at\": \"1987-02-15T07:11:06.944Z\",\n      \"birthday_bonus_balance\": 0,\n      \"birthday_expires_at\": \"1976-03-07T05:54:26.493Z\",\n      \"total_spent\": 1200,\n      \"tier\": {\n        \"id\": 2,\n        \"name\": \"Gold\",\n        \"color\": \"#C9A227\"\n      },\n      \"telegram_username\": \"parviz\",\n      \"has_mobile_app\": true,\n      \"is_blocked\": false,\n      \"last_visit_at\": \"1988-05-22T14:29:41.343Z\"\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "96317c51-1b10-43ee-9998-36515fab709b",
              "name": "Новый клиент создан — токен выдан",
              "originalRequest": {
                "url": {
                  "path": [
                    "auth",
                    "telegram-contact"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"init_data\": \"velit cupidatat non\",\n  \"contact\": \"elit irure officia\",\n  \"referral_code\": \"quis paria\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"token\": \"proident adipisicing mollit\",\n    \"client\": {\n      \"id\": 42,\n      \"phone\": \"+992901234567\",\n      \"barcode_ean13\": \"2000000000420\",\n      \"club_card_number\": \"001-0000123\",\n      \"account_number\": \"ACC-000042\",\n      \"full_name\": \"Парвиз Солиев\",\n      \"birth_date\": \"1990-05-01\",\n      \"gender\": \"male\",\n      \"bonus_balance\": 150,\n      \"welcome_bonus_balance\": 0,\n      \"welcome_expires_at\": \"1987-02-15T07:11:06.944Z\",\n      \"birthday_bonus_balance\": 0,\n      \"birthday_expires_at\": \"1976-03-07T05:54:26.493Z\",\n      \"total_spent\": 1200,\n      \"tier\": {\n        \"id\": 2,\n        \"name\": \"Gold\",\n        \"color\": \"#C9A227\"\n      },\n      \"telegram_username\": \"parviz\",\n      \"has_mobile_app\": true,\n      \"is_blocked\": false,\n      \"last_visit_at\": \"1988-05-22T14:29:41.343Z\"\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "142c81b6-27cf-4300-beec-d01cf5c9dae2",
              "name": "Не авторизован (нет/неверный токен или подпись)",
              "originalRequest": {
                "url": {
                  "path": [
                    "auth",
                    "telegram-contact"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"init_data\": \"velit cupidatat non\",\n  \"contact\": \"elit irure officia\",\n  \"referral_code\": \"quis paria\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ae8e09cc-b2c1-423c-a901-06916ff17500",
              "name": "Ошибка валидации или бизнес-правила",
              "originalRequest": {
                "url": {
                  "path": [
                    "auth",
                    "telegram-contact"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"init_data\": \"velit cupidatat non\",\n  \"contact\": \"elit irure officia\",\n  \"referral_code\": \"quis paria\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "421dda15-d964-446d-8e84-01d17889b2d6",
      "name": "Client (Mobile)",
      "description": {
        "content": "Данные клиента под Bearer-токеном (профиль, история, акции, push)",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "54dd0332-1f7d-4ba9-a064-b4455076b9d4",
          "name": "Профиль и баланс",
          "request": {
            "name": "Профиль и баланс",
            "description": {},
            "url": {
              "path": [
                "client",
                "profile"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{base_url}}/client/profile"
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Token",
                "value": "{{tenant_token}}"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{bearer_token}}"
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "64a64504-e971-47cf-a839-ca2541ad1899",
              "name": "Профиль клиента",
              "originalRequest": {
                "url": {
                  "path": [
                    "client",
                    "profile"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"id\": 42,\n    \"phone\": \"+992901234567\",\n    \"barcode_ean13\": \"2000000000420\",\n    \"club_card_number\": \"001-0000123\",\n    \"account_number\": \"ACC-000042\",\n    \"full_name\": \"Парвиз Солиев\",\n    \"birth_date\": \"1990-05-01\",\n    \"gender\": \"male\",\n    \"bonus_balance\": 150,\n    \"welcome_bonus_balance\": 0,\n    \"welcome_expires_at\": \"1960-04-22T20:38:38.901Z\",\n    \"birthday_bonus_balance\": 0,\n    \"birthday_expires_at\": \"2020-03-07T20:01:36.962Z\",\n    \"total_spent\": 1200,\n    \"tier\": {\n      \"id\": 2,\n      \"name\": \"Gold\",\n      \"color\": \"#C9A227\"\n    },\n    \"telegram_username\": \"parviz\",\n    \"has_mobile_app\": true,\n    \"is_blocked\": false,\n    \"last_visit_at\": \"2026-03-13T22:27:09.782Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7c8a121e-9e54-412e-8a4f-79fd8e66956f",
              "name": "Не авторизован (нет/неверный токен или подпись)",
              "originalRequest": {
                "url": {
                  "path": [
                    "client",
                    "profile"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "81219f89-b230-432a-8de9-28577b34ee73",
          "name": "Обновить профиль",
          "request": {
            "name": "Обновить профиль",
            "description": {},
            "url": {
              "path": [
                "client",
                "profile"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{base_url}}/client/profile"
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Token",
                "value": "{{tenant_token}}"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{bearer_token}}"
              }
            ],
            "method": "PUT",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"full_name\": \"elit\",\n  \"birth_date\": \"1990-05-01\",\n  \"gender\": \"male\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "f0253e14-43c4-44d8-af5c-0396b71f7a5d",
              "name": "Обновлённый профиль",
              "originalRequest": {
                "url": {
                  "path": [
                    "client",
                    "profile"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PUT",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"full_name\": \"elit\",\n  \"birth_date\": \"1990-05-01\",\n  \"gender\": \"male\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"id\": 42,\n    \"phone\": \"+992901234567\",\n    \"barcode_ean13\": \"2000000000420\",\n    \"club_card_number\": \"001-0000123\",\n    \"account_number\": \"ACC-000042\",\n    \"full_name\": \"Парвиз Солиев\",\n    \"birth_date\": \"1990-05-01\",\n    \"gender\": \"male\",\n    \"bonus_balance\": 150,\n    \"welcome_bonus_balance\": 0,\n    \"welcome_expires_at\": \"1960-04-22T20:38:38.901Z\",\n    \"birthday_bonus_balance\": 0,\n    \"birthday_expires_at\": \"2020-03-07T20:01:36.962Z\",\n    \"total_spent\": 1200,\n    \"tier\": {\n      \"id\": 2,\n      \"name\": \"Gold\",\n      \"color\": \"#C9A227\"\n    },\n    \"telegram_username\": \"parviz\",\n    \"has_mobile_app\": true,\n    \"is_blocked\": false,\n    \"last_visit_at\": \"2026-03-13T22:27:09.782Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3e1a5e87-efa5-4631-b328-49edca901c8c",
              "name": "Ошибка валидации или бизнес-правила",
              "originalRequest": {
                "url": {
                  "path": [
                    "client",
                    "profile"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "PUT",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"full_name\": \"elit\",\n  \"birth_date\": \"1990-05-01\",\n  \"gender\": \"male\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "07ce999e-6ac2-45f0-b834-82c45e54aae5",
          "name": "История бонусов (начисления/списания)",
          "request": {
            "name": "История бонусов (начисления/списания)",
            "description": {},
            "url": {
              "path": [
                "client",
                "transactions"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "page",
                  "value": "1",
                  "description": "Номер страницы (пагинация)"
                }
              ],
              "variable": [],
              "raw": "{{base_url}}/client/transactions?page=1"
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Token",
                "value": "{{tenant_token}}"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{bearer_token}}"
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "96b5f77d-995d-4d24-ab5a-5bd53b4d37d9",
              "name": "Постраничный список транзакций",
              "originalRequest": {
                "url": {
                  "path": [
                    "client",
                    "transactions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"data\": [\n      {\n        \"id\": 5012,\n        \"type\": \"accrual\",\n        \"amount\": 7.5,\n        \"amount_unit\": \"бонус\",\n        \"balance_after\": 157.5,\n        \"sale_amount\": 1000,\n        \"purchase_currency\": \"TJS\",\n        \"note\": \"Начисление за покупку\",\n        \"created_at\": \"1978-05-18T21:16:30.819Z\"\n      },\n      {\n        \"id\": 5012,\n        \"type\": \"accrual\",\n        \"amount\": 7.5,\n        \"amount_unit\": \"бонус\",\n        \"balance_after\": 157.5,\n        \"sale_amount\": 1000,\n        \"purchase_currency\": \"TJS\",\n        \"note\": \"Начисление за покупку\",\n        \"created_at\": \"1951-09-11T10:11:31.139Z\"\n      }\n    ],\n    \"current_page\": 1,\n    \"last_page\": 4,\n    \"total\": 73\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "cd7aa905-7968-4d2d-92a2-a5d4effb63c6",
          "name": "История покупок",
          "request": {
            "name": "История покупок",
            "description": {},
            "url": {
              "path": [
                "client",
                "purchases"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "page",
                  "value": "1",
                  "description": "Номер страницы (пагинация)"
                },
                {
                  "disabled": false,
                  "key": "per_page",
                  "value": "20"
                }
              ],
              "variable": [],
              "raw": "{{base_url}}/client/purchases?page=1&per_page=20"
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Token",
                "value": "{{tenant_token}}"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{bearer_token}}"
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "ea3664e5-fefe-462f-ae9b-704872668046",
              "name": "Постраничный список покупок",
              "originalRequest": {
                "url": {
                  "path": [
                    "client",
                    "purchases"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "page",
                      "value": "1"
                    },
                    {
                      "key": "per_page",
                      "value": "20"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"data\": [\n      {\n        \"id\": 1001,\n        \"kind\": \"purchase\",\n        \"title\": \"Покупка\",\n        \"receipt_number\": \"000123\",\n        \"sale_date\": \"1959-09-23T01:59:25.724Z\",\n        \"total_amount\": 1000,\n        \"currency\": \"TJS\",\n        \"bonus_accrued\": 7.5,\n        \"bonus_redeemed\": 45,\n        \"store_name\": \"Магазин на Рудаки\",\n        \"store_address\": \"пр. Рудаки, 12\",\n        \"lines\": [\n          {\n            \"sku\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"name\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"quantity\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"unit_price\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"line_amount\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            }\n          },\n          {\n            \"sku\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"name\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"quantity\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"unit_price\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"line_amount\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            }\n          }\n        ]\n      },\n      {\n        \"id\": 1001,\n        \"kind\": \"purchase\",\n        \"title\": \"Покупка\",\n        \"receipt_number\": \"000123\",\n        \"sale_date\": \"2026-01-30T05:31:17.058Z\",\n        \"total_amount\": 1000,\n        \"currency\": \"TJS\",\n        \"bonus_accrued\": 7.5,\n        \"bonus_redeemed\": 45,\n        \"store_name\": \"Магазин на Рудаки\",\n        \"store_address\": \"пр. Рудаки, 12\",\n        \"lines\": [\n          {\n            \"sku\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"name\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"quantity\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"unit_price\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"line_amount\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            }\n          },\n          {\n            \"sku\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"name\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"quantity\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"unit_price\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            },\n            \"line_amount\": {\n              \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n            }\n          }\n        ]\n      }\n    ],\n    \"current_page\": 1,\n    \"last_page\": 4,\n    \"total\": 73\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "b5cb2607-8aae-40f0-9f50-2791ba103031",
          "name": "Акции (персональные при авторизации)",
          "request": {
            "name": "Акции (персональные при авторизации)",
            "description": {},
            "url": {
              "path": [
                "client",
                "promotions"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{base_url}}/client/promotions"
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Token",
                "value": "{{tenant_token}}"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{bearer_token}}"
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "fcb2242e-3c10-471e-90f5-3aee1eb50c54",
              "name": "Список акций",
              "originalRequest": {
                "url": {
                  "path": [
                    "client",
                    "promotions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": 7,\n      \"name\": \"Двойной кэшбэк на молочное\",\n      \"description\": \"id magna Duis ut\",\n      \"type\": \"category_multiplier\",\n      \"condition\": {},\n      \"reward\": {},\n      \"starts_at\": \"1981-10-18T05:00:48.039Z\",\n      \"ends_at\": \"2008-02-01T01:53:30.772Z\",\n      \"personalized\": true\n    },\n    {\n      \"id\": 7,\n      \"name\": \"Двойной кэшбэк на молочное\",\n      \"description\": \"anim ex\",\n      \"type\": \"category_multiplier\",\n      \"condition\": {},\n      \"reward\": {},\n      \"starts_at\": \"1987-11-29T17:35:34.452Z\",\n      \"ends_at\": \"2019-03-28T20:18:18.721Z\",\n      \"personalized\": true\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "82fce9b2-110a-4399-95af-63c294e64d23",
          "name": "Список магазинов/филиалов",
          "request": {
            "name": "Список магазинов/филиалов",
            "description": {},
            "url": {
              "path": [
                "client",
                "stores"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{base_url}}/client/stores"
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Token",
                "value": "{{tenant_token}}"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{bearer_token}}"
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "ff3ecd69-d6e8-4020-bb02-93fc23f3c3d8",
              "name": "Список филиалов",
              "originalRequest": {
                "url": {
                  "path": [
                    "client",
                    "stores"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": 1,\n      \"name\": \"Магазин на Рудаки\",\n      \"address\": \"пр. Рудаки, 12\"\n    },\n    {\n      \"id\": 1,\n      \"name\": \"Магазин на Рудаки\",\n      \"address\": \"пр. Рудаки, 12\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "199ac26d-4c3d-428c-b9d9-c9e31cc79108",
          "name": "Реферальная программа",
          "request": {
            "name": "Реферальная программа",
            "description": {},
            "url": {
              "path": [
                "client",
                "referral"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{base_url}}/client/referral"
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Token",
                "value": "{{tenant_token}}"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{bearer_token}}"
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "3e53a6f9-5121-4e0c-b87e-be6b54de9cf2",
              "name": "Данные реферальной программы",
              "originalRequest": {
                "url": {
                  "path": [
                    "client",
                    "referral"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"code\": \"AB12CD34\",\n    \"share_text\": \"cupidatat Duis dolore ea\",\n    \"telegram_start_param\": \"ref_AB12CD34\",\n    \"invite_url\": \"https://t.me/yourbot?start=ref_AB12CD34\",\n    \"invited_count\": 5,\n    \"completed_count\": 3,\n    \"bonuses_earned\": 60\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "a771e71d-42e8-4f7f-b910-646fa49d5df7",
          "name": "Привязать Telegram к аккаунту",
          "request": {
            "name": "Привязать Telegram к аккаунту",
            "description": {},
            "url": {
              "path": [
                "client",
                "link-telegram"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{base_url}}/client/link-telegram"
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Token",
                "value": "{{tenant_token}}"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{bearer_token}}"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"init_data\": \"veniam ullamco\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "bc8fd63b-4706-4716-94de-e300a1dc37c8",
              "name": "Привязано",
              "originalRequest": {
                "url": {
                  "path": [
                    "client",
                    "link-telegram"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"init_data\": \"veniam ullamco\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"linked\": true\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e8f48c7b-60d1-4c87-88ca-6e6610faa418",
              "name": "Некорректный запрос",
              "originalRequest": {
                "url": {
                  "path": [
                    "client",
                    "link-telegram"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"init_data\": \"veniam ullamco\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d83c5490-4166-44a1-828c-6e7e41c10f0f",
              "name": "Не авторизован (нет/неверный токен или подпись)",
              "originalRequest": {
                "url": {
                  "path": [
                    "client",
                    "link-telegram"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"init_data\": \"veniam ullamco\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3455cfc3-ad7f-40b3-9a5f-6c44e41a0929",
              "name": "Ошибка валидации или бизнес-правила",
              "originalRequest": {
                "url": {
                  "path": [
                    "client",
                    "link-telegram"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"init_data\": \"veniam ullamco\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "8b212430-f2b2-4b25-8bb1-602daf5563ac",
          "name": "Зарегистрировать push-токен (FCM)",
          "request": {
            "name": "Зарегистрировать push-токен (FCM)",
            "description": {},
            "url": {
              "path": [
                "client",
                "device-token"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{base_url}}/client/device-token"
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Token",
                "value": "{{tenant_token}}"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{bearer_token}}"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"token\": \"amet voluptate culpa enim\",\n  \"platform\": \"android\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "17fe173f-79be-48ed-8c31-a5e2c0626598",
              "name": "Токен зарегистрирован",
              "originalRequest": {
                "url": {
                  "path": [
                    "client",
                    "device-token"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"token\": \"amet voluptate culpa enim\",\n  \"platform\": \"android\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"registered\": true\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "5d37ad67-1d11-4237-9765-0c31d6d78165",
          "name": "Удалить push-токен",
          "request": {
            "name": "Удалить push-токен",
            "description": {},
            "url": {
              "path": [
                "client",
                "device-token"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{base_url}}/client/device-token"
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Token",
                "value": "{{tenant_token}}"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{bearer_token}}"
              }
            ],
            "method": "DELETE",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"token\": \"quis ut officia sunt et\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "02667393-e2ec-460d-86c7-6496e59043ab",
              "name": "Токен удалён",
              "originalRequest": {
                "url": {
                  "path": [
                    "client",
                    "device-token"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "DELETE",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"token\": \"quis ut officia sunt et\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"deleted\": true\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "585dd042-2d6a-4b17-9e6a-f8e580e0a986",
      "name": "Catalog",
      "description": {
        "content": "Брендинг магазина, акции, список филиалов",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "ad55fc0f-0556-4949-a51e-91b57f30a973",
          "name": "Брендинг магазина (без авторизации клиента)",
          "request": {
            "name": "Брендинг магазина (без авторизации клиента)",
            "description": {},
            "url": {
              "path": [
                "client",
                "settings"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{base_url}}/client/settings"
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Token",
                "value": "{{tenant_token}}"
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "699bcc74-e056-431b-a531-83d6085167dd",
              "name": "Настройки брендинга",
              "originalRequest": {
                "url": {
                  "path": [
                    "client",
                    "settings"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"store_name\": \"Сеть «Хорошо»\",\n    \"logo_url\": \"https://cdn.bonex.one/logos/42.png\",\n    \"primary_color\": \"#0E7C66\",\n    \"currency\": \"TJS\",\n    \"bonus_unit\": \"бонус\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0d9d3643-889b-47c8-83ce-3ddb28a77221",
              "name": "Не найдено",
              "originalRequest": {
                "url": {
                  "path": [
                    "client",
                    "settings"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "287758bd-3abd-4044-9eb1-7f2fce0951e6",
      "name": "Partner (server-to-server)",
      "description": {
        "content": "Серверная интеграция с HMAC-подписью (SSO, продажи, списание)",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "ed6ec7a3-cb1b-4a9b-bf88-d72b0eb07362",
          "name": "SSO — обмен телефона на Bearer-токен клиента",
          "request": {
            "name": "SSO — обмен телефона на Bearer-токен клиента",
            "description": {
              "content": "Бэкенд партнёра вызывает после входа пользователя у себя. Требует HMAC-подпись.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "partner",
                "auth"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{base_url}}/partner/auth"
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Token",
                "value": "{{tenant_token}}"
              },
              {
                "key": "X-Partner-Timestamp",
                "value": "{{partner_timestamp}}"
              },
              {
                "key": "X-Partner-Signature",
                "value": "{{partner_signature}}"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone\": \"+992901234567\",\n  \"full_name\": \"consectetur dolore dolor cupidatat\",\n  \"create_if_missing\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "a016b258-9434-4b06-8e9e-b152ce4c6c4e",
              "name": "Найден существующий клиент",
              "originalRequest": {
                "url": {
                  "path": [
                    "partner",
                    "auth"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone\": \"+992901234567\",\n  \"full_name\": \"consectetur dolore dolor cupidatat\",\n  \"create_if_missing\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"token\": \"ad ut sit Excepteur\",\n    \"created\": false,\n    \"client\": {\n      \"id\": 42,\n      \"phone\": \"+992901234567\",\n      \"barcode_ean13\": \"2000000000420\",\n      \"club_card_number\": \"001-0000123\",\n      \"account_number\": \"ACC-000042\",\n      \"full_name\": \"Парвиз Солиев\",\n      \"birth_date\": \"1990-05-01\",\n      \"gender\": \"male\",\n      \"bonus_balance\": 150,\n      \"welcome_bonus_balance\": 0,\n      \"welcome_expires_at\": \"2025-05-22T02:13:51.939Z\",\n      \"birthday_bonus_balance\": 0,\n      \"birthday_expires_at\": \"1966-10-10T03:58:28.224Z\",\n      \"total_spent\": 1200,\n      \"tier\": {\n        \"id\": 2,\n        \"name\": \"Gold\",\n        \"color\": \"#C9A227\"\n      },\n      \"telegram_username\": \"parviz\",\n      \"has_mobile_app\": true,\n      \"is_blocked\": false,\n      \"last_visit_at\": \"2007-04-20T00:01:38.107Z\"\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c413b7d3-4c33-4df8-a26e-c440690b17e4",
              "name": "Клиент создан",
              "originalRequest": {
                "url": {
                  "path": [
                    "partner",
                    "auth"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone\": \"+992901234567\",\n  \"full_name\": \"consectetur dolore dolor cupidatat\",\n  \"create_if_missing\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"token\": \"enim fugiat\",\n    \"created\": true,\n    \"client\": {\n      \"id\": 42,\n      \"phone\": \"+992901234567\",\n      \"barcode_ean13\": \"2000000000420\",\n      \"club_card_number\": \"001-0000123\",\n      \"account_number\": \"ACC-000042\",\n      \"full_name\": \"Парвиз Солиев\",\n      \"birth_date\": \"1990-05-01\",\n      \"gender\": \"male\",\n      \"bonus_balance\": 150,\n      \"welcome_bonus_balance\": 0,\n      \"welcome_expires_at\": \"1951-05-03T05:54:08.385Z\",\n      \"birthday_bonus_balance\": 0,\n      \"birthday_expires_at\": \"1986-02-23T08:05:09.469Z\",\n      \"total_spent\": 1200,\n      \"tier\": {\n        \"id\": 2,\n        \"name\": \"Gold\",\n        \"color\": \"#C9A227\"\n      },\n      \"telegram_username\": \"parviz\",\n      \"has_mobile_app\": true,\n      \"is_blocked\": false,\n      \"last_visit_at\": \"1972-04-13T14:04:19.049Z\"\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "59ab9f6d-36b0-437d-b289-8e55c254cde5",
              "name": "Не авторизован (нет/неверный токен или подпись)",
              "originalRequest": {
                "url": {
                  "path": [
                    "partner",
                    "auth"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone\": \"+992901234567\",\n  \"full_name\": \"consectetur dolore dolor cupidatat\",\n  \"create_if_missing\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "594b2383-d3d3-426c-a908-86dfad06e742",
              "name": "Доступ запрещён (магазин приостановлен, клиент заблокирован, функция выключена)",
              "originalRequest": {
                "url": {
                  "path": [
                    "partner",
                    "auth"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone\": \"+992901234567\",\n  \"full_name\": \"consectetur dolore dolor cupidatat\",\n  \"create_if_missing\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "692638b2-2861-4a20-9f4d-5ff64ba32beb",
              "name": "Не найдено",
              "originalRequest": {
                "url": {
                  "path": [
                    "partner",
                    "auth"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone\": \"+992901234567\",\n  \"full_name\": \"consectetur dolore dolor cupidatat\",\n  \"create_if_missing\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "0ed9b7a4-c4f4-48ac-93fb-2e8af4480f23",
          "name": "Поиск клиента и баланса",
          "request": {
            "name": "Поиск клиента и баланса",
            "description": {},
            "url": {
              "path": [
                "partner",
                "client",
                ":identifier"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "check_amount",
                  "value": "200",
                  "description": "Сумма заказа для расчёта max_redeem_amount"
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "%2B992901234567",
                  "key": "identifier",
                  "description": "(Required) URL-encoded телефон (%2B992...), EAN-13 или клубная карта"
                }
              ],
              "raw": "{{base_url}}/partner/client/:identifier?check_amount=200"
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Token",
                "value": "{{tenant_token}}"
              },
              {
                "key": "X-Partner-Timestamp",
                "value": "{{partner_timestamp}}"
              },
              {
                "key": "X-Partner-Signature",
                "value": "{{partner_signature}}"
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "16bc0f4d-95f5-404b-9bf4-eb9cf5dffa4a",
              "name": "Клиент с данными лояльности",
              "originalRequest": {
                "url": {
                  "path": [
                    "partner",
                    "client",
                    ":identifier"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "check_amount",
                      "value": "200"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "%2B992901234567",
                      "key": "identifier",
                      "description": "(Required) URL-encoded телефон (%2B992...), EAN-13 или клубная карта"
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"id\": 42,\n    \"phone\": \"+992901234567\",\n    \"barcode_ean13\": \"2000000000420\",\n    \"club_card_number\": \"irure nulla dolor fugiat\",\n    \"account_number\": \"occaecat dolor\",\n    \"full_name\": \"Парвиз Солиев\",\n    \"bonus_balance\": 150,\n    \"redeemable_balance\": 120,\n    \"held_balance\": 30,\n    \"welcome_bonus_balance\": 0,\n    \"total_spent\": 1200,\n    \"tier\": {\n      \"id\": 2,\n      \"name\": \"Gold\",\n      \"color\": \"#C9A227\"\n    },\n    \"is_blocked\": false,\n    \"last_visit_at\": \"1947-02-26T20:22:11.997Z\",\n    \"loyalty\": {\n      \"bonus_percent\": 5,\n      \"max_redeem_percent\": 30,\n      \"redeem_hold_seconds\": 86400,\n      \"redeem_hold_human\": \"24 ч\",\n      \"redeemable_balance\": 120,\n      \"held_balance\": 30,\n      \"min_purchase_amount\": 10,\n      \"currency\": \"TJS\",\n      \"max_redeem_amount\": 60\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "69251559-37ee-4f66-9fe4-6ce8a87c2bef",
              "name": "Доступ запрещён (магазин приостановлен, клиент заблокирован, функция выключена)",
              "originalRequest": {
                "url": {
                  "path": [
                    "partner",
                    "client",
                    ":identifier"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "check_amount",
                      "value": "200"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "%2B992901234567",
                      "key": "identifier",
                      "description": "(Required) URL-encoded телефон (%2B992...), EAN-13 или клубная карта"
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6a8b2406-0651-4713-8a10-e829f8daebf3",
              "name": "Не найдено",
              "originalRequest": {
                "url": {
                  "path": [
                    "partner",
                    "client",
                    ":identifier"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "key": "check_amount",
                      "value": "200"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "%2B992901234567",
                      "key": "identifier",
                      "description": "(Required) URL-encoded телефон (%2B992...), EAN-13 или клубная карта"
                    }
                  ]
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "f70a65f5-7307-4bf5-b945-944f1b7e7732",
          "name": "Продажа — начисление (+ опционально списание)",
          "request": {
            "name": "Продажа — начисление (+ опционально списание)",
            "description": {},
            "url": {
              "path": [
                "partner",
                "sale"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{base_url}}/partner/sale"
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Token",
                "value": "{{tenant_token}}"
              },
              {
                "key": "X-Partner-Timestamp",
                "value": "{{partner_timestamp}}"
              },
              {
                "key": "X-Partner-Signature",
                "value": "{{partner_signature}}"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"client_phone\": \"+992901234567\",\n  \"total_amount\": 955,\n  \"gross_amount\": 1000,\n  \"redeem_mode\": \"payment_type\",\n  \"bonus_redeem_amount\": 45,\n  \"external_sale_id\": \"order-2026-000123\",\n  \"receipt_number\": \"Ut mollit cillum dolor ipsum\",\n  \"payment_method\": \"esse elit culpa\",\n  \"sale_date\": \"2014-05-06T07:02:38.506Z\",\n  \"lines\": [\n    {\n      \"sku\": \"ad minim non\",\n      \"category_code\": \"fugiat\",\n      \"name\": \"eiusmod irure ut\",\n      \"quantity\": 24710550.549106427,\n      \"line_amount\": 25062848.79107068,\n      \"unit_price\": 49483814.09054244\n    },\n    {\n      \"sku\": \"nostrud in pariatur\",\n      \"category_code\": \"quis qui dolor\",\n      \"name\": \"ut eu sed ullamco id\",\n      \"quantity\": 62036550.51894876,\n      \"line_amount\": 91018717.80516785,\n      \"unit_price\": 904421.8287688199\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "fad4c3ee-0f08-4993-9d4c-835eb4cc14e3",
              "name": "Продажа создана",
              "originalRequest": {
                "url": {
                  "path": [
                    "partner",
                    "sale"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"client_phone\": \"+992901234567\",\n  \"total_amount\": 955,\n  \"gross_amount\": 1000,\n  \"redeem_mode\": \"payment_type\",\n  \"bonus_redeem_amount\": 45,\n  \"external_sale_id\": \"order-2026-000123\",\n  \"receipt_number\": \"Ut mollit cillum dolor ipsum\",\n  \"payment_method\": \"esse elit culpa\",\n  \"sale_date\": \"2014-05-06T07:02:38.506Z\",\n  \"lines\": [\n    {\n      \"sku\": \"ad minim non\",\n      \"category_code\": \"fugiat\",\n      \"name\": \"eiusmod irure ut\",\n      \"quantity\": 24710550.549106427,\n      \"line_amount\": 25062848.79107068,\n      \"unit_price\": 49483814.09054244\n    },\n    {\n      \"sku\": \"nostrud in pariatur\",\n      \"category_code\": \"quis qui dolor\",\n      \"name\": \"ut eu sed ullamco id\",\n      \"quantity\": 62036550.51894876,\n      \"line_amount\": 91018717.80516785,\n      \"unit_price\": 904421.8287688199\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"id\": 1001,\n    \"client_id\": 42,\n    \"total_amount\": 955,\n    \"bonus_accrued\": 47.75,\n    \"bonus_redeemed\": 45,\n    \"external_sale_id\": \"order-2026-000123\",\n    \"sale_date\": \"2003-02-06T10:20:10.216Z\",\n    \"new_balance\": 152.75\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "110848e8-3825-4a94-aa5d-a08bc0a37e8e",
              "name": "Доступ запрещён (магазин приостановлен, клиент заблокирован, функция выключена)",
              "originalRequest": {
                "url": {
                  "path": [
                    "partner",
                    "sale"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"client_phone\": \"+992901234567\",\n  \"total_amount\": 955,\n  \"gross_amount\": 1000,\n  \"redeem_mode\": \"payment_type\",\n  \"bonus_redeem_amount\": 45,\n  \"external_sale_id\": \"order-2026-000123\",\n  \"receipt_number\": \"Ut mollit cillum dolor ipsum\",\n  \"payment_method\": \"esse elit culpa\",\n  \"sale_date\": \"2014-05-06T07:02:38.506Z\",\n  \"lines\": [\n    {\n      \"sku\": \"ad minim non\",\n      \"category_code\": \"fugiat\",\n      \"name\": \"eiusmod irure ut\",\n      \"quantity\": 24710550.549106427,\n      \"line_amount\": 25062848.79107068,\n      \"unit_price\": 49483814.09054244\n    },\n    {\n      \"sku\": \"nostrud in pariatur\",\n      \"category_code\": \"quis qui dolor\",\n      \"name\": \"ut eu sed ullamco id\",\n      \"quantity\": 62036550.51894876,\n      \"line_amount\": 91018717.80516785,\n      \"unit_price\": 904421.8287688199\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "528f1c44-07d2-439d-9717-966811b3d6bb",
              "name": "Не найдено",
              "originalRequest": {
                "url": {
                  "path": [
                    "partner",
                    "sale"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"client_phone\": \"+992901234567\",\n  \"total_amount\": 955,\n  \"gross_amount\": 1000,\n  \"redeem_mode\": \"payment_type\",\n  \"bonus_redeem_amount\": 45,\n  \"external_sale_id\": \"order-2026-000123\",\n  \"receipt_number\": \"Ut mollit cillum dolor ipsum\",\n  \"payment_method\": \"esse elit culpa\",\n  \"sale_date\": \"2014-05-06T07:02:38.506Z\",\n  \"lines\": [\n    {\n      \"sku\": \"ad minim non\",\n      \"category_code\": \"fugiat\",\n      \"name\": \"eiusmod irure ut\",\n      \"quantity\": 24710550.549106427,\n      \"line_amount\": 25062848.79107068,\n      \"unit_price\": 49483814.09054244\n    },\n    {\n      \"sku\": \"nostrud in pariatur\",\n      \"category_code\": \"quis qui dolor\",\n      \"name\": \"ut eu sed ullamco id\",\n      \"quantity\": 62036550.51894876,\n      \"line_amount\": 91018717.80516785,\n      \"unit_price\": 904421.8287688199\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f3cd6246-3baa-4a34-ac97-4ca5eefa2ada",
              "name": "Ошибка валидации или бизнес-правила",
              "originalRequest": {
                "url": {
                  "path": [
                    "partner",
                    "sale"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"client_phone\": \"+992901234567\",\n  \"total_amount\": 955,\n  \"gross_amount\": 1000,\n  \"redeem_mode\": \"payment_type\",\n  \"bonus_redeem_amount\": 45,\n  \"external_sale_id\": \"order-2026-000123\",\n  \"receipt_number\": \"Ut mollit cillum dolor ipsum\",\n  \"payment_method\": \"esse elit culpa\",\n  \"sale_date\": \"2014-05-06T07:02:38.506Z\",\n  \"lines\": [\n    {\n      \"sku\": \"ad minim non\",\n      \"category_code\": \"fugiat\",\n      \"name\": \"eiusmod irure ut\",\n      \"quantity\": 24710550.549106427,\n      \"line_amount\": 25062848.79107068,\n      \"unit_price\": 49483814.09054244\n    },\n    {\n      \"sku\": \"nostrud in pariatur\",\n      \"category_code\": \"quis qui dolor\",\n      \"name\": \"ut eu sed ullamco id\",\n      \"quantity\": 62036550.51894876,\n      \"line_amount\": 91018717.80516785,\n      \"unit_price\": 904421.8287688199\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "a5fea09f-6b2d-41a7-9bd6-b44e3127bd65",
          "name": "Списание бонусов (онлайн-оплата)",
          "request": {
            "name": "Списание бонусов (онлайн-оплата)",
            "description": {
              "content": "Доступно, только если включено «списание из приложения» (иначе 403).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "partner",
                "redeem"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{base_url}}/partner/redeem"
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Token",
                "value": "{{tenant_token}}"
              },
              {
                "key": "X-Partner-Timestamp",
                "value": "{{partner_timestamp}}"
              },
              {
                "key": "X-Partner-Signature",
                "value": "{{partner_signature}}"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"client_phone\": \"+992901234567\",\n  \"amount\": 50,\n  \"total_amount\": 200,\n  \"external_sale_id\": \"minim quis\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "8a1aaa2f-e122-4ce7-b79b-f1ee50638b9c",
              "name": "Бонусы списаны",
              "originalRequest": {
                "url": {
                  "path": [
                    "partner",
                    "redeem"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"client_phone\": \"+992901234567\",\n  \"amount\": 50,\n  \"total_amount\": 200,\n  \"external_sale_id\": \"minim quis\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {\n    \"transaction_id\": 5012,\n    \"amount_redeemed\": 50,\n    \"new_balance\": 102.75,\n    \"sale_id\": 1002\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "32ca19ac-6c6f-45d6-8071-1cbda29651bc",
              "name": "Доступ запрещён (магазин приостановлен, клиент заблокирован, функция выключена)",
              "originalRequest": {
                "url": {
                  "path": [
                    "partner",
                    "redeem"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"client_phone\": \"+992901234567\",\n  \"amount\": 50,\n  \"total_amount\": 200,\n  \"external_sale_id\": \"minim quis\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "afaefdd7-d9b3-42ab-bf78-efbd1b714e5c",
              "name": "Не найдено",
              "originalRequest": {
                "url": {
                  "path": [
                    "partner",
                    "redeem"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"client_phone\": \"+992901234567\",\n  \"amount\": 50,\n  \"total_amount\": 200,\n  \"external_sale_id\": \"minim quis\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1179bab6-f0da-42c8-a38e-c4f6546ba41d",
              "name": "Ошибка валидации или бизнес-правила",
              "originalRequest": {
                "url": {
                  "path": [
                    "partner",
                    "redeem"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"client_phone\": \"+992901234567\",\n  \"amount\": 50,\n  \"total_amount\": 200,\n  \"external_sale_id\": \"minim quis\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "fa07d6dd-932f-4c5c-99b3-7545dd6a5745",
      "name": "Integration",
      "description": {
        "content": "Синхронизация остатков (1С / ERP)",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "add2b0a2-c7aa-4974-9f18-0c76eda11f1e",
          "name": "Синхронизация остатков (1С / ERP)",
          "request": {
            "name": "Синхронизация остатков (1С / ERP)",
            "description": {
              "content": "Только X-Tenant-Token. Используется для персональных push по неликвиду.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "integration",
                "inventory",
                "sync"
              ],
              "host": [
                "{{base_url}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{base_url}}/integration/inventory/sync"
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Token",
                "value": "{{tenant_token}}"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"items\": [\n    {\n      \"sku\": \"SKU-001\",\n      \"name\": \"tempor labore sunt\",\n      \"category_code\": \"dolor aute adipisicing incidid\",\n      \"interest_tag\": \"ullamco cill\",\n      \"quantity\": 87559842.24765216,\n      \"quantity_on_hand\": 71121341.14586931,\n      \"overstock_threshold\": 39280920.64312364,\n      \"days_without_sale\": 4281592\n    },\n    {\n      \"sku\": \"SKU-001\",\n      \"name\": \"qui occaecat\",\n      \"category_code\": \"aute\",\n      \"interest_tag\": \"ea laborum elit\",\n      \"quantity\": 53408415.824855424,\n      \"quantity_on_hand\": 71636746.85560063,\n      \"overstock_threshold\": 61973145.39169388,\n      \"days_without_sale\": 18799863\n    }\n  ],\n  \"deactivate_missing\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "bec4daca-3fa1-4c42-8179-cae983f87215",
              "name": "Результат синхронизации",
              "originalRequest": {
                "url": {
                  "path": [
                    "integration",
                    "inventory",
                    "sync"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"items\": [\n    {\n      \"sku\": \"SKU-001\",\n      \"name\": \"tempor labore sunt\",\n      \"category_code\": \"dolor aute adipisicing incidid\",\n      \"interest_tag\": \"ullamco cill\",\n      \"quantity\": 87559842.24765216,\n      \"quantity_on_hand\": 71121341.14586931,\n      \"overstock_threshold\": 39280920.64312364,\n      \"days_without_sale\": 4281592\n    },\n    {\n      \"sku\": \"SKU-001\",\n      \"name\": \"qui occaecat\",\n      \"category_code\": \"aute\",\n      \"interest_tag\": \"ea laborum elit\",\n      \"quantity\": 53408415.824855424,\n      \"quantity_on_hand\": 71636746.85560063,\n      \"overstock_threshold\": 61973145.39169388,\n      \"days_without_sale\": 18799863\n    }\n  ],\n  \"deactivate_missing\": false\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": true,\n  \"data\": {}\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b7c936e7-6926-4163-a359-f08ab9fe1234",
              "name": "Ошибка валидации или бизнес-правила",
              "originalRequest": {
                "url": {
                  "path": [
                    "integration",
                    "inventory",
                    "sync"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "description": {
                      "content": "Added as a part of security scheme: apikey",
                      "type": "text/plain"
                    },
                    "key": "X-Tenant-Token",
                    "value": "<API Key>"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"items\": [\n    {\n      \"sku\": \"SKU-001\",\n      \"name\": \"tempor labore sunt\",\n      \"category_code\": \"dolor aute adipisicing incidid\",\n      \"interest_tag\": \"ullamco cill\",\n      \"quantity\": 87559842.24765216,\n      \"quantity_on_hand\": 71121341.14586931,\n      \"overstock_threshold\": 39280920.64312364,\n      \"days_without_sale\": 4281592\n    },\n    {\n      \"sku\": \"SKU-001\",\n      \"name\": \"qui occaecat\",\n      \"category_code\": \"aute\",\n      \"interest_tag\": \"ea laborum elit\",\n      \"quantity\": 53408415.824855424,\n      \"quantity_on_hand\": 71636746.85560063,\n      \"overstock_threshold\": 61973145.39169388,\n      \"days_without_sale\": 18799863\n    }\n  ],\n  \"deactivate_missing\": false\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"success\": false,\n  \"error\": \"Текст ошибки.\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    }
  ],
  "event": [],
  "variable": [
    {
      "key": "base_url",
      "value": "https://api.bonex.one/api/v1",
      "type": "string"
    },
    {
      "key": "tenant_token",
      "value": "",
      "type": "string"
    },
    {
      "key": "bearer_token",
      "value": "",
      "type": "string"
    },
    {
      "key": "partner_timestamp",
      "value": "",
      "type": "string"
    },
    {
      "key": "partner_signature",
      "value": "",
      "type": "string"
    }
  ],
  "auth": {
    "type": "noauth"
  },
  "info": {
    "_postman_id": "85eb213d-f7df-4e0d-bb79-f47f8434ffaa",
    "name": "Bonex API",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "description": "Коллекция запросов к API программы лояльности Bonex.\n\nЗаполните переменные коллекции:\n- base_url — базовый URL (по умолчанию https://api.bonex.one/api/v1)\n- tenant_token — X-Tenant-Token магазина (panel → Интеграции)\n- bearer_token — токен клиента (после /auth/verify-otp)\n- partner_timestamp / partner_signature — для Partner API (HMAC, считаются на бэкенде)"
  }
}