{"info":{"_postman_id":"6ffe65ce-12b0-40f7-8530-2c973395e713","name":"Loya CC API v1","description":"<html><head></head><body><p>Loya CC API grouped by frontend application.</p>\n<p>All apps share the same API. Default <code>baseUrl</code>: <code>https://api.loya.cc/api/v1</code>\nLocal Herd: <code>https://loya-cc-dev.test/api/v1</code></p>\n<h2 id=\"stats\">Stats</h2>\n<p><strong>Total requests:</strong> 447\n<strong>Methods:</strong> GET 189 · POST 99 · PATCH 76 · PUT 23 · DELETE 60\n<strong>Admin library resources:</strong> 17\n<strong>Admin lookup endpoints:</strong> 21</p>\n<h3 id=\"by-application\">By application</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Application</th>\n<th>Requests</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Admin Panel (@admin-panel)</td>\n<td>299</td>\n</tr>\n<tr>\n<td>Customer Mobile Application (@user-panel)</td>\n<td>108</td>\n</tr>\n<tr>\n<td>Validator Application (@validator-partner-for-worker)</td>\n<td>40</td>\n</tr>\n</tbody>\n</table>\n</div><div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>App</th>\n<th>Folder</th>\n<th>Port</th>\n<th>Auth guard</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>admin-panel</td>\n<td>Admin Panel (@admin-panel)</td>\n<td>3001</td>\n<td>admin</td>\n</tr>\n<tr>\n<td>user-panel</td>\n<td>Customer Mobile Application (@user-panel)</td>\n<td>3002</td>\n<td>Customer and Partner (Owner <code>/partner</code>, Employee <code>/staff</code>)</td>\n</tr>\n<tr>\n<td>validator-partner-for-worker</td>\n<td>Validator Application (@validator-partner-for-worker)</td>\n<td>3004</td>\n<td>employee</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Tip:</strong> Run the <strong>Login</strong> request inside each app folder first — tokens are saved automatically.</p>\n<h2 id=\"what-changed-merge-into-production\">What changed (merge into production)</h2>\n<p>Production collection still documents the older JSON:API library (<code>/categories</code>, <code>/promos</code>, <code>/admins</code>, …) and a short promo body (<code>title</code>, <code>discount_value</code>, <code>limit_per_user</code>). This file is the current API. Import it over that collection after this session.</p>\n<h3 id=\"promo-schedule-and-availability\">Promo schedule and availability</h3>\n<ul>\n<li>Admin, partner, and staff promo create/update bodies now send <strong>scope</strong>, <strong>schedule</strong>, <strong>coupon stock</strong>, <strong>loyalty</strong>, <strong>birthday</strong>, <strong>holiday</strong>, and <strong>student</strong> fields. See <strong>Partner setup → Promos → Create promo</strong>.</li>\n<li><code>time_rule</code>: <code>anytime</code> · <code>days</code> · <code>time</code> · <code>days_and_time</code>. Happy Time cannot use <code>anytime</code>.</li>\n<li><code>time_mode</code>: <code>anytime</code> · <code>before</code> · <code>between</code> · <code>after</code>. <code>anytime</code> means the clock window is the whole day. It is rejected when <code>time_rule</code> is <code>time</code> (choose before, after, or between). <code>between</code> needs <code>time_from</code> and <code>time_to</code>.</li>\n<li><code>weekdays</code> are ISO 1–7 (Monday–Sunday).</li>\n<li><code>scope</code>: <code>service</code> (default) · <code>partner</code> (global) · <code>country</code> · <code>branch</code> · <code>selection</code>.</li>\n<li>Customer <code>GET /promos</code> and new <code>GET /promos/{id}</code> add <code>scheduleText</code>, <code>isAvailableNow</code>, <code>availabilityState</code>, <code>availabilityNotice</code>, <code>nextAvailableAt</code>, <code>applicableTo</code>, <code>scopeLabel</code>.</li>\n<li>New customer <code>POST /promos/{id}/redeem</code>.</li>\n<li>Loya-owned promos return <code>isEditable: false</code>. Partner and staff delete/update of those returns 403.</li>\n</ul>\n<h3 id=\"new-route-groups\">New route groups</h3>\n<ul>\n<li><strong>Admin:</strong> <code>GET /admin/partner-setup/promo-hierarchy</code>, <code>GET …/partners/{id}/promo-services</code>, <code>GET …/promos/{id}</code>, branch <code>input-fields</code>, help-filter library + attach/detach.</li>\n<li><strong>User panel → Partner → Owner</strong> (<code></code>): <code>/partner/scope</code>, <code>/partner/stats</code>, <code>/partner/catalog</code>, <code>/partner/promos</code>, employees, service menus.</li>\n<li><strong>User panel → Partner → Employee</strong> and <strong>Validator → Staff panel</strong> (<code></code>): <code>/staff/scope</code>, <code>/staff/stats</code>, <code>/staff/promos</code>, employees, customers, menus.</li>\n</ul>\n<h3 id=\"database\">Database</h3>\n<p>Later column adds for <code>promos</code>, <code>employees</code>, <code>category_filter_fields</code>, and <code>category_filter_groups</code> are already inside the original <code>Schema::create</code> files. Two foreign keys stay in a later migration because the referenced table does not exist yet: <code>employees.service_id</code> → <code>services</code>, and <code>category_filter_fields.help_filter_id</code> → <code>help_filters</code>.</p>\n<h2 id=\"regenerate-this-file\">Regenerate this file</h2>\n<p>From <code>loya-backend-laravel</code>: <code>composer postman</code> or <code>php scripts/generate-postman-collection.php</code>\nOpenAPI YAML: <code>composer openapi</code> → <code>openapi/openapi.yml</code> (also copied to <code>fern/openapi/</code>).\nThen re-import <code>postman/Loya-CC-API.postman_collection.json</code> in Postman (Replace existing collection).</p>\n<h2 id=\"collection-variables-no-api-key-needed\">Collection variables (no API key needed)</h2>\n<p>Edit <strong>Variables</strong> on the collection:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Variable</th>\n<th>Purpose</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>baseUrl</code></td>\n<td>API root, e.g. <code>https://api.loya.cc/api/v1</code> or local Herd URL</td>\n</tr>\n<tr>\n<td><code>locale</code></td>\n<td>Response language: <code>en</code>, <code>az</code>, <code>ru</code></td>\n</tr>\n<tr>\n<td><code>adminToken</code></td>\n<td>JWT from admin panel login (auto-saved)</td>\n</tr>\n<tr>\n<td><code>ownerToken</code></td>\n<td>JWT from owner login (auto-saved)</td>\n</tr>\n<tr>\n<td><code>customerToken</code></td>\n<td>JWT from customer login/register (auto-saved)</td>\n</tr>\n<tr>\n<td><code>userToken</code></td>\n<td>Same as customer/partner token for <code>/auth/me</code></td>\n</tr>\n<tr>\n<td><code>partnerToken</code></td>\n<td>JWT when unified login returns <code>role: partner</code></td>\n</tr>\n<tr>\n<td><code>employeeToken</code></td>\n<td>JWT for validator app</td>\n</tr>\n<tr>\n<td><code>branchesId</code></td>\n<td>Branch ID for detail/favorites (auto-set from list)</td>\n</tr>\n<tr>\n<td><code>promoId</code></td>\n<td>Promo to activate</td>\n</tr>\n<tr>\n<td><code>activationId</code></td>\n<td>Promo activation QR flow</td>\n</tr>\n<tr>\n<td><code>customPageSlug</code></td>\n<td>CMS page slug (<code>about</code>, <code>privacy</code>, …)</td>\n</tr>\n<tr>\n<td><code>loyaltyCheckInId</code></td>\n<td>Loyalty check-in QR flow</td>\n</tr>\n<tr>\n<td><code>loyaltyRedemptionId</code></td>\n<td>Loyalty reward redemption QR flow</td>\n</tr>\n<tr>\n<td><code>serviceId</code></td>\n<td>Branch service unit ID</td>\n</tr>\n<tr>\n<td><code>app-settingsId</code></td>\n<td>Admin app setting record ID</td>\n</tr>\n</tbody>\n</table>\n</div><p>Login requests auto-save <code>access_token</code>. List endpoints auto-save the first <code>id</code> where noted.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"56130800","collectionId":"6ffe65ce-12b0-40f7-8530-2c973395e713","publishedId":"2sBYHPz21B","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-10-07T02:49:04.000Z"},"item":[{"name":"Admin Panel (@admin-panel)","item":[{"name":"Auth","item":[{"name":"2FA","item":[{"name":"Status","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"07aeec30-ba47-4ac7-8335-ca9692b55353"}}],"id":"e8e3d1f2-7acd-4614-8677-e854f0b3a953","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/auth/admin/2fa/status","urlObject":{"path":["auth","admin","2fa","status"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"f714e4d6-23fc-4d31-82bf-509ca510c68b","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/auth/admin/2fa/status"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"enabled\": false,\n    \"confirmed\": false\n}"}],"_postman_id":"e8e3d1f2-7acd-4614-8677-e854f0b3a953"},{"name":"Setup","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"c384ec7f-34be-4193-82c6-1fd22a701079"}}],"id":"2835f654-7cfc-433a-9777-ccf900a3deea","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/auth/admin/2fa/setup","description":"<h2 id=\"summary\">Summary</h2>\n<p>Returns secret, backup codes, and QR. Confirm with a TOTP code next.</p>\n","urlObject":{"path":["auth","admin","2fa","setup"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"ca3a1242-7395-4d63-9d4e-8b4489a7d5a7","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/auth/admin/2fa/setup"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"secret\": \"JBSWY3DPEHPK3PXP\",\n    \"otpauth_url\": \"otpauth://totp/Loya:admin@loya.cc?secret=JBSWY3DPEHPK3PXP\",\n    \"backup_codes\": [\n        \"12345678\",\n        \"87654321\"\n    ]\n}"}],"_postman_id":"2835f654-7cfc-433a-9777-ccf900a3deea"},{"name":"Confirm setup","event":[{"listen":"test","script":{"type":"text/javascript","exec":["if ([200, 201].includes(pm.response.code)) {","  const json = pm.response.json();","  if (json.access_token) pm.collectionVariables.set('adminToken', json.access_token);","}","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"aa020e66-5bf7-401d-8de6-5083cd49bf61"}}],"id":"3ae0724f-450c-4888-ab7c-01b53bef61ca","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"code\": \"123456\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/auth/admin/2fa/confirm","urlObject":{"path":["auth","admin","2fa","confirm"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"b086adac-7efb-4939-b0c7-b3450fd34b13","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/auth/admin/2fa/confirm"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"token_type\": \"Bearer\",\n    \"access_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example\",\n    \"role\": \"admin\",\n    \"user\": {\n        \"id\": 1,\n        \"name\": \"Loya Admin\",\n        \"email\": \"admin@loya.cc\",\n        \"type\": \"super_admin\",\n        \"isActive\": true\n    },\n    \"requires_2fa_setup\": true\n}"}],"_postman_id":"3ae0724f-450c-4888-ab7c-01b53bef61ca"},{"name":"Verify","event":[{"listen":"test","script":{"type":"text/javascript","exec":["if ([200, 201].includes(pm.response.code)) {","  const json = pm.response.json();","  if (json.access_token) pm.collectionVariables.set('adminToken', json.access_token);","}","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"4129b45f-faca-4ab3-af81-23fc9d94e81c"}}],"id":"7c0fd039-b3be-4a0d-b34d-a111778c453c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"code\": \"123456\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/auth/admin/2fa/verify","description":"<h2 id=\"summary\">Summary</h2>\n<p>Exchange password JWT for a full token with <code>2fa_ok</code> claim.</p>\n","urlObject":{"path":["auth","admin","2fa","verify"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"ee8f090d-622f-4d02-b110-949da5629aba","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/auth/admin/2fa/verify"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"token_type\": \"Bearer\",\n    \"access_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example\",\n    \"role\": \"admin\",\n    \"user\": {\n        \"id\": 1,\n        \"name\": \"Loya Admin\",\n        \"email\": \"admin@loya.cc\",\n        \"type\": \"super_admin\",\n        \"isActive\": true\n    },\n    \"requires_2fa_setup\": true\n}"}],"_postman_id":"7c0fd039-b3be-4a0d-b34d-a111778c453c"}],"id":"48179b47-d915-4116-b23f-f9eb1f907764","description":"<p>Admin TOTP two-factor. Requires Bearer <code></code> from login (password step).</p>\n","_postman_id":"48179b47-d915-4116-b23f-f9eb1f907764"},{"name":"Panel login","event":[{"listen":"test","script":{"type":"text/javascript","exec":["if ([200, 201].includes(pm.response.code)) {","  const json = pm.response.json();","  if (json.access_token) pm.collectionVariables.set('adminToken', json.access_token);","}","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"02c919ce-b3e4-43ea-b6f1-95adde770551"}}],"id":"2ae4f4e8-e06e-49a7-bbcf-3d9f69d4d9c4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"admin@loya.cc\",\n    \"password\": \"password\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/auth/panel/login","description":"<h2 id=\"summary\">Summary</h2>\n<p>Admin/owner panel login. Prefer this over <code>/auth/admin/login</code> when 2FA may be enabled.</p>\n<h2 id=\"2fa\">2FA</h2>\n<p>If 2FA is enabled, response may return a pending token / <code>requires_2fa</code>; complete <strong>2FA → Verify</strong> before calling protected routes.</p>\n","urlObject":{"path":["auth","panel","login"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"c4370e24-17ae-4a7e-9cb2-bc667fd463d4","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/auth/panel/login"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"token_type\": \"Bearer\",\n    \"access_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example\",\n    \"role\": \"admin\",\n    \"user\": {\n        \"id\": 1,\n        \"name\": \"Loya Admin\",\n        \"email\": \"admin@loya.cc\",\n        \"type\": \"super_admin\",\n        \"isActive\": true\n    },\n    \"requires_2fa_setup\": true\n}"}],"_postman_id":"2ae4f4e8-e06e-49a7-bbcf-3d9f69d4d9c4"},{"name":"Login (admin guard)","event":[{"listen":"test","script":{"type":"text/javascript","exec":["if ([200, 201].includes(pm.response.code)) {","  const json = pm.response.json();","  if (json.access_token) pm.collectionVariables.set('adminToken', json.access_token);","}","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"ce7fecf3-5da4-4b57-a06b-096ab954525c"}}],"id":"6fb00b6f-e6ac-4686-95b7-41ce4eacb01b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"admin@loya.cc\",\n    \"password\": \"password\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/auth/admin/login","urlObject":{"path":["auth","admin","login"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"a02dedd4-b4e8-48f8-af7e-eeab5811ec83","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/auth/admin/login"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"token_type\": \"Bearer\",\n    \"access_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example\",\n    \"role\": \"admin\",\n    \"user\": {\n        \"id\": 1,\n        \"name\": \"Loya Admin\",\n        \"email\": \"admin@loya.cc\",\n        \"type\": \"super_admin\",\n        \"isActive\": true\n    },\n    \"requires_2fa_setup\": true\n}"}],"_postman_id":"6fb00b6f-e6ac-4686-95b7-41ce4eacb01b"},{"name":"Me","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"4a094ec8-8c62-43bb-9785-7ada96525ebb"}}],"id":"69f2f512-7a40-4fd1-bb40-c2823c69934d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/auth/admin/me","urlObject":{"path":["auth","admin","me"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"30ba38ff-cd36-43a3-aa6d-66c30139be97","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/auth/admin/me"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"user\": {\n        \"id\": 1,\n        \"name\": \"Loya Admin\",\n        \"email\": \"admin@loya.cc\",\n        \"type\": \"super_admin\",\n        \"isActive\": true\n    }\n}"}],"_postman_id":"69f2f512-7a40-4fd1-bb40-c2823c69934d"},{"name":"Logout","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"f361b37d-6558-4ed0-befb-b50544b50b80"}}],"id":"ab37ec1d-13cc-4a7a-a94b-179d88a2b507","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/auth/admin/logout","urlObject":{"path":["auth","admin","logout"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"c7ac115d-59dd-4285-8a1c-7005b50d5990","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/auth/admin/logout"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Logged out.\"\n}"}],"_postman_id":"ab37ec1d-13cc-4a7a-a94b-179d88a2b507"},{"name":"Owner login","event":[{"listen":"test","script":{"type":"text/javascript","exec":["if ([200, 201].includes(pm.response.code)) {","  const json = pm.response.json();","  if (json.access_token) pm.collectionVariables.set('ownerToken', json.access_token);","}","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"ccb1ab3e-781c-4ab4-be77-94118a6e24c8"}}],"id":"b7da7df1-3235-4759-80e2-658e1e65d400","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"owner@example.az\",\n    \"password\": \"password\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/auth/owner/login","description":"<h2 id=\"summary\">Summary</h2>\n<p>Owner JWT for partner-scoped admin + <code>/partner/*</code> staff routes.</p>\n","urlObject":{"path":["auth","owner","login"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"33c22dff-f387-40f7-a9fa-a1a3271e201d","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/auth/owner/login"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"token_type\": \"Bearer\",\n    \"access_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example\",\n    \"role\": \"owner\",\n    \"user\": {\n        \"id\": 1,\n        \"name\": \"Partner Owner\",\n        \"email\": \"owner@example.az\",\n        \"phone\": \"+994501234567\",\n        \"isActive\": true\n    }\n}"}],"_postman_id":"b7da7df1-3235-4759-80e2-658e1e65d400"},{"name":"Owner me","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"7972dc27-3641-4215-ba89-9206962c29ac"}}],"id":"2a914aa0-9dcb-4559-b18a-1ca497b20926","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/auth/owner/me","urlObject":{"path":["auth","owner","me"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"0aaa1831-0d25-42b4-9a4b-eedf044642ef","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/auth/owner/me"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"user\": {\n        \"id\": 1,\n        \"name\": \"Partner Owner\",\n        \"email\": \"owner@example.az\",\n        \"phone\": \"+994501234567\",\n        \"isActive\": true\n    }\n}"}],"_postman_id":"2a914aa0-9dcb-4559-b18a-1ca497b20926"},{"name":"Owner logout","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"a3fb42c5-5d94-427f-90a1-03c2a155708c"}}],"id":"fdabaa54-d841-41ae-98af-64646c855f7e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/auth/owner/logout","urlObject":{"path":["auth","owner","logout"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"0bad6531-1e5b-4b0a-9ac7-dd273053eef4","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/auth/owner/logout"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Logged out.\"\n}"}],"_postman_id":"fdabaa54-d841-41ae-98af-64646c855f7e"}],"id":"ad2f6589-449e-47ba-b89d-60257cf2dd6e","_postman_id":"ad2f6589-449e-47ba-b89d-60257cf2dd6e","description":""},{"name":"Lookups","item":[{"name":"Partners","id":"c8fcbf51-e791-44f7-9c8a-58230ba60d43","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer "},{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/lookups/partners?search=&limit=100","urlObject":{"path":["lookups","partners"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}],"variable":[]}},"response":[{"id":"cd4b13ac-4587-4683-8070-e886e866320d","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.loya.cc/api/v1/lookups/partners?search=&limit=100","host":["https://api.loya.cc/api/v1"],"path":["lookups","partners"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"label\": \"Example\"\n        }\n    ]\n}"}],"_postman_id":"c8fcbf51-e791-44f7-9c8a-58230ba60d43"},{"name":"Branches","id":"1ac28ac1-94bf-4ea4-815e-33f917cc95a8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer "},{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/lookups/branches?search=&limit=100","urlObject":{"path":["lookups","branches"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}],"variable":[]}},"response":[{"id":"ed89cf0c-6435-41fc-8313-a9ad22bdc7a1","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.loya.cc/api/v1/lookups/branches?search=&limit=100","host":["https://api.loya.cc/api/v1"],"path":["lookups","branches"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"label\": \"Example\"\n        }\n    ]\n}"}],"_postman_id":"1ac28ac1-94bf-4ea4-815e-33f917cc95a8"},{"name":"Categories","id":"f4273fff-b6c7-4aa6-8764-5bc57f9d3bf7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer "},{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/lookups/categories?search=&limit=100","urlObject":{"path":["lookups","categories"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}],"variable":[]}},"response":[{"id":"9fde7599-0198-40a5-8c2a-c81c46b2f00f","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.loya.cc/api/v1/lookups/categories?search=&limit=100","host":["https://api.loya.cc/api/v1"],"path":["lookups","categories"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"label\": \"Example\"\n        }\n    ]\n}"}],"_postman_id":"f4273fff-b6c7-4aa6-8764-5bc57f9d3bf7"},{"name":"Subcategories","id":"e80e9eee-9f06-4f28-8bef-70095b65eeef","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer "},{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/lookups/subcategories?search=&limit=100","urlObject":{"path":["lookups","subcategories"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}],"variable":[]}},"response":[{"id":"f4ad257c-ed38-48e4-98ad-e3bb5b18a015","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.loya.cc/api/v1/lookups/subcategories?search=&limit=100","host":["https://api.loya.cc/api/v1"],"path":["lookups","subcategories"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"label\": \"Example\"\n        }\n    ]\n}"}],"_postman_id":"e80e9eee-9f06-4f28-8bef-70095b65eeef"},{"name":"Countries","id":"19b0aef8-60a2-4f3d-bd4f-5cb53a26d091","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer "},{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/lookups/countries?search=&limit=100","urlObject":{"path":["lookups","countries"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}],"variable":[]}},"response":[{"id":"c9d59fcd-7e8f-470e-a9f0-5cdd44a8b3e6","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.loya.cc/api/v1/lookups/countries?search=&limit=100","host":["https://api.loya.cc/api/v1"],"path":["lookups","countries"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"label\": \"Example\"\n        }\n    ]\n}"}],"_postman_id":"19b0aef8-60a2-4f3d-bd4f-5cb53a26d091"},{"name":"States","id":"ffa3e7ff-99f8-4d22-b6f8-efc96f1ed5e7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer "},{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/lookups/states?search=&limit=100","urlObject":{"path":["lookups","states"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}],"variable":[]}},"response":[{"id":"b0c31d5d-ea07-4789-91bc-6bd00d08599b","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.loya.cc/api/v1/lookups/states?search=&limit=100","host":["https://api.loya.cc/api/v1"],"path":["lookups","states"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"label\": \"Example\"\n        }\n    ]\n}"}],"_postman_id":"ffa3e7ff-99f8-4d22-b6f8-efc96f1ed5e7"},{"name":"Cities","id":"d739fa74-8aef-4286-802a-5f1402ac260b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer "},{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/lookups/cities?search=&limit=100","urlObject":{"path":["lookups","cities"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}],"variable":[]}},"response":[{"id":"67a000ea-87c3-45f7-950a-8cf1c38e2b2a","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.loya.cc/api/v1/lookups/cities?search=&limit=100","host":["https://api.loya.cc/api/v1"],"path":["lookups","cities"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"label\": \"Example\"\n        }\n    ]\n}"}],"_postman_id":"d739fa74-8aef-4286-802a-5f1402ac260b"},{"name":"Districts","id":"1b5f23ab-0a04-4094-b019-f4ca9e4114d9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer "},{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/lookups/districts?search=&limit=100","urlObject":{"path":["lookups","districts"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}],"variable":[]}},"response":[{"id":"b36fde4b-aba9-4f2c-8625-9b9209fcded9","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.loya.cc/api/v1/lookups/districts?search=&limit=100","host":["https://api.loya.cc/api/v1"],"path":["lookups","districts"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"label\": \"Example\"\n        }\n    ]\n}"}],"_postman_id":"1b5f23ab-0a04-4094-b019-f4ca9e4114d9"},{"name":"Subway Stations","id":"45ec68ec-7d14-4e6d-af48-461dc2cbe063","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer "},{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/lookups/subway-stations?search=&limit=100","urlObject":{"path":["lookups","subway-stations"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}],"variable":[]}},"response":[{"id":"f40a121c-0514-4253-9342-79018fd6e4af","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.loya.cc/api/v1/lookups/subway-stations?search=&limit=100","host":["https://api.loya.cc/api/v1"],"path":["lookups","subway-stations"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"label\": \"Example\"\n        }\n    ]\n}"}],"_postman_id":"45ec68ec-7d14-4e6d-af48-461dc2cbe063"},{"name":"Amenities","id":"8f6e736e-d3f6-4b82-87d9-acfd2680e18e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer "},{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/lookups/amenities?search=&limit=100","urlObject":{"path":["lookups","amenities"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}],"variable":[]}},"response":[{"id":"52c2074d-5523-42d6-bae1-3e3810babd06","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.loya.cc/api/v1/lookups/amenities?search=&limit=100","host":["https://api.loya.cc/api/v1"],"path":["lookups","amenities"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"label\": \"Example\"\n        }\n    ]\n}"}],"_postman_id":"8f6e736e-d3f6-4b82-87d9-acfd2680e18e"},{"name":"Customers","id":"f405c826-a593-40b3-a19e-4bc753e9ea62","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer "},{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/lookups/customers?search=&limit=100","urlObject":{"path":["lookups","customers"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}],"variable":[]}},"response":[{"id":"746493ec-01b0-4a3b-a1c7-f83dffcb1cda","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.loya.cc/api/v1/lookups/customers?search=&limit=100","host":["https://api.loya.cc/api/v1"],"path":["lookups","customers"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"label\": \"Example\"\n        }\n    ]\n}"}],"_postman_id":"f405c826-a593-40b3-a19e-4bc753e9ea62"},{"name":"Owners","id":"fb433d8a-b3a0-4356-a844-de82db0ddc4e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer "},{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/lookups/owners?search=&limit=100","urlObject":{"path":["lookups","owners"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}],"variable":[]}},"response":[{"id":"697309c7-0b79-4634-854d-c6f4496f95a5","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.loya.cc/api/v1/lookups/owners?search=&limit=100","host":["https://api.loya.cc/api/v1"],"path":["lookups","owners"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"label\": \"Example\"\n        }\n    ]\n}"}],"_postman_id":"fb433d8a-b3a0-4356-a844-de82db0ddc4e"},{"name":"Country Entities","id":"c8d08e55-4cbd-4547-8e8a-5dc4d42d6f6c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer "},{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/lookups/country-entities?search=&limit=100","urlObject":{"path":["lookups","country-entities"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}],"variable":[]}},"response":[{"id":"56cef072-69cb-4b87-a3c6-8d7ca3c063f8","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.loya.cc/api/v1/lookups/country-entities?search=&limit=100","host":["https://api.loya.cc/api/v1"],"path":["lookups","country-entities"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"label\": \"Example\"\n        }\n    ]\n}"}],"_postman_id":"c8d08e55-4cbd-4547-8e8a-5dc4d42d6f6c"},{"name":"Employees","id":"5ba8253b-893f-4702-84d9-b0148eb1244b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer "},{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/lookups/employees?search=&limit=100","urlObject":{"path":["lookups","employees"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}],"variable":[]}},"response":[{"id":"75395fc4-50ae-4cb9-9840-74bd6443f94f","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.loya.cc/api/v1/lookups/employees?search=&limit=100","host":["https://api.loya.cc/api/v1"],"path":["lookups","employees"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"label\": \"Example\"\n        }\n    ]\n}"}],"_postman_id":"5ba8253b-893f-4702-84d9-b0148eb1244b"},{"name":"Promo Types","id":"6bfbcab5-b0fd-412d-afae-eab675794c53","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer "},{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/lookups/promo-types?search=&limit=100","urlObject":{"path":["lookups","promo-types"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}],"variable":[]}},"response":[{"id":"3708fabf-1405-4335-b165-1c9ffb36828b","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.loya.cc/api/v1/lookups/promo-types?search=&limit=100","host":["https://api.loya.cc/api/v1"],"path":["lookups","promo-types"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"label\": \"Example\"\n        }\n    ]\n}"}],"_postman_id":"6bfbcab5-b0fd-412d-afae-eab675794c53"},{"name":"Promos","id":"1aadb0a0-4b3c-4d02-9768-95ba95890815","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer "},{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/lookups/promos?search=&limit=100","urlObject":{"path":["lookups","promos"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}],"variable":[]}},"response":[{"id":"3c536bf0-59d1-45cc-9830-806e3d8d1b7d","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.loya.cc/api/v1/lookups/promos?search=&limit=100","host":["https://api.loya.cc/api/v1"],"path":["lookups","promos"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"label\": \"Example\"\n        }\n    ]\n}"}],"_postman_id":"1aadb0a0-4b3c-4d02-9768-95ba95890815"},{"name":"Promo Activations","id":"0ab3b52a-093c-4617-83bd-3d629894bd89","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer "},{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/lookups/promo-activations?search=&limit=100","urlObject":{"path":["lookups","promo-activations"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}],"variable":[]}},"response":[{"id":"da234e99-5d61-4cf7-a63a-88be418a9154","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.loya.cc/api/v1/lookups/promo-activations?search=&limit=100","host":["https://api.loya.cc/api/v1"],"path":["lookups","promo-activations"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"label\": \"Example\"\n        }\n    ]\n}"}],"_postman_id":"0ab3b52a-093c-4617-83bd-3d629894bd89"},{"name":"Loyalty Cards","id":"162942cd-203f-49e6-a61a-714ae67e4582","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer "},{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/lookups/loyalty-cards?search=&limit=100","urlObject":{"path":["lookups","loyalty-cards"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}],"variable":[]}},"response":[{"id":"766fc53a-ba21-4206-b501-261a4629b05c","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.loya.cc/api/v1/lookups/loyalty-cards?search=&limit=100","host":["https://api.loya.cc/api/v1"],"path":["lookups","loyalty-cards"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"label\": \"Example\"\n        }\n    ]\n}"}],"_postman_id":"162942cd-203f-49e6-a61a-714ae67e4582"},{"name":"Category Filter Groups","id":"de652324-922c-42b6-8533-f5483cba1b70","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer "},{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/lookups/category-filter-groups?search=&limit=100","urlObject":{"path":["lookups","category-filter-groups"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}],"variable":[]}},"response":[{"id":"7edeae08-0b2f-4ec4-baa6-88024d27938a","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.loya.cc/api/v1/lookups/category-filter-groups?search=&limit=100","host":["https://api.loya.cc/api/v1"],"path":["lookups","category-filter-groups"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"label\": \"Example\"\n        }\n    ]\n}"}],"_postman_id":"de652324-922c-42b6-8533-f5483cba1b70"},{"name":"Category Filter Fields","id":"8ce8f281-6e30-4c80-a0db-9f60674074cf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer "},{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/lookups/category-filter-fields?search=&limit=100","urlObject":{"path":["lookups","category-filter-fields"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}],"variable":[]}},"response":[{"id":"45d3712d-419c-4f4b-9daa-ed5d649ecad9","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.loya.cc/api/v1/lookups/category-filter-fields?search=&limit=100","host":["https://api.loya.cc/api/v1"],"path":["lookups","category-filter-fields"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"label\": \"Example\"\n        }\n    ]\n}"}],"_postman_id":"8ce8f281-6e30-4c80-a0db-9f60674074cf"},{"name":"Category Filter Options","id":"5907f530-8e9a-4736-a95a-211ddff43621","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer "},{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/lookups/category-filter-options?search=&limit=100","urlObject":{"path":["lookups","category-filter-options"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}],"variable":[]}},"response":[{"id":"98ff3207-930d-46fc-ab7b-0da19e244e6c","name":"OK","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.loya.cc/api/v1/lookups/category-filter-options?search=&limit=100","host":["https://api.loya.cc/api/v1"],"path":["lookups","category-filter-options"],"query":[{"key":"search","value":""},{"key":"limit","value":"100"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"label\": \"Example\"\n        }\n    ]\n}"}],"_postman_id":"5907f530-8e9a-4736-a95a-211ddff43621"}],"id":"cded2f23-5749-487f-85f6-9622c6ec95eb","description":"<p>Relation picker endpoints for admin forms.</p>\n","_postman_id":"cded2f23-5749-487f-85f6-9622c6ec95eb"},{"name":"Geocode","item":[{"name":"Reverse geocode","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"bdf13f93-34a2-4e8b-ad35-3098a1cfd101"}}],"id":"b763ed74-8040-4a0d-b8be-c7570b735f14","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/geocode/reverse?lat=40.4093&lng=49.8671","description":"<h2 id=\"summary\">Summary</h2>\n<p>Resolve coordinates to a formatted address for branch map picker.</p>\n","urlObject":{"path":["admin","geocode","reverse"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Latitude</p>\n","type":"text/plain"},"key":"lat","value":"40.4093"},{"description":{"content":"<p>Longitude</p>\n","type":"text/plain"},"key":"lng","value":"49.8671"}],"variable":[]}},"response":[{"id":"83e92910-aa08-4179-886f-f011fe7d7e8e","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/geocode/reverse?lat=40.4093&lng=49.8671","host":["https://api.loya.cc/api/v1"],"path":["admin","geocode","reverse"],"query":[{"key":"lat","value":"40.4093","description":"Latitude"},{"key":"lng","value":"49.8671","description":"Longitude"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"formattedAddress\": \"28 May str., Baku, Azerbaijan\",\n        \"lat\": 40.4093,\n        \"lng\": 49.8671\n    }\n}"}],"_postman_id":"b763ed74-8040-4a0d-b8be-c7570b735f14"}],"id":"502c74a8-49b6-4a8c-9295-4ab6a67f0bde","_postman_id":"502c74a8-49b6-4a8c-9295-4ab6a67f0bde","description":""},{"name":"Partner hierarchy","item":[{"name":"List partners","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('partnersId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"400f4f40-0e0f-4bc6-95bb-d2d0aa970fce"}}],"id":"28cc728f-5f91-4194-ba41-43f51e7d895e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/partners?page=1&per_page=25&search=","description":"<h2 id=\"summary\">Summary</h2>\n<p>Paginated partners list.</p>\n","urlObject":{"path":["partner-hierarchy","partners"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"page","value":"1"},{"key":"per_page","value":"25"},{"key":"search","value":""}],"variable":[]}},"response":[{"id":"a8d80214-c0ee-436a-b343-cc1a46a97831","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/partner-hierarchy/partners?page=1&per_page=25&search=","host":["https://api.loya.cc/api/v1"],"path":["partner-hierarchy","partners"],"query":[{"key":"page","value":"1"},{"key":"per_page","value":"25"},{"key":"search","value":""}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"28cc728f-5f91-4194-ba41-43f51e7d895e"},{"name":"Get partner","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"82d49586-86bf-4697-a3d4-062e731c9fec"}}],"id":"a1b935f9-d989-4be2-bf64-b55732fd1d58","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/partners/1","urlObject":{"path":["partner-hierarchy","partners","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"5f3d2cbb-61cb-4346-b16c-d6c68a0388f9","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/partners/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"a1b935f9-d989-4be2-bf64-b55732fd1d58"},{"name":"Partner country entities","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('country-entitiesId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"3f49fcf4-721a-4a26-8704-ce438e6967f7"}}],"id":"d3674938-f9e2-45c3-a3d5-27cd445101ae","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/partners/1/country-entities","urlObject":{"path":["partner-hierarchy","partners","1","country-entities"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"33498c09-841a-48d5-b089-7a7f9e8a968a","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/partners/1/country-entities"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"d3674938-f9e2-45c3-a3d5-27cd445101ae"},{"name":"Partner unlinked branches","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"338b98aa-1ef8-4312-84ff-bfc57a083a65"}}],"id":"f6372dfc-6bbe-4d2d-8b03-1ffc5d21656d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/partners/1/unlinked-branches","urlObject":{"path":["partner-hierarchy","partners","1","unlinked-branches"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"37c5d8c4-08e0-4e5c-8296-3bcec06d9491","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/partners/1/unlinked-branches"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"f6372dfc-6bbe-4d2d-8b03-1ffc5d21656d"},{"name":"Partner employees","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"3b111732-7a97-46c0-8783-10a75ffaa42a"}}],"id":"8a829aac-8194-4551-a590-2ba6af12b6c4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/partners/1/employees","urlObject":{"path":["partner-hierarchy","partners","1","employees"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"f5ae0c0a-dff8-4460-b38f-a7e2e759027f","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/partners/1/employees"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"8a829aac-8194-4551-a590-2ba6af12b6c4"},{"name":"Partner customers","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"9c45683b-4d06-407e-aa05-750a2f9f575b"}}],"id":"1fe2a187-b486-49a4-965d-9d0ef7420569","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/partners/1/customers","urlObject":{"path":["partner-hierarchy","partners","1","customers"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"aedbe0eb-cafa-4010-abb8-17188b0617f6","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/partners/1/customers"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"1fe2a187-b486-49a4-965d-9d0ef7420569"},{"name":"Partner promos","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"0b0af33f-4165-4e6f-b748-00e35b9e1166"}}],"id":"f078871c-210c-40e6-be7d-3144c264e146","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/partners/1/promos","urlObject":{"path":["partner-hierarchy","partners","1","promos"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"ef3bfe02-abed-4814-b188-b48be187ce9c","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/partners/1/promos"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"f078871c-210c-40e6-be7d-3144c264e146"},{"name":"Partner activity","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"4e7c7c12-dc29-4dab-8c65-1aade87d368e"}}],"id":"0222e921-0627-47c5-8971-fbe6089c02d9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/partners/1/activity?page=1&per_page=25","description":"<h2 id=\"summary\">Summary</h2>\n<p>Paginated partner activity log.</p>\n","urlObject":{"path":["partner-hierarchy","partners","1","activity"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"page","value":"1"},{"key":"per_page","value":"25"}],"variable":[]}},"response":[{"id":"4dbccade-92fa-4457-87b6-0fefb689dff2","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/partner-hierarchy/partners/1/activity?page=1&per_page=25","host":["https://api.loya.cc/api/v1"],"path":["partner-hierarchy","partners","1","activity"],"query":[{"key":"page","value":"1"},{"key":"per_page","value":"25"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"0222e921-0627-47c5-8971-fbe6089c02d9"},{"name":"Partner activity entry","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"c5f1dcaf-6d43-4a29-a094-04f57ea13bff"}}],"id":"05f50474-3992-48bb-87c8-07a4ae246bb2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/partners/1/activity/1","urlObject":{"path":["partner-hierarchy","partners","1","activity","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"e171b8fc-2406-45c6-88ed-162a8a8087d0","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/partners/1/activity/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"05f50474-3992-48bb-87c8-07a4ae246bb2"},{"name":"Partner assignment options","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"c5a95ebe-0833-4fc9-bfe6-a8f111b94514"}}],"id":"244ced3e-4bc6-4cc2-a022-96ee0ac11590","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/partners/1/assignment-options","description":"<h2 id=\"summary\">Summary</h2>\n<p>Options for assigning owners / entities to a partner.</p>\n","urlObject":{"path":["partner-hierarchy","partners","1","assignment-options"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"559b637d-af82-4980-9dd4-175f61a0ea11","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/partners/1/assignment-options"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"244ced3e-4bc6-4cc2-a022-96ee0ac11590"},{"name":"Get country entity","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"14437799-fd03-4330-849c-8bbc0f3ccc21"}}],"id":"400de781-de75-4626-85db-69e1f2f44a7f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/country-entities/1","urlObject":{"path":["partner-hierarchy","country-entities","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"464c24c4-dc80-47b8-9583-7ff30d04e248","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/country-entities/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"400de781-de75-4626-85db-69e1f2f44a7f"},{"name":"Country entity branches","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('branchesId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"c87ae75a-4933-4057-89a8-c00d78e1854d"}}],"id":"ccc2eda8-95b4-4c44-bee3-17eae6c7ac91","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/country-entities/1/branches","urlObject":{"path":["partner-hierarchy","country-entities","1","branches"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"1d874a20-544b-4734-b3de-583abe1e0fbb","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/country-entities/1/branches"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"ccc2eda8-95b4-4c44-bee3-17eae6c7ac91"},{"name":"Get branch","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"ed7f9485-3a27-4933-859e-67f49708fd1c"}}],"id":"8474be63-2fb7-4ec0-8fb9-312a9d4a20a9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/branches/1","urlObject":{"path":["partner-hierarchy","branches","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"003f9f38-9088-46a0-83bb-f77f145fe3b7","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/branches/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"8474be63-2fb7-4ec0-8fb9-312a9d4a20a9"},{"name":"Branch promos","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"4fdaf0de-5c36-4f6f-84d6-d53da48e2477"}}],"id":"54ff530f-afce-42e4-8e56-83ae3b158fde","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/branches/1/promos","urlObject":{"path":["partner-hierarchy","branches","1","promos"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"5d34ebce-42a2-45ae-87a6-2cac5659d6a9","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/branches/1/promos"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"54ff530f-afce-42e4-8e56-83ae3b158fde"},{"name":"Branch loyalty cards","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"b2adf815-dc2c-48fc-9998-a72c794bfc1a"}}],"id":"2785c0d1-11ff-408b-bd95-c6cbd5281cbe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/branches/1/loyalty-cards","urlObject":{"path":["partner-hierarchy","branches","1","loyalty-cards"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"cb76735e-a40f-4c6a-ac08-0a1627acd922","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner-hierarchy/branches/1/loyalty-cards"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"2785c0d1-11ff-408b-bd95-c6cbd5281cbe"}],"id":"4349311c-9e32-41cd-ad78-33489b01c101","description":"<p>Read-only partner → country entity → branch tree for admin navigation and partner dashboards.</p>\n","_postman_id":"4349311c-9e32-41cd-ad78-33489b01c101"},{"name":"Owners","item":[{"name":"List owners","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('ownersId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"da6bbba5-7c69-438c-b1b4-9ad5a6c0dc03"}}],"id":"22823202-6c6e-4336-af7f-b4e17fa1f7c1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/owners?page=1&per_page=25&search=","urlObject":{"path":["admin","owners"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"page","value":"1"},{"key":"per_page","value":"25"},{"key":"search","value":""}],"variable":[]}},"response":[{"id":"2f8f780f-7981-43d6-9cd5-1a8264362f0e","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/owners?page=1&per_page=25&search=","host":["https://api.loya.cc/api/v1"],"path":["admin","owners"],"query":[{"key":"page","value":"1"},{"key":"per_page","value":"25"},{"key":"search","value":""}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"attributes\": {\n                \"name\": \"Example\"\n            },\n            \"relations\": {},\n            \"translations\": {},\n            \"counts\": {},\n            \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"22823202-6c6e-4336-af7f-b4e17fa1f7c1"},{"name":"Create owner","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('ownersId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"3ac8557c-937a-4133-bd92-fe909920cf3f"}}],"id":"a238fbe0-cf1f-4dd7-b4d1-aa5fe658589f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Partner Owner\",\n    \"email\": \"owner@example.az\",\n    \"password\": \"password\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/owners","urlObject":{"path":["admin","owners"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"f9ca3d4b-5791-45dd-8d16-44d71aadb9a1","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/owners"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"attributes\": {\n            \"name\": \"Partner Owner\",\n            \"email\": \"owner@example.az\",\n            \"password\": \"password\",\n            \"is_active\": true\n        },\n        \"relations\": {},\n        \"translations\": {},\n        \"counts\": {},\n        \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n    }\n}"}],"_postman_id":"a238fbe0-cf1f-4dd7-b4d1-aa5fe658589f"},{"name":"Get owner","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"a9815202-9b94-4a0d-9839-bbd223a739d5"}}],"id":"3e953338-d921-47d5-9d4d-fe83058479b2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/owners/1","urlObject":{"path":["admin","owners","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"9082f82d-ad7e-4854-bc7e-b2db991b16f3","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/owners/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"3e953338-d921-47d5-9d4d-fe83058479b2"},{"name":"Update owner","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"d579b05b-3b0f-4b29-90b2-d8a4b437156e"}}],"id":"e7908fb9-7f1c-412b-8792-0621eed9d223","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Partner Owner Updated\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/owners/1","urlObject":{"path":["admin","owners","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"a7e83b19-a55b-4217-ad20-a386d2375bc0","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/owners/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Partner Owner Updated\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"e7908fb9-7f1c-412b-8792-0621eed9d223"},{"name":"Delete owner","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"b57cf76b-1fe5-43c7-aaa1-8d7d18bbd09b"}}],"id":"fb1a17ae-c198-471b-98c3-3866c61d3bd1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/owners/1","urlObject":{"path":["admin","owners","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"8e4b6b86-9f2f-4495-8d6d-1031d6bfea10","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/owners/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"fb1a17ae-c198-471b-98c3-3866c61d3bd1"},{"name":"List partner owners","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"73ef236e-b81a-415a-bc38-44b22bf1585a"}}],"id":"f0e80599-8656-4e58-a3dd-4e3e65c3b4f6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partners/1/owners","urlObject":{"path":["admin","partners","1","owners"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"eea91588-7e01-480e-bbb3-84514a8108fe","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partners/1/owners"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"f0e80599-8656-4e58-a3dd-4e3e65c3b4f6"},{"name":"Attach partner owner","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"29530475-fa84-442c-9bcd-dff96d83b6f5"}}],"id":"87c3d6e0-9aca-4040-b6e7-fa41a03c36ea","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"owner_ids\": [\n        1\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partners/1/owners","urlObject":{"path":["admin","partners","1","owners"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"7cf20e9e-ffb6-4093-950b-d667b446b5ae","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partners/1/owners"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"owner_ids\": [\n            1\n        ]\n    }\n}"}],"_postman_id":"87c3d6e0-9aca-4040-b6e7-fa41a03c36ea"},{"name":"Detach partner owner","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"fc7ab806-5ba9-4ad2-889e-a8665c50947b"}}],"id":"e20af484-7b59-4c47-8e3a-fb4d2da8a5b7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partners/1/owners/1","urlObject":{"path":["admin","partners","1","owners","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"0e118a41-15e0-4278-b3f0-f324de1df809","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partners/1/owners/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"e20af484-7b59-4c47-8e3a-fb4d2da8a5b7"},{"name":"List country-entity owners","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"c22392a2-ed17-4ecd-9788-37a280829dea"}}],"id":"20aa1da8-37ec-4ff6-a671-58fb2513548a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/country-entities/1/owners","urlObject":{"path":["admin","country-entities","1","owners"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"3d98a83d-427d-4d46-925b-0eecac47edb6","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/country-entities/1/owners"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"20aa1da8-37ec-4ff6-a671-58fb2513548a"},{"name":"Attach country-entity owner","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"bf2f8fc7-8073-4942-8789-53359608cbec"}}],"id":"3ab40f12-450d-45c5-9b17-881a624f500d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"owner_ids\": [\n        1\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/country-entities/1/owners","urlObject":{"path":["admin","country-entities","1","owners"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"aa132d6c-35f3-4896-9408-ebf71670cd2c","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/country-entities/1/owners"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"owner_ids\": [\n            1\n        ]\n    }\n}"}],"_postman_id":"3ab40f12-450d-45c5-9b17-881a624f500d"},{"name":"Detach country-entity owner","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"af59ac2f-5d6f-498c-abf5-882a0db91482"}}],"id":"3046c648-ef64-483f-a493-e5fe0dc44f85","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/country-entities/1/owners/1","urlObject":{"path":["admin","country-entities","1","owners","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"934a0557-a974-4bbc-a340-5a4b5a4b637a","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/country-entities/1/owners/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"3046c648-ef64-483f-a493-e5fe0dc44f85"}],"id":"ac581766-5198-4fd0-b960-e7782c50cd07","description":"<p>Platform/partner owner accounts and partner / country-entity assignments. Auth: admin or scoped owner + 2FA + partner-manager.</p>\n","_postman_id":"ac581766-5198-4fd0-b960-e7782c50cd07"},{"name":"Owner staff","item":[{"name":"Scope","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"c8da37bb-28ac-41c1-aba8-9af64df0bfff"}}],"id":"b7206132-32b4-4da9-b006-301e14a24e58","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/scope","description":"<h2 id=\"summary\">Summary</h2>\n<p>Partners and country entities this owner may moderate.</p>\n","urlObject":{"path":["partner","scope"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"f1595cad-d384-4991-9b08-4cf4ace12f23","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/scope"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"partners\": [\n            {\n                \"id\": 1,\n                \"name\": \"Papa John's\"\n            }\n        ],\n        \"countryEntities\": [\n            {\n                \"id\": 1,\n                \"partnerId\": 1,\n                \"label\": \"Azerbaijan\"\n            }\n        ],\n        \"partnerIds\": [\n            1\n        ],\n        \"countryEntityIds\": [\n            1\n        ]\n    }\n}"}],"_postman_id":"b7206132-32b4-4da9-b006-301e14a24e58"},{"name":"List employees","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('employeesId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"42e2bb3c-2b69-4093-86a6-5ae6b6562318"}}],"id":"f9a5b965-63dc-47a3-9f5b-9b90194e1f8c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/employees","urlObject":{"path":["partner","employees"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"36e57afa-4ad1-415c-8c57-a54fd25db2bc","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/employees"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1\n        }\n    ]\n}"}],"_postman_id":"f9a5b965-63dc-47a3-9f5b-9b90194e1f8c"},{"name":"Create employee","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('employeesId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"a0675e63-32b3-4a5f-89ba-8ae9b3d9a63d"}}],"id":"ac2e761f-fe64-410d-bd13-0a8151e56c7e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"partner_id\": 1,\n    \"name\": \"Validator\",\n    \"phone\": \"+994501111111\",\n    \"email\": \"validator@papajohns.az\",\n    \"password\": \"password\",\n    \"is_active\": true,\n    \"assignments\": {\n        \"branches\": [\n            {\n                \"branch_id\": 1,\n                \"role\": \"cashier\"\n            }\n        ]\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/partner/employees","urlObject":{"path":["partner","employees"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"623483cf-db7e-4d36-b0ee-101384dd0f83","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/partner/employees"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"partner_id\": 1,\n        \"name\": \"Validator\",\n        \"phone\": \"+994501111111\",\n        \"email\": \"validator@papajohns.az\",\n        \"password\": \"password\",\n        \"is_active\": true,\n        \"assignments\": {\n            \"branches\": [\n                {\n                    \"branch_id\": 1,\n                    \"role\": \"cashier\"\n                }\n            ]\n        }\n    }\n}"}],"_postman_id":"ac2e761f-fe64-410d-bd13-0a8151e56c7e"},{"name":"Update employee","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"6ed08847-bfb5-4d14-8d5f-a0d46d913a38"}}],"id":"87795a9e-1bcb-4698-9d78-1a287d906cc7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Validator Updated\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/partner/employees/1","urlObject":{"path":["partner","employees","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"4a92e3b3-6239-4f9b-94ae-eff01065df0e","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/partner/employees/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Validator Updated\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"87795a9e-1bcb-4698-9d78-1a287d906cc7"},{"name":"Delete employee","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"f061f272-bcec-4f47-bccd-7033ed0ad5f1"}}],"id":"cce2f262-b722-4fad-a441-33b0c23ed795","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/employees/1","urlObject":{"path":["partner","employees","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"8cf8165d-23bc-4e6e-8747-aeaaa03108bf","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/employees/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"cce2f262-b722-4fad-a441-33b0c23ed795"}],"id":"51cf5cb8-f4b3-4607-9e79-9aab6e8d4b7f","description":"<p>Signed-in owner (<code></code>) manages employees within scoped partners / country entities.</p>\n","_postman_id":"51cf5cb8-f4b3-4607-9e79-9aab6e8d4b7f"},{"name":"Partner setup (write)","item":[{"name":"Partners & employees","item":[{"name":"Create partner","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('partnersId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"87ea43aa-4ce5-4f40-b219-0283e1e51cf4"}}],"id":"8f57c1fb-a424-4080-8e33-7c94b2d8ffff","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Papa John's\",\n    \"email\": \"partner@example.az\",\n    \"phone\": \"+994501234567\",\n    \"password\": \"password123\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/partners","urlObject":{"path":["admin","partner-setup","partners"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"4505826b-0e56-4669-b458-6b0f183202a7","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/partners"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Papa John's\",\n        \"email\": \"partner@example.az\",\n        \"phone\": \"+994501234567\",\n        \"password\": \"password123\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"8f57c1fb-a424-4080-8e33-7c94b2d8ffff"},{"name":"Update partner","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"831b0f54-3b33-48a3-b260-bbc27a2b6aec"}}],"id":"c269683c-e35e-4255-b8db-40c1db35c24b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Papa John's AZ\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/partners/1","urlObject":{"path":["admin","partner-setup","partners","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"cef9c35b-791d-47dd-b065-c390bd7b76d7","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/partners/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Papa John's AZ\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"c269683c-e35e-4255-b8db-40c1db35c24b"},{"name":"Delete partner","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"7d5948f2-8a22-402b-a32f-6dc1938bb321"}}],"id":"1b64da9b-6298-49c7-8731-f0d7fe79ce43","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/partners/1","urlObject":{"path":["admin","partner-setup","partners","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"7193aa6c-5a9f-4ce6-a321-43388d96263e","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/partners/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"1b64da9b-6298-49c7-8731-f0d7fe79ce43"},{"name":"Restore partner","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"a8f9a43a-f6bb-4b07-b57c-0faa1519d7be"}}],"id":"9bc85779-bc8c-42f4-b6be-8b98f15454b9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/partners/1/restore","urlObject":{"path":["admin","partner-setup","partners","1","restore"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"a2fafefa-1771-44a1-9045-45d2fb040884","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/partners/1/restore"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"9bc85779-bc8c-42f4-b6be-8b98f15454b9"},{"name":"Force delete partner","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"d2f1f6bb-6e39-41ed-938a-7430ddc7ef08"}}],"id":"dc80e8fa-abaa-4f7c-840a-1693c17ac95f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/partners/1/force","urlObject":{"path":["admin","partner-setup","partners","1","force"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"1ea3816f-cd5e-4a9d-82ba-8cfc7fccb56f","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/partners/1/force"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"dc80e8fa-abaa-4f7c-840a-1693c17ac95f"},{"name":"Create employee","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('employeesId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"9bdca8af-1878-4b86-8424-d37166e6857e"}}],"id":"cb500b61-dded-419e-aaea-eea4ac5fbbdc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Validator\",\n    \"email\": \"validator@papajohns.az\",\n    \"password\": \"password\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/partners/1/employees","urlObject":{"path":["admin","partner-setup","partners","1","employees"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"aafc09a8-ee30-4781-87dc-4a0810ae2628","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/partners/1/employees"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Validator\",\n        \"email\": \"validator@papajohns.az\",\n        \"password\": \"password\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"cb500b61-dded-419e-aaea-eea4ac5fbbdc"},{"name":"Update employee","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"b2a999f7-e7c4-406d-abc6-e2cc0bab9c85"}}],"id":"92f5a791-c95f-45bd-974e-68ea3232f0b1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Validator Updated\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/employees/1","urlObject":{"path":["admin","partner-setup","employees","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"b1ff6b8e-5f9d-490b-bf3a-b75352ad4c49","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/employees/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Validator Updated\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"92f5a791-c95f-45bd-974e-68ea3232f0b1"},{"name":"Delete employee","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"bf935a87-c0e9-4c2e-95a4-9667e55f345b"}}],"id":"99b56433-27ca-4ef1-bb48-fbed05566663","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/employees/1","urlObject":{"path":["admin","partner-setup","employees","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"208d5fb4-8504-44f5-9a76-d828a50017af","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/employees/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"99b56433-27ca-4ef1-bb48-fbed05566663"},{"name":"Restore employee","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"632d5b4c-e4e8-4c1d-bed8-52d9d31368fd"}}],"id":"14cbce32-119a-462c-8dcf-4adf1d03fb34","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/employees/1/restore","urlObject":{"path":["admin","partner-setup","employees","1","restore"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"52b6fd44-e9c1-43a3-ad56-95ed3cc2def9","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/employees/1/restore"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"14cbce32-119a-462c-8dcf-4adf1d03fb34"},{"name":"Force delete employee","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"2240e397-f96c-4626-a683-10b47315ceda"}}],"id":"a22c5ef9-9db2-4831-8356-adb9fcd1f4dd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/employees/1/force","urlObject":{"path":["admin","partner-setup","employees","1","force"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"685d43fb-5bbe-4e30-880b-18d57270b462","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/employees/1/force"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"a22c5ef9-9db2-4831-8356-adb9fcd1f4dd"}],"id":"f7b68dec-8c5b-46e5-ab3d-41a869d66b80","_postman_id":"f7b68dec-8c5b-46e5-ab3d-41a869d66b80","description":""},{"name":"Country entities & loyalty","item":[{"name":"Create country entity","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('country-entitiesId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"8fa0d1f5-db2c-44f4-90ec-f82ff5b8d7fe"}}],"id":"228b11d6-07b6-439a-aa2d-2638dec66932","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"country_id\": 1,\n    \"loyalty_enabled\": true,\n    \"is_active\": true,\n    \"sort_order\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/partners/1/country-entities","urlObject":{"path":["admin","partner-setup","partners","1","country-entities"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"5efc7a3a-9a54-4298-8033-a6dc08ccdb25","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/partners/1/country-entities"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"country_id\": 1,\n        \"loyalty_enabled\": true,\n        \"is_active\": true,\n        \"sort_order\": 1\n    }\n}"}],"_postman_id":"228b11d6-07b6-439a-aa2d-2638dec66932"},{"name":"Update country entity","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"71cd67b0-6700-496a-adaf-6b1018f7e3bc"}}],"id":"83919efd-1390-44a4-8411-30f0f3391940","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"loyalty_enabled\": true,\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/country-entities/1","urlObject":{"path":["admin","partner-setup","country-entities","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"fcb9b789-4625-4859-b5f6-2edc70639cd6","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/country-entities/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"loyalty_enabled\": true,\n        \"is_active\": true\n    }\n}"}],"_postman_id":"83919efd-1390-44a4-8411-30f0f3391940"},{"name":"Default catalog fields","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"825f19a9-14d6-446e-9868-0d8092fb94de"}}],"id":"bddacf19-0be6-4339-9256-772609e5fc49","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/country-entities/1/default-fields?entity=service","description":"<h2 id=\"summary\">Summary</h2>\n<p>Filter-field definitions copied onto new branches/services in this country.</p>\n","urlObject":{"path":["admin","partner-setup","country-entities","1","default-fields"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p><code>branch</code> or <code>service</code> (default <code>branch</code>)</p>\n","type":"text/plain"},"key":"entity","value":"service"}],"variable":[]}},"response":[{"id":"f8751169-ca1b-4162-ab8f-533e2477af0e","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/partner-setup/country-entities/1/default-fields?entity=service","host":["https://api.loya.cc/api/v1"],"path":["admin","partner-setup","country-entities","1","default-fields"],"query":[{"key":"entity","value":"service","description":"`branch` or `service` (default `branch`)"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"bddacf19-0be6-4339-9256-772609e5fc49"},{"name":"Update branch defaults","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"3a4439a5-94e2-4651-a615-a26ebc115ef6"}}],"id":"0efdf025-de7a-4d21-bec8-416496fb27b2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"logo\": null,\n    \"opening_hour_groups\": [\n        {\n            \"title\": \"Opening hours\",\n            \"is_default\": true,\n            \"gender\": \"all\",\n            \"age_group\": null,\n            \"sort_order\": 0,\n            \"days\": {\n                \"monday\": {\n                    \"enabled\": true,\n                    \"is_24_hours\": false,\n                    \"opens_at\": \"09:00\",\n                    \"closes_at\": \"22:00\"\n                }\n            },\n            \"translations\": {\n                \"title\": {\n                    \"en\": \"Opening hours\"\n                }\n            }\n        }\n    ],\n    \"default_service_groups\": [\n        {\n            \"key\": \"blizz\",\n            \"name\": \"Blizz\",\n            \"icon\": \"services/blizz-icon.png\",\n            \"sort_order\": 0,\n            \"translations\": {\n                \"name\": {\n                    \"en\": \"Blizz\"\n                }\n            }\n        }\n    ],\n    \"default_services\": [\n        {\n            \"name\": \"Pool\",\n            \"service_group_key\": \"blizz\",\n            \"subcategory_ids\": [\n                1\n            ],\n            \"sort_order\": 0\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/country-entities/1/branch-defaults","description":"<h2 id=\"summary\">Summary</h2>\n<p>Country-entity defaults copied onto each new branch (branding, hours, contacts, default service groups + services).</p>\n<h2 id=\"body-highlights\">Body highlights</h2>\n<p><code>opening_hour_groups[]</code> supports <code>gender</code> + <code>age_group</code>. <code>default_service_groups[]</code> requires stable <code>key</code>; <code>default_services[].service_group_key</code> links a template to a group. Clear all by sending empty arrays / nulls.</p>\n","urlObject":{"path":["admin","partner-setup","country-entities","1","branch-defaults"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"050e2612-6885-4774-95fc-efdd3cb1fbb9","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/country-entities/1/branch-defaults"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"logo\": null,\n        \"opening_hour_groups\": [\n            {\n                \"title\": \"Opening hours\",\n                \"is_default\": true,\n                \"gender\": \"all\",\n                \"age_group\": null,\n                \"sort_order\": 0,\n                \"days\": {\n                    \"monday\": {\n                        \"enabled\": true,\n                        \"is_24_hours\": false,\n                        \"opens_at\": \"09:00\",\n                        \"closes_at\": \"22:00\"\n                    }\n                },\n                \"translations\": {\n                    \"title\": {\n                        \"en\": \"Opening hours\"\n                    }\n                }\n            }\n        ],\n        \"default_service_groups\": [\n            {\n                \"key\": \"blizz\",\n                \"name\": \"Blizz\",\n                \"icon\": \"services/blizz-icon.png\",\n                \"sort_order\": 0,\n                \"translations\": {\n                    \"name\": {\n                        \"en\": \"Blizz\"\n                    }\n                }\n            }\n        ],\n        \"default_services\": [\n            {\n                \"name\": \"Pool\",\n                \"service_group_key\": \"blizz\",\n                \"subcategory_ids\": [\n                    1\n                ],\n                \"sort_order\": 0\n            }\n        ]\n    }\n}"}],"_postman_id":"0efdf025-de7a-4d21-bec8-416496fb27b2"},{"name":"List entity loyalty cards","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"8b05c730-fb0d-47f8-9bb7-0e6d60a8d8a3"}}],"id":"857a8efb-333f-466a-ae7a-98a9eb8f4c30","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/country-entities/1/loyalty-cards","urlObject":{"path":["admin","partner-setup","country-entities","1","loyalty-cards"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"9956adda-7f8a-4bf3-84d1-e88ae2778376","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/country-entities/1/loyalty-cards"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"857a8efb-333f-466a-ae7a-98a9eb8f4c30"},{"name":"Create entity loyalty card","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('loyalty-cardsId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"6916cdb7-761f-4394-bc3b-10f3041effeb"}}],"id":"7fded094-d7e8-46f2-8644-5a1d632ee65b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"type\": \"punch_card\",\n    \"punches_required\": 10,\n    \"title\": \"Buy 10 get 1 free\",\n    \"reward_description\": \"Free coffee\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/country-entities/1/loyalty-cards","urlObject":{"path":["admin","partner-setup","country-entities","1","loyalty-cards"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"4ac8807b-4029-4c38-8d88-f5bb5e5a5801","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/country-entities/1/loyalty-cards"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"type\": \"punch_card\",\n        \"punches_required\": 10,\n        \"title\": \"Buy 10 get 1 free\",\n        \"reward_description\": \"Free coffee\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"7fded094-d7e8-46f2-8644-5a1d632ee65b"},{"name":"Update loyalty card","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"e28d01f1-c244-4ba2-91d7-f27c995c097a"}}],"id":"e3516d14-2c98-4eb3-a11d-ed187955a767","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"title\": \"Updated loyalty card\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/loyalty-cards/1","urlObject":{"path":["admin","partner-setup","loyalty-cards","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"b5e5f60f-07ad-456a-8be0-18c4ad3cb730","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/loyalty-cards/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"title\": \"Updated loyalty card\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"e3516d14-2c98-4eb3-a11d-ed187955a767"},{"name":"Delete loyalty card","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"43750348-6744-4018-9ffe-5801c94e827c"}}],"id":"3ae48041-17ec-47a5-890a-e5253291fd43","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/loyalty-cards/1","urlObject":{"path":["admin","partner-setup","loyalty-cards","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"4c0a9ecb-effd-482c-8490-d51f97b84a0c","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/loyalty-cards/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"3ae48041-17ec-47a5-890a-e5253291fd43"},{"name":"Restore loyalty card","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"29647bac-1e50-420e-aa3b-0340a82a3013"}}],"id":"558c990c-a108-46fc-9c07-c7dc48ca4d72","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/loyalty-cards/1/restore","urlObject":{"path":["admin","partner-setup","loyalty-cards","1","restore"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"cb0d17d7-7694-4835-9877-cc789aeba150","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/loyalty-cards/1/restore"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"558c990c-a108-46fc-9c07-c7dc48ca4d72"},{"name":"Force delete loyalty card","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"fc6b3234-8003-47a3-a12c-b6585c6c3512"}}],"id":"8969cd1c-c1c2-473d-8ff2-6f9e7d7d8312","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/loyalty-cards/1/force","urlObject":{"path":["admin","partner-setup","loyalty-cards","1","force"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"db83791f-7667-4e5f-9d42-d1ee97842899","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/loyalty-cards/1/force"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"8969cd1c-c1c2-473d-8ff2-6f9e7d7d8312"}],"id":"febe6323-def5-444e-848b-7c40c28f6900","_postman_id":"febe6323-def5-444e-848b-7c40c28f6900","description":""},{"name":"Branches","item":[{"name":"Create branch","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('branchesId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"9cce38f4-dfdf-439d-afb4-5a6154c0fa15"}}],"id":"6487f80f-23ab-4350-ba0c-aefc8f615d2c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Papa John's Narimanov\",\n    \"district_id\": 1,\n    \"address\": \"28 May str. 15\",\n    \"latitude\": 40.4098,\n    \"longitude\": 49.8765,\n    \"phone\": \"+994501234567\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/country-entities/1/branches","urlObject":{"path":["admin","partner-setup","country-entities","1","branches"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"bd61ae19-7fd9-4fb7-9146-d6e35a3cad8a","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/country-entities/1/branches"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Papa John's Narimanov\",\n        \"district_id\": 1,\n        \"address\": \"28 May str. 15\",\n        \"latitude\": 40.4098,\n        \"longitude\": 49.8765,\n        \"phone\": \"+994501234567\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"6487f80f-23ab-4350-ba0c-aefc8f615d2c"},{"name":"Update branch profile","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"0d0dacb6-8937-421b-a889-28d3b6c3fcd3"}}],"id":"a9feb735-3c88-43eb-82f4-93ae67504606","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Papa John's Narimanov\",\n    \"address\": \"28 May str. 15\",\n    \"short_description\": \"Family restaurant\",\n    \"is_open\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/profile","urlObject":{"path":["admin","partner-setup","branches","1","profile"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"b5a1764f-67c3-4af5-941d-db87b126b6df","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/profile"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Papa John's Narimanov\",\n        \"address\": \"28 May str. 15\",\n        \"short_description\": \"Family restaurant\",\n        \"is_open\": true\n    }\n}"}],"_postman_id":"a9feb735-3c88-43eb-82f4-93ae67504606"},{"name":"Update branch about","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"9430e412-0acb-4e62-a761-ce3477ccd691"}}],"id":"76614878-53a5-495a-9860-6b71dbbe6c77","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"opening_hour_groups\": [\n        {\n            \"title\": \"For men Opening hours\",\n            \"is_default\": true,\n            \"gender\": \"male\",\n            \"age_group\": null,\n            \"sort_order\": 0,\n            \"days\": {\n                \"monday\": {\n                    \"enabled\": true,\n                    \"opens_at\": \"06:00\",\n                    \"closes_at\": \"14:00\"\n                }\n            },\n            \"translations\": {\n                \"title\": {\n                    \"en\": \"For men Opening hours\"\n                }\n            }\n        },\n        {\n            \"title\": \"For woman Opening hours\",\n            \"is_default\": false,\n            \"gender\": \"female\",\n            \"age_group\": null,\n            \"sort_order\": 1,\n            \"days\": {\n                \"monday\": {\n                    \"enabled\": true,\n                    \"opens_at\": \"14:00\",\n                    \"closes_at\": \"22:00\"\n                }\n            },\n            \"translations\": {\n                \"title\": {\n                    \"en\": \"For woman Opening hours\"\n                }\n            }\n        }\n    ],\n    \"sections\": [\n        {\n            \"title\": \"About us\",\n            \"content\": \"Welcome to our branch.\",\n            \"sort_order\": 1\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/about","urlObject":{"path":["admin","partner-setup","branches","1","about"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"9393f5f4-eb59-4550-989a-885dd879d1e2","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/about"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"opening_hour_groups\": [\n            {\n                \"title\": \"For men Opening hours\",\n                \"is_default\": true,\n                \"gender\": \"male\",\n                \"age_group\": null,\n                \"sort_order\": 0,\n                \"days\": {\n                    \"monday\": {\n                        \"enabled\": true,\n                        \"opens_at\": \"06:00\",\n                        \"closes_at\": \"14:00\"\n                    }\n                },\n                \"translations\": {\n                    \"title\": {\n                        \"en\": \"For men Opening hours\"\n                    }\n                }\n            },\n            {\n                \"title\": \"For woman Opening hours\",\n                \"is_default\": false,\n                \"gender\": \"female\",\n                \"age_group\": null,\n                \"sort_order\": 1,\n                \"days\": {\n                    \"monday\": {\n                        \"enabled\": true,\n                        \"opens_at\": \"14:00\",\n                        \"closes_at\": \"22:00\"\n                    }\n                },\n                \"translations\": {\n                    \"title\": {\n                        \"en\": \"For woman Opening hours\"\n                    }\n                }\n            }\n        ],\n        \"sections\": [\n            {\n                \"title\": \"About us\",\n                \"content\": \"Welcome to our branch.\",\n                \"sort_order\": 1\n            }\n        ]\n    }\n}"}],"_postman_id":"76614878-53a5-495a-9860-6b71dbbe6c77"},{"name":"Sync branch amenities","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"e95a2fbb-7922-4b92-aa6c-d10bc2494840"}}],"id":"e3214478-412d-48ab-93a7-3334697efd62","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"amenity_ids\": [\n        1,\n        2\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/amenities","urlObject":{"path":["admin","partner-setup","branches","1","amenities"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"3fa9f47b-a254-4b88-afe7-51be8ab08f45","name":"OK","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/amenities"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"amenity_ids\": [\n            1,\n            2\n        ]\n    }\n}"}],"_postman_id":"e3214478-412d-48ab-93a7-3334697efd62"},{"name":"Create branch menu","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"d6333b5f-03b8-486f-b77b-b5cc99ebf206"}}],"id":"ef496908-6741-42d3-9b47-9574f0d29130","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"service_id\": 1,\n    \"title\": \"Menu\",\n    \"external_url\": \"https://example.com/menu\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/menus","description":"<h2 id=\"summary\">Summary</h2>\n<p>Menus are <strong>service-scoped</strong>. <code>service_id</code> is required. PDF/image pages are uploaded on a service (<code>…/services/{id}/menu/pages</code>).</p>\n","urlObject":{"path":["admin","partner-setup","branches","1","menus"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"5e9e0cb6-0551-4c28-9658-62e04238e612","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/menus"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"service_id\": 1,\n        \"title\": \"Menu\",\n        \"external_url\": \"https://example.com/menu\"\n    }\n}"}],"_postman_id":"ef496908-6741-42d3-9b47-9574f0d29130"},{"name":"Reorder branch menus","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"3a62a134-48af-48c9-a688-ef7566eb9ba3"}}],"id":"e407bb49-0d55-4cfb-9557-5b0ce26c85f7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"menu_ids\": [\n        1,\n        2\n    ],\n    \"service_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/menus/reorder","urlObject":{"path":["admin","partner-setup","branches","1","menus","reorder"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"3ffe29b1-4b17-44ac-93e1-410864ccd8c8","name":"OK","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/menus/reorder"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"menu_ids\": [\n            1,\n            2\n        ],\n        \"service_id\": 1\n    }\n}"}],"_postman_id":"e407bb49-0d55-4cfb-9557-5b0ce26c85f7"},{"name":"Update branch menu","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"aacf3ec5-5e4e-4553-bc8b-10f1a5c97612"}}],"id":"5e2a18c2-d906-4fd1-9ffe-c2f8548381da","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"title\": \"Updated menu\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/menus/1","urlObject":{"path":["admin","partner-setup","branches","1","menus","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"a7e733b1-b2ce-4fe7-895a-5de4f6e7f4c8","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/menus/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"title\": \"Updated menu\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"5e2a18c2-d906-4fd1-9ffe-c2f8548381da"},{"name":"Delete branch menu","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"17e033e7-9bdc-46c0-92c5-f8bc5b5ded2f"}}],"id":"eaa7d912-40f0-4c0f-9344-5b2ac44f5caa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/menus/1","urlObject":{"path":["admin","partner-setup","branches","1","menus","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"95e27f97-6b0b-4d7b-bd1e-1633814e3ee3","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/menus/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"eaa7d912-40f0-4c0f-9344-5b2ac44f5caa"},{"name":"Branch input fields","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"8ceac8ef-8b82-412a-aacf-88e127854d8e"}}],"id":"aee6729e-8647-423f-88b0-2f4e919002b7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/input-fields","description":"<h2 id=\"summary\">Summary</h2>\n<p>Category filter values stored on the branch.</p>\n","urlObject":{"path":["admin","partner-setup","branches","1","input-fields"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"3f00bb9c-fb0b-4347-8c1a-738309bc802e","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/input-fields"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"aee6729e-8647-423f-88b0-2f4e919002b7"},{"name":"Sync branch input fields","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"72660ef2-0a32-4626-94b3-5dceb10cc0c4"}}],"id":"d539c4fd-e86e-4869-ab5d-718dd8222969","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"category_filter_option_ids\": [\n        1,\n        2\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/input-fields","description":"<h2 id=\"body\">Body</h2>\n<p><code>category_filter_option_ids</code> — selected filter option IDs for this branch.</p>\n","urlObject":{"path":["admin","partner-setup","branches","1","input-fields"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"232a2337-2abf-44b5-b761-cbf8e5e67313","name":"OK","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/input-fields"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"category_filter_option_ids\": [\n            1,\n            2\n        ]\n    }\n}"}],"_postman_id":"d539c4fd-e86e-4869-ab5d-718dd8222969"},{"name":"Create branch loyalty card","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"f0160039-99db-4261-b877-0b51b4999a3a"}}],"id":"b83b6d03-2f31-48de-8c00-2f7ba74380fb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"type\": \"punch_card\",\n    \"punches_required\": 8,\n    \"title\": \"Branch punch card\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/loyalty-cards","urlObject":{"path":["admin","partner-setup","branches","1","loyalty-cards"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"bd5bc301-b95c-4c99-873a-01989cd9c8b4","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/loyalty-cards"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"type\": \"punch_card\",\n        \"punches_required\": 8,\n        \"title\": \"Branch punch card\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"b83b6d03-2f31-48de-8c00-2f7ba74380fb"},{"name":"Delete branch","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"4e50b4d9-4e49-4ccf-8e94-6aac1ac947a4"}}],"id":"5d2b4182-307c-465e-b153-0e302b34a054","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1","urlObject":{"path":["admin","partner-setup","branches","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"c1b6632c-316a-49e0-8141-b78a5df8a244","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"5d2b4182-307c-465e-b153-0e302b34a054"},{"name":"Restore branch","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"5cf3e9a8-c1bf-4d99-a590-6c07ebd9fc3a"}}],"id":"a52b14ee-f023-4f77-bd09-c56b6f68e449","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/restore","urlObject":{"path":["admin","partner-setup","branches","1","restore"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"81114814-e9ff-4cbe-abec-64143d46b593","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/restore"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"a52b14ee-f023-4f77-bd09-c56b6f68e449"},{"name":"Force delete branch","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"bef74eba-3e9e-4432-ac27-28961e21b2e2"}}],"id":"e060469c-58b1-426a-80be-b16490b032cb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/force","urlObject":{"path":["admin","partner-setup","branches","1","force"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"63a130af-db07-4c8d-87d0-64861b4adb59","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/force"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"e060469c-58b1-426a-80be-b16490b032cb"}],"id":"49c38f9e-f000-436b-881f-27ec059d3568","_postman_id":"49c38f9e-f000-436b-881f-27ec059d3568","description":""},{"name":"Services","item":[{"name":"List branch services","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('serviceId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"e00dfe3f-6f26-409c-85c0-8a9e496f0137"}}],"id":"1b279774-de54-4b99-8d59-a678137ec474","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/services","urlObject":{"path":["admin","partner-setup","branches","1","services"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"e17f1701-0ff1-4b0c-a998-f95ca45e15b7","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/services"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"1b279774-de54-4b99-8d59-a678137ec474"},{"name":"List service groups","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"66e6f25c-f8fd-4402-8456-4f14585e65ad"}}],"id":"8a7ef60c-8b81-4c6c-aca1-c9cb1fffe41d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/service-groups","urlObject":{"path":["admin","partner-setup","branches","1","service-groups"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"6a8f730e-c058-4fb7-99f5-b93fae861ac0","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/service-groups"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"8a7ef60c-8b81-4c6c-aca1-c9cb1fffe41d"},{"name":"Create service group","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('serviceGroupId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"f7d6e7c4-27f9-4b34-9a89-c6d951e68936"}}],"id":"affeb22e-bec4-4cb3-b5bb-afb9c477073b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Blizz\",\n    \"icon\": null,\n    \"sort_order\": 0,\n    \"translations\": {\n        \"name\": {\n            \"en\": \"Blizz\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/service-groups","urlObject":{"path":["admin","partner-setup","branches","1","service-groups"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"f93ca757-04af-4cc2-bcfc-b905d689165f","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/service-groups"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Blizz\",\n        \"icon\": null,\n        \"sort_order\": 0,\n        \"translations\": {\n            \"name\": {\n                \"en\": \"Blizz\"\n            }\n        }\n    }\n}"}],"_postman_id":"affeb22e-bec4-4cb3-b5bb-afb9c477073b"},{"name":"Update service group","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"9983c21b-f71c-4492-a2ce-b7e735b5418e"}}],"id":"ecc0cd02-f07f-4b05-8a0e-26d34b9ad522","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Blizz Updated\",\n    \"sort_order\": 0\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/service-groups/1","urlObject":{"path":["admin","partner-setup","branches","1","service-groups","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"f0005684-79b4-4c48-8628-048fc4668741","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/service-groups/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Blizz Updated\",\n        \"sort_order\": 0\n    }\n}"}],"_postman_id":"ecc0cd02-f07f-4b05-8a0e-26d34b9ad522"},{"name":"Delete service group","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"8d6f4df1-6166-40c0-91f2-ea0ae1d09c39"}}],"id":"0dcd524f-be10-47bf-916f-d010fbb1ad50","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/service-groups/1","urlObject":{"path":["admin","partner-setup","branches","1","service-groups","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"2c723c30-48e7-4437-b214-b3565bcf3f6e","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/service-groups/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"0dcd524f-be10-47bf-916f-d010fbb1ad50"},{"name":"Restore service group","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"18bd473d-2c94-46d4-b3f8-6e4b41cf8dd0"}}],"id":"c7896f18-6aac-4939-aaca-dd58f2185991","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/service-groups/1/restore","urlObject":{"path":["admin","partner-setup","branches","1","service-groups","1","restore"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"8156245a-ca87-47f2-a5d2-a276dab17dd9","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/service-groups/1/restore"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"c7896f18-6aac-4939-aaca-dd58f2185991"},{"name":"Force delete service group","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"d4db3747-094c-439d-9485-073919c8f35d"}}],"id":"79458958-0ee6-4469-9b7f-a4b83d41ba87","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/service-groups/1/force","urlObject":{"path":["admin","partner-setup","branches","1","service-groups","1","force"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"181df97f-9fcf-4c86-9f37-c48eef1f568a","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/service-groups/1/force"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"79458958-0ee6-4469-9b7f-a4b83d41ba87"},{"name":"Show service","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"1f0b66f6-27ce-443e-93e4-bfaad8648b55"}}],"id":"f1e74c3d-9542-4218-908f-2bb20c227739","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/services/1","urlObject":{"path":["admin","partner-setup","branches","1","services","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"70ba9580-3fca-43ee-a60d-e141a828b748","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/services/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"f1e74c3d-9542-4218-908f-2bb20c227739"},{"name":"Create service","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('serviceId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"d5adef6f-5b76-44c2-9c99-8bca4a1529af"}}],"id":"fbc86ad6-cd39-41e1-8265-9c52e8bfca4a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Restaurant\",\n    \"service_group_id\": null,\n    \"subcategory_ids\": [\n        1\n    ],\n    \"sort_order\": 1,\n    \"is_active\": true,\n    \"translations\": {\n        \"name\": {\n            \"en\": \"Restaurant\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/services","urlObject":{"path":["admin","partner-setup","branches","1","services"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"64dd1bec-185c-4f2d-886e-eb8daeabcd03","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/services"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Restaurant\",\n        \"service_group_id\": null,\n        \"subcategory_ids\": [\n            1\n        ],\n        \"sort_order\": 1,\n        \"is_active\": true,\n        \"translations\": {\n            \"name\": {\n                \"en\": \"Restaurant\"\n            }\n        }\n    }\n}"}],"_postman_id":"fbc86ad6-cd39-41e1-8265-9c52e8bfca4a"},{"name":"Update service","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"8107b7ec-b2d1-4d4a-8151-5964a0590c24"}}],"id":"8d49ac59-198c-4fde-8854-83463f1df276","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Gym\",\n    \"opening_hour_groups\": [\n        {\n            \"title\": \"Opening hours\",\n            \"is_default\": true,\n            \"gender\": \"all\",\n            \"age_group\": null,\n            \"sort_order\": 0,\n            \"days\": {\n                \"monday\": {\n                    \"enabled\": true,\n                    \"opens_at\": \"06:00\",\n                    \"closes_at\": \"14:00\"\n                }\n            }\n        },\n        {\n            \"title\": \"For Adults\",\n            \"is_default\": false,\n            \"gender\": \"all\",\n            \"age_group\": \"young-adult\",\n            \"sort_order\": 1,\n            \"days\": {\n                \"saturday\": {\n                    \"enabled\": true,\n                    \"opens_at\": \"09:00\",\n                    \"closes_at\": \"11:00\"\n                }\n            }\n        }\n    ],\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/services/1","urlObject":{"path":["admin","partner-setup","branches","1","services","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"46e9df70-68a3-42d6-ab70-283a0f6e220a","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/services/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Gym\",\n        \"opening_hour_groups\": [\n            {\n                \"title\": \"Opening hours\",\n                \"is_default\": true,\n                \"gender\": \"all\",\n                \"age_group\": null,\n                \"sort_order\": 0,\n                \"days\": {\n                    \"monday\": {\n                        \"enabled\": true,\n                        \"opens_at\": \"06:00\",\n                        \"closes_at\": \"14:00\"\n                    }\n                }\n            },\n            {\n                \"title\": \"For Adults\",\n                \"is_default\": false,\n                \"gender\": \"all\",\n                \"age_group\": \"young-adult\",\n                \"sort_order\": 1,\n                \"days\": {\n                    \"saturday\": {\n                        \"enabled\": true,\n                        \"opens_at\": \"09:00\",\n                        \"closes_at\": \"11:00\"\n                    }\n                }\n            }\n        ],\n        \"is_active\": true\n    }\n}"}],"_postman_id":"8d49ac59-198c-4fde-8854-83463f1df276"},{"name":"Service input fields","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"3b2a3501-cb0f-44e7-95e6-30162bf42840"}}],"id":"06ef5401-f99c-417d-810e-2f179a60c2d9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/services/1/input-fields","urlObject":{"path":["admin","partner-setup","branches","1","services","1","input-fields"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"7ebce1fa-933a-4395-8759-2310f21553d2","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/services/1/input-fields"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"06ef5401-f99c-417d-810e-2f179a60c2d9"},{"name":"Sync service input fields","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"fa4e5027-c6ab-45e0-a753-ee80d5ab1ae8"}}],"id":"a579b7a0-cf2b-4a9c-96a3-688f9ef494cf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"category_filter_option_ids\": [\n        1,\n        2\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/services/1/input-fields","description":"<h2 id=\"body\">Body</h2>\n<p><code>category_filter_option_ids</code> — selected filter option IDs for this service.</p>\n","urlObject":{"path":["admin","partner-setup","branches","1","services","1","input-fields"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"26bc1e1f-74bd-4455-91ca-d24f0fefabdc","name":"OK","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/services/1/input-fields"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"category_filter_option_ids\": [\n            1,\n            2\n        ]\n    }\n}"}],"_postman_id":"a579b7a0-cf2b-4a9c-96a3-688f9ef494cf"},{"name":"Delete service","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"2f743199-b664-4d96-9004-a65e20e89924"}}],"id":"2b3f3828-33ef-405a-af96-69727f2e9f20","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/services/1","urlObject":{"path":["admin","partner-setup","branches","1","services","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"52ae3fec-6f38-486e-b56a-c22a14bfdfeb","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/services/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"2b3f3828-33ef-405a-af96-69727f2e9f20"},{"name":"Restore service","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"60ea0d50-627e-4311-baea-a06cf8073002"}}],"id":"5f26f42d-2759-4500-a8c5-2e836a552e13","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/services/1/restore","urlObject":{"path":["admin","partner-setup","branches","1","services","1","restore"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"1c5f818e-f9da-4c1c-9377-2e5d8771356a","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/services/1/restore"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"5f26f42d-2759-4500-a8c5-2e836a552e13"},{"name":"Force delete service","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"aafc450c-a0b4-489d-bf20-9dc66ebd96ab"}}],"id":"476efe40-b760-405c-b7c4-6fd6c5bee830","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/services/1/force","urlObject":{"path":["admin","partner-setup","branches","1","services","1","force"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"b01072f1-d6ec-4ad7-8695-a2e649239232","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/services/1/force"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"476efe40-b760-405c-b7c4-6fd6c5bee830"},{"name":"Service menu filters","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"c16a0281-35d8-4bef-9adf-60f0f8c4b5af"}}],"id":"af125006-868e-4f56-a46c-4a4fd530b412","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/services/1/menu-filters","description":"<h2 id=\"summary\">Summary</h2>\n<p>Category filter options that can be attached to this service menu.</p>\n","urlObject":{"path":["admin","partner-setup","services","1","menu-filters"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"456b6eb3-d048-4dbd-a75e-c0b7762fd540","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/services/1/menu-filters"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"af125006-868e-4f56-a46c-4a4fd530b412"},{"name":"Add service menu page","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"7645e492-3c8c-4d8d-a0e4-fd9381d52c08"}}],"id":"6a0b9f7d-8b4e-4412-a2d5-bc98cbe97ef5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"file\": \"menus/service-page-1.pdf\",\n    \"sort_order\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/services/1/menu/pages","urlObject":{"path":["admin","partner-setup","branches","1","services","1","menu","pages"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"2a8b4cfb-23d7-4cc8-8071-6d66e234f25b","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/services/1/menu/pages"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"file\": \"menus/service-page-1.pdf\",\n        \"sort_order\": 1\n    }\n}"}],"_postman_id":"6a0b9f7d-8b4e-4412-a2d5-bc98cbe97ef5"},{"name":"Delete service menu page","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"a319c844-9552-421b-9ce0-cdbe4cccbb51"}}],"id":"5e1cc211-ec1c-4632-b97a-4e5ee907d5b0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/services/1/menu/pages/1","urlObject":{"path":["admin","partner-setup","branches","1","services","1","menu","pages","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"b4a3c452-4607-4198-92bc-44dcd31ac9a0","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/branches/1/services/1/menu/pages/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"5e1cc211-ec1c-4632-b97a-4e5ee907d5b0"}],"id":"40cba0cb-1c2b-4987-91d1-bd50d52c44b8","_postman_id":"40cba0cb-1c2b-4987-91d1-bd50d52c44b8","description":""},{"name":"Promos","item":[{"name":"Promo hierarchy","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"6a96d206-8db1-44ed-9c21-d8cc8aa2f7ad"}}],"id":"c2f38f9e-f6de-4c9f-bd07-b0fb83e28799","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/promo-hierarchy","description":"<h2 id=\"summary\">Summary</h2>\n<p>Partner → country → branch → service tree used by the promo scope picker.</p>\n","urlObject":{"path":["admin","partner-setup","promo-hierarchy"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"73571cad-8a31-41b4-9b3c-be3e9c9a0982","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/promo-hierarchy"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"c2f38f9e-f6de-4c9f-bd07-b0fb83e28799"},{"name":"Partner promo services","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"96158468-db60-457b-8b03-945b7031481f"}}],"id":"524fc3a4-4038-461b-9ab7-020b8f402977","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/partners/1/promo-services","description":"<h2 id=\"summary\">Summary</h2>\n<p>Services the partner can attach when <code>scope</code> is <code>service</code> or <code>selection</code>.</p>\n","urlObject":{"path":["admin","partner-setup","partners","1","promo-services"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"95518cae-2446-474d-8454-e8d839d21885","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/partners/1/promo-services"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"524fc3a4-4038-461b-9ab7-020b8f402977"},{"name":"Show promo","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"ca42c8bf-fe0f-475f-a2cf-526690deb4b2"}}],"id":"b3436a16-7fdf-41df-9acb-8c4b60e87666","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/promos/1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Full admin promo payload, including trashed rows. CamelCase schedule and scope fields.</p>\n","urlObject":{"path":["admin","partner-setup","promos","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"b5ef2a0a-f87b-43d3-8a3d-a67bc9a2b4c5","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/promos/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"b3436a16-7fdf-41df-9acb-8c4b60e87666"},{"name":"Create promo","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('promoId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"484401c2-e2f9-4b5c-b3e2-f81aceeb732f"}}],"id":"ccf59b5a-3a14-4997-b0e5-6c60b76d54d4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"promo_type_id\": 1,\n    \"partner_id\": 1,\n    \"scope\": \"service\",\n    \"service_id\": 1,\n    \"branch_id\": 1,\n    \"service_coverage\": \"all\",\n    \"delivery_type\": \"on_site\",\n    \"applicable_to\": [\n        \"on_site\"\n    ],\n    \"discount_type\": \"percentage\",\n    \"discount_value\": 20,\n    \"currency\": \"AZN\",\n    \"is_active\": true,\n    \"is_editable\": true,\n    \"time_rule\": \"days_and_time\",\n    \"weekdays\": [\n        1,\n        2,\n        3,\n        4,\n        5\n    ],\n    \"time_mode\": \"between\",\n    \"time_from\": \"12:00\",\n    \"time_to\": \"16:00\",\n    \"per_user_limit_type\": \"limited\",\n    \"per_user_limit_count\": 2,\n    \"per_user_limit_reset\": \"never\",\n    \"coupon_mode\": \"total\",\n    \"coupon_quantity\": 100,\n    \"valid_with_loyalty\": false,\n    \"loyalty_card_ids\": [],\n    \"birthday_days_before\": 0,\n    \"birthday_days_after\": 0,\n    \"requires_student_verification\": false,\n    \"translations\": {\n        \"title\": {\n            \"en\": \"20% off\",\n            \"az\": \"20% endirim\",\n            \"ru\": \"\\u0421\\u043a\\u0438\\u0434\\u043a\\u0430 20%\"\n        },\n        \"description\": {\n            \"en\": \"Valid on weekdays between 12:00 and 16:00.\"\n        },\n        \"terms\": {\n            \"en\": \"Show the QR code to staff.\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/promos","description":"<h2 id=\"summary\">Summary</h2>\n<p>Create or update a promo. Response is camelCase (<code>timeRule</code>, <code>timeMode</code>, <code>weekdays</code>, <code>couponMode</code>, <code>loyaltyCardIds</code>, <code>schedule</code> fields). Request body is snake_case.</p>\n<h2 id=\"scope-scope\">Scope (<code>scope</code>)</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n<th>Required with it</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>service</code></td>\n<td>One service (default)</td>\n<td><code>service_id</code></td>\n</tr>\n<tr>\n<td><code>partner</code></td>\n<td>Whole partner (global)</td>\n<td><code>partner_id</code></td>\n</tr>\n<tr>\n<td><code>country</code></td>\n<td>One country entity</td>\n<td><code>country_entity_id</code></td>\n</tr>\n<tr>\n<td><code>branch</code></td>\n<td>One or more branches</td>\n<td><code>branch_id</code> or <code>branch_ids</code></td>\n</tr>\n<tr>\n<td><code>selection</code></td>\n<td>Selected countries, branches, and/or services</td>\n<td><code>country_entity_ids</code>, <code>branch_ids</code>, <code>service_ids</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"schedule\">Schedule</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Values</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>time_rule</code></td>\n<td><code>anytime</code> · <code>days</code> · <code>time</code> · <code>days_and_time</code></td>\n<td>Happy Time (<code>happy-time</code> promo type) cannot use <code>anytime</code></td>\n</tr>\n<tr>\n<td><code>weekdays</code></td>\n<td>integers 1–7</td>\n<td>ISO: 1 Monday … 7 Sunday. Required when the rule includes days</td>\n</tr>\n<tr>\n<td><code>time_mode</code></td>\n<td><code>anytime</code> · <code>before</code> · <code>between</code> · <code>after</code></td>\n<td>Clock window. <code>anytime</code> is invalid when <code>time_rule</code> is <code>time</code> — pick before, after, or between</td>\n</tr>\n<tr>\n<td><code>time_from</code> / <code>time_to</code></td>\n<td><code>HH:MM</code></td>\n<td><code>between</code> and <code>after</code> need <code>time_from</code>. <code>between</code> and <code>before</code> need <code>time_to</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"limits-and-stock\">Limits and stock</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Values</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>per_user_limit_type</code></td>\n<td><code>unlimited</code> · <code>limited</code></td>\n<td>Welcome promos force a lifetime personal limit</td>\n</tr>\n<tr>\n<td><code>per_user_limit_count</code></td>\n<td>integer ≥ 1</td>\n<td>Required when type is <code>limited</code></td>\n</tr>\n<tr>\n<td><code>per_user_limit_reset</code></td>\n<td><code>daily</code> · <code>weekly</code> · <code>monthly</code> · <code>never</code> · <code>calendar_year</code></td>\n<td>Birthday promos use a yearly personal limit</td>\n</tr>\n<tr>\n<td><code>coupon_mode</code></td>\n<td><code>unlimited</code> · <code>renews_daily</code> · <code>renews_weekly</code> · <code>renews_monthly</code> · <code>total</code></td>\n<td>Weekly/monthly coupon types lock the reset when stock is on</td>\n</tr>\n<tr>\n<td><code>coupon_quantity</code></td>\n<td>integer ≥ 1</td>\n<td>Required when stock mode is not <code>unlimited</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"channels-loyalty-special-types\">Channels, loyalty, special types</h2>\n<ul>\n<li><code>applicable_to[]</code> / <code>delivery_type</code>: <code>on_site</code>, <code>pick_up</code>, <code>delivery</code>, <code>online</code>, <code>home_visit</code></li>\n<li><code>valid_with_loyalty</code> + <code>loyalty_card_ids[]</code> (or <code>loyalty_card_id</code>) — cards must belong to the partner</li>\n<li>Birthday: <code>birthday_days_before</code>, <code>birthday_days_after</code> (0–7)</li>\n<li>Holiday: <code>holiday_name</code>, <code>holiday_starts_on</code> / <code>holiday_date</code>, <code>holiday_ends_on</code>, <code>holiday_days_before</code>, <code>holiday_days_after</code></li>\n<li>Student: <code>requires_student_verification</code></li>\n<li><code>translations.title.en</code> is required on admin create. <code>az</code> and <code>ru</code> are optional.</li>\n<li>Loya-owned promos return <code>isEditable: false</code>. Partners and staff cannot delete those.</li>\n</ul>\n<h2 id=\"customer-catalog-fields-added\">Customer catalog fields added</h2>\n<p><code>scheduleText</code>, <code>isAvailableNow</code>, <code>availabilityState</code>, <code>availabilityNotice</code>, <code>nextAvailableAt</code>, <code>applicableTo</code>, <code>scopeLabel</code> on <code>GET /promos</code> and <code>GET /promos/{id}</code>.</p>\n","urlObject":{"path":["admin","partner-setup","promos"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"3b03521c-2d80-46de-ba71-4024b0054898","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/promos"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"promo_type_id\": 1,\n        \"partner_id\": 1,\n        \"scope\": \"service\",\n        \"service_id\": 1,\n        \"branch_id\": 1,\n        \"service_coverage\": \"all\",\n        \"delivery_type\": \"on_site\",\n        \"applicable_to\": [\n            \"on_site\"\n        ],\n        \"discount_type\": \"percentage\",\n        \"discount_value\": 20,\n        \"currency\": \"AZN\",\n        \"is_active\": true,\n        \"is_editable\": true,\n        \"time_rule\": \"days_and_time\",\n        \"weekdays\": [\n            1,\n            2,\n            3,\n            4,\n            5\n        ],\n        \"time_mode\": \"between\",\n        \"time_from\": \"12:00\",\n        \"time_to\": \"16:00\",\n        \"per_user_limit_type\": \"limited\",\n        \"per_user_limit_count\": 2,\n        \"per_user_limit_reset\": \"never\",\n        \"coupon_mode\": \"total\",\n        \"coupon_quantity\": 100,\n        \"valid_with_loyalty\": false,\n        \"loyalty_card_ids\": [],\n        \"birthday_days_before\": 0,\n        \"birthday_days_after\": 0,\n        \"requires_student_verification\": false,\n        \"translations\": {\n            \"title\": {\n                \"en\": \"20% off\",\n                \"az\": \"20% endirim\",\n                \"ru\": \"Скидка 20%\"\n            },\n            \"description\": {\n                \"en\": \"Valid on weekdays between 12:00 and 16:00.\"\n            },\n            \"terms\": {\n                \"en\": \"Show the QR code to staff.\"\n            }\n        }\n    }\n}"}],"_postman_id":"ccf59b5a-3a14-4997-b0e5-6c60b76d54d4"},{"name":"Update promo","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"255fb34c-6de9-4e29-b6bc-5e42e000070d"}}],"id":"7bb0ce22-d67d-4d2e-b3f9-7eb0d8ce8d18","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"time_rule\": \"days_and_time\",\n    \"weekdays\": [\n        1,\n        2,\n        3,\n        4,\n        5\n    ],\n    \"time_mode\": \"between\",\n    \"time_from\": \"12:00\",\n    \"time_to\": \"16:00\",\n    \"is_active\": true,\n    \"translations\": {\n        \"title\": {\n            \"en\": \"Updated promo\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/partner-setup/promos/1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Partial update. Same fields as <strong>Create promo</strong>. <code>time_mode=anytime</code> means the clock window is all day; it is rejected when <code>time_rule</code> is <code>time</code>.</p>\n","urlObject":{"path":["admin","partner-setup","promos","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"dafee6e7-32af-4794-8c9a-dc5421e8b25d","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/promos/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"time_rule\": \"days_and_time\",\n        \"weekdays\": [\n            1,\n            2,\n            3,\n            4,\n            5\n        ],\n        \"time_mode\": \"between\",\n        \"time_from\": \"12:00\",\n        \"time_to\": \"16:00\",\n        \"is_active\": true,\n        \"translations\": {\n            \"title\": {\n                \"en\": \"Updated promo\"\n            }\n        }\n    }\n}"}],"_postman_id":"7bb0ce22-d67d-4d2e-b3f9-7eb0d8ce8d18"},{"name":"Delete promo","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"14b20fc9-4ede-416b-b8a6-bfd344d6ee96"}}],"id":"c98c8eac-ecd1-4324-b579-2a65eed0da11","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/promos/1","urlObject":{"path":["admin","partner-setup","promos","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"40f001c0-37c9-4b40-9bce-6368d32ee8af","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/promos/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"c98c8eac-ecd1-4324-b579-2a65eed0da11"},{"name":"Restore promo","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"e6868d8b-2771-4141-9d54-12b8729b0b34"}}],"id":"757d112b-675b-421e-92b7-07470d3bf73d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/promos/1/restore","urlObject":{"path":["admin","partner-setup","promos","1","restore"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"2d5a637f-f219-467d-9401-62465639c0ec","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/promos/1/restore"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"757d112b-675b-421e-92b7-07470d3bf73d"},{"name":"Force delete promo","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"704d0fd7-55f1-4673-ab76-f3cdd0b029cf"}}],"id":"bb579b30-97ce-4211-a96c-7b50b888bfac","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/promos/1/force","urlObject":{"path":["admin","partner-setup","promos","1","force"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"375c35d3-a038-4fd5-a017-9663fc73d0dd","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/partner-setup/promos/1/force"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"bb579b30-97ce-4211-a96c-7b50b888bfac"}],"id":"2da8f155-3ae6-4b06-9d20-de628c509d45","description":"<p>Schedule, scope, coupon stock, and loyalty fields below were added after the production collection. See the collection description <strong>What changed</strong>.</p>\n","_postman_id":"2da8f155-3ae6-4b06-9d20-de628c509d45"}],"id":"b2aac3fa-5fa7-44bd-814a-f51e7c12d2a0","description":"<p>Super-admin mutations for partners, branches, services, sub-branches, menus, promos, and loyalty cards.</p>\n","_postman_id":"b2aac3fa-5fa7-44bd-814a-f51e7c12d2a0"},{"name":"Localizations","item":[{"name":"Public active locales","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"74ae4d1c-525f-4381-94eb-2dc7a027389f"}}],"id":"cad02f4e-7cfe-4e3a-933a-d13580844090","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/localizations","urlObject":{"path":["localizations"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"2ecbaad9-ef77-4762-830c-c09b2f731048","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/localizations"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"code\": \"en\",\n            \"name\": \"English\",\n            \"nativeName\": \"English\",\n            \"isActive\": true,\n            \"isDefault\": true,\n            \"sortOrder\": 0\n        }\n    ]\n}"}],"_postman_id":"cad02f4e-7cfe-4e3a-933a-d13580844090"},{"name":"List all locales","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"4c47e58c-c717-4511-855e-59911d0403bc"}}],"id":"91269a88-7e39-4bfc-b6e3-33bd71586756","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/localizations","urlObject":{"path":["admin","localizations"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"d90e7728-d037-46bc-a8c7-0671195d1aa7","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/localizations"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"code\": \"en\",\n            \"name\": \"English\",\n            \"nativeName\": \"English\",\n            \"isActive\": true,\n            \"isDefault\": true,\n            \"sortOrder\": 0\n        }\n    ]\n}"}],"_postman_id":"91269a88-7e39-4bfc-b6e3-33bd71586756"},{"name":"Create locale","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"9d83315c-e143-4d05-989b-022162737ed9"}}],"id":"d71de36e-33f7-45c8-a164-44f714f1062d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"code\": \"tr\",\n    \"name\": \"Turkish\",\n    \"nativeName\": \"T\\u00fcrk\\u00e7e\",\n    \"isActive\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/localizations","urlObject":{"path":["admin","localizations"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"ac985e0f-81bf-4cba-a2c5-c42e3edc7ef6","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/localizations"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"code\": \"en\",\n            \"name\": \"English\",\n            \"nativeName\": \"English\",\n            \"isActive\": true,\n            \"isDefault\": true,\n            \"sortOrder\": 0\n        }\n    ]\n}"}],"_postman_id":"d71de36e-33f7-45c8-a164-44f714f1062d"},{"name":"Update locale","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"5dd0b647-2228-4eb7-b2b1-30a66a8f63ca"}}],"id":"96ba84aa-3bf0-4e1c-9667-50157429bd6d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"isActive\": true,\n    \"isDefault\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/localizations/1","urlObject":{"path":["admin","localizations","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"bbff3332-1819-4a55-aacd-8cd37dc795d8","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/localizations/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"isActive\": true,\n        \"isDefault\": false\n    }\n}"}],"_postman_id":"96ba84aa-3bf0-4e1c-9667-50157429bd6d"},{"name":"Delete locale","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"ed722cb1-1f94-4919-9787-98b6e346dd59"}}],"id":"c1e45a24-4654-4277-a348-dc17c8a04f5c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/localizations/1","urlObject":{"path":["admin","localizations","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"ba8044c0-97ee-4d07-9d5e-bb979bcbbed5","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/localizations/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"c1e45a24-4654-4277-a348-dc17c8a04f5c"}],"id":"cedb351b-7457-432c-87c1-e8330e6b6e4b","description":"<p>Site locale management (enable/disable/add locales).</p>\n","_postman_id":"cedb351b-7457-432c-87c1-e8330e6b6e4b"},{"name":"UI messages","item":[{"name":"List languages","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"5119e7b8-52a5-47da-b425-5492257bb154"}}],"id":"467a5001-2d86-4cf1-a18f-aa3ad30830de","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/ui-messages/languages","urlObject":{"path":["ui-messages","languages"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"788c2dba-0678-40e0-b98c-1227dbaac6d6","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/ui-messages/languages"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"code\": \"en\",\n            \"name\": \"English\",\n            \"isActive\": true,\n            \"isDefault\": true,\n            \"sortOrder\": 0\n        }\n    ]\n}"}],"_postman_id":"467a5001-2d86-4cf1-a18f-aa3ad30830de"},{"name":"Reorder languages","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"f3ab73b4-a1ef-4104-ae9b-78ce0d6a20ae"}}],"id":"c814d4fd-ba99-4254-9e2b-3e5fc511e43f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"ids\": [\n        1,\n        2,\n        3\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/ui-messages/languages/sort","description":"<h2 id=\"body\">Body</h2>\n<p><code>ids</code> — language IDs in desired order.</p>\n","urlObject":{"path":["ui-messages","languages","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"51f3565c-8f51-4789-8d51-9efb73da1b03","name":"OK","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/ui-messages/languages/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"namespace\": \"languages\",\n        \"locale\": \"so\",\n        \"messages\": {\n            \"nav.dashboard\": \"Dashboard\"\n        },\n        \"updatedAt\": \"2026-08-31T00:00:00+00:00\"\n    }\n}"}],"_postman_id":"c814d4fd-ba99-4254-9e2b-3e5fc511e43f"},{"name":"Create language","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"ca337de2-d4f5-4f14-9710-3e0c4444b989"}}],"id":"402c02bb-a118-46f1-bf69-8f3e8c626df4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"code\": \"eo\",\n    \"name\": \"Esperanto\",\n    \"isActive\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/ui-messages/languages","urlObject":{"path":["ui-messages","languages"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"4eff4747-c15c-49a1-98cc-f3ae8f9f4659","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/ui-messages/languages"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"code\": \"eo\",\n        \"name\": \"Esperanto\",\n        \"isActive\": true\n    }\n}"}],"_postman_id":"402c02bb-a118-46f1-bf69-8f3e8c626df4"},{"name":"Update language","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"9c88a49b-6c69-4ee2-8cbe-83fa94918e41"}}],"id":"088b7312-041a-4fc4-ad91-424a2fe3eb08","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Esperanto\",\n    \"isActive\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/ui-messages/languages/1","urlObject":{"path":["ui-messages","languages","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"7d3126ed-8c4e-4485-acf8-f5f588de19cb","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/ui-messages/languages/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Esperanto\",\n        \"isActive\": true\n    }\n}"}],"_postman_id":"088b7312-041a-4fc4-ad91-424a2fe3eb08"},{"name":"Delete language","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"b509795c-fc3b-46f5-9eba-649d809347c6"}}],"id":"5c9de588-f2e9-4549-92cd-9d6005bea255","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/ui-messages/languages/1","urlObject":{"path":["ui-messages","languages","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"1f4251d6-e01f-4e02-93a9-c39d0130d2d2","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/ui-messages/languages/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"5c9de588-f2e9-4549-92cd-9d6005bea255"},{"name":"Restore language","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"5d16a301-008a-4bc9-9823-a75fce5f6aa8"}}],"id":"0c31ccbd-a194-43be-9dd4-4f83185166b6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/ui-messages/languages/1/restore","urlObject":{"path":["ui-messages","languages","1","restore"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"b458ea79-4b0b-4f68-9700-40fd0332f103","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/ui-messages/languages/1/restore"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"0c31ccbd-a194-43be-9dd4-4f83185166b6"},{"name":"List namespaces","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"18091b1a-7928-431e-a173-78f9a815f38b"}}],"id":"7388aa14-5e09-4301-b006-36976211b269","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/ui-messages/namespaces","urlObject":{"path":["ui-messages","namespaces"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"aab981c7-4f2c-42bf-b384-6c9d4823eb87","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/ui-messages/namespaces"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": \"admin-panel\",\n            \"label\": \"Admin panel\"\n        },\n        {\n            \"id\": \"user-panel\",\n            \"label\": \"User panel\"\n        },\n        {\n            \"id\": \"validator-panel\",\n            \"label\": \"Validator panel\"\n        }\n    ]\n}"}],"_postman_id":"7388aa14-5e09-4301-b006-36976211b269"},{"name":"Get messages","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"ed455fed-37e7-45ec-8e8b-11ce0ba63a54"}}],"id":"06f88cc9-fad1-4351-ac31-0d48866c565b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/ui-messages/admin-panel/en","urlObject":{"path":["ui-messages","admin-panel","en"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"58c5266b-ceb5-483f-afa3-19c80e6f1a3a","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/ui-messages/admin-panel/en"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"06f88cc9-fad1-4351-ac31-0d48866c565b"},{"name":"Update messages","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"06d46f2e-76cd-48c5-b8dc-e8f5ac74a660"}}],"id":"2af479fa-7b8a-4141-ab8d-816f37df236f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"messages\": {\n        \"nav.dashboard\": \"Dashboard\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/ui-messages/admin-panel/en","urlObject":{"path":["ui-messages","admin-panel","en"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"827763e3-0e54-4f22-b965-d174c72e4d42","name":"OK","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/ui-messages/admin-panel/en"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"messages\": {\n            \"nav.dashboard\": \"Dashboard\"\n        }\n    }\n}"}],"_postman_id":"2af479fa-7b8a-4141-ab8d-816f37df236f"},{"name":"Download messages","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"c301275a-6980-4bd8-a043-a741e0311ff5"}}],"id":"c41fa7e4-c474-440d-ab25-a1a7130ae503","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/ui-messages/admin-panel/en/download","urlObject":{"path":["ui-messages","admin-panel","en","download"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"96575762-48b3-47b1-8a6f-83738362cee2","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/ui-messages/admin-panel/en/download"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"c41fa7e4-c474-440d-ab25-a1a7130ae503"}],"id":"5f907456-71fa-41c3-8335-bb5993f6d35e","description":"<p>i18n message management for all frontends.</p>\n","_postman_id":"5f907456-71fa-41c3-8335-bb5993f6d35e"},{"name":"Library (REST)","item":[{"name":"Uploads","item":[{"name":"Upload image","id":"bb35283b-521f-4d59-9f29-e2d17fa2c270","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer "},{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[{"key":"file","type":"file","value":""},{"key":"folder","value":"icons","type":"text"}]},"url":"https://api.loya.cc/api/v1/admin/uploads","urlObject":{"path":["admin","uploads"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"7f7c7017-7156-41af-ac0a-cd4815fbb7c7","name":"Created","originalRequest":{"method":"POST","header":[],"url":"https://api.loya.cc/api/v1/admin/uploads"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"path\": \"library/icons/example.png\",\n        \"url\": \"https://cdn.loya.cc/library/icons/example.png\",\n        \"version\": 1756598400\n    }\n}"}],"_postman_id":"bb35283b-521f-4d59-9f29-e2d17fa2c270"}],"id":"3f4b7b05-106b-4b79-bc1c-550168ae6b69","_postman_id":"3f4b7b05-106b-4b79-bc1c-550168ae6b69","description":""},{"name":"Icons","item":[{"name":"List","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('iconsId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"52f1e635-4922-4028-a4b3-7063d3736a08"}}],"id":"d73d2870-c3f8-42a6-9399-fd8840120063","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/icons?page=1&per_page=25&search=&sort=","description":"<h2 id=\"summary\">Summary</h2>\n<p>Paginated Library list for <code>icons</code>.</p>\n","urlObject":{"path":["admin","icons"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Page number</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Page size (max 100; icons max 200)</p>\n","type":"text/plain"},"key":"per_page","value":"25"},{"description":{"content":"<p>Search query</p>\n","type":"text/plain"},"key":"search","value":""},{"description":{"content":"<p>Column name; prefix with - for descending</p>\n","type":"text/plain"},"key":"sort","value":""}],"variable":[]}},"response":[{"id":"351693e9-393b-4cfa-af2b-ff7e5ecaf5bf","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/icons?page=1&per_page=25&search=&sort=","host":["https://api.loya.cc/api/v1"],"path":["admin","icons"],"query":[{"key":"page","value":"1","description":"Page number"},{"key":"per_page","value":"25","description":"Page size (max 100; icons max 200)"},{"key":"search","value":"","description":"Search query"},{"key":"sort","value":"","description":"Column name; prefix with - for descending"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"attributes\": {\n                \"name\": \"Example\"\n            },\n            \"relations\": {},\n            \"translations\": {},\n            \"counts\": {},\n            \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"d73d2870-c3f8-42a6-9399-fd8840120063"},{"name":"Get one","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"3dd906d3-fed9-4118-9c23-24ccc580a4cc"}}],"id":"a0b5a2ae-4548-440b-9426-689ffcb901ef","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/icons/1","urlObject":{"path":["admin","icons","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"84932ecc-2713-4c57-8174-2f6447c1a815","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/icons/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"a0b5a2ae-4548-440b-9426-689ffcb901ef"},{"name":"Create","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('iconsId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"a0c021e6-4dc7-41dc-9a06-0a915bae6cfb"}}],"id":"a8ff623f-ecf7-439d-8915-c627bc8e617f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"key\": \"Restaurant\",\n    \"path\": \"icons/mui/Restaurant.svg\",\n    \"source\": \"mui\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/icons","urlObject":{"path":["admin","icons"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"95fd8827-b0da-487e-8dc2-e2ac829af1b8","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/icons"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"attributes\": {\n            \"key\": \"Restaurant\",\n            \"path\": \"icons/mui/Restaurant.svg\",\n            \"source\": \"mui\"\n        },\n        \"relations\": {},\n        \"translations\": {},\n        \"counts\": {},\n        \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n    }\n}"}],"_postman_id":"a8ff623f-ecf7-439d-8915-c627bc8e617f"},{"name":"Update","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"79c40c9e-a27b-424a-a3de-a525f9e71d4e"}}],"id":"fd5c99d0-52fd-4986-baba-75506f5ee88b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"key\": \"Restaurant\",\n    \"path\": \"icons/mui/Restaurant.svg\",\n    \"source\": \"mui\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/icons/1","urlObject":{"path":["admin","icons","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"92d11c88-1958-4089-97d4-9c7d061caa1b","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/icons/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"key\": \"Restaurant\",\n        \"path\": \"icons/mui/Restaurant.svg\",\n        \"source\": \"mui\"\n    }\n}"}],"_postman_id":"fd5c99d0-52fd-4986-baba-75506f5ee88b"},{"name":"Delete","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"80bac0d7-3875-449b-be06-3120e7b1f5aa"}}],"id":"c79679bb-78eb-48c4-90fb-18e77265af1e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/icons/1","urlObject":{"path":["admin","icons","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"72d4910e-d1cb-41b5-a1b1-cd8bba79fed1","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/icons/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"c79679bb-78eb-48c4-90fb-18e77265af1e"}],"id":"4f8cad23-f53b-45d0-a31a-354e436ad33b","_postman_id":"4f8cad23-f53b-45d0-a31a-354e436ad33b","description":""},{"name":"Categories","item":[{"name":"List","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('categoriesId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"fa4955dd-935c-450e-8f87-9fd54c9755b5"}}],"id":"b370905c-d61a-44b0-8eb8-bc7e4b78ee31","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/categories?page=1&per_page=25&search=&sort=","description":"<h2 id=\"summary\">Summary</h2>\n<p>Paginated Library list for <code>categories</code>.</p>\n<h2 id=\"soft-deletes\">Soft deletes</h2>\n<p>Pass <code>trashed=1</code> to list only deleted rows, then <strong>Restore</strong> or <strong>Force delete</strong>.</p>\n","urlObject":{"path":["admin","categories"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Page number</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Page size (max 100; icons max 200)</p>\n","type":"text/plain"},"key":"per_page","value":"25"},{"description":{"content":"<p>Search query</p>\n","type":"text/plain"},"key":"search","value":""},{"description":{"content":"<p>Column name; prefix with - for descending</p>\n","type":"text/plain"},"key":"sort","value":""},{"disabled":true,"description":{"content":"<p>Set 1 to list only soft-deleted rows</p>\n","type":"text/plain"},"key":"trashed","value":"1"}],"variable":[]}},"response":[{"id":"90b73d65-a50d-48d2-97c3-4f7e2069457e","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/categories?page=1&per_page=25&search=&sort=","host":["https://api.loya.cc/api/v1"],"path":["admin","categories"],"query":[{"key":"page","value":"1","description":"Page number"},{"key":"per_page","value":"25","description":"Page size (max 100; icons max 200)"},{"key":"search","value":"","description":"Search query"},{"key":"sort","value":"","description":"Column name; prefix with - for descending"},{"key":"trashed","value":"1","description":"Set 1 to list only soft-deleted rows","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"attributes\": {\n                \"name\": \"Example\"\n            },\n            \"relations\": {},\n            \"translations\": {},\n            \"counts\": {},\n            \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"b370905c-d61a-44b0-8eb8-bc7e4b78ee31"},{"name":"Get one","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"a50ab31f-5fcc-4a15-adb4-f5fe1ef5f225"}}],"id":"26fb0db0-1f87-44a7-99d6-bdda32d5626c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/categories/1","urlObject":{"path":["admin","categories","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"af8a64af-1dae-4c73-8951-511d10c406de","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/categories/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"26fb0db0-1f87-44a7-99d6-bdda32d5626c"},{"name":"Create","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('categoriesId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"6b089fc4-411d-4647-9411-5ec2fa8eb166"}}],"id":"86dcbb6d-1c49-4964-a7df-17c74e900fae","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"slug\": \"dining\",\n    \"icon\": \"icons/mui/Restaurant.svg\",\n    \"sort_order\": 1,\n    \"translations\": {\n        \"name\": {\n            \"en\": \"Dining\",\n            \"az\": \"Yem\\u0259k\",\n            \"ru\": \"\\u041f\\u0438\\u0442\\u0430\\u043d\\u0438\\u0435\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/categories","urlObject":{"path":["admin","categories"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"aa29fdd2-201e-4cd6-9096-02b203ac8a4e","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/categories"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"attributes\": {\n            \"slug\": \"dining\",\n            \"icon\": \"icons/mui/Restaurant.svg\",\n            \"sort_order\": 1\n        },\n        \"relations\": {},\n        \"translations\": {\n            \"name\": {\n                \"en\": \"Dining\",\n                \"az\": \"Yemək\",\n                \"ru\": \"Питание\"\n            }\n        },\n        \"counts\": {},\n        \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n    }\n}"}],"_postman_id":"86dcbb6d-1c49-4964-a7df-17c74e900fae"},{"name":"Update","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"94aa9858-edc7-4ead-8d83-8d6a292db155"}}],"id":"63d92977-3843-4916-9e80-26dda1fc934d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"slug\": \"dining\",\n    \"icon\": \"icons/mui/Restaurant.svg\",\n    \"sort_order\": 1,\n    \"translations\": {\n        \"name\": {\n            \"en\": \"Dining\",\n            \"az\": \"Yem\\u0259k\",\n            \"ru\": \"\\u041f\\u0438\\u0442\\u0430\\u043d\\u0438\\u0435\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/categories/1","urlObject":{"path":["admin","categories","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"4f811852-b8db-4fb9-a578-7b0e04f007e0","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/categories/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"slug\": \"dining\",\n        \"icon\": \"icons/mui/Restaurant.svg\",\n        \"sort_order\": 1,\n        \"translations\": {\n            \"name\": {\n                \"en\": \"Dining\",\n                \"az\": \"Yemək\",\n                \"ru\": \"Питание\"\n            }\n        }\n    }\n}"}],"_postman_id":"63d92977-3843-4916-9e80-26dda1fc934d"},{"name":"Delete","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"d9d5777b-162a-45f6-8fe1-2e5cd9ff7d74"}}],"id":"ca5c525a-8c8c-41d1-a851-34e495e597a1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/categories/1","urlObject":{"path":["admin","categories","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"14c742a4-88c3-4196-a011-a1879e68c766","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/categories/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"ca5c525a-8c8c-41d1-a851-34e495e597a1"},{"name":"Restore","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"483dc7bb-a71e-47c1-a3c2-741e6df7c080"}}],"id":"643bbc05-56f3-453f-b4a5-e452443cfd00","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/categories/1/restore","description":"<h2 id=\"summary\">Summary</h2>\n<p>Restore a soft-deleted row (<code>trashed=1</code> list).</p>\n","urlObject":{"path":["admin","categories","1","restore"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"4c57d7fe-6b7b-4c51-b386-6b9426483aea","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/categories/1/restore"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"643bbc05-56f3-453f-b4a5-e452443cfd00"},{"name":"Force delete","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"55d19c00-1713-4390-a1d7-e926c37d280b"}}],"id":"799ddabe-1ed9-4876-836e-5f47c7db742f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/categories/1/force","description":"<h2 id=\"summary\">Summary</h2>\n<p>Permanently delete (active or trashed). Fails with <code>422</code> if still referenced.</p>\n","urlObject":{"path":["admin","categories","1","force"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"d5331983-341b-40da-a941-61aa1aa2b8d6","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/categories/1/force"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"799ddabe-1ed9-4876-836e-5f47c7db742f"},{"name":"Sort list","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"4281b818-82a0-4c80-be91-f71a33327963"}}],"id":"98d2c058-b4aa-48fe-9566-afd1d75e36a4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/categories/sort","description":"<h2 id=\"summary\">Summary</h2>\n<p>Ordered rows for drag-and-drop sort UI.</p>\n","urlObject":{"path":["admin","categories","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"18031de5-68f4-465d-ba0f-a98bc1ff1c1b","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/categories/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Example\",\n            \"sort_order\": 0\n        }\n    ],\n    \"meta\": {\n        \"scope\": null,\n        \"scopeValue\": null\n    }\n}"}],"_postman_id":"98d2c058-b4aa-48fe-9566-afd1d75e36a4"},{"name":"Reorder","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"55948659-cbac-4f0f-b109-253f4513650a"}}],"id":"d59f1902-b1a6-4d81-94bd-a16692523ada","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"ids\": [\n        1,\n        2,\n        3\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/categories/sort","description":"<h2 id=\"body\">Body</h2>\n<p><code>ids</code> — ordered record IDs.</p>\n","urlObject":{"path":["admin","categories","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"0aa5624b-73c3-4694-91ba-9ec4de08aada","name":"OK","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/categories/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 3\n    }\n}"}],"_postman_id":"d59f1902-b1a6-4d81-94bd-a16692523ada"}],"id":"ac0671d0-9029-4e03-9d2d-aec86ad808cc","_postman_id":"ac0671d0-9029-4e03-9d2d-aec86ad808cc","description":""},{"name":"Subcategories","item":[{"name":"List","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('subcategoriesId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"30c971ac-e14b-4ff6-bfa6-b0a03568470c"}}],"id":"576d7dbe-c43f-4d06-b249-ff1af5e9277d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/subcategories?page=1&per_page=25&search=&sort=&category_id=1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Paginated Library list for <code>subcategories</code>.</p>\n<h2 id=\"soft-deletes\">Soft deletes</h2>\n<p>Pass <code>trashed=1</code> to list only deleted rows, then <strong>Restore</strong> or <strong>Force delete</strong>.</p>\n","urlObject":{"path":["admin","subcategories"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Page number</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Page size (max 100; icons max 200)</p>\n","type":"text/plain"},"key":"per_page","value":"25"},{"description":{"content":"<p>Search query</p>\n","type":"text/plain"},"key":"search","value":""},{"description":{"content":"<p>Column name; prefix with - for descending</p>\n","type":"text/plain"},"key":"sort","value":""},{"description":{"content":"<p>Filter / sort scope</p>\n","type":"text/plain"},"key":"category_id","value":"1"},{"disabled":true,"description":{"content":"<p>Set 1 to list only soft-deleted rows</p>\n","type":"text/plain"},"key":"trashed","value":"1"}],"variable":[]}},"response":[{"id":"5d60a918-e460-4b93-ae09-b89b1171f9f6","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/subcategories?page=1&per_page=25&search=&sort=&category_id=1","host":["https://api.loya.cc/api/v1"],"path":["admin","subcategories"],"query":[{"key":"page","value":"1","description":"Page number"},{"key":"per_page","value":"25","description":"Page size (max 100; icons max 200)"},{"key":"search","value":"","description":"Search query"},{"key":"sort","value":"","description":"Column name; prefix with - for descending"},{"key":"category_id","value":"1","description":"Filter / sort scope"},{"key":"trashed","value":"1","description":"Set 1 to list only soft-deleted rows","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"attributes\": {\n                \"name\": \"Example\"\n            },\n            \"relations\": {},\n            \"translations\": {},\n            \"counts\": {},\n            \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"576d7dbe-c43f-4d06-b249-ff1af5e9277d"},{"name":"Get one","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"a2cd5523-bfc1-49e3-b06c-4d13d355cb0e"}}],"id":"c875f244-a221-42ec-b36a-ac360f4529a8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/subcategories/1","urlObject":{"path":["admin","subcategories","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"5267dc45-52fb-4be0-b8d7-8ff7cf5ce4f8","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/subcategories/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"c875f244-a221-42ec-b36a-ac360f4529a8"},{"name":"Create","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('subcategoriesId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"4a83a9a5-6cbc-4462-83e2-840cfc2a1b5d"}}],"id":"1e6d2a01-c751-4134-80e9-840861658082","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"category_id\": 1,\n    \"slug\": \"restaurant\",\n    \"icon\": \"store\",\n    \"sort_order\": 1,\n    \"is_active\": true,\n    \"translations\": {\n        \"name\": {\n            \"en\": \"Restaurant\",\n            \"az\": \"Restoran\",\n            \"ru\": \"\\u0420\\u0435\\u0441\\u0442\\u043e\\u0440\\u0430\\u043d\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/subcategories","urlObject":{"path":["admin","subcategories"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"d0187b07-13e5-4805-b177-40e5e12ffbc1","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/subcategories"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"attributes\": {\n            \"category_id\": 1,\n            \"slug\": \"restaurant\",\n            \"icon\": \"store\",\n            \"sort_order\": 1,\n            \"is_active\": true\n        },\n        \"relations\": {},\n        \"translations\": {\n            \"name\": {\n                \"en\": \"Restaurant\",\n                \"az\": \"Restoran\",\n                \"ru\": \"Ресторан\"\n            }\n        },\n        \"counts\": {},\n        \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n    }\n}"}],"_postman_id":"1e6d2a01-c751-4134-80e9-840861658082"},{"name":"Update","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"7f87b24d-5e3f-4560-ba9f-519d5f730ec6"}}],"id":"d1b64809-0d99-4cb8-90e0-9c0e0ce29152","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"category_id\": 1,\n    \"slug\": \"restaurant\",\n    \"icon\": \"store\",\n    \"sort_order\": 1,\n    \"is_active\": true,\n    \"translations\": {\n        \"name\": {\n            \"en\": \"Restaurant\",\n            \"az\": \"Restoran\",\n            \"ru\": \"\\u0420\\u0435\\u0441\\u0442\\u043e\\u0440\\u0430\\u043d\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/subcategories/1","urlObject":{"path":["admin","subcategories","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"52dc4046-33b6-4b15-8d1e-9d9c432bc443","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/subcategories/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"category_id\": 1,\n        \"slug\": \"restaurant\",\n        \"icon\": \"store\",\n        \"sort_order\": 1,\n        \"is_active\": true,\n        \"translations\": {\n            \"name\": {\n                \"en\": \"Restaurant\",\n                \"az\": \"Restoran\",\n                \"ru\": \"Ресторан\"\n            }\n        }\n    }\n}"}],"_postman_id":"d1b64809-0d99-4cb8-90e0-9c0e0ce29152"},{"name":"Delete","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"08e76283-5d39-4871-a106-84d051a396ea"}}],"id":"1d16d032-938c-485c-877e-45def0b57897","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/subcategories/1","urlObject":{"path":["admin","subcategories","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"b09d62fa-5435-4c6c-8fa6-26c3df34405b","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/subcategories/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"1d16d032-938c-485c-877e-45def0b57897"},{"name":"Restore","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"c99b1933-4fac-41e6-af49-5038b91c8641"}}],"id":"94a2ecb9-8adb-4d58-966f-b4b3c448a9ea","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/subcategories/1/restore","description":"<h2 id=\"summary\">Summary</h2>\n<p>Restore a soft-deleted row (<code>trashed=1</code> list).</p>\n","urlObject":{"path":["admin","subcategories","1","restore"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"37188d14-16f7-4def-8305-1210a6f6f0f4","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/subcategories/1/restore"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"94a2ecb9-8adb-4d58-966f-b4b3c448a9ea"},{"name":"Force delete","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"c5541a00-8763-4a76-92cc-e60879162fd6"}}],"id":"8fc002ac-5533-4ff6-9792-fcd5ee3616af","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/subcategories/1/force","description":"<h2 id=\"summary\">Summary</h2>\n<p>Permanently delete (active or trashed). Fails with <code>422</code> if still referenced.</p>\n","urlObject":{"path":["admin","subcategories","1","force"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"e9e1486f-c265-490d-aec5-3eaaaece6f6c","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/subcategories/1/force"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"8fc002ac-5533-4ff6-9792-fcd5ee3616af"},{"name":"Sort list","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"86a760e7-ee51-49ec-b924-a8b764fd4a3a"}}],"id":"bfad5b40-1bb2-438c-b4a0-9346aed3c511","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/subcategories/sort?category_id=1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Ordered rows for drag-and-drop sort UI. Requires <code>category_id</code>.</p>\n","urlObject":{"path":["admin","subcategories","sort"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Required sort scope</p>\n","type":"text/plain"},"key":"category_id","value":"1"}],"variable":[]}},"response":[{"id":"609a02ed-9561-416a-b185-7b5299e97518","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/subcategories/sort?category_id=1","host":["https://api.loya.cc/api/v1"],"path":["admin","subcategories","sort"],"query":[{"key":"category_id","value":"1","description":"Required sort scope"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Example\",\n            \"sort_order\": 0\n        }\n    ],\n    \"meta\": {\n        \"scope\": null,\n        \"scopeValue\": null\n    }\n}"}],"_postman_id":"bfad5b40-1bb2-438c-b4a0-9346aed3c511"},{"name":"Reorder","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"6dddd291-49a7-499b-9e3f-ceab7be3ec9b"}}],"id":"e025a999-41b9-422a-9ebc-c4a1d670b2d2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"ids\": [\n        1,\n        2,\n        3\n    ],\n    \"category_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/subcategories/sort","description":"<h2 id=\"body\">Body</h2>\n<p><code>ids</code> — ordered record IDs. Also send <code>category_id</code>.</p>\n","urlObject":{"path":["admin","subcategories","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"498a7860-2d74-4a3f-adc2-9fb933cf27aa","name":"OK","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/subcategories/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 3\n    }\n}"}],"_postman_id":"e025a999-41b9-422a-9ebc-c4a1d670b2d2"},{"name":"Bulk disable","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"2ffbf01e-b448-4db7-af95-bb5c822abf1e"}}],"id":"c1168410-43b6-40b2-818d-8b9f2001a753","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": false,\n    \"category_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/subcategories/bulk-active","description":"<h2 id=\"summary\">Summary</h2>\n<p>Set <code>is_active</code> on all Subcategories rows (omit scope to affect every row). Optional <code>category_id</code> limits the update to that parent.</p>\n<h2 id=\"body\">Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>is_active</td>\n<td>boolean</td>\n<td>yes</td>\n<td><code>false</code> disables, <code>true</code> enables</td>\n</tr>\n<tr>\n<td>category_id</td>\n<td>int</td>\n<td>no</td>\n<td>Limit to this parent; omit to update all</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-200\">Response <code>200</code></h2>\n<p><code>json\\n{\\n  \"data\": { \"updated\": 12, \"isActive\": false }\\n}\\n</code></p>\n","urlObject":{"path":["admin","subcategories","bulk-active"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"26e6711a-9875-47b6-ab31-23c3bcd087d3","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/subcategories/bulk-active"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 12,\n        \"isActive\": false\n    }\n}"}],"_postman_id":"c1168410-43b6-40b2-818d-8b9f2001a753"},{"name":"Bulk enable","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"3c170e0e-c07f-4fdf-83ed-44e86753b74c"}}],"id":"0f31cc83-8520-4c93-9e55-d5988f69a1aa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": true,\n    \"category_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/subcategories/bulk-active","description":"<h2 id=\"summary\">Summary</h2>\n<p>Enable all Subcategories rows (same endpoint as Bulk disable).</p>\n","urlObject":{"path":["admin","subcategories","bulk-active"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"9fd1a384-badb-49a0-b827-8975e96db138","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/subcategories/bulk-active"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 12,\n        \"isActive\": true\n    }\n}"}],"_postman_id":"0f31cc83-8520-4c93-9e55-d5988f69a1aa"}],"id":"392784f5-e45f-46ab-9bc6-811afec7d24f","_postman_id":"392784f5-e45f-46ab-9bc6-811afec7d24f","description":""},{"name":"Countries","item":[{"name":"List","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('countriesId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"53004ee2-3fd5-4684-a543-fc752c1468d3"}}],"id":"d22fa4ca-d3ee-45db-86d3-b7c718f04c26","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/countries?page=1&per_page=25&search=&sort=","description":"<h2 id=\"summary\">Summary</h2>\n<p>Paginated Library list for <code>countries</code>.</p>\n","urlObject":{"path":["admin","countries"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Page number</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Page size (max 100; icons max 200)</p>\n","type":"text/plain"},"key":"per_page","value":"25"},{"description":{"content":"<p>Search query</p>\n","type":"text/plain"},"key":"search","value":""},{"description":{"content":"<p>Column name; prefix with - for descending</p>\n","type":"text/plain"},"key":"sort","value":""}],"variable":[]}},"response":[{"id":"8bf2cd27-b8a9-4869-b022-445dfd29356a","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/countries?page=1&per_page=25&search=&sort=","host":["https://api.loya.cc/api/v1"],"path":["admin","countries"],"query":[{"key":"page","value":"1","description":"Page number"},{"key":"per_page","value":"25","description":"Page size (max 100; icons max 200)"},{"key":"search","value":"","description":"Search query"},{"key":"sort","value":"","description":"Column name; prefix with - for descending"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"attributes\": {\n                \"name\": \"Example\"\n            },\n            \"relations\": {},\n            \"translations\": {},\n            \"counts\": {},\n            \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"d22fa4ca-d3ee-45db-86d3-b7c718f04c26"},{"name":"Get one","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"bc25a2a8-29ad-4d1b-9dbf-772198acaecb"}}],"id":"a87ada2b-c0b6-4782-a316-bb989c88f6ee","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/countries/1","urlObject":{"path":["admin","countries","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"65124e28-a985-464e-8efe-9d1866d01e47","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/countries/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"a87ada2b-c0b6-4782-a316-bb989c88f6ee"},{"name":"Create","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('countriesId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"ac81320a-0d96-4de1-aff3-385c1f5e54eb"}}],"id":"2db72843-5816-4e28-ad6e-d280ff7833cf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"slug\": \"azerbaijan\",\n    \"code\": \"AZ\",\n    \"flag_icon\": \"flags/az.svg\",\n    \"is_active\": true,\n    \"has_states\": false,\n    \"sort_order\": 1,\n    \"latitude\": 40.1431,\n    \"longitude\": 47.5769,\n    \"translations\": {\n        \"name\": {\n            \"en\": \"Azerbaijan\",\n            \"az\": \"Az\\u0259rbaycan\",\n            \"ru\": \"\\u0410\\u0437\\u0435\\u0440\\u0431\\u0430\\u0439\\u0434\\u0436\\u0430\\u043d\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/countries","urlObject":{"path":["admin","countries"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"52d3ca01-4883-4eb9-a8c6-114be3575fac","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/countries"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"attributes\": {\n            \"slug\": \"azerbaijan\",\n            \"code\": \"AZ\",\n            \"flag_icon\": \"flags/az.svg\",\n            \"is_active\": true,\n            \"has_states\": false,\n            \"sort_order\": 1,\n            \"latitude\": 40.1431,\n            \"longitude\": 47.5769\n        },\n        \"relations\": {},\n        \"translations\": {\n            \"name\": {\n                \"en\": \"Azerbaijan\",\n                \"az\": \"Azərbaycan\",\n                \"ru\": \"Азербайджан\"\n            }\n        },\n        \"counts\": {},\n        \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n    }\n}"}],"_postman_id":"2db72843-5816-4e28-ad6e-d280ff7833cf"},{"name":"Update","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"985fa078-9bcc-4e01-9167-2d435849b4fa"}}],"id":"ef265113-6b41-4860-a9d7-fb77db03f6f7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"slug\": \"azerbaijan\",\n    \"code\": \"AZ\",\n    \"flag_icon\": \"flags/az.svg\",\n    \"is_active\": true,\n    \"has_states\": false,\n    \"sort_order\": 1,\n    \"latitude\": 40.1431,\n    \"longitude\": 47.5769,\n    \"translations\": {\n        \"name\": {\n            \"en\": \"Azerbaijan\",\n            \"az\": \"Az\\u0259rbaycan\",\n            \"ru\": \"\\u0410\\u0437\\u0435\\u0440\\u0431\\u0430\\u0439\\u0434\\u0436\\u0430\\u043d\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/countries/1","urlObject":{"path":["admin","countries","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"51c5b808-76a5-4977-8c31-378bcc0b461f","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/countries/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"slug\": \"azerbaijan\",\n        \"code\": \"AZ\",\n        \"flag_icon\": \"flags/az.svg\",\n        \"is_active\": true,\n        \"has_states\": false,\n        \"sort_order\": 1,\n        \"latitude\": 40.1431,\n        \"longitude\": 47.5769,\n        \"translations\": {\n            \"name\": {\n                \"en\": \"Azerbaijan\",\n                \"az\": \"Azərbaycan\",\n                \"ru\": \"Азербайджан\"\n            }\n        }\n    }\n}"}],"_postman_id":"ef265113-6b41-4860-a9d7-fb77db03f6f7"},{"name":"Delete","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"39affb0a-efa2-43e8-9dd0-f1e5dbeabf47"}}],"id":"e69b1752-a83f-4f08-8432-f9787a05679b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/countries/1","urlObject":{"path":["admin","countries","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"f8cb1b89-7233-42d4-b7fd-da3fb9f1d1c7","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/countries/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"e69b1752-a83f-4f08-8432-f9787a05679b"},{"name":"Sort list","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"8f475565-349f-4ba8-ac85-f91d83a0156d"}}],"id":"b7214a7a-530c-4f0e-ab56-f1b00a912bdc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/countries/sort","description":"<h2 id=\"summary\">Summary</h2>\n<p>Ordered rows for drag-and-drop sort UI.</p>\n","urlObject":{"path":["admin","countries","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"b1fae886-e6d4-49ea-a1bb-413c4802b5e8","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/countries/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Example\",\n            \"sort_order\": 0\n        }\n    ],\n    \"meta\": {\n        \"scope\": null,\n        \"scopeValue\": null\n    }\n}"}],"_postman_id":"b7214a7a-530c-4f0e-ab56-f1b00a912bdc"},{"name":"Reorder","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"e82859ab-3142-4509-8d5a-8777be14d65d"}}],"id":"ef1b0782-9fcf-4052-a3b7-70133205b671","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"ids\": [\n        1,\n        2,\n        3\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/countries/sort","description":"<h2 id=\"body\">Body</h2>\n<p><code>ids</code> — ordered record IDs.</p>\n","urlObject":{"path":["admin","countries","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"8ffaa5c9-56c0-4fc4-ae43-37ea49561cc9","name":"OK","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/countries/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 3\n    }\n}"}],"_postman_id":"ef1b0782-9fcf-4052-a3b7-70133205b671"},{"name":"Bulk disable","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"c904eb75-0e32-46cd-b562-54ba815f17f7"}}],"id":"0abb3db0-87c2-4b46-a55a-d4dded7cbba1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/countries/bulk-active","description":"<h2 id=\"summary\">Summary</h2>\n<p>Set <code>is_active</code> on all Countries rows (omit scope to affect every row).</p>\n<h2 id=\"body\">Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>is_active</td>\n<td>boolean</td>\n<td>yes</td>\n<td><code>false</code> disables, <code>true</code> enables</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-200\">Response <code>200</code></h2>\n<p><code>json\\n{\\n  \"data\": { \"updated\": 12, \"isActive\": false }\\n}\\n</code></p>\n","urlObject":{"path":["admin","countries","bulk-active"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"b3b3e374-10a6-4b3e-ab5e-dc81cbd0a96c","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/countries/bulk-active"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 12,\n        \"isActive\": false\n    }\n}"}],"_postman_id":"0abb3db0-87c2-4b46-a55a-d4dded7cbba1"},{"name":"Bulk enable","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"bfe9c012-c7c0-4798-a2ee-f1949954d1be"}}],"id":"efdf2af3-e924-4dc6-b789-36a043b2fb17","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/countries/bulk-active","description":"<h2 id=\"summary\">Summary</h2>\n<p>Enable all Countries rows (same endpoint as Bulk disable).</p>\n","urlObject":{"path":["admin","countries","bulk-active"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"d253aa7d-a87c-4a81-bdc2-1f2d52ee05ff","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/countries/bulk-active"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 12,\n        \"isActive\": true\n    }\n}"}],"_postman_id":"efdf2af3-e924-4dc6-b789-36a043b2fb17"}],"id":"eb8c39d2-d794-4efc-9082-df689f684c2b","_postman_id":"eb8c39d2-d794-4efc-9082-df689f684c2b","description":""},{"name":"States","item":[{"name":"List","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('statesId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"59f0ee7d-a4c2-4f45-a908-2641b8649ba8"}}],"id":"09706f51-a2d4-4298-a5b3-a408dff6c9e8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/states?page=1&per_page=25&search=&sort=&country_id=1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Paginated Library list for <code>states</code>.</p>\n","urlObject":{"path":["admin","states"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Page number</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Page size (max 100; icons max 200)</p>\n","type":"text/plain"},"key":"per_page","value":"25"},{"description":{"content":"<p>Search query</p>\n","type":"text/plain"},"key":"search","value":""},{"description":{"content":"<p>Column name; prefix with - for descending</p>\n","type":"text/plain"},"key":"sort","value":""},{"description":{"content":"<p>Filter / sort scope</p>\n","type":"text/plain"},"key":"country_id","value":"1"}],"variable":[]}},"response":[{"id":"5d394b95-0bc2-47b8-995d-1f5f944a9c41","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/states?page=1&per_page=25&search=&sort=&country_id=1","host":["https://api.loya.cc/api/v1"],"path":["admin","states"],"query":[{"key":"page","value":"1","description":"Page number"},{"key":"per_page","value":"25","description":"Page size (max 100; icons max 200)"},{"key":"search","value":"","description":"Search query"},{"key":"sort","value":"","description":"Column name; prefix with - for descending"},{"key":"country_id","value":"1","description":"Filter / sort scope"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"attributes\": {\n                \"name\": \"Example\"\n            },\n            \"relations\": {},\n            \"translations\": {},\n            \"counts\": {},\n            \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"09706f51-a2d4-4298-a5b3-a408dff6c9e8"},{"name":"Get one","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"6b3d1e7a-5a0e-4122-b973-784c6248c4b9"}}],"id":"fce86106-b010-4972-a051-dd4897d30bfc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/states/1","urlObject":{"path":["admin","states","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"9f61e75e-ad97-4597-b038-aacd4eb96e27","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/states/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"fce86106-b010-4972-a051-dd4897d30bfc"},{"name":"Create","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('statesId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"b7a49947-29a7-4686-acfb-71315f82b67d"}}],"id":"96770286-b744-4c9a-8f45-1619e428c106","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"country_id\": 1,\n    \"slug\": \"california\",\n    \"is_active\": true,\n    \"sort_order\": 1,\n    \"translations\": {\n        \"name\": {\n            \"en\": \"California\",\n            \"az\": \"Kaliforniya\",\n            \"ru\": \"\\u041a\\u0430\\u043b\\u0438\\u0444\\u043e\\u0440\\u043d\\u0438\\u044f\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/states","urlObject":{"path":["admin","states"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"9581bcd2-07e3-43d4-9d2e-066c0a5d422a","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/states"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"attributes\": {\n            \"country_id\": 1,\n            \"slug\": \"california\",\n            \"is_active\": true,\n            \"sort_order\": 1\n        },\n        \"relations\": {},\n        \"translations\": {\n            \"name\": {\n                \"en\": \"California\",\n                \"az\": \"Kaliforniya\",\n                \"ru\": \"Калифорния\"\n            }\n        },\n        \"counts\": {},\n        \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n    }\n}"}],"_postman_id":"96770286-b744-4c9a-8f45-1619e428c106"},{"name":"Update","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"f917feb6-a656-46e8-a7b2-c3a848814ce1"}}],"id":"da946acc-43ec-4405-9ea2-6d74f4788508","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"country_id\": 1,\n    \"slug\": \"california\",\n    \"is_active\": true,\n    \"sort_order\": 1,\n    \"translations\": {\n        \"name\": {\n            \"en\": \"California\",\n            \"az\": \"Kaliforniya\",\n            \"ru\": \"\\u041a\\u0430\\u043b\\u0438\\u0444\\u043e\\u0440\\u043d\\u0438\\u044f\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/states/1","urlObject":{"path":["admin","states","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"0f6d52c8-7522-49db-a671-e574b02a7674","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/states/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"country_id\": 1,\n        \"slug\": \"california\",\n        \"is_active\": true,\n        \"sort_order\": 1,\n        \"translations\": {\n            \"name\": {\n                \"en\": \"California\",\n                \"az\": \"Kaliforniya\",\n                \"ru\": \"Калифорния\"\n            }\n        }\n    }\n}"}],"_postman_id":"da946acc-43ec-4405-9ea2-6d74f4788508"},{"name":"Delete","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"40cbe9f1-e880-4a3c-8a50-cf8e417a528a"}}],"id":"da4654a7-d2cf-4979-96cb-ffce78c976ec","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/states/1","urlObject":{"path":["admin","states","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"12f7154c-59d9-4be2-bd9d-1b3f01d6f243","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/states/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"da4654a7-d2cf-4979-96cb-ffce78c976ec"},{"name":"Sort list","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"2e2a8e97-8a9f-4084-bbab-557c2a5c785c"}}],"id":"3bbe91d7-e7e6-4d9c-894f-a48c7efe398c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/states/sort?country_id=1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Ordered rows for drag-and-drop sort UI. Requires <code>country_id</code>.</p>\n","urlObject":{"path":["admin","states","sort"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Required sort scope</p>\n","type":"text/plain"},"key":"country_id","value":"1"}],"variable":[]}},"response":[{"id":"6fd91bc7-fbe7-4525-a5c8-f857eb3c6cd5","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/states/sort?country_id=1","host":["https://api.loya.cc/api/v1"],"path":["admin","states","sort"],"query":[{"key":"country_id","value":"1","description":"Required sort scope"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Example\",\n            \"sort_order\": 0\n        }\n    ],\n    \"meta\": {\n        \"scope\": null,\n        \"scopeValue\": null\n    }\n}"}],"_postman_id":"3bbe91d7-e7e6-4d9c-894f-a48c7efe398c"},{"name":"Reorder","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"5f456ac4-a158-4fab-a703-2da6dd57b4b3"}}],"id":"5f6c9628-121d-4c19-ad47-a9c21d9851bd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"ids\": [\n        1,\n        2,\n        3\n    ],\n    \"country_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/states/sort","description":"<h2 id=\"body\">Body</h2>\n<p><code>ids</code> — ordered record IDs. Also send <code>country_id</code>.</p>\n","urlObject":{"path":["admin","states","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"b6bf1e67-d21f-4141-b0c2-fbcb963bcddc","name":"OK","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/states/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 3\n    }\n}"}],"_postman_id":"5f6c9628-121d-4c19-ad47-a9c21d9851bd"},{"name":"Bulk disable","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"ccdc780a-324c-4b77-a9ae-20c9954b94f1"}}],"id":"d454002b-79e8-45f8-afea-0b54c6424f9f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": false,\n    \"country_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/states/bulk-active","description":"<h2 id=\"summary\">Summary</h2>\n<p>Set <code>is_active</code> on all States rows (omit scope to affect every row). Optional <code>country_id</code> limits the update to that parent.</p>\n<h2 id=\"body\">Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>is_active</td>\n<td>boolean</td>\n<td>yes</td>\n<td><code>false</code> disables, <code>true</code> enables</td>\n</tr>\n<tr>\n<td>country_id</td>\n<td>int</td>\n<td>no</td>\n<td>Limit to this parent; omit to update all</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-200\">Response <code>200</code></h2>\n<p><code>json\\n{\\n  \"data\": { \"updated\": 12, \"isActive\": false }\\n}\\n</code></p>\n","urlObject":{"path":["admin","states","bulk-active"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"847cc643-44eb-4542-b33d-5f5833376147","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/states/bulk-active"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 12,\n        \"isActive\": false\n    }\n}"}],"_postman_id":"d454002b-79e8-45f8-afea-0b54c6424f9f"},{"name":"Bulk enable","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"c89bf4c2-867c-42c0-9d1f-130663990b70"}}],"id":"46283170-0c98-4f76-aca0-33a13676680c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": true,\n    \"country_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/states/bulk-active","description":"<h2 id=\"summary\">Summary</h2>\n<p>Enable all States rows (same endpoint as Bulk disable).</p>\n","urlObject":{"path":["admin","states","bulk-active"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"f9f6120b-e3cb-4258-a8f9-3c4b6a6a8df0","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/states/bulk-active"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 12,\n        \"isActive\": true\n    }\n}"}],"_postman_id":"46283170-0c98-4f76-aca0-33a13676680c"}],"id":"59ba4c2b-0e77-443f-9002-8ba315ededb8","_postman_id":"59ba4c2b-0e77-443f-9002-8ba315ededb8","description":""},{"name":"Cities","item":[{"name":"List","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('citiesId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"0e67e580-4b39-497e-844d-13e784beba75"}}],"id":"9f87a201-9f76-424a-a00a-0e9297a29d12","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/cities?page=1&per_page=25&search=&sort=&country_id=1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Paginated Library list for <code>cities</code>.</p>\n","urlObject":{"path":["admin","cities"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Page number</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Page size (max 100; icons max 200)</p>\n","type":"text/plain"},"key":"per_page","value":"25"},{"description":{"content":"<p>Search query</p>\n","type":"text/plain"},"key":"search","value":""},{"description":{"content":"<p>Column name; prefix with - for descending</p>\n","type":"text/plain"},"key":"sort","value":""},{"description":{"content":"<p>Filter / sort scope</p>\n","type":"text/plain"},"key":"country_id","value":"1"}],"variable":[]}},"response":[{"id":"e8e1774b-b03f-4aa6-8eee-bfbd67c51b4e","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/cities?page=1&per_page=25&search=&sort=&country_id=1","host":["https://api.loya.cc/api/v1"],"path":["admin","cities"],"query":[{"key":"page","value":"1","description":"Page number"},{"key":"per_page","value":"25","description":"Page size (max 100; icons max 200)"},{"key":"search","value":"","description":"Search query"},{"key":"sort","value":"","description":"Column name; prefix with - for descending"},{"key":"country_id","value":"1","description":"Filter / sort scope"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"attributes\": {\n                \"name\": \"Example\"\n            },\n            \"relations\": {},\n            \"translations\": {},\n            \"counts\": {},\n            \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"9f87a201-9f76-424a-a00a-0e9297a29d12"},{"name":"Get one","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"add73249-2702-4585-95b5-b1b548f4fbcc"}}],"id":"9f26ae56-a218-42ff-803e-141aefd54151","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/cities/1","urlObject":{"path":["admin","cities","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"83bffad2-dda0-44bf-b301-4f926d6845ab","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/cities/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"9f26ae56-a218-42ff-803e-141aefd54151"},{"name":"Create","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('citiesId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"ae1b430d-abf8-443e-aea2-ca515103a426"}}],"id":"a88957c4-1ca7-44f6-9101-0eee4252b34a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"country_id\": 1,\n    \"state_id\": null,\n    \"slug\": \"baku\",\n    \"is_active\": true,\n    \"sort_order\": 1,\n    \"latitude\": 40.4093,\n    \"longitude\": 49.8671,\n    \"translations\": {\n        \"name\": {\n            \"en\": \"Baku\",\n            \"az\": \"Bak\\u0131\",\n            \"ru\": \"\\u0411\\u0430\\u043a\\u0443\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/cities","urlObject":{"path":["admin","cities"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"cfb08042-b62e-4c55-a907-b360722f5dde","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/cities"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"attributes\": {\n            \"country_id\": 1,\n            \"state_id\": null,\n            \"slug\": \"baku\",\n            \"is_active\": true,\n            \"sort_order\": 1,\n            \"latitude\": 40.4093,\n            \"longitude\": 49.8671\n        },\n        \"relations\": {},\n        \"translations\": {\n            \"name\": {\n                \"en\": \"Baku\",\n                \"az\": \"Bakı\",\n                \"ru\": \"Баку\"\n            }\n        },\n        \"counts\": {},\n        \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n    }\n}"}],"_postman_id":"a88957c4-1ca7-44f6-9101-0eee4252b34a"},{"name":"Update","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"3afcf83f-7653-4f1a-8fd3-c1c8129129e5"}}],"id":"f82bf1b5-ecca-495c-ba53-6081d5cc698d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"country_id\": 1,\n    \"state_id\": null,\n    \"slug\": \"baku\",\n    \"is_active\": true,\n    \"sort_order\": 1,\n    \"latitude\": 40.4093,\n    \"longitude\": 49.8671,\n    \"translations\": {\n        \"name\": {\n            \"en\": \"Baku\",\n            \"az\": \"Bak\\u0131\",\n            \"ru\": \"\\u0411\\u0430\\u043a\\u0443\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/cities/1","urlObject":{"path":["admin","cities","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"12b6b8b7-1867-41f5-8c27-b62ce4460d88","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/cities/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"country_id\": 1,\n        \"state_id\": null,\n        \"slug\": \"baku\",\n        \"is_active\": true,\n        \"sort_order\": 1,\n        \"latitude\": 40.4093,\n        \"longitude\": 49.8671,\n        \"translations\": {\n            \"name\": {\n                \"en\": \"Baku\",\n                \"az\": \"Bakı\",\n                \"ru\": \"Баку\"\n            }\n        }\n    }\n}"}],"_postman_id":"f82bf1b5-ecca-495c-ba53-6081d5cc698d"},{"name":"Delete","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"a49293a8-4016-4fac-90bd-50fc4ff867aa"}}],"id":"d9d0c6f2-6728-40c6-bfc6-6e1d3b6c12a1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/cities/1","urlObject":{"path":["admin","cities","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"59535ab7-5a7d-49e5-95ea-44191ec9878a","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/cities/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"d9d0c6f2-6728-40c6-bfc6-6e1d3b6c12a1"},{"name":"Sort list","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"d875bd77-99a2-44e9-bc45-da684ad1d62e"}}],"id":"cd4755f9-9d05-40b7-9c34-2a8462fc3450","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/cities/sort?country_id=1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Ordered rows for drag-and-drop sort UI. Requires <code>country_id</code>.</p>\n","urlObject":{"path":["admin","cities","sort"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Required sort scope</p>\n","type":"text/plain"},"key":"country_id","value":"1"}],"variable":[]}},"response":[{"id":"6701e894-36ae-470b-b791-61ace0c3dc8e","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/cities/sort?country_id=1","host":["https://api.loya.cc/api/v1"],"path":["admin","cities","sort"],"query":[{"key":"country_id","value":"1","description":"Required sort scope"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Example\",\n            \"sort_order\": 0\n        }\n    ],\n    \"meta\": {\n        \"scope\": null,\n        \"scopeValue\": null\n    }\n}"}],"_postman_id":"cd4755f9-9d05-40b7-9c34-2a8462fc3450"},{"name":"Reorder","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"83d735e8-16bf-4789-8fb0-e46fc9ad3490"}}],"id":"59c3d841-61c7-4cbb-a961-18299f5df77c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"ids\": [\n        1,\n        2,\n        3\n    ],\n    \"country_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/cities/sort","description":"<h2 id=\"body\">Body</h2>\n<p><code>ids</code> — ordered record IDs. Also send <code>country_id</code>.</p>\n","urlObject":{"path":["admin","cities","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"c48baffa-546e-4e60-ba80-31da266f7c4a","name":"OK","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/cities/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 3\n    }\n}"}],"_postman_id":"59c3d841-61c7-4cbb-a961-18299f5df77c"},{"name":"Bulk disable","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"02ab0138-43fa-4a9b-b1c6-737934e2de4e"}}],"id":"d02a38d9-3ef7-4c02-ba63-3d190e0b3b2d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": false,\n    \"country_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/cities/bulk-active","description":"<h2 id=\"summary\">Summary</h2>\n<p>Set <code>is_active</code> on all Cities rows (omit scope to affect every row). Optional <code>country_id</code> limits the update to that parent.</p>\n<h2 id=\"body\">Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>is_active</td>\n<td>boolean</td>\n<td>yes</td>\n<td><code>false</code> disables, <code>true</code> enables</td>\n</tr>\n<tr>\n<td>country_id</td>\n<td>int</td>\n<td>no</td>\n<td>Limit to this parent; omit to update all</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-200\">Response <code>200</code></h2>\n<p><code>json\\n{\\n  \"data\": { \"updated\": 12, \"isActive\": false }\\n}\\n</code></p>\n","urlObject":{"path":["admin","cities","bulk-active"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"5d4aa163-af94-4b4e-80a8-2851405da331","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/cities/bulk-active"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 12,\n        \"isActive\": false\n    }\n}"}],"_postman_id":"d02a38d9-3ef7-4c02-ba63-3d190e0b3b2d"},{"name":"Bulk enable","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"2775136e-cd2c-417a-86df-7dd25ccb2a38"}}],"id":"e5fbbbfd-6b21-4e9d-beaf-c548689fe050","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": true,\n    \"country_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/cities/bulk-active","description":"<h2 id=\"summary\">Summary</h2>\n<p>Enable all Cities rows (same endpoint as Bulk disable).</p>\n","urlObject":{"path":["admin","cities","bulk-active"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"be1b3b31-44b2-4bfd-84c3-d70aadafdb7d","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/cities/bulk-active"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 12,\n        \"isActive\": true\n    }\n}"}],"_postman_id":"e5fbbbfd-6b21-4e9d-beaf-c548689fe050"}],"id":"3d652b0d-cfd6-4fda-82a2-619420054601","_postman_id":"3d652b0d-cfd6-4fda-82a2-619420054601","description":""},{"name":"Districts","item":[{"name":"List","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('districtsId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"d34b64cc-c0ca-4c96-bdf0-227c94fa8890"}}],"id":"eecc8322-44ae-4817-a52f-38a06b035ce5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/districts?page=1&per_page=25&search=&sort=&city_id=1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Paginated Library list for <code>districts</code>.</p>\n","urlObject":{"path":["admin","districts"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Page number</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Page size (max 100; icons max 200)</p>\n","type":"text/plain"},"key":"per_page","value":"25"},{"description":{"content":"<p>Search query</p>\n","type":"text/plain"},"key":"search","value":""},{"description":{"content":"<p>Column name; prefix with - for descending</p>\n","type":"text/plain"},"key":"sort","value":""},{"description":{"content":"<p>Filter / sort scope</p>\n","type":"text/plain"},"key":"city_id","value":"1"}],"variable":[]}},"response":[{"id":"3784de9d-0a9a-4ca8-827f-1016f85db083","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/districts?page=1&per_page=25&search=&sort=&city_id=1","host":["https://api.loya.cc/api/v1"],"path":["admin","districts"],"query":[{"key":"page","value":"1","description":"Page number"},{"key":"per_page","value":"25","description":"Page size (max 100; icons max 200)"},{"key":"search","value":"","description":"Search query"},{"key":"sort","value":"","description":"Column name; prefix with - for descending"},{"key":"city_id","value":"1","description":"Filter / sort scope"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"attributes\": {\n                \"name\": \"Example\"\n            },\n            \"relations\": {},\n            \"translations\": {},\n            \"counts\": {},\n            \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"eecc8322-44ae-4817-a52f-38a06b035ce5"},{"name":"Get one","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"28b98063-e07c-453f-b29f-a3a9184ee4a7"}}],"id":"8003be2e-f455-438f-8ec1-05b651a97532","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/districts/1","urlObject":{"path":["admin","districts","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"3dc93eb1-c7a2-486c-83b9-ca15f7915c23","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/districts/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"8003be2e-f455-438f-8ec1-05b651a97532"},{"name":"Create","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('districtsId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"af25e3b2-aa68-4f06-b6d6-a8d0cead36c5"}}],"id":"89fe7374-e97a-400d-8907-ca45bf902d87","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"city_id\": 1,\n    \"slug\": \"narimanov\",\n    \"is_active\": true,\n    \"sort_order\": 1,\n    \"translations\": {\n        \"name\": {\n            \"en\": \"Narimanov\",\n            \"az\": \"N\\u0259rimanov\",\n            \"ru\": \"\\u041d\\u0430\\u0440\\u0438\\u043c\\u0430\\u043d\\u043e\\u0432\\u0441\\u043a\\u0438\\u0439\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/districts","urlObject":{"path":["admin","districts"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"7f1fd438-82f8-44b9-aca0-7311d8218715","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/districts"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"attributes\": {\n            \"city_id\": 1,\n            \"slug\": \"narimanov\",\n            \"is_active\": true,\n            \"sort_order\": 1\n        },\n        \"relations\": {},\n        \"translations\": {\n            \"name\": {\n                \"en\": \"Narimanov\",\n                \"az\": \"Nərimanov\",\n                \"ru\": \"Наримановский\"\n            }\n        },\n        \"counts\": {},\n        \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n    }\n}"}],"_postman_id":"89fe7374-e97a-400d-8907-ca45bf902d87"},{"name":"Update","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"129f06ed-510f-4407-b83c-6a37073a6156"}}],"id":"0d7630ca-624d-43d3-8c5b-0a9e0897a997","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"city_id\": 1,\n    \"slug\": \"narimanov\",\n    \"is_active\": true,\n    \"sort_order\": 1,\n    \"translations\": {\n        \"name\": {\n            \"en\": \"Narimanov\",\n            \"az\": \"N\\u0259rimanov\",\n            \"ru\": \"\\u041d\\u0430\\u0440\\u0438\\u043c\\u0430\\u043d\\u043e\\u0432\\u0441\\u043a\\u0438\\u0439\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/districts/1","urlObject":{"path":["admin","districts","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"7af8a22f-9244-4409-b3ff-ba14188898b6","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/districts/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"city_id\": 1,\n        \"slug\": \"narimanov\",\n        \"is_active\": true,\n        \"sort_order\": 1,\n        \"translations\": {\n            \"name\": {\n                \"en\": \"Narimanov\",\n                \"az\": \"Nərimanov\",\n                \"ru\": \"Наримановский\"\n            }\n        }\n    }\n}"}],"_postman_id":"0d7630ca-624d-43d3-8c5b-0a9e0897a997"},{"name":"Delete","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"14681c7c-b19d-4a3f-ab16-94a016497ac4"}}],"id":"69351eea-301b-4509-a3d2-2d42b4f8be2f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/districts/1","urlObject":{"path":["admin","districts","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"81af1c66-d671-401f-9113-d62f4223190b","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/districts/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"69351eea-301b-4509-a3d2-2d42b4f8be2f"},{"name":"Sort list","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"a9dd9ffd-ae55-4165-b439-dbd447a592ea"}}],"id":"d5d77a85-3623-4497-ac15-50d4963bde37","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/districts/sort?city_id=1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Ordered rows for drag-and-drop sort UI. Requires <code>city_id</code>.</p>\n","urlObject":{"path":["admin","districts","sort"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Required sort scope</p>\n","type":"text/plain"},"key":"city_id","value":"1"}],"variable":[]}},"response":[{"id":"332a8397-23e2-4a73-ac93-7fdc1f881195","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/districts/sort?city_id=1","host":["https://api.loya.cc/api/v1"],"path":["admin","districts","sort"],"query":[{"key":"city_id","value":"1","description":"Required sort scope"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Example\",\n            \"sort_order\": 0\n        }\n    ],\n    \"meta\": {\n        \"scope\": null,\n        \"scopeValue\": null\n    }\n}"}],"_postman_id":"d5d77a85-3623-4497-ac15-50d4963bde37"},{"name":"Reorder","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"97cceb84-3352-47cd-b534-80fd6c5fbbc4"}}],"id":"827732b8-cb1c-4260-9df0-77fb7ec30793","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"ids\": [\n        1,\n        2,\n        3\n    ],\n    \"city_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/districts/sort","description":"<h2 id=\"body\">Body</h2>\n<p><code>ids</code> — ordered record IDs. Also send <code>city_id</code>.</p>\n","urlObject":{"path":["admin","districts","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"1363bc90-f4ad-41a9-82b1-db2a4552ce0c","name":"OK","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/districts/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 3\n    }\n}"}],"_postman_id":"827732b8-cb1c-4260-9df0-77fb7ec30793"},{"name":"Bulk disable","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"3debec6f-1b8f-4855-bfae-6f03ec9981fb"}}],"id":"259ccc91-ab61-449f-b6e0-e88eed9664a3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": false,\n    \"city_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/districts/bulk-active","description":"<h2 id=\"summary\">Summary</h2>\n<p>Set <code>is_active</code> on all Districts rows (omit scope to affect every row). Optional <code>city_id</code> limits the update to that parent.</p>\n<h2 id=\"body\">Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>is_active</td>\n<td>boolean</td>\n<td>yes</td>\n<td><code>false</code> disables, <code>true</code> enables</td>\n</tr>\n<tr>\n<td>city_id</td>\n<td>int</td>\n<td>no</td>\n<td>Limit to this parent; omit to update all</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-200\">Response <code>200</code></h2>\n<p><code>json\\n{\\n  \"data\": { \"updated\": 12, \"isActive\": false }\\n}\\n</code></p>\n","urlObject":{"path":["admin","districts","bulk-active"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"0542c0a1-0b35-4c87-8dd9-2b83b03afe1a","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/districts/bulk-active"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 12,\n        \"isActive\": false\n    }\n}"}],"_postman_id":"259ccc91-ab61-449f-b6e0-e88eed9664a3"},{"name":"Bulk enable","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"f58dd9ff-7caf-40e4-b727-9210ac180670"}}],"id":"00868793-13c6-41b1-b3a3-6e9fb4c42d17","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": true,\n    \"city_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/districts/bulk-active","description":"<h2 id=\"summary\">Summary</h2>\n<p>Enable all Districts rows (same endpoint as Bulk disable).</p>\n","urlObject":{"path":["admin","districts","bulk-active"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"5f204498-e4d4-49e9-8d82-bf453b837de5","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/districts/bulk-active"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 12,\n        \"isActive\": true\n    }\n}"}],"_postman_id":"00868793-13c6-41b1-b3a3-6e9fb4c42d17"}],"id":"b201f151-9ceb-4020-88f4-bb05b11fb592","_postman_id":"b201f151-9ceb-4020-88f4-bb05b11fb592","description":""},{"name":"Subway Stations","item":[{"name":"List","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('subway-stationsId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"ebec8e4d-b201-4b05-b41a-e261db0aaf22"}}],"id":"9c78aca1-e472-4f56-9b9b-7f03c299b52c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/subway-stations?page=1&per_page=25&search=&sort=&city_id=1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Paginated Library list for <code>subway-stations</code>.</p>\n","urlObject":{"path":["admin","subway-stations"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Page number</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Page size (max 100; icons max 200)</p>\n","type":"text/plain"},"key":"per_page","value":"25"},{"description":{"content":"<p>Search query</p>\n","type":"text/plain"},"key":"search","value":""},{"description":{"content":"<p>Column name; prefix with - for descending</p>\n","type":"text/plain"},"key":"sort","value":""},{"description":{"content":"<p>Filter / sort scope</p>\n","type":"text/plain"},"key":"city_id","value":"1"}],"variable":[]}},"response":[{"id":"f105f335-80c3-467f-8402-5066979ae785","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/subway-stations?page=1&per_page=25&search=&sort=&city_id=1","host":["https://api.loya.cc/api/v1"],"path":["admin","subway-stations"],"query":[{"key":"page","value":"1","description":"Page number"},{"key":"per_page","value":"25","description":"Page size (max 100; icons max 200)"},{"key":"search","value":"","description":"Search query"},{"key":"sort","value":"","description":"Column name; prefix with - for descending"},{"key":"city_id","value":"1","description":"Filter / sort scope"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"attributes\": {\n                \"name\": \"Example\"\n            },\n            \"relations\": {},\n            \"translations\": {},\n            \"counts\": {},\n            \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"9c78aca1-e472-4f56-9b9b-7f03c299b52c"},{"name":"Get one","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"7e092e6d-b9ce-4e48-8209-96c57bf87036"}}],"id":"44bd937a-46ea-4381-9d34-1bf30d8b8779","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/subway-stations/{{subway-stationsId}}","urlObject":{"path":["admin","subway-stations","{{subway-stationsId}}"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"06a53c68-32a7-4d1b-bb17-b743eb45e112","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/subway-stations/{{subway-stationsId}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"44bd937a-46ea-4381-9d34-1bf30d8b8779"},{"name":"Create","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('subway-stationsId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"67168799-b36f-4a65-87cd-47ba4339d82d"}}],"id":"a517b4f9-71a7-4c9c-8229-498abe43653c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"city_id\": 1,\n    \"slug\": \"28-may\",\n    \"is_active\": true,\n    \"sort_order\": 1,\n    \"latitude\": 40.3798,\n    \"longitude\": 49.8488,\n    \"translations\": {\n        \"name\": {\n            \"en\": \"28 May\",\n            \"az\": \"28 May\",\n            \"ru\": \"28 \\u041c\\u0430\\u044f\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/subway-stations","urlObject":{"path":["admin","subway-stations"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"3b82cb17-591b-47a6-b9d8-d01bf552ce1c","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/subway-stations"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"attributes\": {\n            \"city_id\": 1,\n            \"slug\": \"28-may\",\n            \"is_active\": true,\n            \"sort_order\": 1,\n            \"latitude\": 40.3798,\n            \"longitude\": 49.8488\n        },\n        \"relations\": {},\n        \"translations\": {\n            \"name\": {\n                \"en\": \"28 May\",\n                \"az\": \"28 May\",\n                \"ru\": \"28 Мая\"\n            }\n        },\n        \"counts\": {},\n        \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n    }\n}"}],"_postman_id":"a517b4f9-71a7-4c9c-8229-498abe43653c"},{"name":"Update","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"9a0d8aac-1bc2-450a-b49a-8026af94f560"}}],"id":"c7531bc4-05a8-4827-a154-15dbbf088c97","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"city_id\": 1,\n    \"slug\": \"28-may\",\n    \"is_active\": true,\n    \"sort_order\": 1,\n    \"latitude\": 40.3798,\n    \"longitude\": 49.8488,\n    \"translations\": {\n        \"name\": {\n            \"en\": \"28 May\",\n            \"az\": \"28 May\",\n            \"ru\": \"28 \\u041c\\u0430\\u044f\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/subway-stations/{{subway-stationsId}}","urlObject":{"path":["admin","subway-stations","{{subway-stationsId}}"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"f1a2a155-c2b8-47bf-9b06-572a962c682b","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/subway-stations/{{subway-stationsId}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"city_id\": 1,\n        \"slug\": \"28-may\",\n        \"is_active\": true,\n        \"sort_order\": 1,\n        \"latitude\": 40.3798,\n        \"longitude\": 49.8488,\n        \"translations\": {\n            \"name\": {\n                \"en\": \"28 May\",\n                \"az\": \"28 May\",\n                \"ru\": \"28 Мая\"\n            }\n        }\n    }\n}"}],"_postman_id":"c7531bc4-05a8-4827-a154-15dbbf088c97"},{"name":"Delete","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"799bab9d-1190-463d-86ac-5c3baf10121e"}}],"id":"4411c7d2-68d5-473d-b312-337183dc1dcb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/subway-stations/{{subway-stationsId}}","urlObject":{"path":["admin","subway-stations","{{subway-stationsId}}"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"f41fca48-2b94-4c6a-8c54-f38e2626fe00","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/subway-stations/{{subway-stationsId}}"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"4411c7d2-68d5-473d-b312-337183dc1dcb"},{"name":"Sort list","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"8796493c-68bc-4bca-93b9-7bbeaa4f9746"}}],"id":"660379d1-7e68-449e-bed1-075bcf3e2df0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/subway-stations/sort?city_id=1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Ordered rows for drag-and-drop sort UI. Requires <code>city_id</code>.</p>\n","urlObject":{"path":["admin","subway-stations","sort"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Required sort scope</p>\n","type":"text/plain"},"key":"city_id","value":"1"}],"variable":[]}},"response":[{"id":"d09a3dae-3524-4594-8f09-bc4ce87134a4","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/subway-stations/sort?city_id=1","host":["https://api.loya.cc/api/v1"],"path":["admin","subway-stations","sort"],"query":[{"key":"city_id","value":"1","description":"Required sort scope"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Example\",\n            \"sort_order\": 0\n        }\n    ],\n    \"meta\": {\n        \"scope\": null,\n        \"scopeValue\": null\n    }\n}"}],"_postman_id":"660379d1-7e68-449e-bed1-075bcf3e2df0"},{"name":"Reorder","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"d3b2012a-99cc-4521-9797-0a2289b94f49"}}],"id":"2f533928-3e53-47f5-9144-a002ed63b065","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"ids\": [\n        1,\n        2,\n        3\n    ],\n    \"city_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/subway-stations/sort","description":"<h2 id=\"body\">Body</h2>\n<p><code>ids</code> — ordered record IDs. Also send <code>city_id</code>.</p>\n","urlObject":{"path":["admin","subway-stations","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"fc857fb5-9af2-47e5-b9e0-a7c80096a2c3","name":"OK","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/subway-stations/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 3\n    }\n}"}],"_postman_id":"2f533928-3e53-47f5-9144-a002ed63b065"},{"name":"Bulk disable","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"927ff937-b993-4b71-8343-f5e077799795"}}],"id":"c8776a4c-aa5a-4342-b891-1a88e1ab4c3c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": false,\n    \"city_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/subway-stations/bulk-active","description":"<h2 id=\"summary\">Summary</h2>\n<p>Set <code>is_active</code> on all Subway Stations rows (omit scope to affect every row). Optional <code>city_id</code> limits the update to that parent.</p>\n<h2 id=\"body\">Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>is_active</td>\n<td>boolean</td>\n<td>yes</td>\n<td><code>false</code> disables, <code>true</code> enables</td>\n</tr>\n<tr>\n<td>city_id</td>\n<td>int</td>\n<td>no</td>\n<td>Limit to this parent; omit to update all</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-200\">Response <code>200</code></h2>\n<p><code>json\\n{\\n  \"data\": { \"updated\": 12, \"isActive\": false }\\n}\\n</code></p>\n","urlObject":{"path":["admin","subway-stations","bulk-active"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"e845e2f7-1f26-4b87-b8c4-c558af796875","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/subway-stations/bulk-active"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 12,\n        \"isActive\": false\n    }\n}"}],"_postman_id":"c8776a4c-aa5a-4342-b891-1a88e1ab4c3c"},{"name":"Bulk enable","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"f6a675d8-3ddc-4fad-8c92-e99eac87b9be"}}],"id":"136db6cb-e731-4d9c-b2e5-d2d4a67e41bd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": true,\n    \"city_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/subway-stations/bulk-active","description":"<h2 id=\"summary\">Summary</h2>\n<p>Enable all Subway Stations rows (same endpoint as Bulk disable).</p>\n","urlObject":{"path":["admin","subway-stations","bulk-active"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"e70c5b39-9ada-4425-b7dc-eae62777102d","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/subway-stations/bulk-active"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 12,\n        \"isActive\": true\n    }\n}"}],"_postman_id":"136db6cb-e731-4d9c-b2e5-d2d4a67e41bd"}],"id":"a221fe59-3b4a-47db-ae75-5de1c03796f6","_postman_id":"a221fe59-3b4a-47db-ae75-5de1c03796f6","description":""},{"name":"Category Filter Groups","item":[{"name":"List","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('category-filter-groupsId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"65180a7f-668a-4720-9840-2caf0b677439"}}],"id":"89f311dc-c751-4b50-a584-d846abbd3f84","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/category-filter-groups?page=1&per_page=25&search=&sort=&category_id=1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Paginated Library list for <code>category-filter-groups</code>.</p>\n","urlObject":{"path":["admin","category-filter-groups"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Page number</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Page size (max 100; icons max 200)</p>\n","type":"text/plain"},"key":"per_page","value":"25"},{"description":{"content":"<p>Search query</p>\n","type":"text/plain"},"key":"search","value":""},{"description":{"content":"<p>Column name; prefix with - for descending</p>\n","type":"text/plain"},"key":"sort","value":""},{"description":{"content":"<p>Filter / sort scope</p>\n","type":"text/plain"},"key":"category_id","value":"1"}],"variable":[]}},"response":[{"id":"511eb3a7-c58d-4d69-8fd9-b6d5f08a3b2d","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/category-filter-groups?page=1&per_page=25&search=&sort=&category_id=1","host":["https://api.loya.cc/api/v1"],"path":["admin","category-filter-groups"],"query":[{"key":"page","value":"1","description":"Page number"},{"key":"per_page","value":"25","description":"Page size (max 100; icons max 200)"},{"key":"search","value":"","description":"Search query"},{"key":"sort","value":"","description":"Column name; prefix with - for descending"},{"key":"category_id","value":"1","description":"Filter / sort scope"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"attributes\": {\n                \"name\": \"Example\"\n            },\n            \"relations\": {},\n            \"translations\": {},\n            \"counts\": {},\n            \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"89f311dc-c751-4b50-a584-d846abbd3f84"},{"name":"Get one","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"a9591732-a7cc-41c1-ad98-4fc69e4251c1"}}],"id":"53f2ca13-b76d-4bd6-82dd-4c04de22da70","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/category-filter-groups/1","urlObject":{"path":["admin","category-filter-groups","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"276143bc-c39f-4f8b-9127-a40c9754ce8f","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/category-filter-groups/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"53f2ca13-b76d-4bd6-82dd-4c04de22da70"},{"name":"Create","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('category-filter-groupsId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"02d42e36-0cd3-4246-aa0f-538c68daea08"}}],"id":"6e60bc72-edb0-4dbb-a913-68685ebd9987","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"category_id\": 1,\n    \"slug\": \"cuisines\",\n    \"sort_order\": 1,\n    \"is_active\": true,\n    \"translations\": {\n        \"label\": {\n            \"en\": \"Cuisine\",\n            \"az\": \"M\\u0259tb\\u0259x\",\n            \"ru\": \"\\u041a\\u0443\\u0445\\u043d\\u044f\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/category-filter-groups","urlObject":{"path":["admin","category-filter-groups"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"46eeb53e-d82b-43e6-bd32-bd0a88070eef","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/category-filter-groups"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"attributes\": {\n            \"category_id\": 1,\n            \"slug\": \"cuisines\",\n            \"sort_order\": 1,\n            \"is_active\": true\n        },\n        \"relations\": {},\n        \"translations\": {\n            \"label\": {\n                \"en\": \"Cuisine\",\n                \"az\": \"Mətbəx\",\n                \"ru\": \"Кухня\"\n            }\n        },\n        \"counts\": {},\n        \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n    }\n}"}],"_postman_id":"6e60bc72-edb0-4dbb-a913-68685ebd9987"},{"name":"Update","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"b8102144-73c1-4262-8639-d5975c1cf7df"}}],"id":"f34bdf52-da3f-4837-98d6-af43ec017115","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"category_id\": 1,\n    \"slug\": \"cuisines\",\n    \"sort_order\": 1,\n    \"is_active\": true,\n    \"translations\": {\n        \"label\": {\n            \"en\": \"Cuisine\",\n            \"az\": \"M\\u0259tb\\u0259x\",\n            \"ru\": \"\\u041a\\u0443\\u0445\\u043d\\u044f\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/category-filter-groups/1","urlObject":{"path":["admin","category-filter-groups","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"5f3298a0-5f3a-4d13-8798-5170c106715c","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/category-filter-groups/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"category_id\": 1,\n        \"slug\": \"cuisines\",\n        \"sort_order\": 1,\n        \"is_active\": true,\n        \"translations\": {\n            \"label\": {\n                \"en\": \"Cuisine\",\n                \"az\": \"Mətbəx\",\n                \"ru\": \"Кухня\"\n            }\n        }\n    }\n}"}],"_postman_id":"f34bdf52-da3f-4837-98d6-af43ec017115"},{"name":"Delete","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"bc3edc0a-89d0-4a83-a661-ca36fa3a4d63"}}],"id":"06fcdca1-bf57-4288-a926-192419fba40e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/category-filter-groups/1","urlObject":{"path":["admin","category-filter-groups","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"96608c24-5c46-44c1-a066-4b317177ae2e","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/category-filter-groups/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"06fcdca1-bf57-4288-a926-192419fba40e"},{"name":"Sort list","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"29a73dcb-8a44-4c4d-8f36-078b27841eb5"}}],"id":"376a4488-e921-48aa-acd2-95200b94e79d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/category-filter-groups/sort?category_id=1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Ordered rows for drag-and-drop sort UI. Requires <code>category_id</code>.</p>\n","urlObject":{"path":["admin","category-filter-groups","sort"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Required sort scope</p>\n","type":"text/plain"},"key":"category_id","value":"1"}],"variable":[]}},"response":[{"id":"36d24af6-a288-433e-b48f-0b702e6b1897","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/category-filter-groups/sort?category_id=1","host":["https://api.loya.cc/api/v1"],"path":["admin","category-filter-groups","sort"],"query":[{"key":"category_id","value":"1","description":"Required sort scope"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Example\",\n            \"sort_order\": 0\n        }\n    ],\n    \"meta\": {\n        \"scope\": null,\n        \"scopeValue\": null\n    }\n}"}],"_postman_id":"376a4488-e921-48aa-acd2-95200b94e79d"},{"name":"Reorder","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"4c0968a3-8e24-4ece-8058-bf36be61348b"}}],"id":"a307d817-0c6a-4a5f-8421-8ad090f23fb8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"ids\": [\n        1,\n        2,\n        3\n    ],\n    \"category_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/category-filter-groups/sort","description":"<h2 id=\"body\">Body</h2>\n<p><code>ids</code> — ordered record IDs. Also send <code>category_id</code>.</p>\n","urlObject":{"path":["admin","category-filter-groups","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"2a2481e5-49d3-453c-89b9-5cea203126aa","name":"OK","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/category-filter-groups/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 3\n    }\n}"}],"_postman_id":"a307d817-0c6a-4a5f-8421-8ad090f23fb8"},{"name":"Bulk disable","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"e3703521-e0ff-48b4-a757-014d16bd49db"}}],"id":"f890158e-aa87-4279-84c9-5afc9118cbbd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": false,\n    \"category_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/category-filter-groups/bulk-active","description":"<h2 id=\"summary\">Summary</h2>\n<p>Set <code>is_active</code> on all Category Filter Groups rows (omit scope to affect every row). Optional <code>category_id</code> limits the update to that parent.</p>\n<h2 id=\"body\">Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>is_active</td>\n<td>boolean</td>\n<td>yes</td>\n<td><code>false</code> disables, <code>true</code> enables</td>\n</tr>\n<tr>\n<td>category_id</td>\n<td>int</td>\n<td>no</td>\n<td>Limit to this parent; omit to update all</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-200\">Response <code>200</code></h2>\n<p><code>json\\n{\\n  \"data\": { \"updated\": 12, \"isActive\": false }\\n}\\n</code></p>\n","urlObject":{"path":["admin","category-filter-groups","bulk-active"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"3e8075cf-4b10-47f2-9e37-7997e1292e02","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/category-filter-groups/bulk-active"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 12,\n        \"isActive\": false\n    }\n}"}],"_postman_id":"f890158e-aa87-4279-84c9-5afc9118cbbd"},{"name":"Bulk enable","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"2c084fab-c892-4271-ae70-921a05f42bab"}}],"id":"812af2e2-4934-41c6-b970-f48ba16336fa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": true,\n    \"category_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/category-filter-groups/bulk-active","description":"<h2 id=\"summary\">Summary</h2>\n<p>Enable all Category Filter Groups rows (same endpoint as Bulk disable).</p>\n","urlObject":{"path":["admin","category-filter-groups","bulk-active"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"5f532615-eff6-451a-9f5b-e3046250ca3d","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/category-filter-groups/bulk-active"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 12,\n        \"isActive\": true\n    }\n}"}],"_postman_id":"812af2e2-4934-41c6-b970-f48ba16336fa"}],"id":"62c22164-e33d-461f-99fb-e9414c9d4c32","_postman_id":"62c22164-e33d-461f-99fb-e9414c9d4c32","description":""},{"name":"Category Filter Fields","item":[{"name":"List","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('category-filter-fieldsId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"d4228f52-9b5d-41cf-8897-373bf0dcdd3b"}}],"id":"39104bd3-234c-4235-ad75-11d20a2e9a46","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/category-filter-fields?page=1&per_page=25&search=&sort=&group_id=1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Paginated Library list for <code>category-filter-fields</code>.</p>\n","urlObject":{"path":["admin","category-filter-fields"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Page number</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Page size (max 100; icons max 200)</p>\n","type":"text/plain"},"key":"per_page","value":"25"},{"description":{"content":"<p>Search query</p>\n","type":"text/plain"},"key":"search","value":""},{"description":{"content":"<p>Column name; prefix with - for descending</p>\n","type":"text/plain"},"key":"sort","value":""},{"description":{"content":"<p>Filter / sort scope</p>\n","type":"text/plain"},"key":"group_id","value":"1"}],"variable":[]}},"response":[{"id":"dffff137-60d6-413c-b901-330e8c57c945","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/category-filter-fields?page=1&per_page=25&search=&sort=&group_id=1","host":["https://api.loya.cc/api/v1"],"path":["admin","category-filter-fields"],"query":[{"key":"page","value":"1","description":"Page number"},{"key":"per_page","value":"25","description":"Page size (max 100; icons max 200)"},{"key":"search","value":"","description":"Search query"},{"key":"sort","value":"","description":"Column name; prefix with - for descending"},{"key":"group_id","value":"1","description":"Filter / sort scope"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"attributes\": {\n                \"name\": \"Example\"\n            },\n            \"relations\": {},\n            \"translations\": {},\n            \"counts\": {},\n            \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"39104bd3-234c-4235-ad75-11d20a2e9a46"},{"name":"Get one","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"a879907b-5e29-4b53-b12c-9c689b2bdf0d"}}],"id":"34ddc082-f3f0-4fa1-9594-fbc285d29b15","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/category-filter-fields/1","urlObject":{"path":["admin","category-filter-fields","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"c1ef636f-ab87-4e52-8254-dbe88692ff3c","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/category-filter-fields/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"34ddc082-f3f0-4fa1-9594-fbc285d29b15"},{"name":"Create","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('category-filter-fieldsId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"c089d22d-d2de-4f98-999f-a52799628032"}}],"id":"6dbbc83a-5ce3-4bb5-bbd0-44ca8171ad74","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"group_id\": 1,\n    \"key\": \"cuisine\",\n    \"type\": \"multi_select\",\n    \"config\": {},\n    \"sort_order\": 1,\n    \"translations\": {\n        \"label\": {\n            \"en\": \"Cuisine\",\n            \"az\": \"M\\u0259tb\\u0259x\",\n            \"ru\": \"\\u041a\\u0443\\u0445\\u043d\\u044f\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/category-filter-fields","urlObject":{"path":["admin","category-filter-fields"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"cfc0e446-5a2c-4f21-a666-714ae6360cc5","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/category-filter-fields"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"attributes\": {\n            \"group_id\": 1,\n            \"key\": \"cuisine\",\n            \"type\": \"multi_select\",\n            \"config\": {},\n            \"sort_order\": 1\n        },\n        \"relations\": {},\n        \"translations\": {\n            \"label\": {\n                \"en\": \"Cuisine\",\n                \"az\": \"Mətbəx\",\n                \"ru\": \"Кухня\"\n            }\n        },\n        \"counts\": {},\n        \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n    }\n}"}],"_postman_id":"6dbbc83a-5ce3-4bb5-bbd0-44ca8171ad74"},{"name":"Update","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"1f52a8d3-79f3-453c-8f12-277893a26aac"}}],"id":"a19fdba6-2959-49e1-92c9-9227e3b5818b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"group_id\": 1,\n    \"key\": \"cuisine\",\n    \"type\": \"multi_select\",\n    \"config\": {},\n    \"sort_order\": 1,\n    \"translations\": {\n        \"label\": {\n            \"en\": \"Cuisine\",\n            \"az\": \"M\\u0259tb\\u0259x\",\n            \"ru\": \"\\u041a\\u0443\\u0445\\u043d\\u044f\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/category-filter-fields/1","urlObject":{"path":["admin","category-filter-fields","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"554ccf81-e6e6-45a4-addf-46b4d675d710","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/category-filter-fields/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"group_id\": 1,\n        \"key\": \"cuisine\",\n        \"type\": \"multi_select\",\n        \"config\": {},\n        \"sort_order\": 1,\n        \"translations\": {\n            \"label\": {\n                \"en\": \"Cuisine\",\n                \"az\": \"Mətbəx\",\n                \"ru\": \"Кухня\"\n            }\n        }\n    }\n}"}],"_postman_id":"a19fdba6-2959-49e1-92c9-9227e3b5818b"},{"name":"Delete","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"979298ea-4f6d-48cc-b027-2a114d566823"}}],"id":"5f76490e-6fd4-4c59-bcb0-602ff3511141","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/category-filter-fields/1","urlObject":{"path":["admin","category-filter-fields","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"901478ee-4f6c-46f6-a100-ad26980f416a","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/category-filter-fields/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"5f76490e-6fd4-4c59-bcb0-602ff3511141"},{"name":"Sort list","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"5fd5851f-df87-4bd3-8db7-d4126ecabf40"}}],"id":"262e66ed-a1ac-4c4e-bca4-d693b93b5670","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/category-filter-fields/sort?group_id=1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Ordered rows for drag-and-drop sort UI. Requires <code>group_id</code>.</p>\n","urlObject":{"path":["admin","category-filter-fields","sort"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Required sort scope</p>\n","type":"text/plain"},"key":"group_id","value":"1"}],"variable":[]}},"response":[{"id":"e8e2787e-fcd2-49ec-9ddb-9db0f22478cc","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/category-filter-fields/sort?group_id=1","host":["https://api.loya.cc/api/v1"],"path":["admin","category-filter-fields","sort"],"query":[{"key":"group_id","value":"1","description":"Required sort scope"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Example\",\n            \"sort_order\": 0\n        }\n    ],\n    \"meta\": {\n        \"scope\": null,\n        \"scopeValue\": null\n    }\n}"}],"_postman_id":"262e66ed-a1ac-4c4e-bca4-d693b93b5670"},{"name":"Reorder","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"37cadcab-b831-4e14-aacc-067c8948e26c"}}],"id":"5ec48360-4fe3-4aba-af94-982c121d3021","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"ids\": [\n        1,\n        2,\n        3\n    ],\n    \"group_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/category-filter-fields/sort","description":"<h2 id=\"body\">Body</h2>\n<p><code>ids</code> — ordered record IDs. Also send <code>group_id</code>.</p>\n","urlObject":{"path":["admin","category-filter-fields","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"6e0ceee4-ac67-4d59-8a1d-0e020957839b","name":"OK","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/category-filter-fields/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 3\n    }\n}"}],"_postman_id":"5ec48360-4fe3-4aba-af94-982c121d3021"}],"id":"0cab3273-6fda-4a63-bde4-99ef6ef331b2","_postman_id":"0cab3273-6fda-4a63-bde4-99ef6ef331b2","description":""},{"name":"Category Filter Options","item":[{"name":"List","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('category-filter-optionsId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"ac101307-d7b1-4e7e-81be-b0797965a010"}}],"id":"9d73976f-7659-4fa7-944d-1b18e20686d2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/category-filter-options?page=1&per_page=25&search=&sort=&field_id=1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Paginated Library list for <code>category-filter-options</code>.</p>\n","urlObject":{"path":["admin","category-filter-options"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Page number</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Page size (max 100; icons max 200)</p>\n","type":"text/plain"},"key":"per_page","value":"25"},{"description":{"content":"<p>Search query</p>\n","type":"text/plain"},"key":"search","value":""},{"description":{"content":"<p>Column name; prefix with - for descending</p>\n","type":"text/plain"},"key":"sort","value":""},{"description":{"content":"<p>Filter / sort scope</p>\n","type":"text/plain"},"key":"field_id","value":"1"}],"variable":[]}},"response":[{"id":"707d3340-ea65-4254-8dbf-1be985ecfa52","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/category-filter-options?page=1&per_page=25&search=&sort=&field_id=1","host":["https://api.loya.cc/api/v1"],"path":["admin","category-filter-options"],"query":[{"key":"page","value":"1","description":"Page number"},{"key":"per_page","value":"25","description":"Page size (max 100; icons max 200)"},{"key":"search","value":"","description":"Search query"},{"key":"sort","value":"","description":"Column name; prefix with - for descending"},{"key":"field_id","value":"1","description":"Filter / sort scope"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"attributes\": {\n                \"name\": \"Example\"\n            },\n            \"relations\": {},\n            \"translations\": {},\n            \"counts\": {},\n            \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"9d73976f-7659-4fa7-944d-1b18e20686d2"},{"name":"Get one","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"0e7e9464-5a27-4dcb-9ca7-b62b6e346c32"}}],"id":"2cf5d456-4fc3-4d43-bc48-64c845120da6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/category-filter-options/1","urlObject":{"path":["admin","category-filter-options","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"915433fe-3791-4122-8a8c-aff64013fff8","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/category-filter-options/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"2cf5d456-4fc3-4d43-bc48-64c845120da6"},{"name":"Create","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('category-filter-optionsId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"2a5947c4-b524-48b3-888b-f48dd5787a30"}}],"id":"a204b640-a740-4f62-8756-f222915d7900","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"field_id\": 1,\n    \"value\": \"italian\",\n    \"icon\": null,\n    \"sort_order\": 1,\n    \"translations\": {\n        \"label\": {\n            \"en\": \"Italian\",\n            \"az\": \"\\u0130talyan\",\n            \"ru\": \"\\u0418\\u0442\\u0430\\u043b\\u044c\\u044f\\u043d\\u0441\\u043a\\u0430\\u044f\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/category-filter-options","urlObject":{"path":["admin","category-filter-options"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"6922674f-3461-4a0e-99aa-76c1e14a1c79","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/category-filter-options"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"attributes\": {\n            \"field_id\": 1,\n            \"value\": \"italian\",\n            \"icon\": null,\n            \"sort_order\": 1\n        },\n        \"relations\": {},\n        \"translations\": {\n            \"label\": {\n                \"en\": \"Italian\",\n                \"az\": \"İtalyan\",\n                \"ru\": \"Итальянская\"\n            }\n        },\n        \"counts\": {},\n        \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n    }\n}"}],"_postman_id":"a204b640-a740-4f62-8756-f222915d7900"},{"name":"Update","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"b87e1ec8-83cd-4cbb-88a5-0fd18eae8df4"}}],"id":"9dca6487-640b-4731-ac4b-013897c40d17","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"field_id\": 1,\n    \"value\": \"italian\",\n    \"icon\": null,\n    \"sort_order\": 1,\n    \"translations\": {\n        \"label\": {\n            \"en\": \"Italian\",\n            \"az\": \"\\u0130talyan\",\n            \"ru\": \"\\u0418\\u0442\\u0430\\u043b\\u044c\\u044f\\u043d\\u0441\\u043a\\u0430\\u044f\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/category-filter-options/1","urlObject":{"path":["admin","category-filter-options","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"f2aad1a1-6e9c-4f8c-a914-d3697ba85559","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/category-filter-options/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"field_id\": 1,\n        \"value\": \"italian\",\n        \"icon\": null,\n        \"sort_order\": 1,\n        \"translations\": {\n            \"label\": {\n                \"en\": \"Italian\",\n                \"az\": \"İtalyan\",\n                \"ru\": \"Итальянская\"\n            }\n        }\n    }\n}"}],"_postman_id":"9dca6487-640b-4731-ac4b-013897c40d17"},{"name":"Delete","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"3d8bab1d-34d4-46ce-90b8-bcb92ffe3eb1"}}],"id":"226ec8c1-25cc-42c2-944a-1f2b98076f93","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/category-filter-options/1","urlObject":{"path":["admin","category-filter-options","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"fee77bf0-e814-49e3-9a29-a142b1e12b7f","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/category-filter-options/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"226ec8c1-25cc-42c2-944a-1f2b98076f93"},{"name":"Sort list","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"251638c0-89d4-4db0-8b4c-a2e813bb5ecf"}}],"id":"443bafe0-f873-4158-ab2c-3fe1db0b2c19","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/category-filter-options/sort?field_id=1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Ordered rows for drag-and-drop sort UI. Requires <code>field_id</code>.</p>\n","urlObject":{"path":["admin","category-filter-options","sort"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Required sort scope</p>\n","type":"text/plain"},"key":"field_id","value":"1"}],"variable":[]}},"response":[{"id":"7499372a-c968-4ffb-b8ed-5db350e6b9ac","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/category-filter-options/sort?field_id=1","host":["https://api.loya.cc/api/v1"],"path":["admin","category-filter-options","sort"],"query":[{"key":"field_id","value":"1","description":"Required sort scope"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Example\",\n            \"sort_order\": 0\n        }\n    ],\n    \"meta\": {\n        \"scope\": null,\n        \"scopeValue\": null\n    }\n}"}],"_postman_id":"443bafe0-f873-4158-ab2c-3fe1db0b2c19"},{"name":"Reorder","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"9e76f7dd-db3f-4f94-ab35-7541da7a83f7"}}],"id":"50ea3448-45f5-4798-9871-d63057892c2a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"ids\": [\n        1,\n        2,\n        3\n    ],\n    \"field_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/category-filter-options/sort","description":"<h2 id=\"body\">Body</h2>\n<p><code>ids</code> — ordered record IDs. Also send <code>field_id</code>.</p>\n","urlObject":{"path":["admin","category-filter-options","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"5ac23b8a-970a-4f73-b770-59367b3c8f43","name":"OK","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/category-filter-options/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 3\n    }\n}"}],"_postman_id":"50ea3448-45f5-4798-9871-d63057892c2a"}],"id":"2945c1ec-b2d5-4501-b996-5b3476def30a","_postman_id":"2945c1ec-b2d5-4501-b996-5b3476def30a","description":""},{"name":"Home Banners","item":[{"name":"List","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('home-bannersId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"9e94b02d-e2d5-457e-a706-1d78d34d712c"}}],"id":"4151543d-f1dd-486e-b475-ca53d21c06d9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/home-banners?page=1&per_page=25&search=&sort=","description":"<h2 id=\"summary\">Summary</h2>\n<p>Paginated Library list for <code>home-banners</code>.</p>\n","urlObject":{"path":["admin","home-banners"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Page number</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Page size (max 100; icons max 200)</p>\n","type":"text/plain"},"key":"per_page","value":"25"},{"description":{"content":"<p>Search query</p>\n","type":"text/plain"},"key":"search","value":""},{"description":{"content":"<p>Column name; prefix with - for descending</p>\n","type":"text/plain"},"key":"sort","value":""}],"variable":[]}},"response":[{"id":"f4ad5d49-7557-4071-90d8-cedb2420abb7","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/home-banners?page=1&per_page=25&search=&sort=","host":["https://api.loya.cc/api/v1"],"path":["admin","home-banners"],"query":[{"key":"page","value":"1","description":"Page number"},{"key":"per_page","value":"25","description":"Page size (max 100; icons max 200)"},{"key":"search","value":"","description":"Search query"},{"key":"sort","value":"","description":"Column name; prefix with - for descending"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"attributes\": {\n                \"name\": \"Example\"\n            },\n            \"relations\": {},\n            \"translations\": {},\n            \"counts\": {},\n            \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"4151543d-f1dd-486e-b475-ca53d21c06d9"},{"name":"Get one","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"d9af9ba1-a0f2-4836-abeb-c5d6f0e873da"}}],"id":"ebfa2975-3fa6-411b-9538-01ba708a9ca6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/home-banners/1","urlObject":{"path":["admin","home-banners","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"f6badd4d-efd4-460f-8e9c-5eb559ac4da8","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/home-banners/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"ebfa2975-3fa6-411b-9538-01ba708a9ca6"},{"name":"Create","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('home-bannersId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"35651508-0b54-44b2-aca3-816bd11e735c"}}],"id":"4693c82c-8de6-4a88-94d1-b595611622e6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"image\": \"banners/welcome.jpg\",\n    \"link_type\": \"branch\",\n    \"link_id\": 1,\n    \"sort_order\": 1,\n    \"is_active\": true,\n    \"translations\": {\n        \"title\": {\n            \"en\": \"Deals and loyalty\",\n            \"az\": \"Endiriml\\u0259r\",\n            \"ru\": \"\\u0410\\u043a\\u0446\\u0438\\u0438\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/home-banners","urlObject":{"path":["admin","home-banners"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"d0b9d7ac-375c-434b-9178-c88d0fd1a782","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/home-banners"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"attributes\": {\n            \"image\": \"banners/welcome.jpg\",\n            \"link_type\": \"branch\",\n            \"link_id\": 1,\n            \"sort_order\": 1,\n            \"is_active\": true\n        },\n        \"relations\": {},\n        \"translations\": {\n            \"title\": {\n                \"en\": \"Deals and loyalty\",\n                \"az\": \"Endirimlər\",\n                \"ru\": \"Акции\"\n            }\n        },\n        \"counts\": {},\n        \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n    }\n}"}],"_postman_id":"4693c82c-8de6-4a88-94d1-b595611622e6"},{"name":"Update","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"e3f0e636-7e9f-4c74-a2ea-1f383e4e1f27"}}],"id":"57f5f555-1a6a-4e47-9f0b-351f4a8bbc75","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"image\": \"banners/welcome.jpg\",\n    \"link_type\": \"branch\",\n    \"link_id\": 1,\n    \"sort_order\": 1,\n    \"is_active\": true,\n    \"translations\": {\n        \"title\": {\n            \"en\": \"Deals and loyalty\",\n            \"az\": \"Endiriml\\u0259r\",\n            \"ru\": \"\\u0410\\u043a\\u0446\\u0438\\u0438\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/home-banners/1","urlObject":{"path":["admin","home-banners","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"17a80692-e37c-443b-bd1d-42fdd8c106c8","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/home-banners/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"image\": \"banners/welcome.jpg\",\n        \"link_type\": \"branch\",\n        \"link_id\": 1,\n        \"sort_order\": 1,\n        \"is_active\": true,\n        \"translations\": {\n            \"title\": {\n                \"en\": \"Deals and loyalty\",\n                \"az\": \"Endirimlər\",\n                \"ru\": \"Акции\"\n            }\n        }\n    }\n}"}],"_postman_id":"57f5f555-1a6a-4e47-9f0b-351f4a8bbc75"},{"name":"Delete","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"28dcbb15-0b85-4942-88e5-3180b1138ab1"}}],"id":"55096ad5-7b45-4680-b990-060f7eb5cbf3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/home-banners/1","urlObject":{"path":["admin","home-banners","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"51d80d95-c063-4807-8ad9-2b69cadc2a46","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/home-banners/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"55096ad5-7b45-4680-b990-060f7eb5cbf3"},{"name":"Sort list","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"1c66c07a-5b7e-4537-809d-af39f9e41e70"}}],"id":"d0b59789-1be8-40d0-966b-ba7030f3c591","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/home-banners/sort","description":"<h2 id=\"summary\">Summary</h2>\n<p>Ordered rows for drag-and-drop sort UI.</p>\n","urlObject":{"path":["admin","home-banners","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"4e57ffa2-05a4-40bf-8a39-d290c504691f","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/home-banners/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Example\",\n            \"sort_order\": 0\n        }\n    ],\n    \"meta\": {\n        \"scope\": null,\n        \"scopeValue\": null\n    }\n}"}],"_postman_id":"d0b59789-1be8-40d0-966b-ba7030f3c591"},{"name":"Reorder","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"eec1f595-e79e-4cba-82f1-0e5c1ea3e3a0"}}],"id":"2714f4c1-fa3a-4e41-9db3-85fffa5da1d7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"ids\": [\n        1,\n        2,\n        3\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/home-banners/sort","description":"<h2 id=\"body\">Body</h2>\n<p><code>ids</code> — ordered record IDs.</p>\n","urlObject":{"path":["admin","home-banners","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"cde3e904-56da-4fc3-aecd-27ca0cb9f28b","name":"OK","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/home-banners/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 3\n    }\n}"}],"_postman_id":"2714f4c1-fa3a-4e41-9db3-85fffa5da1d7"},{"name":"Bulk disable","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"3376fd80-e787-4c13-a673-820216d5a6ea"}}],"id":"bbc29609-d309-4a2d-b252-b9b877481b92","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/home-banners/bulk-active","description":"<h2 id=\"summary\">Summary</h2>\n<p>Set <code>is_active</code> on all Home Banners rows (omit scope to affect every row).</p>\n<h2 id=\"body\">Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>is_active</td>\n<td>boolean</td>\n<td>yes</td>\n<td><code>false</code> disables, <code>true</code> enables</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-200\">Response <code>200</code></h2>\n<p><code>json\\n{\\n  \"data\": { \"updated\": 12, \"isActive\": false }\\n}\\n</code></p>\n","urlObject":{"path":["admin","home-banners","bulk-active"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"9a851515-e82d-4074-9aca-a6e367d7c201","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/home-banners/bulk-active"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 12,\n        \"isActive\": false\n    }\n}"}],"_postman_id":"bbc29609-d309-4a2d-b252-b9b877481b92"},{"name":"Bulk enable","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"ea32aaa9-943d-4286-b3df-d0eeb803ba8f"}}],"id":"d3fd9561-1ede-4c6d-a168-59ff74550a70","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/home-banners/bulk-active","description":"<h2 id=\"summary\">Summary</h2>\n<p>Enable all Home Banners rows (same endpoint as Bulk disable).</p>\n","urlObject":{"path":["admin","home-banners","bulk-active"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"8e44fb45-522a-4d30-ad23-acc9cbbcd986","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/home-banners/bulk-active"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 12,\n        \"isActive\": true\n    }\n}"}],"_postman_id":"d3fd9561-1ede-4c6d-a168-59ff74550a70"}],"id":"7ea5e04c-c5f4-4b84-8c26-51ef6518feb9","_postman_id":"7ea5e04c-c5f4-4b84-8c26-51ef6518feb9","description":""},{"name":"Cms Pages","item":[{"name":"List","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('cms-pagesId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"e40ac788-6132-4ceb-b9e7-388bb7b42c6d"}}],"id":"8413d885-7d27-4342-9d6e-255e493ae65c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/cms-pages?page=1&per_page=25&search=&sort=","description":"<h2 id=\"summary\">Summary</h2>\n<p>Paginated Library list for <code>cms-pages</code>.</p>\n","urlObject":{"path":["admin","cms-pages"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Page number</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Page size (max 100; icons max 200)</p>\n","type":"text/plain"},"key":"per_page","value":"25"},{"description":{"content":"<p>Search query</p>\n","type":"text/plain"},"key":"search","value":""},{"description":{"content":"<p>Column name; prefix with - for descending</p>\n","type":"text/plain"},"key":"sort","value":""}],"variable":[]}},"response":[{"id":"672725e8-e9b1-4bd0-ac32-7c2462f81f33","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/cms-pages?page=1&per_page=25&search=&sort=","host":["https://api.loya.cc/api/v1"],"path":["admin","cms-pages"],"query":[{"key":"page","value":"1","description":"Page number"},{"key":"per_page","value":"25","description":"Page size (max 100; icons max 200)"},{"key":"search","value":"","description":"Search query"},{"key":"sort","value":"","description":"Column name; prefix with - for descending"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"attributes\": {\n                \"name\": \"Example\"\n            },\n            \"relations\": {},\n            \"translations\": {},\n            \"counts\": {},\n            \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"8413d885-7d27-4342-9d6e-255e493ae65c"},{"name":"Get one","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"0bdb6c7e-0af6-41ba-ab94-c71a4c21879e"}}],"id":"87a4afcd-e68a-47f9-ae9c-fd284d15f5e4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/cms-pages/1","urlObject":{"path":["admin","cms-pages","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"5acecbd8-848c-484d-8f86-a8b50aff9369","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/cms-pages/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"87a4afcd-e68a-47f9-ae9c-fd284d15f5e4"},{"name":"Create","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('cms-pagesId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"6e3fae22-af93-41ae-ab8a-79a4e69127bf"}}],"id":"4ee42fb8-0daf-4d94-a82c-0977b30e8084","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"slug\": \"about\",\n    \"type\": \"about\",\n    \"published_at\": \"2026-07-08T10:00:00.000000Z\",\n    \"translations\": {\n        \"title\": {\n            \"en\": \"About Loya\",\n            \"az\": \"Loya haqq\\u0131nda\",\n            \"ru\": \"\\u041e Loya\"\n        },\n        \"body\": {\n            \"en\": \"Loya connects customers with partner offers.\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/cms-pages","urlObject":{"path":["admin","cms-pages"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"ed69cede-4c3a-49d7-928d-8181bc515efe","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/cms-pages"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"attributes\": {\n            \"slug\": \"about\",\n            \"type\": \"about\",\n            \"published_at\": \"2026-07-08T10:00:00.000000Z\"\n        },\n        \"relations\": {},\n        \"translations\": {\n            \"title\": {\n                \"en\": \"About Loya\",\n                \"az\": \"Loya haqqında\",\n                \"ru\": \"О Loya\"\n            },\n            \"body\": {\n                \"en\": \"Loya connects customers with partner offers.\"\n            }\n        },\n        \"counts\": {},\n        \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n    }\n}"}],"_postman_id":"4ee42fb8-0daf-4d94-a82c-0977b30e8084"},{"name":"Update","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"3a9aa0dd-1d27-42b8-82c2-81141b9692f7"}}],"id":"b71b306e-900a-4589-a8b2-9f5bca5c3039","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"slug\": \"about\",\n    \"type\": \"about\",\n    \"published_at\": \"2026-07-08T10:00:00.000000Z\",\n    \"translations\": {\n        \"title\": {\n            \"en\": \"About Loya\",\n            \"az\": \"Loya haqq\\u0131nda\",\n            \"ru\": \"\\u041e Loya\"\n        },\n        \"body\": {\n            \"en\": \"Loya connects customers with partner offers.\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/cms-pages/1","urlObject":{"path":["admin","cms-pages","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"a73a1c3f-8cea-4a2e-898e-58a4ba81903f","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/cms-pages/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"slug\": \"about\",\n        \"type\": \"about\",\n        \"published_at\": \"2026-07-08T10:00:00.000000Z\",\n        \"translations\": {\n            \"title\": {\n                \"en\": \"About Loya\",\n                \"az\": \"Loya haqqında\",\n                \"ru\": \"О Loya\"\n            },\n            \"body\": {\n                \"en\": \"Loya connects customers with partner offers.\"\n            }\n        }\n    }\n}"}],"_postman_id":"b71b306e-900a-4589-a8b2-9f5bca5c3039"},{"name":"Delete","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"c405f461-3d90-4647-9488-cb8476c9ae16"}}],"id":"c9c72a79-af0d-4919-b22f-7d1a6a6384af","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/cms-pages/1","urlObject":{"path":["admin","cms-pages","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"6cea4768-cae9-467a-a2fc-72369468b1cb","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/cms-pages/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"c9c72a79-af0d-4919-b22f-7d1a6a6384af"}],"id":"7d4546db-ed64-4a03-a159-4de973d7661f","_postman_id":"7d4546db-ed64-4a03-a159-4de973d7661f","description":""},{"name":"Question Answers","item":[{"name":"List","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('question-answersId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"165ced51-0f89-4a4f-9b88-84f624728a6b"}}],"id":"4a2c3027-b85c-4f28-972a-e90622c2e3f8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/question-answers?page=1&per_page=25&search=&sort=","description":"<h2 id=\"summary\">Summary</h2>\n<p>Paginated Library list for <code>question-answers</code>.</p>\n","urlObject":{"path":["admin","question-answers"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Page number</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Page size (max 100; icons max 200)</p>\n","type":"text/plain"},"key":"per_page","value":"25"},{"description":{"content":"<p>Search query</p>\n","type":"text/plain"},"key":"search","value":""},{"description":{"content":"<p>Column name; prefix with - for descending</p>\n","type":"text/plain"},"key":"sort","value":""}],"variable":[]}},"response":[{"id":"a135fc4a-5eef-4730-b488-2e999c6e7969","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/question-answers?page=1&per_page=25&search=&sort=","host":["https://api.loya.cc/api/v1"],"path":["admin","question-answers"],"query":[{"key":"page","value":"1","description":"Page number"},{"key":"per_page","value":"25","description":"Page size (max 100; icons max 200)"},{"key":"search","value":"","description":"Search query"},{"key":"sort","value":"","description":"Column name; prefix with - for descending"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"attributes\": {\n                \"name\": \"Example\"\n            },\n            \"relations\": {},\n            \"translations\": {},\n            \"counts\": {},\n            \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"4a2c3027-b85c-4f28-972a-e90622c2e3f8"},{"name":"Get one","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"81ae61f7-664e-4509-bec8-a988d6533528"}}],"id":"1885ffc9-7737-41e3-bc69-79c9b762584a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/question-answers/1","urlObject":{"path":["admin","question-answers","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"1c87de8e-8680-47b3-8302-1855a0996a3d","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/question-answers/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"1885ffc9-7737-41e3-bc69-79c9b762584a"},{"name":"Create","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('question-answersId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"90e9b481-719a-4529-b97a-0fc26581358d"}}],"id":"2ff7a48f-df39-4f2d-bd93-b6d8dfd639b5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"sort_order\": 1,\n    \"is_active\": true,\n    \"translations\": {\n        \"question\": {\n            \"en\": \"How do I redeem a promo?\",\n            \"az\": \"Promo nec\\u0259 aktivl\\u0259\\u015fdirilir?\",\n            \"ru\": \"\\u041a\\u0430\\u043a \\u0430\\u043a\\u0442\\u0438\\u0432\\u0438\\u0440\\u043e\\u0432\\u0430\\u0442\\u044c \\u043f\\u0440\\u043e\\u043c\\u043e?\"\n        },\n        \"answer\": {\n            \"en\": \"Tap Redeem and show the QR code to staff.\",\n            \"az\": \"Redeem d\\u00fcym\\u0259sin\\u0259 bas\\u0131n v\\u0259 QR kodu g\\u00f6st\\u0259rin.\",\n            \"ru\": \"\\u041d\\u0430\\u0436\\u043c\\u0438\\u0442\\u0435 Redeem \\u0438 \\u043f\\u043e\\u043a\\u0430\\u0436\\u0438\\u0442\\u0435 QR-\\u043a\\u043e\\u0434 \\u0441\\u043e\\u0442\\u0440\\u0443\\u0434\\u043d\\u0438\\u043a\\u0443.\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/question-answers","urlObject":{"path":["admin","question-answers"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"8c6f8826-87cb-4602-95be-9207736a2741","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/question-answers"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"attributes\": {\n            \"sort_order\": 1,\n            \"is_active\": true\n        },\n        \"relations\": {},\n        \"translations\": {\n            \"question\": {\n                \"en\": \"How do I redeem a promo?\",\n                \"az\": \"Promo necə aktivləşdirilir?\",\n                \"ru\": \"Как активировать промо?\"\n            },\n            \"answer\": {\n                \"en\": \"Tap Redeem and show the QR code to staff.\",\n                \"az\": \"Redeem düyməsinə basın və QR kodu göstərin.\",\n                \"ru\": \"Нажмите Redeem и покажите QR-код сотруднику.\"\n            }\n        },\n        \"counts\": {},\n        \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n    }\n}"}],"_postman_id":"2ff7a48f-df39-4f2d-bd93-b6d8dfd639b5"},{"name":"Update","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"9b781a21-cd91-418b-9d7b-5eafebb06b31"}}],"id":"260aecb0-7db0-455d-ace6-c5bd79fd0b5e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"sort_order\": 1,\n    \"is_active\": true,\n    \"translations\": {\n        \"question\": {\n            \"en\": \"How do I redeem a promo?\",\n            \"az\": \"Promo nec\\u0259 aktivl\\u0259\\u015fdirilir?\",\n            \"ru\": \"\\u041a\\u0430\\u043a \\u0430\\u043a\\u0442\\u0438\\u0432\\u0438\\u0440\\u043e\\u0432\\u0430\\u0442\\u044c \\u043f\\u0440\\u043e\\u043c\\u043e?\"\n        },\n        \"answer\": {\n            \"en\": \"Tap Redeem and show the QR code to staff.\",\n            \"az\": \"Redeem d\\u00fcym\\u0259sin\\u0259 bas\\u0131n v\\u0259 QR kodu g\\u00f6st\\u0259rin.\",\n            \"ru\": \"\\u041d\\u0430\\u0436\\u043c\\u0438\\u0442\\u0435 Redeem \\u0438 \\u043f\\u043e\\u043a\\u0430\\u0436\\u0438\\u0442\\u0435 QR-\\u043a\\u043e\\u0434 \\u0441\\u043e\\u0442\\u0440\\u0443\\u0434\\u043d\\u0438\\u043a\\u0443.\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/question-answers/1","urlObject":{"path":["admin","question-answers","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"28d1e292-80f6-4726-a32a-abfd39aac433","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/question-answers/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"sort_order\": 1,\n        \"is_active\": true,\n        \"translations\": {\n            \"question\": {\n                \"en\": \"How do I redeem a promo?\",\n                \"az\": \"Promo necə aktivləşdirilir?\",\n                \"ru\": \"Как активировать промо?\"\n            },\n            \"answer\": {\n                \"en\": \"Tap Redeem and show the QR code to staff.\",\n                \"az\": \"Redeem düyməsinə basın və QR kodu göstərin.\",\n                \"ru\": \"Нажмите Redeem и покажите QR-код сотруднику.\"\n            }\n        }\n    }\n}"}],"_postman_id":"260aecb0-7db0-455d-ace6-c5bd79fd0b5e"},{"name":"Delete","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"17ead00e-1633-4102-9dc7-1be3758207f8"}}],"id":"03eeb8bd-7e36-40eb-b1b9-d81d737d9ed2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/question-answers/1","urlObject":{"path":["admin","question-answers","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"946bdb69-1114-482e-9091-b566293a9698","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/question-answers/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"03eeb8bd-7e36-40eb-b1b9-d81d737d9ed2"},{"name":"Sort list","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"dc03a314-ecac-47d7-9bbc-48a43150ca96"}}],"id":"9ee0ccc5-56ae-4cbe-b4ec-75d693a6e19c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/question-answers/sort","description":"<h2 id=\"summary\">Summary</h2>\n<p>Ordered rows for drag-and-drop sort UI.</p>\n","urlObject":{"path":["admin","question-answers","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"a1e6162d-0314-4f7b-9502-c94abfa3231f","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/question-answers/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Example\",\n            \"sort_order\": 0\n        }\n    ],\n    \"meta\": {\n        \"scope\": null,\n        \"scopeValue\": null\n    }\n}"}],"_postman_id":"9ee0ccc5-56ae-4cbe-b4ec-75d693a6e19c"},{"name":"Reorder","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"eb8447a8-0feb-4c5e-ac33-bc2c31881599"}}],"id":"f3b5136d-066a-4721-80a6-23660a2e828e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"ids\": [\n        1,\n        2,\n        3\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/question-answers/sort","description":"<h2 id=\"body\">Body</h2>\n<p><code>ids</code> — ordered record IDs.</p>\n","urlObject":{"path":["admin","question-answers","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"9d3dbf2c-cf04-4ecb-a661-70c5cada792b","name":"OK","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/question-answers/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 3\n    }\n}"}],"_postman_id":"f3b5136d-066a-4721-80a6-23660a2e828e"},{"name":"Bulk disable","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"130211d3-722f-4da3-b38f-f13623f2823a"}}],"id":"d9e27858-804b-4c9c-8b7c-97d7a5037d4b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/question-answers/bulk-active","description":"<h2 id=\"summary\">Summary</h2>\n<p>Set <code>is_active</code> on all Question Answers rows (omit scope to affect every row).</p>\n<h2 id=\"body\">Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>is_active</td>\n<td>boolean</td>\n<td>yes</td>\n<td><code>false</code> disables, <code>true</code> enables</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-200\">Response <code>200</code></h2>\n<p><code>json\\n{\\n  \"data\": { \"updated\": 12, \"isActive\": false }\\n}\\n</code></p>\n","urlObject":{"path":["admin","question-answers","bulk-active"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"aec7b6b0-31c3-455b-8070-bc3aa5528cb3","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/question-answers/bulk-active"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 12,\n        \"isActive\": false\n    }\n}"}],"_postman_id":"d9e27858-804b-4c9c-8b7c-97d7a5037d4b"},{"name":"Bulk enable","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"e995d075-f88f-4326-b0d4-1ad340552033"}}],"id":"4797fbfa-5440-4397-9a7b-2ad37aaeb470","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/question-answers/bulk-active","description":"<h2 id=\"summary\">Summary</h2>\n<p>Enable all Question Answers rows (same endpoint as Bulk disable).</p>\n","urlObject":{"path":["admin","question-answers","bulk-active"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"81d3baa3-f485-4578-841a-d1490843520f","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/question-answers/bulk-active"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 12,\n        \"isActive\": true\n    }\n}"}],"_postman_id":"4797fbfa-5440-4397-9a7b-2ad37aaeb470"}],"id":"acc011c9-e9af-4faf-870e-1119d0110b9b","_postman_id":"acc011c9-e9af-4faf-870e-1119d0110b9b","description":""},{"name":"Help Filters","item":[{"name":"List","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('help-filtersId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"6c559b18-55f1-4a08-b400-817c7a0ddbb3"}}],"id":"299e64df-4d1f-480d-8364-02b969cfb5b4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/help-filters?page=1&per_page=25&search=&sort=","description":"<h2 id=\"summary\">Summary</h2>\n<p>Paginated Library list for <code>help-filters</code>.</p>\n","urlObject":{"path":["admin","help-filters"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Page number</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Page size (max 100; icons max 200)</p>\n","type":"text/plain"},"key":"per_page","value":"25"},{"description":{"content":"<p>Search query</p>\n","type":"text/plain"},"key":"search","value":""},{"description":{"content":"<p>Column name; prefix with - for descending</p>\n","type":"text/plain"},"key":"sort","value":""}],"variable":[]}},"response":[{"id":"84ef3edd-fad3-4d1c-88cd-86b4775625ab","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/help-filters?page=1&per_page=25&search=&sort=","host":["https://api.loya.cc/api/v1"],"path":["admin","help-filters"],"query":[{"key":"page","value":"1","description":"Page number"},{"key":"per_page","value":"25","description":"Page size (max 100; icons max 200)"},{"key":"search","value":"","description":"Search query"},{"key":"sort","value":"","description":"Column name; prefix with - for descending"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"attributes\": {\n                \"name\": \"Example\"\n            },\n            \"relations\": {},\n            \"translations\": {},\n            \"counts\": {},\n            \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"299e64df-4d1f-480d-8364-02b969cfb5b4"},{"name":"Get one","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"28618455-a9fa-41f0-8411-f2809a0edb65"}}],"id":"9707f6e2-2a65-4836-8ebe-235f79e4577d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/help-filters/1","urlObject":{"path":["admin","help-filters","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"9726c0c9-29e2-42d5-84b2-880b973b1533","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/help-filters/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"9707f6e2-2a65-4836-8ebe-235f79e4577d"},{"name":"Create","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('help-filtersId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"c1fdf051-fe28-49db-bf2c-8f7271e9ac8a"}}],"id":"277a70e9-52fc-4606-bbd7-44252412e3b9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"key\": \"wifi\",\n    \"type\": \"toggle\",\n    \"sort_order\": 1,\n    \"is_active\": true,\n    \"translations\": {\n        \"name\": {\n            \"en\": \"WiFi\",\n            \"az\": \"WiFi\",\n            \"ru\": \"WiFi\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/help-filters","urlObject":{"path":["admin","help-filters"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"959e7443-655f-43b1-8777-445f8ae284fb","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/help-filters"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"attributes\": {\n            \"key\": \"wifi\",\n            \"type\": \"toggle\",\n            \"sort_order\": 1,\n            \"is_active\": true\n        },\n        \"relations\": {},\n        \"translations\": {\n            \"name\": {\n                \"en\": \"WiFi\",\n                \"az\": \"WiFi\",\n                \"ru\": \"WiFi\"\n            }\n        },\n        \"counts\": {},\n        \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n    }\n}"}],"_postman_id":"277a70e9-52fc-4606-bbd7-44252412e3b9"},{"name":"Update","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"daa18e3d-f0db-44bc-8822-86cf98040dcd"}}],"id":"78a3fce2-85bc-4987-b012-67fb69d86ba0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"key\": \"wifi\",\n    \"type\": \"toggle\",\n    \"sort_order\": 1,\n    \"is_active\": true,\n    \"translations\": {\n        \"name\": {\n            \"en\": \"WiFi\",\n            \"az\": \"WiFi\",\n            \"ru\": \"WiFi\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/help-filters/1","urlObject":{"path":["admin","help-filters","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"4a17b4c0-7124-4993-8d42-8219f8bb6543","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/help-filters/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"key\": \"wifi\",\n        \"type\": \"toggle\",\n        \"sort_order\": 1,\n        \"is_active\": true,\n        \"translations\": {\n            \"name\": {\n                \"en\": \"WiFi\",\n                \"az\": \"WiFi\",\n                \"ru\": \"WiFi\"\n            }\n        }\n    }\n}"}],"_postman_id":"78a3fce2-85bc-4987-b012-67fb69d86ba0"},{"name":"Delete","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"ea686386-3380-4e3f-bb3a-8507b11bf620"}}],"id":"dcc4fcb2-4bc8-4f38-a220-30aa444e092f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/help-filters/1","urlObject":{"path":["admin","help-filters","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"e337259e-be8a-47ea-9e77-bd9bcdb94014","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/help-filters/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"dcc4fcb2-4bc8-4f38-a220-30aa444e092f"},{"name":"Sort list","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"91003e6f-3799-4895-83df-0f87b3d653b3"}}],"id":"7e910a98-a35f-4f37-8316-405e1dbd7336","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/help-filters/sort","description":"<h2 id=\"summary\">Summary</h2>\n<p>Ordered rows for drag-and-drop sort UI.</p>\n","urlObject":{"path":["admin","help-filters","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"3566be05-7470-492c-8e42-8f6798aa3396","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/help-filters/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Example\",\n            \"sort_order\": 0\n        }\n    ],\n    \"meta\": {\n        \"scope\": null,\n        \"scopeValue\": null\n    }\n}"}],"_postman_id":"7e910a98-a35f-4f37-8316-405e1dbd7336"},{"name":"Reorder","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"cce0bc72-b4f2-4644-b6e7-e62340198549"}}],"id":"5e077d4f-cb93-4168-8ca3-229c75fceb31","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"ids\": [\n        1,\n        2,\n        3\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/help-filters/sort","description":"<h2 id=\"body\">Body</h2>\n<p><code>ids</code> — ordered record IDs.</p>\n","urlObject":{"path":["admin","help-filters","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"0ee9f875-f2d3-4891-8299-540669f33999","name":"OK","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/help-filters/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 3\n    }\n}"}],"_postman_id":"5e077d4f-cb93-4168-8ca3-229c75fceb31"},{"name":"Bulk disable","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"084e09a5-28d4-44f7-8ebc-beffa520ee79"}}],"id":"f2edc91e-b5fb-4079-af0c-f4220f9bb0d4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/help-filters/bulk-active","description":"<h2 id=\"summary\">Summary</h2>\n<p>Set <code>is_active</code> on all Help Filters rows (omit scope to affect every row).</p>\n<h2 id=\"body\">Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>is_active</td>\n<td>boolean</td>\n<td>yes</td>\n<td><code>false</code> disables, <code>true</code> enables</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-200\">Response <code>200</code></h2>\n<p><code>json\\n{\\n  \"data\": { \"updated\": 12, \"isActive\": false }\\n}\\n</code></p>\n","urlObject":{"path":["admin","help-filters","bulk-active"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"628e5498-ee29-4afa-afc5-3f153bb02df9","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/help-filters/bulk-active"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 12,\n        \"isActive\": false\n    }\n}"}],"_postman_id":"f2edc91e-b5fb-4079-af0c-f4220f9bb0d4"},{"name":"Bulk enable","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"53065269-d149-49ab-a57b-9378ee1a7842"}}],"id":"2d3a5624-77ff-46aa-a250-0af0ace2ceec","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/help-filters/bulk-active","description":"<h2 id=\"summary\">Summary</h2>\n<p>Enable all Help Filters rows (same endpoint as Bulk disable).</p>\n","urlObject":{"path":["admin","help-filters","bulk-active"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"97f81e9e-7b8c-4c9a-a230-e95bf0d70879","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/help-filters/bulk-active"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 12,\n        \"isActive\": true\n    }\n}"}],"_postman_id":"2d3a5624-77ff-46aa-a250-0af0ace2ceec"}],"id":"85d45efb-fd72-48c4-a5eb-4986ace1f884","_postman_id":"85d45efb-fd72-48c4-a5eb-4986ace1f884","description":""},{"name":"Help Filter Options","item":[{"name":"List","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('help-filter-optionsId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"ebb62ad3-d3b9-4e46-b369-e95c564b03ef"}}],"id":"f495269e-6c26-45ef-bbfd-af799d545044","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/help-filter-options?page=1&per_page=25&search=&sort=&help_filter_id=1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Paginated Library list for <code>help-filter-options</code>.</p>\n","urlObject":{"path":["admin","help-filter-options"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Page number</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Page size (max 100; icons max 200)</p>\n","type":"text/plain"},"key":"per_page","value":"25"},{"description":{"content":"<p>Search query</p>\n","type":"text/plain"},"key":"search","value":""},{"description":{"content":"<p>Column name; prefix with - for descending</p>\n","type":"text/plain"},"key":"sort","value":""},{"description":{"content":"<p>Filter / sort scope</p>\n","type":"text/plain"},"key":"help_filter_id","value":"1"}],"variable":[]}},"response":[{"id":"86e23628-e397-4a11-a398-83510ec9f91e","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/help-filter-options?page=1&per_page=25&search=&sort=&help_filter_id=1","host":["https://api.loya.cc/api/v1"],"path":["admin","help-filter-options"],"query":[{"key":"page","value":"1","description":"Page number"},{"key":"per_page","value":"25","description":"Page size (max 100; icons max 200)"},{"key":"search","value":"","description":"Search query"},{"key":"sort","value":"","description":"Column name; prefix with - for descending"},{"key":"help_filter_id","value":"1","description":"Filter / sort scope"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"attributes\": {\n                \"name\": \"Example\"\n            },\n            \"relations\": {},\n            \"translations\": {},\n            \"counts\": {},\n            \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"f495269e-6c26-45ef-bbfd-af799d545044"},{"name":"Get one","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"77996cf7-da10-449b-98e5-921af93b7409"}}],"id":"2b3d083e-c973-419f-834d-380092c4f933","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/help-filter-options/1","urlObject":{"path":["admin","help-filter-options","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"dec0c2c6-03d7-400e-9d66-7f5eed81025e","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/help-filter-options/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"2b3d083e-c973-419f-834d-380092c4f933"},{"name":"Create","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('help-filter-optionsId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"dae70cf7-6ed5-4450-8c63-e05276ca8971"}}],"id":"a7158b5d-2602-4c37-9275-b0415019dd5f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"help_filter_id\": 1,\n    \"value\": \"free\",\n    \"sort_order\": 1,\n    \"translations\": {\n        \"label\": {\n            \"en\": \"Free\",\n            \"az\": \"Pulsuz\",\n            \"ru\": \"\\u0411\\u0435\\u0441\\u043f\\u043b\\u0430\\u0442\\u043d\\u043e\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/help-filter-options","urlObject":{"path":["admin","help-filter-options"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"704ac7d5-4ea5-4871-8014-6fd62ec7c104","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/help-filter-options"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"attributes\": {\n            \"help_filter_id\": 1,\n            \"value\": \"free\",\n            \"sort_order\": 1\n        },\n        \"relations\": {},\n        \"translations\": {\n            \"label\": {\n                \"en\": \"Free\",\n                \"az\": \"Pulsuz\",\n                \"ru\": \"Бесплатно\"\n            }\n        },\n        \"counts\": {},\n        \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n    }\n}"}],"_postman_id":"a7158b5d-2602-4c37-9275-b0415019dd5f"},{"name":"Update","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"bc0163ed-4418-45a3-85c0-1f2fb14c6748"}}],"id":"4d5c1162-d40f-43af-8450-5976d6ea96fe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"help_filter_id\": 1,\n    \"value\": \"free\",\n    \"sort_order\": 1,\n    \"translations\": {\n        \"label\": {\n            \"en\": \"Free\",\n            \"az\": \"Pulsuz\",\n            \"ru\": \"\\u0411\\u0435\\u0441\\u043f\\u043b\\u0430\\u0442\\u043d\\u043e\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/help-filter-options/1","urlObject":{"path":["admin","help-filter-options","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"cf15cd1b-b7f3-454a-acee-49cf317ca921","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/help-filter-options/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"help_filter_id\": 1,\n        \"value\": \"free\",\n        \"sort_order\": 1,\n        \"translations\": {\n            \"label\": {\n                \"en\": \"Free\",\n                \"az\": \"Pulsuz\",\n                \"ru\": \"Бесплатно\"\n            }\n        }\n    }\n}"}],"_postman_id":"4d5c1162-d40f-43af-8450-5976d6ea96fe"},{"name":"Delete","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"f3bd19f4-1f0c-4b00-b1a5-ffc21eafc610"}}],"id":"1e6a1e2a-6db6-46d1-b2a0-65c65d3d4146","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/help-filter-options/1","urlObject":{"path":["admin","help-filter-options","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"38535900-e063-4836-8dbe-34f638e01bb6","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/help-filter-options/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"1e6a1e2a-6db6-46d1-b2a0-65c65d3d4146"},{"name":"Sort list","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"8a514c67-493c-4845-bc44-5f1aae67ee79"}}],"id":"0d1aeca7-d025-4770-822c-5a2944bb6ac8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/help-filter-options/sort?help_filter_id=1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Ordered rows for drag-and-drop sort UI. Requires <code>help_filter_id</code>.</p>\n","urlObject":{"path":["admin","help-filter-options","sort"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Required sort scope</p>\n","type":"text/plain"},"key":"help_filter_id","value":"1"}],"variable":[]}},"response":[{"id":"d5b1932e-0354-41f9-80b8-5920c83c2812","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/help-filter-options/sort?help_filter_id=1","host":["https://api.loya.cc/api/v1"],"path":["admin","help-filter-options","sort"],"query":[{"key":"help_filter_id","value":"1","description":"Required sort scope"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Example\",\n            \"sort_order\": 0\n        }\n    ],\n    \"meta\": {\n        \"scope\": null,\n        \"scopeValue\": null\n    }\n}"}],"_postman_id":"0d1aeca7-d025-4770-822c-5a2944bb6ac8"},{"name":"Reorder","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"88b53c25-978d-4da3-9b75-f314d5fdd7a6"}}],"id":"88c47658-466f-4d27-a970-2577e5839e85","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"ids\": [\n        1,\n        2,\n        3\n    ],\n    \"help_filter_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/help-filter-options/sort","description":"<h2 id=\"body\">Body</h2>\n<p><code>ids</code> — ordered record IDs. Also send <code>help_filter_id</code>.</p>\n","urlObject":{"path":["admin","help-filter-options","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"dc76b8bd-b7b1-45b9-a5dc-9f9a61e6afac","name":"OK","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/help-filter-options/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 3\n    }\n}"}],"_postman_id":"88c47658-466f-4d27-a970-2577e5839e85"}],"id":"c76b28bf-72a9-4848-824d-41ef08a06576","_postman_id":"c76b28bf-72a9-4848-824d-41ef08a06576","description":""},{"name":"Promo Types","item":[{"name":"List","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('promo-typesId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"f489fcb0-dfa3-4dfd-ab18-99972cd56870"}}],"id":"4bc851a9-b06c-4bba-91e9-f588be77e65d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/promo-types?page=1&per_page=25&search=&sort=","description":"<h2 id=\"summary\">Summary</h2>\n<p>Paginated Library list for <code>promo-types</code>.</p>\n<h2 id=\"soft-deletes\">Soft deletes</h2>\n<p>Pass <code>trashed=1</code> to list only deleted rows, then <strong>Restore</strong> or <strong>Force delete</strong>.</p>\n","urlObject":{"path":["admin","promo-types"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Page number</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>Page size (max 100; icons max 200)</p>\n","type":"text/plain"},"key":"per_page","value":"25"},{"description":{"content":"<p>Search query</p>\n","type":"text/plain"},"key":"search","value":""},{"description":{"content":"<p>Column name; prefix with - for descending</p>\n","type":"text/plain"},"key":"sort","value":""},{"disabled":true,"description":{"content":"<p>Set 1 to list only soft-deleted rows</p>\n","type":"text/plain"},"key":"trashed","value":"1"}],"variable":[]}},"response":[{"id":"5358c101-bd06-40f8-9c48-2ac179c062da","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/promo-types?page=1&per_page=25&search=&sort=","host":["https://api.loya.cc/api/v1"],"path":["admin","promo-types"],"query":[{"key":"page","value":"1","description":"Page number"},{"key":"per_page","value":"25","description":"Page size (max 100; icons max 200)"},{"key":"search","value":"","description":"Search query"},{"key":"sort","value":"","description":"Column name; prefix with - for descending"},{"key":"trashed","value":"1","description":"Set 1 to list only soft-deleted rows","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"attributes\": {\n                \"name\": \"Example\"\n            },\n            \"relations\": {},\n            \"translations\": {},\n            \"counts\": {},\n            \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"4bc851a9-b06c-4bba-91e9-f588be77e65d"},{"name":"Get one","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"69f645d5-4151-46c6-9621-f545efce7d15"}}],"id":"cf3dedef-3c00-4405-bc3f-6525cef73106","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/promo-types/1","urlObject":{"path":["admin","promo-types","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"90b1e735-9ad0-405e-88c2-5110bc2d585b","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/promo-types/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"cf3dedef-3c00-4405-bc3f-6525cef73106"},{"name":"Create","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('promo-typesId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"e1d62393-627e-4a53-bc45-319dbb5f23e5"}}],"id":"d599795f-3d88-4537-97d9-a9213cc2a8ff","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"slug\": \"welcome-deal\",\n    \"icon\": \"gift\",\n    \"sort_order\": 1,\n    \"translations\": {\n        \"name\": {\n            \"en\": \"Welcome Deal\",\n            \"az\": \"Xo\\u015f g\\u0259ldin\",\n            \"ru\": \"\\u041f\\u0440\\u0438\\u0432\\u0435\\u0442\\u0441\\u0442\\u0432\\u0435\\u043d\\u043d\\u0430\\u044f \\u0430\\u043a\\u0446\\u0438\\u044f\"\n        },\n        \"description\": {\n            \"en\": \"First visit promo.\",\n            \"az\": \"\\u0130lk ziyar\\u0259t promo.\",\n            \"ru\": \"\\u041f\\u0440\\u043e\\u043c\\u043e \\u0434\\u043b\\u044f \\u043f\\u0435\\u0440\\u0432\\u043e\\u0433\\u043e \\u0432\\u0438\\u0437\\u0438\\u0442\\u0430.\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/promo-types","urlObject":{"path":["admin","promo-types"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"05acac62-a0d3-49e2-9cc6-ae4175c1d804","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/promo-types"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"attributes\": {\n            \"slug\": \"welcome-deal\",\n            \"icon\": \"gift\",\n            \"sort_order\": 1\n        },\n        \"relations\": {},\n        \"translations\": {\n            \"name\": {\n                \"en\": \"Welcome Deal\",\n                \"az\": \"Xoş gəldin\",\n                \"ru\": \"Приветственная акция\"\n            },\n            \"description\": {\n                \"en\": \"First visit promo.\",\n                \"az\": \"İlk ziyarət promo.\",\n                \"ru\": \"Промо для первого визита.\"\n            }\n        },\n        \"counts\": {},\n        \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n    }\n}"}],"_postman_id":"d599795f-3d88-4537-97d9-a9213cc2a8ff"},{"name":"Update","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"535d2f65-71a1-47d3-a7f2-e917e2bb3644"}}],"id":"ec00aba9-9525-4e08-9781-2268cc230f91","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"slug\": \"welcome-deal\",\n    \"icon\": \"gift\",\n    \"sort_order\": 1,\n    \"translations\": {\n        \"name\": {\n            \"en\": \"Welcome Deal\",\n            \"az\": \"Xo\\u015f g\\u0259ldin\",\n            \"ru\": \"\\u041f\\u0440\\u0438\\u0432\\u0435\\u0442\\u0441\\u0442\\u0432\\u0435\\u043d\\u043d\\u0430\\u044f \\u0430\\u043a\\u0446\\u0438\\u044f\"\n        },\n        \"description\": {\n            \"en\": \"First visit promo.\",\n            \"az\": \"\\u0130lk ziyar\\u0259t promo.\",\n            \"ru\": \"\\u041f\\u0440\\u043e\\u043c\\u043e \\u0434\\u043b\\u044f \\u043f\\u0435\\u0440\\u0432\\u043e\\u0433\\u043e \\u0432\\u0438\\u0437\\u0438\\u0442\\u0430.\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/promo-types/1","urlObject":{"path":["admin","promo-types","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"82c317f4-ac72-4bfb-a27b-61a3be1bd190","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/promo-types/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"slug\": \"welcome-deal\",\n        \"icon\": \"gift\",\n        \"sort_order\": 1,\n        \"translations\": {\n            \"name\": {\n                \"en\": \"Welcome Deal\",\n                \"az\": \"Xoş gəldin\",\n                \"ru\": \"Приветственная акция\"\n            },\n            \"description\": {\n                \"en\": \"First visit promo.\",\n                \"az\": \"İlk ziyarət promo.\",\n                \"ru\": \"Промо для первого визита.\"\n            }\n        }\n    }\n}"}],"_postman_id":"ec00aba9-9525-4e08-9781-2268cc230f91"},{"name":"Delete","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"9402737c-97de-40b4-a5fd-f8e836b2f567"}}],"id":"e06e253c-87c6-4393-92cf-adf9683de36f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/promo-types/1","urlObject":{"path":["admin","promo-types","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"2c9c0b0f-e04e-4fb0-ae68-7afe068d5293","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/promo-types/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"e06e253c-87c6-4393-92cf-adf9683de36f"},{"name":"Restore","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"f6904a85-f429-48b6-814a-120d8d4cd59b"}}],"id":"cb970cf4-9a50-49c9-9069-d830f1f3d06e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/promo-types/1/restore","description":"<h2 id=\"summary\">Summary</h2>\n<p>Restore a soft-deleted row (<code>trashed=1</code> list).</p>\n","urlObject":{"path":["admin","promo-types","1","restore"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"d0e94752-3894-45b6-b878-3ac45f893459","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/promo-types/1/restore"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"cb970cf4-9a50-49c9-9069-d830f1f3d06e"},{"name":"Force delete","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"be2988fa-fc8e-4fd2-82d3-f43abf540177"}}],"id":"9b098d44-368d-45cb-a579-69d953a15199","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/promo-types/1/force","description":"<h2 id=\"summary\">Summary</h2>\n<p>Permanently delete (active or trashed). Fails with <code>422</code> if still referenced.</p>\n","urlObject":{"path":["admin","promo-types","1","force"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"f9315bae-8ef2-4f1f-a13e-3ce03694569a","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/promo-types/1/force"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"9b098d44-368d-45cb-a579-69d953a15199"},{"name":"Sort list","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"c2d99945-322e-443d-aa82-f475ae5e806e"}}],"id":"7ed93cfe-3c1f-4ec9-b324-1b3f92708139","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/promo-types/sort","description":"<h2 id=\"summary\">Summary</h2>\n<p>Ordered rows for drag-and-drop sort UI.</p>\n","urlObject":{"path":["admin","promo-types","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"0aa2ce10-c2cb-4e40-b129-765373468149","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/promo-types/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Example\",\n            \"sort_order\": 0\n        }\n    ],\n    \"meta\": {\n        \"scope\": null,\n        \"scopeValue\": null\n    }\n}"}],"_postman_id":"7ed93cfe-3c1f-4ec9-b324-1b3f92708139"},{"name":"Reorder","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"b7b535a3-24c6-4771-8bd9-cbc6de0a4224"}}],"id":"eb699779-7d20-4885-93f5-5beb5000c7b1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"ids\": [\n        1,\n        2,\n        3\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/promo-types/sort","description":"<h2 id=\"body\">Body</h2>\n<p><code>ids</code> — ordered record IDs.</p>\n","urlObject":{"path":["admin","promo-types","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"9dbd45a8-28e7-4a70-bb75-b34930f2bba8","name":"OK","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/promo-types/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 3\n    }\n}"}],"_postman_id":"eb699779-7d20-4885-93f5-5beb5000c7b1"}],"id":"8dcd850e-d6f0-42c6-8ef2-8d9180736e7f","_postman_id":"8dcd850e-d6f0-42c6-8ef2-8d9180736e7f","description":""},{"name":"Help filters — attach","item":[{"name":"Attach","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"814e923d-e953-4226-9607-e28bf70c6fbe"}}],"id":"cf38a206-64c2-41dd-bd73-1e5b43c81173","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"category_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/help-filters/1/attach","description":"<h2 id=\"body\">Body</h2>\n<p><code>category_id</code> or <code>subcategory_id</code>.</p>\n","urlObject":{"path":["admin","help-filters","1","attach"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"1d567e3c-2bea-43f1-92c1-e899aa79d28e","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/help-filters/1/attach"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"category_id\": 1\n    }\n}"}],"_postman_id":"cf38a206-64c2-41dd-bd73-1e5b43c81173"},{"name":"Detach","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"2d7c7fb7-628d-4f8a-922a-b35ea8330dcc"}}],"id":"dea11e8f-b06e-446b-afb7-662423a69b6e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"category_id\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/help-filters/1/detach","description":"<h2 id=\"body\">Body</h2>\n<p>Same target used in <strong>Attach</strong>.</p>\n","urlObject":{"path":["admin","help-filters","1","detach"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"95ecd898-cfac-49f9-82db-04270246e7dc","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/help-filters/1/detach"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"dea11e8f-b06e-446b-afb7-662423a69b6e"}],"id":"46170cd3-bcc1-4e9e-b30f-56881331b46b","description":"<p>Copy a help-filter definition onto a category or subcategory.</p>\n","_postman_id":"46170cd3-bcc1-4e9e-b30f-56881331b46b"},{"name":"Cms Pages — publish","item":[{"name":"Publish","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"635dd14c-2c51-44a4-9dbc-f3ab8060bd42"}}],"id":"0975ecbe-5106-41d3-8745-72e006143d38","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/cms-pages/1/publish","urlObject":{"path":["admin","cms-pages","1","publish"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"1533bd7d-9bd8-45a1-b2aa-acf33e4c2072","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/cms-pages/1/publish"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"0975ecbe-5106-41d3-8745-72e006143d38"},{"name":"Unpublish","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"d3695067-661a-49d3-b328-ad3f91a6d236"}}],"id":"632c7f86-bfb1-4218-a6b6-cacb7ee38bab","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/cms-pages/1/unpublish","urlObject":{"path":["admin","cms-pages","1","unpublish"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"d48b5cc9-ae76-4f9f-bd5e-504a229813b9","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/cms-pages/1/unpublish"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"632c7f86-bfb1-4218-a6b6-cacb7ee38bab"}],"id":"3630c990-a0c7-4ab6-8e80-ceeee0d7db59","_postman_id":"3630c990-a0c7-4ab6-8e80-ceeee0d7db59","description":""},{"name":"Category filter ordering","item":[{"name":"Get ordering","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"4350e6af-e91a-4620-8e72-557963bedd43"}}],"id":"f5e7f555-127b-43a4-8847-9adedb3e785c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/categories/1/filter-ordering","description":"<h2 id=\"summary\">Summary</h2>\n<p>Current filter group/field order for a category. Optional <code>subcategory_id</code> scopes to a subcategory overlay.</p>\n","urlObject":{"path":["admin","categories","1","filter-ordering"],"host":["https://api.loya.cc/api/v1"],"query":[{"disabled":true,"description":{"content":"<p>Optional subcategory overlay</p>\n","type":"text/plain"},"key":"subcategory_id","value":"1"}],"variable":[]}},"response":[{"id":"53f9cdcc-9269-41fe-ae16-1f2c9b9c320f","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/categories/1/filter-ordering","host":["https://api.loya.cc/api/v1"],"path":["admin","categories","1","filter-ordering"],"query":[{"key":"subcategory_id","value":"1","description":"Optional subcategory overlay","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"groups\": [\n            {\n                \"id\": 1,\n                \"slug\": \"cuisines\",\n                \"sortOrder\": 0,\n                \"isHidden\": false,\n                \"isActive\": true,\n                \"fields\": [\n                    {\n                        \"id\": 1,\n                        \"key\": \"cuisine\",\n                        \"sortOrder\": 0,\n                        \"isHidden\": false\n                    }\n                ]\n            }\n        ]\n    }\n}"}],"_postman_id":"f5e7f555-127b-43a4-8847-9adedb3e785c"},{"name":"Update ordering","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"cfaf9d4b-444e-40fb-bba8-055cf093683a"}}],"id":"17792009-5cdb-4ca8-8925-1a283e9f3a40","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"subcategory_id\": null,\n    \"groups\": [\n        {\n            \"id\": 1,\n            \"slug\": \"cuisines\",\n            \"sortOrder\": 0,\n            \"isHidden\": false,\n            \"isActive\": true,\n            \"fields\": [\n                {\n                    \"id\": 1,\n                    \"key\": \"cuisine\",\n                    \"sortOrder\": 0,\n                    \"isHidden\": false\n                }\n            ]\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/categories/1/filter-ordering","urlObject":{"path":["admin","categories","1","filter-ordering"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"91ea5971-a10c-416c-97c9-e30cdc7faecb","name":"OK","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/categories/1/filter-ordering"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"groups\": [\n            {\n                \"id\": 1,\n                \"slug\": \"cuisines\",\n                \"sortOrder\": 0,\n                \"isHidden\": false,\n                \"isActive\": true,\n                \"fields\": [\n                    {\n                        \"id\": 1,\n                        \"key\": \"cuisine\",\n                        \"sortOrder\": 0,\n                        \"isHidden\": false\n                    }\n                ]\n            }\n        ]\n    }\n}"}],"_postman_id":"17792009-5cdb-4ca8-8925-1a283e9f3a40"}],"id":"d5c1dfc5-7504-4130-a8b2-a110b13aea9d","description":"<p>Per-category (optional per-subcategory) group/field order and hidden flags for the catalog filter UI.</p>\n","_postman_id":"d5c1dfc5-7504-4130-a8b2-a110b13aea9d"},{"name":"App Settings","item":[{"name":"List","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('app-settingsId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"35dd1a36-c9a0-46da-bf52-b2065d6f7ee9"}}],"id":"fc5dc280-2021-401b-946f-f6a4b8823b75","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/app-settings?page=1&per_page=25&search=&sort=sort_order","description":"<h2 id=\"summary\">Summary</h2>\n<p>Paginated list of app settings for the admin Library.</p>\n<h2 id=\"response-fields\">Response fields</h2>\n<p><code>id</code>, <code>key</code>, <code>displayName</code>, <code>details</code>, <code>type</code>, <code>sortOrder</code>, <code>group</code>, <code>translations.value</code></p>\n<h2 id=\"types\">Types</h2>\n<p><code>number</code> · <code>text</code> · <code>textarea</code> · <code>html</code> · <code>image</code> · <code>file</code> · <code>select</code></p>\n","urlObject":{"path":["admin","app-settings"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"page","value":"1"},{"key":"per_page","value":"25"},{"key":"search","value":""},{"key":"sort","value":"sort_order"}],"variable":[]}},"response":[{"id":"16a71501-3884-4224-aa70-448c4b7cb18b","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/app-settings?page=1&per_page=25&search=&sort=sort_order","host":["https://api.loya.cc/api/v1"],"path":["admin","app-settings"],"query":[{"key":"page","value":"1"},{"key":"per_page","value":"25"},{"key":"search","value":""},{"key":"sort","value":"sort_order"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"attributes\": {\n                \"name\": \"Example\"\n            },\n            \"relations\": {},\n            \"translations\": {},\n            \"counts\": {},\n            \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"fc5dc280-2021-401b-946f-f6a4b8823b75"},{"name":"Get one","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"963cd5c0-7168-4754-b618-d0802a009d3e"}}],"id":"1d1e429b-eaa6-4063-81e1-dc89cd96491e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/app-settings/1","urlObject":{"path":["admin","app-settings","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"0893db6e-b37a-49e9-837f-06fb056816d6","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/app-settings/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"1d1e429b-eaa6-4063-81e1-dc89cd96491e"},{"name":"Create","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"29daa5b3-6834-48f8-b93a-bf345b31d4fa"}}],"id":"ab7995c7-49fc-45fd-8c56-f8e329897e72","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"key\": \"support.phone\",\n    \"display_name\": \"Support Phone\",\n    \"details\": \"+994123456789\",\n    \"type\": \"text\",\n    \"sort_order\": 1,\n    \"group\": \"Support\",\n    \"translations\": {\n        \"value\": {\n            \"en\": \"+994 12 345 67 89\",\n            \"az\": \"+994 12 345 67 89\",\n            \"ru\": \"+994 12 345 67 89\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/app-settings","description":"<h2 id=\"body\">Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>key</td>\n<td>string</td>\n<td>yes</td>\n<td>Unique setting key, e.g. <code>support.phone</code></td>\n</tr>\n<tr>\n<td>display_name</td>\n<td>string</td>\n<td>yes</td>\n<td>Admin UI label</td>\n</tr>\n<tr>\n<td>details</td>\n<td>string</td>\n<td>no</td>\n<td>Helper text or JSON options for <code>select</code> type</td>\n</tr>\n<tr>\n<td>type</td>\n<td>string</td>\n<td>yes</td>\n<td>Input widget type</td>\n</tr>\n<tr>\n<td>sort_order</td>\n<td>int</td>\n<td>no</td>\n<td>Display order within group</td>\n</tr>\n<tr>\n<td>group</td>\n<td>string</td>\n<td>no</td>\n<td>Settings group, e.g. <code>Support</code></td>\n</tr>\n<tr>\n<td>translations.value</td>\n<td>object</td>\n<td>no</td>\n<td>Per-locale value map (<code>en</code>, <code>az</code>, <code>ru</code>)</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["admin","app-settings"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"e3ddf5b9-fc66-4ff6-8124-c3be1e38cd26","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/app-settings"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"attributes\": {\n            \"key\": \"support.phone\",\n            \"display_name\": \"Support Phone\",\n            \"details\": \"+994123456789\",\n            \"type\": \"text\",\n            \"sort_order\": 1,\n            \"group\": \"Support\"\n        },\n        \"relations\": {},\n        \"translations\": {\n            \"value\": {\n                \"en\": \"+994 12 345 67 89\",\n                \"az\": \"+994 12 345 67 89\",\n                \"ru\": \"+994 12 345 67 89\"\n            }\n        },\n        \"counts\": {},\n        \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n    }\n}"}],"_postman_id":"ab7995c7-49fc-45fd-8c56-f8e329897e72"},{"name":"Update","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"0a27a665-f68d-4a48-91e3-ff64c375e02c"}}],"id":"59851f81-b108-479e-b6f0-318572fd07b6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"display_name\": \"Support Phone\",\n    \"translations\": {\n        \"value\": {\n            \"en\": \"+994 12 345 67 90\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/app-settings/1","urlObject":{"path":["admin","app-settings","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"250ea79f-4cb4-4cad-95a1-edfc6d3d1ccd","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/app-settings/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"display_name\": \"Support Phone\",\n        \"translations\": {\n            \"value\": {\n                \"en\": \"+994 12 345 67 90\"\n            }\n        }\n    }\n}"}],"_postman_id":"59851f81-b108-479e-b6f0-318572fd07b6"},{"name":"Delete","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"7ae83c53-fd18-4492-a7f1-c8bca38d8288"}}],"id":"7445ef9c-f8e8-44ca-9f19-ea0e795bc74d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/app-settings/1","urlObject":{"path":["admin","app-settings","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"efacb89b-2e5a-4ee1-8144-9496a4de75f1","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/app-settings/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"7445ef9c-f8e8-44ca-9f19-ea0e795bc74d"},{"name":"Sort list","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"2cddc5cf-e817-4bdc-8bd8-14c5c80fc22f"}}],"id":"31b9d749-f3cf-4941-8e29-aba802680375","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/app-settings/sort","description":"<h2 id=\"summary\">Summary</h2>\n<p>Ordered rows for drag-and-drop sort UI.</p>\n","urlObject":{"path":["admin","app-settings","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"607521c8-8d4e-49a7-a179-9db49d7e0bd7","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/app-settings/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Example\",\n            \"sort_order\": 0\n        }\n    ],\n    \"meta\": {\n        \"scope\": null,\n        \"scopeValue\": null\n    }\n}"}],"_postman_id":"31b9d749-f3cf-4941-8e29-aba802680375"},{"name":"Reorder","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"64f1777c-111e-4e85-8957-e58f6be00072"}}],"id":"65dc56d1-0d7d-4c02-8fa2-9ee2c5222543","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"ids\": [\n        1,\n        2,\n        3\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/app-settings/sort","description":"<h2 id=\"body\">Body</h2>\n<p><code>ids</code> — array of setting IDs in desired order.</p>\n","urlObject":{"path":["admin","app-settings","sort"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"13c79e03-5aa0-4c89-b7c2-621380ff91f5","name":"OK","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/app-settings/sort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"updated\": 3\n    }\n}"}],"_postman_id":"65dc56d1-0d7d-4c02-8fa2-9ee2c5222543"}],"id":"6294c202-f092-416f-b617-fb758e836632","description":"<p>Site-wide settings (<code>support.phone</code>, <code>support.email</code>, <code>support.hours</code>, …). <code>value</code> is translatable per locale.</p>\n","_postman_id":"6294c202-f092-416f-b617-fb758e836632"},{"name":"Translations (raw)","item":[{"name":"List","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"d0d60279-95e0-467c-b08d-6fb2cfd75197"}}],"id":"96b5f804-454e-4f1e-bd1e-96c4624f3e8d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/translations?table_name=categories&foreign_key=1&locale=az","urlObject":{"path":["admin","translations"],"host":["https://api.loya.cc/api/v1"],"query":[{"key":"table_name","value":"categories"},{"key":"foreign_key","value":"1"},{"key":"locale","value":"az"}],"variable":[]}},"response":[{"id":"c5f80a93-0695-4812-b6ae-4bcaba043523","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/admin/translations?table_name=categories&foreign_key=1&locale=az","host":["https://api.loya.cc/api/v1"],"path":["admin","translations"],"query":[{"key":"table_name","value":"categories"},{"key":"foreign_key","value":"1"},{"key":"locale","value":"az"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"attributes\": {\n                \"name\": \"Example\"\n            },\n            \"relations\": {},\n            \"translations\": {},\n            \"counts\": {},\n            \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"last_page\": 1,\n        \"per_page\": 25,\n        \"total\": 1\n    }\n}"}],"_postman_id":"96b5f804-454e-4f1e-bd1e-96c4624f3e8d"},{"name":"Get one","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"25024260-6275-4a61-bd70-10dac93a9678"}}],"id":"18623918-2be2-497e-8980-1e214684ea2d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/translations/1","urlObject":{"path":["admin","translations","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"455a7a3e-4c3f-4152-b337-3844e79ef1a9","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/translations/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"18623918-2be2-497e-8980-1e214684ea2d"},{"name":"Create","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"5e1c9b93-9c2f-4165-b838-157d62d2a13e"}}],"id":"87c4e3be-9d7c-40d8-a7ef-a606880fa03e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"categories\",\n    \"column_name\": \"name\",\n    \"foreign_key\": 1,\n    \"locale\": \"az\",\n    \"value\": \"Yem\\u0259k\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/translations","urlObject":{"path":["admin","translations"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"3c58bd0f-e8f5-4721-a270-69fba70d9bb5","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/translations"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"attributes\": {\n            \"table_name\": \"categories\",\n            \"column_name\": \"name\",\n            \"foreign_key\": 1,\n            \"locale\": \"az\",\n            \"value\": \"Yemək\"\n        },\n        \"relations\": {},\n        \"translations\": {},\n        \"counts\": {},\n        \"updated_at\": \"2026-08-31T00:00:00.000000Z\"\n    }\n}"}],"_postman_id":"87c4e3be-9d7c-40d8-a7ef-a606880fa03e"},{"name":"Update","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"6cbc6ca1-09b0-418c-ba3f-218b4e49ecbe"}}],"id":"1e2357cf-c099-4436-972d-11396fda16f4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"table_name\": \"categories\",\n    \"column_name\": \"name\",\n    \"foreign_key\": 1,\n    \"locale\": \"az\",\n    \"value\": \"Yem\\u0259k\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/admin/translations/1","urlObject":{"path":["admin","translations","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"ea8edded-8d4b-4ae8-b059-3eacb31ebc33","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/admin/translations/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"table_name\": \"categories\",\n        \"column_name\": \"name\",\n        \"foreign_key\": 1,\n        \"locale\": \"az\",\n        \"value\": \"Yemək\"\n    }\n}"}],"_postman_id":"1e2357cf-c099-4436-972d-11396fda16f4"},{"name":"Delete","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"7a3e7289-446c-41e8-b1fe-8dd5dbbacb70"}}],"id":"85cd33d1-479f-4958-b230-91ade83f2dfa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/translations/1","urlObject":{"path":["admin","translations","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"d66fdc64-37a6-4cac-a192-a223b59e1d62","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/admin/translations/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"85cd33d1-479f-4958-b230-91ade83f2dfa"}],"id":"c4d1109e-6c93-484e-8799-efd3c5d14969","_postman_id":"c4d1109e-6c93-484e-8799-efd3c5d14969","description":""}],"id":"6411f0c2-3bd8-4cc0-ac02-f46c2eebf3f0","description":"<p>Implemented super-admin CRUD at <code>/admin/{resource}</code> (plain JSON). Translatable fields use a <code>translations</code> map keyed by locale (en/az/ru).</p>\n","_postman_id":"6411f0c2-3bd8-4cc0-ac02-f46c2eebf3f0"}],"id":"9cfe98aa-d78d-4d66-aa1a-830d23c07578","description":"<p>Frontend: <strong>admin-panel</strong> (port 3001)\nAPI base: <code>https://api.loya.cc/api/v1</code>\nAuth guard: <strong>admin</strong>\nDemo: <code>admin@loya.cc</code> / <code>password</code></p>\n<p><strong>Endpoints:</strong> 299\n<strong>Methods:</strong> GET 118 · POST 59 · PATCH 54 · PUT 23 · DELETE 45</p>\n<p><strong>Sections:</strong></p>\n<ul>\n<li>Auth: 11</li>\n<li>Lookups: 21</li>\n<li>Geocode: 1</li>\n<li>Partner hierarchy: 15</li>\n<li>Owners: 11</li>\n<li>Owner staff: 5</li>\n<li>Partner setup (write): 60</li>\n<li>Localizations: 5</li>\n<li>UI messages: 10</li>\n<li>Library (REST): 160</li>\n</ul>\n","_postman_id":"9cfe98aa-d78d-4d66-aa1a-830d23c07578"},{"name":"Customer Mobile Application (@user-panel)","item":[{"name":"Customer","item":[{"name":"Auth","item":[{"name":"OTP send","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"b4b61c30-12ed-4865-9529-4a8f940b6571"}}],"id":"8f0c14c4-a2a2-46ca-9a37-da87eaa9a6b0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"+994509876543\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/auth/customer/otp/send","description":"<h2 id=\"summary\">Summary</h2>\n<p>Send a 6-digit SMS verification code to the phone number.</p>\n<h2 id=\"auth\">Auth</h2>\n<p>None</p>\n<h2 id=\"body\">Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>phone</td>\n<td>string</td>\n<td>yes</td>\n<td>E.164 format, e.g. <code>+994509876543</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-200\">Response <code>200</code></h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Verification code sent.\",\n  \"dev_code\": \"111111\"\n}\n</code></pre>\n<p><code>dev_code</code> is returned only when <code>APP_MODE=development</code>.</p>\n","urlObject":{"path":["auth","customer","otp","send"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"642edbf5-7ac3-4789-ac69-574ebac6ee7f","name":"Development mode","originalRequest":{"method":"POST","header":[],"url":"https://api.loya.cc/api/v1/auth/customer/otp/send"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Verification code sent.\",\n    \"dev_code\": \"111111\"\n}"}],"_postman_id":"8f0c14c4-a2a2-46ca-9a37-da87eaa9a6b0"},{"name":"OTP verify","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"08073244-dcf2-4d2b-afba-282bb9d29531"}}],"id":"4274b141-e167-4da0-867d-a98adf5ac26a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"+994509876543\",\n    \"code\": \"111111\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/auth/customer/otp/verify","description":"<h2 id=\"summary\">Summary</h2>\n<p>Verify the OTP code. Required before <strong>Register</strong>.</p>\n<h2 id=\"auth\">Auth</h2>\n<p>None</p>\n<h2 id=\"body\">Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>phone</td>\n<td>string</td>\n<td>yes</td>\n<td>Same phone used in OTP send</td>\n</tr>\n<tr>\n<td>code</td>\n<td>string</td>\n<td>yes</td>\n<td>6 digits. Use <code>111111</code> in development</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-200\">Response <code>200</code></h2>\n<p><code>json\\n{ \"message\": \"OTP verified.\" }\\n</code></p>\n<h2 id=\"errors\">Errors</h2>\n<ul>\n<li><code>422</code> — expired or invalid code</li>\n</ul>\n","urlObject":{"path":["auth","customer","otp","verify"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"28a58322-b308-4e87-98a5-4a01b22d5520","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/auth/customer/otp/verify"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"OTP verified.\"\n}"}],"_postman_id":"4274b141-e167-4da0-867d-a98adf5ac26a"},{"name":"Register","event":[{"listen":"test","script":{"type":"text/javascript","exec":["if ([200, 201].includes(pm.response.code)) {","  const json = pm.response.json();","  if (json.access_token) pm.collectionVariables.set('customerToken', json.access_token);","}","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"da566da8-2210-400e-ac68-9c13fafa856f"}}],"id":"e1ebd9a5-b931-47ef-8c27-7452c34b5cac","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"+994509876543\",\n    \"password\": \"password123\",\n    \"first_name\": \"James\",\n    \"last_name\": \"Carter\",\n    \"locale\": \"en\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/auth/customer/register","description":"<h2 id=\"summary\">Summary</h2>\n<p>Create a customer account after successful OTP verification.</p>\n<h2 id=\"auth\">Auth</h2>\n<p>None (phone must be OTP-verified first)</p>\n<h2 id=\"body\">Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>phone</td>\n<td>string</td>\n<td>yes</td>\n<td>Verified phone number</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n<td>yes</td>\n<td>Min 8 characters</td>\n</tr>\n<tr>\n<td>first_name</td>\n<td>string</td>\n<td>no</td>\n<td></td>\n</tr>\n<tr>\n<td>last_name</td>\n<td>string</td>\n<td>no</td>\n<td></td>\n</tr>\n<tr>\n<td>locale</td>\n<td>string</td>\n<td>no</td>\n<td><code>en</code> · <code>az</code> · <code>ru</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-201\">Response <code>201</code></h2>\n<p><code>json\\n{\\n  \"token_type\": \"Bearer\",\\n  \"access_token\": \"…\",\\n  \"role\": \"customer\",\\n  \"user\": { \"id\": 1, \"phone\": \"+994…\", \"firstName\": \"James\" }\\n}\\n</code></p>\n<h2 id=\"variables\">Variables</h2>\n<p>Saves <code>customerToken</code> from <code>access_token</code></p>\n","urlObject":{"path":["auth","customer","register"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"e8ff2d54-957e-44b4-8029-09afcb0268a9","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/auth/customer/register"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"token_type\": \"Bearer\",\n    \"access_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example\",\n    \"role\": \"customer\",\n    \"user\": {\n        \"id\": 1,\n        \"phone\": \"+994509876543\",\n        \"firstName\": \"James\",\n        \"lastName\": \"Carter\",\n        \"locale\": \"en\",\n        \"isActive\": true\n    }\n}"}],"_postman_id":"e1ebd9a5-b931-47ef-8c27-7452c34b5cac"},{"name":"Login","event":[{"listen":"test","script":{"type":"text/javascript","exec":["if ([200, 201].includes(pm.response.code)) {","  const json = pm.response.json();","  if (json.access_token) pm.collectionVariables.set('customerToken', json.access_token);","}","if (pm.response.code === 200) {","  if (json.access_token) {","    const role = json.role;","    if (role === 'employee') {","      pm.collectionVariables.set('employeeToken', json.access_token);","    } else if (role === 'partner' || role === 'owner') {","      pm.collectionVariables.set('partnerToken', json.access_token);","      pm.collectionVariables.set('ownerToken', json.access_token);","    } else {","      pm.collectionVariables.set('customerToken', json.access_token);","    }","    pm.collectionVariables.set('userToken', json.access_token);","  }","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"f3fb3435-4b63-4a7e-8676-78c416ed94a1"}}],"id":"bd3eb4e4-5df4-4068-bafc-b3382853bba5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"+994509876543\",\n    \"password\": \"password\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/auth/login","description":"<h2 id=\"summary\">Summary</h2>\n<p>Unified phone login for the user app. Partner account is matched first.</p>\n<h2 id=\"auth\">Auth</h2>\n<p>None</p>\n<h2 id=\"body\">Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>phone</td>\n<td>string</td>\n<td>yes</td>\n<td>Partner or customer phone</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n<td>yes</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-200\">Response <code>200</code></h2>\n<p><code>json\\n{\\n  \"token_type\": \"Bearer\",\\n  \"access_token\": \"…\",\\n  \"role\": \"customer\",\\n  \"user\": { … }\\n}\\n</code>\\n<code>role</code> is <code>customer</code>, <code>partner</code> / <code>owner</code>, or <code>employee</code>.</p>\n<h2 id=\"variables\">Variables</h2>\n<p>Saves <code>customerToken</code>, or <code>ownerToken</code> + <code>partnerToken</code>, or <code>employeeToken</code>, plus <code>userToken</code></p>\n","urlObject":{"path":["auth","login"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"79c82c45-5db9-4db9-b9e0-f7fa51c0a887","name":"Customer login","originalRequest":{"method":"POST","header":[],"url":"https://api.loya.cc/api/v1/auth/login"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"token_type\": \"Bearer\",\n    \"access_token\": \"eyJ…\",\n    \"role\": \"customer\",\n    \"user\": {\n        \"id\": 1,\n        \"phone\": \"+994509876543\",\n        \"firstName\": \"James\"\n    }\n}"}],"_postman_id":"bd3eb4e4-5df4-4068-bafc-b3382853bba5"},{"name":"Password reset","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"6a2a8cb5-215f-4b25-b16c-c9cf0957715b"}}],"id":"d184d182-5227-4e67-935e-1212238b5c11","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"+994509876543\",\n    \"password\": \"newpassword\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/auth/customer/password/reset","description":"<h2 id=\"summary\">Summary</h2>\n<p>Reset password after a successful <strong>OTP Verify</strong>. Same flow as register: send OTP → verify OTP → reset.</p>\n<h2 id=\"body\">Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>phone</td>\n<td>string</td>\n<td>yes</td>\n<td>Must already be verified via OTP</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n<td>yes</td>\n<td>Min 8 characters</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"errors\">Errors</h2>\n<ul>\n<li><code>422</code> — phone not verified (<code>otp_required</code>) or unknown phone</li>\n</ul>\n","urlObject":{"path":["auth","customer","password","reset"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"3ed5801f-44f0-4e6c-ba2d-ba3e027818c7","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/auth/customer/password/reset"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Password updated.\"\n}"}],"_postman_id":"d184d182-5227-4e67-935e-1212238b5c11"},{"name":"Me","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"10e3f0b3-637c-4f3a-898e-4434f3b782f3"}}],"id":"919c6659-a4d6-4e38-9bca-859d59f0ae8e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/auth/me","description":"<h2 id=\"summary\">Summary</h2>\n<p>Current authenticated customer or partner profile.</p>\n<h2 id=\"auth\">Auth</h2>\n<p>Bearer <code></code> or <code></code> / <code></code> for partner routes</p>\n","urlObject":{"path":["auth","me"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"b74faf91-0857-4e87-9f21-9c176ff3edec","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/auth/me"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"role\": \"customer\",\n    \"user\": {\n        \"id\": 1,\n        \"phone\": \"+994509876543\",\n        \"firstName\": \"James\",\n        \"lastName\": \"Carter\",\n        \"locale\": \"en\",\n        \"isActive\": true\n    }\n}"}],"_postman_id":"919c6659-a4d6-4e38-9bca-859d59f0ae8e"},{"name":"Logout","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"adfec84e-3a7f-427b-b439-f8cbef98b5ea"}}],"id":"b0a09e37-8fa7-404d-8254-462dab2aefc0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/auth/logout","description":"<h2 id=\"summary\">Summary</h2>\n<p>Invalidate the current JWT session.</p>\n<h2 id=\"auth\">Auth</h2>\n<p>Bearer <code></code> or <code></code> / <code></code> for partner routes</p>\n","urlObject":{"path":["auth","logout"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"40d5a6b8-74c2-4f5c-b856-d5492243ce24","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/auth/logout"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Logged out.\"\n}"}],"_postman_id":"b0a09e37-8fa7-404d-8254-462dab2aefc0"}],"id":"709dc7dc-1a03-49dd-a6ec-475a94d1d5c4","description":"<p>Customer registration uses phone OTP. Unified <code>/auth/login</code> checks <strong>partner</strong> first, then <strong>customer</strong>.</p>\n","_postman_id":"709dc7dc-1a03-49dd-a6ec-475a94d1d5c4"},{"name":"Browse (public)","item":[{"name":"Categories","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('categoriesId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"2becb59c-4625-4fc7-a7e9-a417396606a7"}}],"id":"a79a7d77-34ca-4971-b179-d7f30f0889ed","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/categories","description":"<h2 id=\"summary\">Summary</h2>\n<p>Top-level categories for the home carousel (Dining, Sport, …).</p>\n<h2 id=\"response-fields\">Response fields</h2>\n<p><code>id</code>, <code>slug</code>, <code>name</code>, <code>icon</code>, <code>iconUrl</code>, <code>sortOrder</code></p>\n","urlObject":{"path":["categories"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"a996ec2c-f56b-4b92-be8a-9174ace0bcdf","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/categories"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"slug\": \"dining\",\n            \"name\": \"Dining\",\n            \"icon\": \"https://cdn.loya.cc/icons/mui/Restaurant.svg\",\n            \"iconUrl\": \"https://cdn.loya.cc/icons/mui/Restaurant.svg\",\n            \"sortOrder\": 1\n        }\n    ]\n}"}],"_postman_id":"a79a7d77-34ca-4971-b179-d7f30f0889ed"},{"name":"Subcategories","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"4085373c-5351-4926-aea8-680e0e3a0da1"}}],"id":"63423074-c43b-4cd8-8278-762b805377a9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/subcategories","description":"<h2 id=\"summary\">Summary</h2>\n<p>Subcategories linked to categories (Restaurant, Fast food, …). Filter branches via <code>subcategoryIds</code>.</p>\n","urlObject":{"path":["subcategories"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"48761acc-80e3-484d-bef0-c05c613b5732","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/subcategories"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"categoryId\": 1,\n            \"slug\": \"restaurant\",\n            \"name\": \"Restaurant\",\n            \"sortOrder\": 1\n        }\n    ]\n}"}],"_postman_id":"63423074-c43b-4cd8-8278-762b805377a9"},{"name":"Category filters","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"329887c4-98b1-43c8-b072-f5ec92904080"}}],"id":"fca11919-5d2a-407d-bc8a-408d3754be24","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/category-filters?category_slug=dining","description":"<h2 id=\"summary\">Summary</h2>\n<p>Filter groups and options for a category page.</p>\n","urlObject":{"path":["category-filters"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Category slug (required)</p>\n","type":"text/plain"},"key":"category_slug","value":"dining"}],"variable":[]}},"response":[{"id":"bb2ffcfd-f3e8-4c00-9b33-f89c78abc039","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":{"raw":"https://api.loya.cc/api/v1/category-filters?category_slug=dining","host":["https://api.loya.cc/api/v1"],"path":["category-filters"],"query":[{"key":"category_slug","value":"dining","description":"Category slug (required)"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1\n        }\n    ]\n}"}],"_postman_id":"fca11919-5d2a-407d-bc8a-408d3754be24"},{"name":"Countries","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"f78cf642-fa8d-4694-a071-4b64dd29a456"}}],"id":"3fcfe6a7-5413-420f-9b43-0736af773d2b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/countries","description":"<h2 id=\"summary\">Summary</h2>\n<p>Active countries with <code>flagIcon</code> CDN URL and <code>hasStates</code> for the optional state layer.</p>\n","urlObject":{"path":["countries"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"9de96d7f-54a4-4f53-aaeb-d091aa3d5c48","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/countries"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"slug\": \"azerbaijan\",\n            \"code\": \"AZ\",\n            \"name\": \"Azerbaijan\",\n            \"flagIcon\": \"https://cdn.loya.cc/flags/az.svg\",\n            \"flagIconUrl\": \"https://cdn.loya.cc/flags/az.svg\",\n            \"hasStates\": false,\n            \"isActive\": true\n        }\n    ]\n}"}],"_postman_id":"3fcfe6a7-5413-420f-9b43-0736af773d2b"},{"name":"States","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"fe5f2715-eb92-49c3-a389-b260598de501"}}],"id":"12037e76-b1d7-44f4-be80-0519856e730a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/states?country_id=1","description":"<h2 id=\"summary\">Summary</h2>\n<p>States / provinces for countries that use the Country → State → City flow.</p>\n","urlObject":{"path":["states"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Filter by country ID</p>\n","type":"text/plain"},"key":"country_id","value":"1"}],"variable":[]}},"response":[{"id":"73b5f682-1ff9-4ea6-ac1d-bcea0c66d5ed","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":{"raw":"https://api.loya.cc/api/v1/states?country_id=1","host":["https://api.loya.cc/api/v1"],"path":["states"],"query":[{"key":"country_id","value":"1","description":"Filter by country ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"countryId\": 1,\n            \"slug\": \"california\",\n            \"name\": \"California\",\n            \"isActive\": true\n        }\n    ]\n}"}],"_postman_id":"12037e76-b1d7-44f4-be80-0519856e730a"},{"name":"Cities","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"c13b1b19-f230-486a-9e4b-903f359d38b4"}}],"id":"cf1a0c93-5bfd-4d7d-8a02-b2ae010be0b9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/cities?country_id=1&state_id=1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Cities for location picker.</p>\n","urlObject":{"path":["cities"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Filter by country ID</p>\n","type":"text/plain"},"key":"country_id","value":"1"},{"description":{"content":"<p>Filter by state ID when the country has states</p>\n","type":"text/plain"},"key":"state_id","value":"1"}],"variable":[]}},"response":[{"id":"95f491dc-0392-4ecd-87b4-39d275c09a30","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":{"raw":"https://api.loya.cc/api/v1/cities?country_id=1&state_id=1","host":["https://api.loya.cc/api/v1"],"path":["cities"],"query":[{"key":"country_id","value":"1","description":"Filter by country ID"},{"key":"state_id","value":"1","description":"Filter by state ID when the country has states"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"countryId\": 1,\n            \"stateId\": null,\n            \"slug\": \"baku\",\n            \"name\": \"Baku\",\n            \"latitude\": 40.4093,\n            \"longitude\": 49.8671,\n            \"isActive\": true\n        }\n    ]\n}"}],"_postman_id":"cf1a0c93-5bfd-4d7d-8a02-b2ae010be0b9"},{"name":"Districts","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"5b0f977a-e187-4739-8753-1720fe2c862a"}}],"id":"c9de0a21-390f-4131-ba0a-3b5446031986","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/districts?city_id=1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Districts/neighbourhoods within a city.</p>\n","urlObject":{"path":["districts"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Filter by city ID</p>\n","type":"text/plain"},"key":"city_id","value":"1"}],"variable":[]}},"response":[{"id":"5bb5cf08-0597-4e6b-98ad-6d32bbd020ad","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":{"raw":"https://api.loya.cc/api/v1/districts?city_id=1","host":["https://api.loya.cc/api/v1"],"path":["districts"],"query":[{"key":"city_id","value":"1","description":"Filter by city ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"cityId\": 1,\n            \"slug\": \"narimanov\",\n            \"name\": \"Narimanov\",\n            \"isActive\": true\n        }\n    ]\n}"}],"_postman_id":"c9de0a21-390f-4131-ba0a-3b5446031986"},{"name":"Subway stations","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"789e851c-b171-4dd8-b441-efdede7e3d36"}}],"id":"867822a0-fe72-4879-b4ac-071982ed9b43","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/subway-stations?city_id=1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Metro stations for branch location filters.</p>\n","urlObject":{"path":["subway-stations"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Filter by city ID</p>\n","type":"text/plain"},"key":"city_id","value":"1"}],"variable":[]}},"response":[{"id":"4fdd3bac-45b9-4c82-b52f-f1c32bb44004","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":{"raw":"https://api.loya.cc/api/v1/subway-stations?city_id=1","host":["https://api.loya.cc/api/v1"],"path":["subway-stations"],"query":[{"key":"city_id","value":"1","description":"Filter by city ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"cityId\": 1,\n            \"slug\": \"28-may\",\n            \"name\": \"28 May\",\n            \"latitude\": 40.3798,\n            \"longitude\": 49.8488\n        }\n    ]\n}"}],"_postman_id":"867822a0-fe72-4879-b4ac-071982ed9b43"},{"name":"Branches","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('branchesId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"72edcb45-3eba-4621-856f-1f4ffe459b28"}}],"id":"0b9f93b6-5968-407c-aa0f-03278b74ae3b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/branches","description":"<h2 id=\"summary\">Summary</h2>\n<p>List active branches. Supports geo sort when <code>lat</code> + <code>lng</code> provided.</p>\n<h2 id=\"query-parameters\">Query parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Param</th>\n<th>Type</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>district_id</td>\n<td>int</td>\n<td>Filter by district</td>\n</tr>\n<tr>\n<td>category_id</td>\n<td>int</td>\n<td>Filter by parent category</td>\n</tr>\n<tr>\n<td>subcategory_id</td>\n<td>int</td>\n<td>Single subcategory</td>\n</tr>\n<tr>\n<td>subcategory_ids</td>\n<td>string</td>\n<td>Comma-separated IDs</td>\n</tr>\n<tr>\n<td>q</td>\n<td>string</td>\n<td>Search name/address</td>\n</tr>\n<tr>\n<td>lat</td>\n<td>float</td>\n<td>With <code>lng</code> enables distance sort</td>\n</tr>\n<tr>\n<td>lng</td>\n<td>float</td>\n<td>With <code>lat</code> enables distance sort</td>\n</tr>\n<tr>\n<td>radius</td>\n<td>float</td>\n<td>Km radius (default 20)</td>\n</tr>\n<tr>\n<td>sort</td>\n<td>string</td>\n<td><code>distance</code> when lat/lng set</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-fields\">Response fields</h2>\n<p><code>id</code>, <code>name</code>, <code>slug</code>, <code>logo</code>, <code>coverImage</code>, <code>distanceKm</code>, <code>isOpen</code>, <code>subcategoryIds</code></p>\n","urlObject":{"path":["branches"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"ce38fea9-e2e1-44a6-a864-61ca26fcced5","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/branches"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Papa John's Narimanov\",\n            \"slug\": \"papa-johns-narimanov\",\n            \"logo\": \"https://cdn.loya.cc/branches/logos/example.png\",\n            \"coverImage\": \"https://cdn.loya.cc/branches/covers/example.png\",\n            \"isOpen\": true,\n            \"distanceKm\": 1.2\n        }\n    ]\n}"}],"_postman_id":"0b9f93b6-5968-407c-aa0f-03278b74ae3b"},{"name":"Branches nearby","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('branchesId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"802df0e6-8eed-4a0f-bd4a-5613be46de75"}}],"id":"8ac59dd9-629f-4ab5-8ea8-7f0d71500091","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/branches?lat=40.4093&lng=49.8671&radius=20&sort=distance","description":"<h2 id=\"summary\">Summary</h2>\n<p>Branches sorted by distance from Baku centre (example coordinates).</p>\n","urlObject":{"path":["branches"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Latitude</p>\n","type":"text/plain"},"key":"lat","value":"40.4093"},{"description":{"content":"<p>Longitude</p>\n","type":"text/plain"},"key":"lng","value":"49.8671"},{"description":{"content":"<p>Max distance in km</p>\n","type":"text/plain"},"key":"radius","value":"20"},{"description":{"content":"<p>Sort by proximity</p>\n","type":"text/plain"},"key":"sort","value":"distance"}],"variable":[]}},"response":[{"id":"4bc2fb3d-bded-4550-bfaa-4dffab6b3c14","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":{"raw":"https://api.loya.cc/api/v1/branches?lat=40.4093&lng=49.8671&radius=20&sort=distance","host":["https://api.loya.cc/api/v1"],"path":["branches"],"query":[{"key":"lat","value":"40.4093","description":"Latitude"},{"key":"lng","value":"49.8671","description":"Longitude"},{"key":"radius","value":"20","description":"Max distance in km"},{"key":"sort","value":"distance","description":"Sort by proximity"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Papa John's Narimanov\",\n            \"slug\": \"papa-johns-narimanov\",\n            \"logo\": \"https://cdn.loya.cc/branches/logos/example.png\",\n            \"coverImage\": \"https://cdn.loya.cc/branches/covers/example.png\",\n            \"isOpen\": true,\n            \"distanceKm\": 1.2\n        }\n    ]\n}"}],"_postman_id":"8ac59dd9-629f-4ab5-8ea8-7f0d71500091"},{"name":"Services (catalog / search cards)","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('serviceId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"de3b637a-983e-450b-a97d-5665399da80d"}}],"id":"fdbbaa15-bc08-48b4-9dde-a695cc7d2cb4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/services?category_slug=dining&lat=40.4093&lng=49.8671&sort=distance","description":"<h2 id=\"summary\">Summary</h2>\n<p>Category and search place cards. Each row is a <strong>service</strong>, with presentation rules for title/logo/profile path. Plain (non-branded, non-external) services on the same host branch collapse to one card.</p>\n<h2 id=\"auth\">Auth</h2>\n<p>None. Internal-only services are <strong>hidden</strong> from this list (they remain on the host branch profile).</p>\n<h2 id=\"query-parameters\">Query parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Param</th>\n<th>Type</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>category_id</td>\n<td>int</td>\n<td>Filter by parent category</td>\n</tr>\n<tr>\n<td>category_slug</td>\n<td>string</td>\n<td>Filter by category slug (e.g. <code>dining</code>)</td>\n</tr>\n<tr>\n<td>subcategory_id</td>\n<td>int</td>\n<td>Filter by subcategory</td>\n</tr>\n<tr>\n<td>q</td>\n<td>string</td>\n<td>Search service / host / partner name</td>\n</tr>\n<tr>\n<td>lat</td>\n<td>float</td>\n<td>With <code>lng</code> enables <code>distanceKm</code> + radius filter</td>\n</tr>\n<tr>\n<td>lng</td>\n<td>float</td>\n<td>With <code>lat</code> enables distance</td>\n</tr>\n<tr>\n<td>radius</td>\n<td>float</td>\n<td>Km radius (default 20 when lat/lng set)</td>\n</tr>\n<tr>\n<td>sort</td>\n<td>string</td>\n<td><code>distance</code> when lat/lng set</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"card-presentation\">Card presentation</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Case</th>\n<th>title</th>\n<th>logo</th>\n<th>profilePath</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Plain internal (no service logo)</td>\n<td>Host <strong>branch</strong> name</td>\n<td>Host branch logo</td>\n<td><code>/home/branches/{hostId}</code></td>\n</tr>\n<tr>\n<td>Branded internal (service logo set)</td>\n<td><code>{service} — {host}</code></td>\n<td>Service logo</td>\n<td><code>/home/branches/{hostId}?focusService={id}</code></td>\n</tr>\n<tr>\n<td>External Accept All</td>\n<td>Guest / linked name</td>\n<td>Linked branch logo</td>\n<td><code>/home/branches/{linkedBranchId}</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-fields\">Response fields</h2>\n<p><code>id</code>, <code>kind</code> (<code>service</code>), <code>name</code>, <code>title</code>, <code>slug</code>, <code>logo</code>, <code>logoUrl</code>, <code>serviceLogoUrl</code>, <code>branchLogoUrl</code>, <code>linkedBranchLogoUrl</code>, <code>branchId</code>, <code>branchName</code>, <code>partnerName</code>, <code>hostName</code>, <code>isExternallyLinked</code>, <code>linkedBranchId</code>, <code>isBranded</code>, <code>profilePath</code>, <code>isOpen</code>, <code>distanceKm</code>, <code>subcategoryIds</code></p>\n","urlObject":{"path":["services"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p>Category slug</p>\n","type":"text/plain"},"key":"category_slug","value":"dining"},{"description":{"content":"<p>Latitude</p>\n","type":"text/plain"},"key":"lat","value":"40.4093"},{"description":{"content":"<p>Longitude</p>\n","type":"text/plain"},"key":"lng","value":"49.8671"},{"description":{"content":"<p>Sort by proximity</p>\n","type":"text/plain"},"key":"sort","value":"distance"}],"variable":[]}},"response":[{"id":"e9ffa054-c787-4264-82b6-dda3952a69c6","name":"Services catalog","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.loya.cc/api/v1/services?category_slug=dining","host":["https://api.loya.cc/api/v1"],"path":["services"],"query":[{"key":"category_slug","value":"dining"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"kind\": \"service\",\n            \"name\": \"Dine-in\",\n            \"title\": \"Papa John's Narimanov\",\n            \"isBranded\": false,\n            \"isExternallyLinked\": false,\n            \"profilePath\": \"/home/branches/1\",\n            \"branchId\": 1,\n            \"hostName\": \"Papa John's Narimanov\",\n            \"distanceKm\": 1,\n            \"isOpen\": false\n        }\n    ]\n}"}],"_postman_id":"fdbbaa15-bc08-48b4-9dde-a695cc7d2cb4"},{"name":"Branch detail","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"12908612-dd94-4a25-9014-adc5e8befab5"}}],"id":"96f3cce1-1f6e-45e7-bc72-c7331b244f1a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/branches/1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Full branch profile: about, amenities, menus, promos, loyalty cards, gallery.</p>\n<h2 id=\"path\">Path</h2>\n<p><code>branchesId</code> collection variable (default <code>1</code>)</p>\n<h2 id=\"includes\">Includes</h2>\n<p><code>aboutSections</code>, <code>amenities</code>, <code>images</code>, <code>menuTargets</code>, <code>serviceUnits</code>, <code>externalBrandServices</code>, <code>promos</code>, <code>loyaltyCards</code>, <code>wifiNetworks</code>, <code>openingHourGroups</code></p>\n<h2 id=\"opening-hour-groups\">Opening hour groups</h2>\n<p>Each group: <code>id</code>, <code>slug</code>, <code>title</code>, <code>isDefault</code>, <code>gender</code> (<code>all</code>|<code>male</code>|<code>female</code>), <code>ageGroup</code> (nullable age key: <code>infant</code>…<code>senior</code>), <code>sortOrder</code>, <code>days</code>, <code>translations.title</code>.</p>\n<h2 id=\"ordering\">Ordering</h2>\n<p><code>serviceUnits</code> sorted by <code>sortOrder</code> asc. Services may belong to <code>serviceGroup*</code> fields for grouped UI.</p>\n","urlObject":{"path":["branches","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"220189e2-1589-414d-9f1a-0dd30b03b17d","name":"Branch detail","originalRequest":{"method":"GET","header":[],"url":"https://api.loya.cc/api/v1/branches/9"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 9,\n        \"name\": \"KFC Narimanov\",\n        \"slug\": \"kfc-narimanov\",\n        \"logo\": \"https://cdn.loya.cc/.../branches/logos/kfc-narimanov.png\",\n        \"coverImage\": \"https://cdn.loya.cc/.../branches/covers/kfc-narimanov.png\",\n        \"distanceKm\": 0.4,\n        \"isOpen\": true,\n        \"todayHours\": \"09:00-23:00\",\n        \"menuUrl\": \"https://cdn.loya.cc/.../menus/kfc-narimanov-menu.pdf\"\n    }\n}"}],"_postman_id":"96f3cce1-1f6e-45e7-bc72-c7331b244f1a"},{"name":"Service detail","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"396a0d06-46c3-4aab-b27a-dc120c733831"}}],"id":"7c6cd196-b124-4db1-a253-f1e8b2e3f8b4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/branches/1/services/1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Service profile opened from a host branch (menu, hours, promos, loyalty). <strong>Accept only internal</strong> services are allowed here even though they are hidden from <code>GET /services</code> search.</p>\n<h2 id=\"path\">Path</h2>\n<p><code>branchesId</code> + <code>serviceId</code> collection variables</p>\n<h2 id=\"opening-hour-groups\">Opening hour groups</h2>\n<p>Same shape as branch: includes <code>gender</code> and <code>ageGroup</code> for Special access times in the app drawer.</p>\n","urlObject":{"path":["branches","1","services","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"c35bb4be-22a9-4a44-8514-bcaf80bcaf7d","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/branches/1/services/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Papa John's Narimanov\",\n        \"slug\": \"papa-johns-narimanov\",\n        \"logo\": \"https://cdn.loya.cc/branches/logos/example.png\",\n        \"coverImage\": \"https://cdn.loya.cc/branches/covers/example.png\",\n        \"isOpen\": true,\n        \"distanceKm\": 1.2\n    }\n}"}],"_postman_id":"7c6cd196-b124-4db1-a253-f1e8b2e3f8b4"},{"name":"Promos","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('promoId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"8298654b-bf75-451d-ac04-51c704fc2174"}}],"id":"b19b390d-2f88-461a-9bef-05deda2fea89","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/promos","description":"<h2 id=\"summary\">Summary</h2>\n<p>Public promo catalog. When logged in, includes per-user activation state.</p>\n","urlObject":{"path":["promos"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"7dedea96-f2ae-4e97-8e47-f7fcdece7748","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/promos"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"title\": \"20% off\",\n            \"discountType\": \"percentage\",\n            \"discountValue\": 20,\n            \"isActive\": true\n        }\n    ]\n}"}],"_postman_id":"b19b390d-2f88-461a-9bef-05deda2fea89"},{"name":"Loyalty cards","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('loyalty-cardsId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"0ff1f836-dc37-4593-ab6d-ea123661c4c1"}}],"id":"781ece14-cd8c-4ecb-8bf3-6fd917ef7edc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/loyalty-cards","description":"<h2 id=\"summary\">Summary</h2>\n<p>Visible loyalty programs across branches.</p>\n","urlObject":{"path":["loyalty-cards"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"fba58516-d4fe-401c-abb2-20dfe7b45e6a","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/loyalty-cards"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"title\": \"Buy 10 get 1 free\",\n            \"type\": \"punch_card\",\n            \"punchesRequired\": 10,\n            \"isActive\": true\n        }\n    ]\n}"}],"_postman_id":"781ece14-cd8c-4ecb-8bf3-6fd917ef7edc"},{"name":"Home banners","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"2a9fd3ad-c9b7-46db-8cf4-ba3cc316f1fe"}}],"id":"193bbdd0-6c54-4289-a338-c79e05b74251","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/home-banners","description":"<h2 id=\"summary\">Summary</h2>\n<p>Carousel banners with <code>imageUrl</code> and deep-link (<code>linkType</code>, <code>linkId</code>).</p>\n","urlObject":{"path":["home-banners"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"268afaf7-ef50-4869-a6be-a7e38ad2cdd0","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/home-banners"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"title\": \"Deals and loyalty\",\n            \"imageUrl\": \"https://cdn.loya.cc/banners/welcome.jpg\",\n            \"linkType\": \"branch\",\n            \"linkId\": 1\n        }\n    ]\n}"}],"_postman_id":"193bbdd0-6c54-4289-a338-c79e05b74251"},{"name":"App settings (public)","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"4ffbec5a-538c-4604-893c-8a4bbfbb7340"}}],"id":"f75dbd7c-715f-4ca3-92da-061e6960d470","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/settings","description":"<h2 id=\"summary\">Summary</h2>\n<p>Public support contact settings for the user app Support screen.</p>\n<h2 id=\"response-200\">Response <code>200</code></h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"supportPhone\": \"+994 12 345 67 89\",\n    \"supportPhoneTel\": \"+994123456789\",\n    \"supportEmail\": \"support@loya.az\",\n    \"supportHours\": \"Mon–Fri, 9:00–18:00\"\n  }\n}\n</code></pre>\n<h2 id=\"auth\">Auth</h2>\n<p>None</p>\n","urlObject":{"path":["settings"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"f5830fc7-a4f5-44ec-ba9b-b6cf3cbb538e","name":"Support settings","originalRequest":{"method":"GET","header":[],"url":"https://api.loya.cc/api/v1/settings"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"supportPhone\": \"+994 12 345 67 89\",\n        \"supportPhoneTel\": \"+994123456789\",\n        \"supportEmail\": \"support@loya.az\",\n        \"supportHours\": \"Mon–Fri, 9:00–18:00\"\n    }\n}"}],"_postman_id":"f75dbd7c-715f-4ca3-92da-061e6960d470"},{"name":"FAQ (question answers)","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"53fdb5d0-8ea6-4408-aeb4-a4ae7c67433d"}}],"id":"aea7b0cc-ce4f-4e72-9ebb-d24a7441ad60","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/question-answers","description":"<h2 id=\"summary\">Summary</h2>\n<p>Active FAQ items for Support page, ordered by <code>sortOrder</code> asc.</p>\n<h2 id=\"response-fields\">Response fields</h2>\n<p><code>id</code>, <code>question</code>, <code>answer</code>, <code>sortOrder</code></p>\n<h2 id=\"auth\">Auth</h2>\n<p>None</p>\n","urlObject":{"path":["question-answers"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"81e250f8-f527-4b5c-9464-7d14f0cd9f1a","name":"FAQ list","originalRequest":{"method":"GET","header":[],"url":"https://api.loya.cc/api/v1/question-answers"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"question\": \"How do I redeem a promo?\",\n            \"answer\": \"Tap Redeem and show the QR code.\",\n            \"sortOrder\": 1\n        }\n    ]\n}"}],"_postman_id":"aea7b0cc-ce4f-4e72-9ebb-d24a7441ad60"},{"name":"Custom pages","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"a7eedfa0-906f-4d7e-9266-49d094dd97bc"}}],"id":"34499c35-d5d1-40ab-811d-7e0724c18734","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/custom-pages","description":"<h2 id=\"summary\">Summary</h2>\n<p>Published CMS pages (<code>about</code>, <code>privacy</code>, <code>custom</code>) for profile links.</p>\n<h2 id=\"response-fields\">Response fields</h2>\n<p><code>id</code>, <code>slug</code>, <code>type</code>, <code>title</code>, <code>body</code></p>\n","urlObject":{"path":["custom-pages"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"3b21a0de-73d4-4111-9f0c-c6524a749b00","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/custom-pages"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"slug\": \"about\",\n            \"type\": \"about\",\n            \"title\": \"About Loya\",\n            \"body\": \"Loya connects customers with partner offers.\"\n        }\n    ]\n}"}],"_postman_id":"34499c35-d5d1-40ab-811d-7e0724c18734"},{"name":"Custom page by slug","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"5987458c-680d-4c68-b69c-8906f846cf9d"}}],"id":"78db6a13-5e86-4ed7-81c5-54a9145f32b8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/custom-pages/about","description":"<h2 id=\"summary\">Summary</h2>\n<p>Single published CMS page by slug (e.g. <code>about</code>, <code>privacy</code>).</p>\n<h2 id=\"path\">Path</h2>\n<p><code>customPageSlug</code> collection variable</p>\n","urlObject":{"path":["custom-pages","about"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"177d7bbf-effb-418f-95f5-4e14a5c90a0a","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/custom-pages/about"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"slug\": \"about\",\n        \"type\": \"about\",\n        \"title\": \"About Loya\",\n        \"body\": \"Loya connects customers with partner offers.\"\n    }\n}"}],"_postman_id":"78db6a13-5e86-4ed7-81c5-54a9145f32b8"},{"name":"Active locales","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"95074650-9ab5-4c7b-aaad-53df481dcc52"}}],"id":"a3560081-cd0b-46e7-b0e7-14127fee208c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/localizations","description":"<h2 id=\"summary\">Summary</h2>\n<p>Enabled site locales for language picker (<code>code</code>, <code>name</code>, <code>nativeName</code>, <code>isDefault</code>).</p>\n","urlObject":{"path":["localizations"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"1fda611d-3de9-4f07-9a23-eb8647b0e2ea","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/localizations"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"code\": \"en\",\n            \"name\": \"English\",\n            \"nativeName\": \"English\",\n            \"isActive\": true,\n            \"isDefault\": true,\n            \"sortOrder\": 0\n        }\n    ]\n}"}],"_postman_id":"a3560081-cd0b-46e7-b0e7-14127fee208c"},{"name":"Media file","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"3136745f-f73f-42e8-ae1a-7cd10151219a"}}],"id":"dca47902-107a-4b26-a607-71f2415b18d6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/media/branches/logos/kfc-narimanov.png","description":"<h2 id=\"summary\">Summary</h2>\n<p>Proxy/serve a storage file when CDN is unavailable.</p>\n<h2 id=\"path-variable\">Path variable</h2>\n<p><code>mediaPath</code> — storage path without <code>storage/</code> prefix, e.g. <code>branches/logos/kfc-narimanov.png</code></p>\n","urlObject":{"path":["media","branches/logos/kfc-narimanov.png"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"1d3c1682-a15e-441e-9f79-cda757b22e7c","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/media/branches/logos/kfc-narimanov.png"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"dca47902-107a-4b26-a607-71f2415b18d6"}],"id":"ed60557d-6b86-436d-a4f0-4e5da7e1edb1","description":"<p>Catalog endpoints used on home, search, category, and branch screens. <strong>No auth required.</strong></p>\n","_postman_id":"ed60557d-6b86-436d-a4f0-4e5da7e1edb1"},{"name":"Promos","item":[{"name":"Show promo","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"2c84f0f4-76ed-4ece-98b6-2cbf8ca0c822"}}],"id":"d8efb22f-f188-4d5e-bd71-6706592d35e1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/promos/1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Promo detail for the logged-in customer, including availability.</p>\n<h2 id=\"auth\">Auth</h2>\n<p>Bearer <code></code></p>\n<h2 id=\"response-fields\">Response fields</h2>\n<p><code>scheduleText</code>, <code>isAvailableNow</code>, <code>availabilityState</code>, <code>availabilityNotice</code>, <code>nextAvailableAt</code>, <code>applicableTo</code>, <code>scopeLabel</code>, <code>limitPerUser</code>, <code>remainingQuantity</code>.</p>\n","urlObject":{"path":["promos","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"ff601d31-aea1-4c13-844f-b64236e969d6","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/promos/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"title\": \"20% off\",\n        \"discountType\": \"percentage\",\n        \"discountValue\": 20,\n        \"isActive\": true\n    }\n}"}],"_postman_id":"d8efb22f-f188-4d5e-bd71-6706592d35e1"},{"name":"Redeem promo","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"82fc7c94-c66f-4e83-b9dd-515913c3f576"}}],"id":"00bcd3bc-662a-4433-aa36-f5bc46804dbf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/promos/1/redeem","description":"<h2 id=\"summary\">Summary</h2>\n<p>Redeem a promo the customer is allowed to use now. Fails when the schedule, stock, or per-user limit blocks it.</p>\n<h2 id=\"auth\">Auth</h2>\n<p>Bearer <code></code></p>\n","urlObject":{"path":["promos","1","redeem"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"b7847df3-3207-4b5d-8b26-e8f0a9719735","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/promos/1/redeem"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"status\": \"pending\"\n    }\n}"}],"_postman_id":"00bcd3bc-662a-4433-aa36-f5bc46804dbf"},{"name":"Activate promo","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('activationId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"7edd3567-0254-4c38-9b83-11fb5b66459e"}}],"id":"8ee12e6c-dd27-43a2-9bbb-b6e06abd04e3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/promos/1/activate","description":"<h2 id=\"summary\">Summary</h2>\n<p>Start a promo activation. Returns QR <code>code</code> for validator scan.</p>\n<h2 id=\"auth\">Auth</h2>\n<p>Bearer <code></code></p>\n<h2 id=\"variables\">Variables</h2>\n<p>Saves <code>activationId</code> from response when present</p>\n","urlObject":{"path":["promos","1","activate"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"a042546b-f800-4c7b-9287-1cbd4f54232d","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/promos/1/activate"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"code\": \"PAPADEMO\",\n        \"status\": \"pending\"\n    }\n}"}],"_postman_id":"8ee12e6c-dd27-43a2-9bbb-b6e06abd04e3"},{"name":"Get activation","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"24709d95-041a-4e46-b0dc-40f1ac997975"}}],"id":"716971ce-91d8-4e51-b710-ff2349c008a8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/promo-activations/1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Poll activation status (<code>pending</code>, <code>confirmed</code>, <code>rejected</code>, <code>expired</code>).</p>\n","urlObject":{"path":["promo-activations","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"404aa878-d40c-478c-bf90-c2a91e200a73","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/promo-activations/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"code\": \"PAPADEMO\",\n        \"status\": \"pending\"\n    }\n}"}],"_postman_id":"716971ce-91d8-4e51-b710-ff2349c008a8"}],"id":"a5688a34-c41e-402c-8040-1e8ec424d0cf","description":"<p>Customer promo activation flow (QR code generation). Requires <code>customerToken</code>.</p>\n","_postman_id":"a5688a34-c41e-402c-8040-1e8ec424d0cf"},{"name":"Profile","item":[{"name":"Stats","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"a2fc6f08-3c04-41bb-95f4-0fb9bbc4c7e8"}}],"id":"2a8c4cfd-aa49-4b50-acb3-ab5644ab9770","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/stats","description":"<h2 id=\"summary\">Summary</h2>\n<p>Dashboard counters (favorites, loyalty, visits).</p>\n","urlObject":{"path":["customer","stats"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"788c353d-83a7-439f-b9b7-bc487681cade","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/stats"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"2a8c4cfd-aa49-4b50-acb3-ab5644ab9770"},{"name":"History","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"3589c805-4a5d-47df-bfe9-83385149d81d"}}],"id":"c8557c67-e2df-4f30-8f33-528d51fe8b69","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/history","description":"<h2 id=\"summary\">Summary</h2>\n<p>Promo activations and loyalty events timeline.</p>\n","urlObject":{"path":["customer","history"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"701dfd8c-ec9b-4ba0-a646-e2d6468825f7","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/history"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"c8557c67-e2df-4f30-8f33-528d51fe8b69"},{"name":"Favorites","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"27c2da81-d90d-41ab-947f-6d1507c3dcb7"}}],"id":"d6643c26-7f51-47b1-9769-ef5e67e0cb51","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/favorites","description":"<h2 id=\"summary\">Summary</h2>\n<p>Saved branches with nested <code>branch</code> resource.</p>\n","urlObject":{"path":["customer","favorites"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"be5b3d05-5b7c-40aa-b01f-a6105fe6573d","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/favorites"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"branchId\": 1,\n            \"branch\": {\n                \"id\": 1,\n                \"name\": \"Papa John's Narimanov\",\n                \"slug\": \"papa-johns-narimanov\",\n                \"logo\": \"https://cdn.loya.cc/branches/logos/example.png\",\n                \"coverImage\": \"https://cdn.loya.cc/branches/covers/example.png\",\n                \"isOpen\": true,\n                \"distanceKm\": 1.2\n            }\n        }\n    ]\n}"}],"_postman_id":"d6643c26-7f51-47b1-9769-ef5e67e0cb51"},{"name":"Add favorite","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"d77a59e2-3958-430b-a5a3-756ed1a9512f"}}],"id":"76bbcdd8-6061-4318-8bf1-2dfc72813a61","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"branchId\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/customer/favorites","description":"<h2 id=\"body\">Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>branchId</td>\n<td>integer</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["customer","favorites"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"00f555a6-3c64-4a7c-9f47-eb06bb479a56","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/customer/favorites"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"branchId\": 1\n    }\n}"}],"_postman_id":"76bbcdd8-6061-4318-8bf1-2dfc72813a61"},{"name":"Remove favorite","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"2023c7ad-7b7f-4797-a6f6-9453e7b46238"}}],"id":"c329b656-13ba-4097-980e-666c6d8792bb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/favorites/1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Remove branch from favorites.</p>\n","urlObject":{"path":["customer","favorites","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"7d0e0e9e-554c-4490-abe4-91f7ca0fc8ad","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/favorites/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"c329b656-13ba-4097-980e-666c6d8792bb"},{"name":"My loyalty cards","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"881f84d2-6a9c-42b8-a90c-094e58c0804a"}}],"id":"e9e2206a-30d4-4d78-a088-7312b44e1e5e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/loyalty-cards","description":"<h2 id=\"summary\">Summary</h2>\n<p>Customer enrollments with punch progress.</p>\n","urlObject":{"path":["customer","loyalty-cards"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"fa0d500a-ef2d-4b97-b9b1-5b4772c0cf92","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/loyalty-cards"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"e9e2206a-30d4-4d78-a088-7312b44e1e5e"},{"name":"Update profile","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"a0f6fa5b-b521-4d4f-88f1-2f80e842feb2"}}],"id":"70cbf258-3092-4e6e-aa6d-127b6a9968b2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"firstName\": \"James\",\n    \"lastName\": \"Updated\",\n    \"locale\": \"en\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/customer/profile","description":"<h2 id=\"summary\">Summary</h2>\n<p>Update profile fields. Send <code>multipart/form-data</code> for avatar upload.</p>\n<h2 id=\"json-body-fields\">JSON body fields</h2>\n<p><code>firstName</code>, <code>lastName</code>, <code>gender</code>, <code>birthday</code>, <code>locale</code></p>\n","urlObject":{"path":["customer","profile"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"30771169-739b-43c4-b09f-2e145586e631","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/customer/profile"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"firstName\": \"James\",\n        \"lastName\": \"Updated\",\n        \"locale\": \"en\"\n    }\n}"}],"_postman_id":"70cbf258-3092-4e6e-aa6d-127b6a9968b2"}],"id":"6461c0e8-e8d0-4ad2-9a87-bc5d24a7da5c","description":"<p>Account, favorites, history, and enrolled loyalty cards.</p>\n","_postman_id":"6461c0e8-e8d0-4ad2-9a87-bc5d24a7da5c"},{"name":"Loyalty","item":[{"name":"Get branch invite","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"c015837d-3c29-416b-9879-da663d5ba208"}}],"id":"54043783-4237-4b8e-8ed3-af4536271dbd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/branches/1/loyalty-invites","description":"<h2 id=\"summary\">Summary</h2>\n<p>Invitation metadata before joining a branch loyalty program.</p>\n","urlObject":{"path":["customer","branches","1","loyalty-invites"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"d47edc8e-e232-4587-a3e5-55986e61d16c","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/branches/1/loyalty-invites"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"54043783-4237-4b8e-8ed3-af4536271dbd"},{"name":"Accept branch invite","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"1cae353d-d2c3-4b61-bcb9-9e2c67389285"}}],"id":"5406a1ec-7123-40f2-a444-0b1ab57178ba","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/branches/1/loyalty-invites","description":"<h2 id=\"summary\">Summary</h2>\n<p>Accept invite and link customer to branch loyalty.</p>\n","urlObject":{"path":["customer","branches","1","loyalty-invites"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"d49180ca-a61b-4b2b-b854-e250a16b79f0","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/branches/1/loyalty-invites"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"5406a1ec-7123-40f2-a444-0b1ab57178ba"},{"name":"Enroll in card","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"921b4f3f-ef00-44db-b215-3264f1ee93e8"}}],"id":"6e48d7e7-95ed-4a32-a489-535829f59d1b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/loyalty-cards/1/enroll","description":"<h2 id=\"summary\">Summary</h2>\n<p>Enroll in a specific loyalty card program.</p>\n","urlObject":{"path":["customer","loyalty-cards","1","enroll"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"dc4a76cf-d734-414c-a59f-6aead00dc4eb","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/loyalty-cards/1/enroll"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"6e48d7e7-95ed-4a32-a489-535829f59d1b"},{"name":"Get enrollment","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"9dc0f7dd-34a7-47cf-8b03-dd1fc45166a4"}}],"id":"0e9908fe-9b7e-4645-876b-6a5d4dd092f4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/loyalty-cards/1/enrollment","description":"<h2 id=\"summary\">Summary</h2>\n<p>Current punch count and reward eligibility.</p>\n","urlObject":{"path":["customer","loyalty-cards","1","enrollment"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"79023f83-3763-4a56-a5e8-f107f56e87ad","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/loyalty-cards/1/enrollment"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"0e9908fe-9b7e-4645-876b-6a5d4dd092f4"},{"name":"Check in","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('loyaltyCheckInId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"b585f417-b29c-4646-807b-ceab579af7d4"}}],"id":"7e21b821-1e95-44b2-b349-f071ab20eb52","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/loyalty-cards/1/check-in","description":"<h2 id=\"summary\">Summary</h2>\n<p>Record a visit punch. Returns QR code for validator confirmation.</p>\n","urlObject":{"path":["customer","loyalty-cards","1","check-in"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"a7472ca1-8c54-4cc5-97e9-9772a71ab147","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/loyalty-cards/1/check-in"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"status\": \"pending\",\n        \"punches\": 1\n    }\n}"}],"_postman_id":"7e21b821-1e95-44b2-b349-f071ab20eb52"},{"name":"Get check-in","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"e7b4207f-ee5f-4da9-bfb2-421bb418a2aa"}}],"id":"837e53cc-2992-4324-b131-666b3488aa01","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/loyalty-check-ins/1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Check-in status after validator scan.</p>\n","urlObject":{"path":["customer","loyalty-check-ins","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"d5072f04-e0a8-40e5-9d36-4b245a7458e2","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/loyalty-check-ins/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"status\": \"pending\",\n        \"punches\": 1\n    }\n}"}],"_postman_id":"837e53cc-2992-4324-b131-666b3488aa01"},{"name":"Redeem reward","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('loyaltyRedemptionId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"6a3e10a2-6ad6-4ad7-84f1-4859b84d22dd"}}],"id":"0c70c0c0-0f3c-4625-9cd4-9d83f512af1d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/loyalty-cards/1/redeem","description":"<h2 id=\"summary\">Summary</h2>\n<p>Redeem completed punch card. Returns QR for validator.</p>\n","urlObject":{"path":["customer","loyalty-cards","1","redeem"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"09c53da0-7d2d-4910-9809-11e66e34b977","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/loyalty-cards/1/redeem"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"status\": \"pending\"\n    }\n}"}],"_postman_id":"0c70c0c0-0f3c-4625-9cd4-9d83f512af1d"},{"name":"Get redemption","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"eeaf188b-576d-4c6e-bae4-28770ce78803"}}],"id":"831238cd-2ea7-4722-8dd0-4b4f2a141f20","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/loyalty-redemptions/1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Redemption status (<code>pending</code>, <code>confirmed</code>, <code>rejected</code>).</p>\n","urlObject":{"path":["customer","loyalty-redemptions","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"9a339730-bbbc-4f72-96a6-39ea4cd9d830","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/loyalty-redemptions/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"status\": \"pending\"\n    }\n}"}],"_postman_id":"831238cd-2ea7-4722-8dd0-4b4f2a141f20"}],"id":"64909a61-4554-48a6-a44a-d72588c3ddfb","description":"<p>Invite → enroll → check-in → redeem flow.</p>\n","_postman_id":"64909a61-4554-48a6-a44a-d72588c3ddfb"},{"name":"Notifications & devices","item":[{"name":"List notifications","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"ffd731dc-7c10-4a66-82d1-535cf1932cae"}}],"id":"47fe8fa0-0c41-4300-9b86-6359489637b3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/notifications","description":"<h2 id=\"summary\">Summary</h2>\n<p>In-app notification feed.</p>\n","urlObject":{"path":["customer","notifications"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"3dce1bb4-d646-4fc9-82b3-04727630ed81","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/notifications"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1\n        }\n    ]\n}"}],"_postman_id":"47fe8fa0-0c41-4300-9b86-6359489637b3"},{"name":"Mark notification read","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"1a30d902-b93b-455b-ab5b-be8c6518f74f"}}],"id":"9d661208-d5c0-4389-9b2a-fc14da6e6e94","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/notifications/1/read","description":"<h2 id=\"summary\">Summary</h2>\n<p>Mark a single notification as read.</p>\n","urlObject":{"path":["customer","notifications","1","read"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"7d202560-5cfd-412b-87eb-4623c574f4cd","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/customer/notifications/1/read"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"9d661208-d5c0-4389-9b2a-fc14da6e6e94"},{"name":"Register push device","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"2fdbe2d0-1b7c-44a7-826d-cce60f755993"}}],"id":"754f6db7-6c6e-4404-b845-850b5cb6c226","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"pushToken\": \"fcm-token-example\",\n    \"platform\": \"ios\",\n    \"deviceId\": \"UUID-DEVICE\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/customer/devices","description":"<h2 id=\"body\">Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>pushToken</td>\n<td>string</td>\n<td>FCM token</td>\n</tr>\n<tr>\n<td>platform</td>\n<td>string</td>\n<td><code>ios</code> · <code>android</code></td>\n</tr>\n<tr>\n<td>deviceId</td>\n<td>string</td>\n<td>Unique device ID</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["customer","devices"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"59d30be1-82b3-428b-b41b-555053610229","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/customer/devices"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"pushToken\": \"fcm-token-example\",\n        \"platform\": \"ios\",\n        \"deviceId\": \"UUID-DEVICE\"\n    }\n}"}],"_postman_id":"754f6db7-6c6e-4404-b845-850b5cb6c226"}],"id":"2c4de47f-a7de-4504-b089-9ab774b074d9","_postman_id":"2c4de47f-a7de-4504-b089-9ab774b074d9","description":""},{"name":"Security","item":[{"name":"Change password","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"102bc606-eb81-4c1c-9059-1200d5267f7f"}}],"id":"fcd79d91-fe83-4faa-ba50-334fa318092c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"currentPassword\": \"password\",\n    \"password\": \"newpassword\",\n    \"password_confirmation\": \"newpassword\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/auth/customer/password/change","description":"<h2 id=\"summary\">Summary</h2>\n<p>Change password while logged in.</p>\n","urlObject":{"path":["auth","customer","password","change"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"f839abf7-17e3-4e3a-8e22-92cf1ed31937","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/auth/customer/password/change"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Password updated.\"\n}"}],"_postman_id":"fcd79d91-fe83-4faa-ba50-334fa318092c"},{"name":"Change phone","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"d9bafe63-9ab9-46bc-8e0a-dfe95960de51"}}],"id":"3fd7d8d6-743a-475d-b22a-58bd6b43f51d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"+994509876544\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/auth/customer/phone","description":"<h2 id=\"summary\">Summary</h2>\n<p>Change phone number (must be OTP-verified first).</p>\n","urlObject":{"path":["auth","customer","phone"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"04105d34-d0b0-4694-b0c2-6842c440cdfa","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/auth/customer/phone"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Phone updated.\"\n}"}],"_postman_id":"3fd7d8d6-743a-475d-b22a-58bd6b43f51d"}],"id":"09587159-8523-48b1-aa78-9d519d93fa65","_postman_id":"09587159-8523-48b1-aa78-9d519d93fa65","description":""},{"name":"Realtime (Reverb)","item":[{"name":"Broadcasting auth","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"46ccfe6d-5639-47e4-9cb3-2c8bdc30b973"}}],"id":"a63c5b57-a550-4fef-9653-60fc0cf09b37","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"socket_id\": \"1234.5678\",\n    \"channel_name\": \"private-customer.1\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/broadcasting/auth","description":"<h2 id=\"summary\">Summary</h2>\n<p>Authorize a private Reverb channel subscription for the logged-in customer.</p>\n<h2 id=\"auth\">Auth</h2>\n<p>Bearer <code></code></p>\n<h2 id=\"body\">Body</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>socket_id</td>\n<td>string</td>\n<td>From Pusher/Reverb client</td>\n</tr>\n<tr>\n<td>channel_name</td>\n<td>string</td>\n<td>Format: <code>private-customer.{customerId}</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"events\">Events</h2>\n<ul>\n<li><code>.promo.activation.updated</code> — promo QR confirmed/rejected\\n- <code>.loyalty.check-in.updated</code> — loyalty punch confirmed/rejected</li>\n</ul>\n","urlObject":{"path":["broadcasting","auth"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"636afdf5-4d4d-45cd-83c4-0cb6b54a51b1","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/broadcasting/auth"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"socket_id\": \"1234.5678\",\n        \"channel_name\": \"private-customer.1\"\n    }\n}"}],"_postman_id":"a63c5b57-a550-4fef-9653-60fc0cf09b37"}],"id":"8a7360ee-6382-4281-bdaf-b5e5a22c44a3","description":"<p>Laravel Reverb WebSocket private channel auth. Used when promo/check-in status updates arrive in the user app.</p>\n","_postman_id":"8a7360ee-6382-4281-bdaf-b5e5a22c44a3"},{"name":"UI messages","item":[{"name":"Get user-panel messages","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"2ab1194a-2f95-4c8f-8830-fc4ceb12abbf"}}],"id":"a1763bba-9151-4018-aa5c-aca55a115d3f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/ui-messages/user-panel/en","description":"<h2 id=\"summary\">Summary</h2>\n<p>Localized UI strings for the mobile app (<code>nav.*</code>, <code>auth.*</code>, etc.).</p>\n","urlObject":{"path":["ui-messages","user-panel","en"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"8be84339-cbf7-4c24-8311-596d1c3f1990","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"}],"url":"https://api.loya.cc/api/v1/ui-messages/user-panel/en"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"a1763bba-9151-4018-aa5c-aca55a115d3f"}],"id":"8c1b423a-53f3-44a6-89a9-b30e5bab4816","_postman_id":"8c1b423a-53f3-44a6-89a9-b30e5bab4816","description":""}],"id":"85993100-96e1-44b9-a752-c46c947cc35f","description":"<p>Customer app (<code>/home</code>). Token: <code></code>. Browse routes are public.</p>\n","_postman_id":"85993100-96e1-44b9-a752-c46c947cc35f"},{"name":"Partner","item":[{"name":"Owner (/partner)","item":[{"name":"Scope","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"4e2d2a05-1a7d-435f-8f3a-b1f943e87d64"}}],"id":"9083a6a9-e2d1-49c0-86c3-7533ce14cd40","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/scope","description":"<h2 id=\"summary\">Summary</h2>\n<p>Partners and country entities this owner may moderate.</p>\n","urlObject":{"path":["partner","scope"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"9d6a7f63-2c00-4ed5-be68-a4181cb6143f","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/scope"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"partners\": [\n            {\n                \"id\": 1,\n                \"name\": \"Papa John's\"\n            }\n        ],\n        \"countryEntities\": [\n            {\n                \"id\": 1,\n                \"partnerId\": 1,\n                \"label\": \"Azerbaijan\"\n            }\n        ],\n        \"partnerIds\": [\n            1\n        ],\n        \"countryEntityIds\": [\n            1\n        ]\n    }\n}"}],"_postman_id":"9083a6a9-e2d1-49c0-86c3-7533ce14cd40"},{"name":"Stats","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"9cad4779-56c1-4f67-a5c4-d35e9db53c7b"}}],"id":"9e4bd2bb-25fd-491b-a052-115a2e42e3f6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/stats?period=this_month","description":"<h2 id=\"summary\">Summary</h2>\n<p>Activation totals, customer count, and history for the selected period.</p>\n","urlObject":{"path":["partner","stats"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p><code>today</code> · <code>this_week</code> · <code>last_30</code> · <code>this_month</code> · <code>this_year</code></p>\n","type":"text/plain"},"key":"period","value":"this_month"},{"disabled":true,"description":{"content":"<p>Optional calendar year</p>\n","type":"text/plain"},"key":"year","value":"2026"},{"disabled":true,"description":{"content":"<p>Optional month 1–12</p>\n","type":"text/plain"},"key":"month","value":"10"},{"disabled":true,"description":{"content":"<p>Filter by branch</p>\n","type":"text/plain"},"key":"branch_id","value":"1"},{"disabled":true,"description":{"content":"<p>Filter by service</p>\n","type":"text/plain"},"key":"service_id","value":"1"},{"disabled":true,"description":{"content":"<p>Filter by country entity</p>\n","type":"text/plain"},"key":"country_entity_id","value":"1"},{"disabled":true,"description":{"content":"<p>Filter by city</p>\n","type":"text/plain"},"key":"city_id","value":"1"},{"disabled":true,"description":{"content":"<p>Promo type slug</p>\n","type":"text/plain"},"key":"promo_type","value":"happy-time"}],"variable":[]}},"response":[{"id":"5d2e7862-c3ce-4473-9545-6e32bcdbabb8","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/partner/stats?period=this_month","host":["https://api.loya.cc/api/v1"],"path":["partner","stats"],"query":[{"key":"period","value":"this_month","description":"`today` · `this_week` · `last_30` · `this_month` · `this_year`"},{"key":"year","value":"2026","description":"Optional calendar year","disabled":true},{"key":"month","value":"10","description":"Optional month 1–12","disabled":true},{"key":"branch_id","value":"1","description":"Filter by branch","disabled":true},{"key":"service_id","value":"1","description":"Filter by service","disabled":true},{"key":"country_entity_id","value":"1","description":"Filter by country entity","disabled":true},{"key":"city_id","value":"1","description":"Filter by city","disabled":true},{"key":"promo_type","value":"happy-time","description":"Promo type slug","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"9e4bd2bb-25fd-491b-a052-115a2e42e3f6"},{"name":"Activation receipt","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"1f411475-67b5-4c5a-9afd-52439eafb938"}}],"id":"6c9647c3-ce61-4957-abd5-0408e301fe42","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/stats/activations/1","description":"<h2 id=\"summary\">Summary</h2>\n<p>One confirmed activation receipt inside the owner scope.</p>\n","urlObject":{"path":["partner","stats","activations","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"4fcdd3d7-a55d-4f72-8bb0-a317136c7867","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/stats/activations/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"6c9647c3-ce61-4957-abd5-0408e301fe42"},{"name":"Update me","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"4953313f-fbb6-4b56-a965-ee0b1fe5d591"}}],"id":"ae42707b-6da8-4263-a6a5-8c06b01eb939","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Owner Name\",\n    \"locale\": \"en\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/partner/me","description":"<h2 id=\"summary\">Summary</h2>\n<p>Account name and locale on the dashboard settings screen.</p>\n","urlObject":{"path":["partner","me"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"86a08124-5030-4620-bc22-84c94493f362","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/partner/me"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Owner Name\",\n        \"locale\": \"en\"\n    }\n}"}],"_postman_id":"ae42707b-6da8-4263-a6a5-8c06b01eb939"},{"name":"Catalog","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"d1eb1e48-ed81-4029-ad41-ddc1678deffb"}}],"id":"f2cb4ac5-12b9-4ebe-9a6b-3dfc046e2001","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/catalog","description":"<h2 id=\"summary\">Summary</h2>\n<p>Branches, services, loyalty cards, and promos the owner can manage.</p>\n","urlObject":{"path":["partner","catalog"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"32c2aeca-b3e5-496c-8544-1343760327b3","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/catalog"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"f2cb4ac5-12b9-4ebe-9a6b-3dfc046e2001"},{"name":"Branches","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"2d9c6de5-1299-4c50-b967-8ad42111bdef"}}],"id":"4f197b4c-ff57-422a-b155-0f3129981833","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/branches","urlObject":{"path":["partner","branches"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"28142f76-95a7-488f-bc38-96210a9ed64c","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/branches"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"4f197b4c-ff57-422a-b155-0f3129981833"},{"name":"Branch detail","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"b32ae438-0c87-462d-b54f-68e06c74d445"}}],"id":"accf2f8e-20ac-4002-acf0-b761c2971958","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/branches/1","urlObject":{"path":["partner","branches","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"04d8cb9d-fb17-4d92-b9b9-db270eba4921","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/branches/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"accf2f8e-20ac-4002-acf0-b761c2971958"},{"name":"Customers","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"e04d9d7e-3c30-4e85-bef4-5d2f19d279c0"}}],"id":"810ad902-7451-450a-8da7-0f6d0d45632a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/customers","description":"<h2 id=\"summary\">Summary</h2>\n<p>Clients who have used this partner.</p>\n","urlObject":{"path":["partner","customers"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"6406e744-a0b9-4d66-a30e-bfd0902caaa0","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/customers"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"810ad902-7451-450a-8da7-0f6d0d45632a"},{"name":"List employees","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('employeesId', String(rows[0].id));","pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"03bdf4ad-8c15-4e22-a981-8c084f47d523"}}],"id":"41b5bf29-e127-46f7-b1ae-d8368cc87316","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/employees","urlObject":{"path":["partner","employees"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"7bb32ac4-1948-435b-8c2b-7d374a341322","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/employees"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1\n        }\n    ]\n}"}],"_postman_id":"41b5bf29-e127-46f7-b1ae-d8368cc87316"},{"name":"Create employee","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('employeesId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"f77a21b9-d9aa-4886-babc-871e6d682f35"}}],"id":"85cdd3d8-b495-4f09-91a9-6e84b4d838a8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"partner_id\": 1,\n    \"name\": \"Validator\",\n    \"phone\": \"+994501111111\",\n    \"email\": \"validator@papajohns.az\",\n    \"password\": \"password\",\n    \"is_active\": true,\n    \"assignments\": {\n        \"branches\": [\n            {\n                \"branch_id\": 1,\n                \"role\": \"cashier\"\n            }\n        ]\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/partner/employees","urlObject":{"path":["partner","employees"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"66143de0-9217-45c8-852c-1ecf345851da","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/partner/employees"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"partner_id\": 1,\n        \"name\": \"Validator\",\n        \"phone\": \"+994501111111\",\n        \"email\": \"validator@papajohns.az\",\n        \"password\": \"password\",\n        \"is_active\": true,\n        \"assignments\": {\n            \"branches\": [\n                {\n                    \"branch_id\": 1,\n                    \"role\": \"cashier\"\n                }\n            ]\n        }\n    }\n}"}],"_postman_id":"85cdd3d8-b495-4f09-91a9-6e84b4d838a8"},{"name":"Update employee","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"e122dd9f-b345-45a5-97b8-cfa343cb080e"}}],"id":"fb2e7652-7f64-4ab0-8b27-c09da21efff6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Validator Updated\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/partner/employees/1","urlObject":{"path":["partner","employees","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"18e92a12-0785-4808-ab93-12f8b38d0be0","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/partner/employees/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Validator Updated\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"fb2e7652-7f64-4ab0-8b27-c09da21efff6"},{"name":"Delete employee","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"97bd74b1-d606-4d8d-9b71-12bfcd3dc58e"}}],"id":"5a0cc497-cf50-425d-84d4-5324790a7680","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/employees/1","urlObject":{"path":["partner","employees","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"bb218672-6421-49cd-a18c-01423b717b39","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/employees/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"5a0cc497-cf50-425d-84d4-5324790a7680"},{"name":"Update loyalty card","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"4d34c150-e4dd-40c2-9be3-91c38a21f246"}}],"id":"17a5185a-e2cf-4ba6-943e-4f36948549e0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/partner/loyalty-cards/1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Toggle a loyalty card inside the owner scope.</p>\n","urlObject":{"path":["partner","loyalty-cards","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"6f47e695-4138-43a7-83e4-de0400bc18a9","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/partner/loyalty-cards/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"is_active\": true\n    }\n}"}],"_postman_id":"17a5185a-e2cf-4ba6-943e-4f36948549e0"},{"name":"List promos","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"35ce9e7c-aec1-4252-a486-6cdff17bc80d"}}],"id":"9e639a2f-a03c-4411-bae3-46f1b1ffcc17","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/promos","description":"<h2 id=\"summary\">Summary</h2>\n<p>Promos visible to this owner. Includes global scopes and <code>isEditable</code>.</p>\n","urlObject":{"path":["partner","promos"],"host":["https://api.loya.cc/api/v1"],"query":[{"disabled":true,"description":{"content":"<p>Optional service filter. Omit or leave empty for all.</p>\n","type":"text/plain"},"key":"service_id","value":""},{"disabled":true,"description":{"content":"<p>Optional channel filter.</p>\n","type":"text/plain"},"key":"channel","value":""}],"variable":[]}},"response":[{"id":"1423eb43-1c20-4dc2-9da2-4acccd81af75","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/partner/promos","host":["https://api.loya.cc/api/v1"],"path":["partner","promos"],"query":[{"key":"service_id","value":"","description":"Optional service filter. Omit or leave empty for all.","disabled":true},{"key":"channel","value":"","description":"Optional channel filter.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1\n        }\n    ]\n}"}],"_postman_id":"9e639a2f-a03c-4411-bae3-46f1b1ffcc17"},{"name":"Show promo","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"ce34244d-13d9-4dfa-a4b8-f89a32b70df5"}}],"id":"b53c7567-0d14-4385-92a1-6e8ee3aab25e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/promos/1","urlObject":{"path":["partner","promos","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"aa8c10bf-4d43-43ae-9cc3-13ff61c2ecb4","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/promos/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"b53c7567-0d14-4385-92a1-6e8ee3aab25e"},{"name":"Create promo","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('promoId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"6e095f03-9ee8-419b-aaac-93995c843c5d"}}],"id":"5df75ac1-41da-4747-abb8-8eb34282cf3d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"promo_type_id\": 1,\n    \"service_id\": 1,\n    \"discount_type\": \"percentage\",\n    \"discount_value\": 20,\n    \"applicable_to\": [\n        \"on_site\"\n    ],\n    \"is_active\": true,\n    \"time_rule\": \"time\",\n    \"time_mode\": \"between\",\n    \"time_from\": \"12:00\",\n    \"time_to\": \"16:00\",\n    \"per_user_limit_type\": \"limited\",\n    \"per_user_limit_count\": 1,\n    \"coupon_mode\": \"unlimited\",\n    \"valid_with_loyalty\": false,\n    \"translations\": {\n        \"title\": {\n            \"en\": \"Happy time 20%\"\n        },\n        \"description\": {\n            \"en\": \"Weekday afternoon discount.\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/partner/promos","description":"<h2 id=\"summary\">Summary</h2>\n<p>Create or update a promo. Response is camelCase (<code>timeRule</code>, <code>timeMode</code>, <code>weekdays</code>, <code>couponMode</code>, <code>loyaltyCardIds</code>, <code>schedule</code> fields). Request body is snake_case.</p>\n<h2 id=\"scope-scope\">Scope (<code>scope</code>)</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n<th>Required with it</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>service</code></td>\n<td>One service (default)</td>\n<td><code>service_id</code></td>\n</tr>\n<tr>\n<td><code>partner</code></td>\n<td>Whole partner (global)</td>\n<td><code>partner_id</code></td>\n</tr>\n<tr>\n<td><code>country</code></td>\n<td>One country entity</td>\n<td><code>country_entity_id</code></td>\n</tr>\n<tr>\n<td><code>branch</code></td>\n<td>One or more branches</td>\n<td><code>branch_id</code> or <code>branch_ids</code></td>\n</tr>\n<tr>\n<td><code>selection</code></td>\n<td>Selected countries, branches, and/or services</td>\n<td><code>country_entity_ids</code>, <code>branch_ids</code>, <code>service_ids</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"schedule\">Schedule</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Values</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>time_rule</code></td>\n<td><code>anytime</code> · <code>days</code> · <code>time</code> · <code>days_and_time</code></td>\n<td>Happy Time (<code>happy-time</code> promo type) cannot use <code>anytime</code></td>\n</tr>\n<tr>\n<td><code>weekdays</code></td>\n<td>integers 1–7</td>\n<td>ISO: 1 Monday … 7 Sunday. Required when the rule includes days</td>\n</tr>\n<tr>\n<td><code>time_mode</code></td>\n<td><code>anytime</code> · <code>before</code> · <code>between</code> · <code>after</code></td>\n<td>Clock window. <code>anytime</code> is invalid when <code>time_rule</code> is <code>time</code> — pick before, after, or between</td>\n</tr>\n<tr>\n<td><code>time_from</code> / <code>time_to</code></td>\n<td><code>HH:MM</code></td>\n<td><code>between</code> and <code>after</code> need <code>time_from</code>. <code>between</code> and <code>before</code> need <code>time_to</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"limits-and-stock\">Limits and stock</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Values</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>per_user_limit_type</code></td>\n<td><code>unlimited</code> · <code>limited</code></td>\n<td>Welcome promos force a lifetime personal limit</td>\n</tr>\n<tr>\n<td><code>per_user_limit_count</code></td>\n<td>integer ≥ 1</td>\n<td>Required when type is <code>limited</code></td>\n</tr>\n<tr>\n<td><code>per_user_limit_reset</code></td>\n<td><code>daily</code> · <code>weekly</code> · <code>monthly</code> · <code>never</code> · <code>calendar_year</code></td>\n<td>Birthday promos use a yearly personal limit</td>\n</tr>\n<tr>\n<td><code>coupon_mode</code></td>\n<td><code>unlimited</code> · <code>renews_daily</code> · <code>renews_weekly</code> · <code>renews_monthly</code> · <code>total</code></td>\n<td>Weekly/monthly coupon types lock the reset when stock is on</td>\n</tr>\n<tr>\n<td><code>coupon_quantity</code></td>\n<td>integer ≥ 1</td>\n<td>Required when stock mode is not <code>unlimited</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"channels-loyalty-special-types\">Channels, loyalty, special types</h2>\n<ul>\n<li><code>applicable_to[]</code> / <code>delivery_type</code>: <code>on_site</code>, <code>pick_up</code>, <code>delivery</code>, <code>online</code>, <code>home_visit</code></li>\n<li><code>valid_with_loyalty</code> + <code>loyalty_card_ids[]</code> (or <code>loyalty_card_id</code>) — cards must belong to the partner</li>\n<li>Birthday: <code>birthday_days_before</code>, <code>birthday_days_after</code> (0–7)</li>\n<li>Holiday: <code>holiday_name</code>, <code>holiday_starts_on</code> / <code>holiday_date</code>, <code>holiday_ends_on</code>, <code>holiday_days_before</code>, <code>holiday_days_after</code></li>\n<li>Student: <code>requires_student_verification</code></li>\n<li><code>translations.title.en</code> is required on admin create. <code>az</code> and <code>ru</code> are optional.</li>\n<li>Loya-owned promos return <code>isEditable: false</code>. Partners and staff cannot delete those.</li>\n</ul>\n<h2 id=\"customer-catalog-fields-added\">Customer catalog fields added</h2>\n<p><code>scheduleText</code>, <code>isAvailableNow</code>, <code>availabilityState</code>, <code>availabilityNotice</code>, <code>nextAvailableAt</code>, <code>applicableTo</code>, <code>scopeLabel</code> on <code>GET /promos</code> and <code>GET /promos/{id}</code>.</p>\n","urlObject":{"path":["partner","promos"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"36b809af-5ed9-4131-af31-8052f3c4b428","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/partner/promos"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"promo_type_id\": 1,\n        \"service_id\": 1,\n        \"discount_type\": \"percentage\",\n        \"discount_value\": 20,\n        \"applicable_to\": [\n            \"on_site\"\n        ],\n        \"is_active\": true,\n        \"time_rule\": \"time\",\n        \"time_mode\": \"between\",\n        \"time_from\": \"12:00\",\n        \"time_to\": \"16:00\",\n        \"per_user_limit_type\": \"limited\",\n        \"per_user_limit_count\": 1,\n        \"coupon_mode\": \"unlimited\",\n        \"valid_with_loyalty\": false,\n        \"translations\": {\n            \"title\": {\n                \"en\": \"Happy time 20%\"\n            },\n            \"description\": {\n                \"en\": \"Weekday afternoon discount.\"\n            }\n        }\n    }\n}"}],"_postman_id":"5df75ac1-41da-4747-abb8-8eb34282cf3d"},{"name":"Update promo","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"38baf150-74a0-40b3-a919-929d90f06fdd"}}],"id":"b2c369c8-c240-4a0f-b0d9-5831c4ca5783","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"time_mode\": \"after\",\n    \"time_from\": \"18:00\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/partner/promos/1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Same schedule fields as create. <code>is_editable</code> is ignored. Loya promos return 403.</p>\n","urlObject":{"path":["partner","promos","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"e17290d5-8149-495a-bd9f-8b532c6cbb88","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/partner/promos/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"time_mode\": \"after\",\n        \"time_from\": \"18:00\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"b2c369c8-c240-4a0f-b0d9-5831c4ca5783"},{"name":"Delete promo","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"b3cb400e-d637-4035-88a0-d94b6e13bb40"}}],"id":"f5b246dd-caf1-49b3-8a98-1b2960aa0e63","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/promos/1","description":"<h2 id=\"summary\">Summary</h2>\n<p>Soft-delete a partner-editable promo. Loya promos return 403.</p>\n","urlObject":{"path":["partner","promos","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"23ebccfc-c0cb-4fce-b03a-094d2c97aa63","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/promos/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"f5b246dd-caf1-49b3-8a98-1b2960aa0e63"},{"name":"Update service","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"e2488d63-0454-461b-9416-74e7f16cebe8"}}],"id":"b1c2e74e-e7e1-4e0c-8a42-18ae993cf774","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/partner/services/1","urlObject":{"path":["partner","services","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"5e23c87b-c6d9-4f29-9f33-247a1364a900","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/partner/services/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"is_active\": true\n    }\n}"}],"_postman_id":"b1c2e74e-e7e1-4e0c-8a42-18ae993cf774"},{"name":"List service menus","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"3d2b6d09-9154-472e-ab8b-bdfa7c5a7401"}}],"id":"08991c3a-7e87-4d24-947b-0fcdb50f9a62","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/services/1/menus","urlObject":{"path":["partner","services","1","menus"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"c8e93336-1cf4-4d46-aaa6-2db7182c0560","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/services/1/menus"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1\n        }\n    ]\n}"}],"_postman_id":"08991c3a-7e87-4d24-947b-0fcdb50f9a62"},{"name":"Create service menu","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('menuId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"79f44184-9246-4c0c-b5bc-0007a578cff8"}}],"id":"efed90fc-c8b0-4428-bf61-d0e3d5daee9d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"title\": \"Lunch menu\",\n    \"is_active\": true,\n    \"category_filter_option_ids\": [\n        1\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/partner/services/1/menus","urlObject":{"path":["partner","services","1","menus"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"39997be2-cba2-4ceb-8d1a-46e04e68426d","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/partner/services/1/menus"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"title\": \"Lunch menu\",\n        \"is_active\": true,\n        \"category_filter_option_ids\": [\n            1\n        ]\n    }\n}"}],"_postman_id":"efed90fc-c8b0-4428-bf61-d0e3d5daee9d"},{"name":"Update service menu","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"42f2d900-31c7-41cd-8a97-bef30a9c861e"}}],"id":"8493603e-1198-4b31-9b8e-75080bad94b7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"title\": \"Updated menu\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/partner/services/1/menus/1","urlObject":{"path":["partner","services","1","menus","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"7cdc9f4a-b4c5-4457-b7eb-1677c899941b","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/partner/services/1/menus/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"title\": \"Updated menu\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"8493603e-1198-4b31-9b8e-75080bad94b7"},{"name":"Delete service menu","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"433d7be5-c962-4b8f-9430-8ab03e08cd0a"}}],"id":"a3f0feaf-66ed-4937-8c3b-8d4c08c916cd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/services/1/menus/1","urlObject":{"path":["partner","services","1","menus","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"be2e6052-4364-4eda-a012-646cbd0769cf","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/services/1/menus/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"a3f0feaf-66ed-4937-8c3b-8d4c08c916cd"},{"name":"Add menu page","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"c744af97-9750-4b80-b8e3-424923b25521"}}],"id":"685764f9-0559-41e4-8c44-c3aeadd999e7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"file\": \"menus/page-1.pdf\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/partner/services/1/menus/1/pages","description":"<h2 id=\"body\">Body</h2>\n<p><code>file</code> storage path, or multipart upload field <code>file</code> (image or PDF).</p>\n","urlObject":{"path":["partner","services","1","menus","1","pages"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"b60f4a4e-89af-4a4c-88f2-31fa2bd86c28","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/partner/services/1/menus/1/pages"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"file\": \"menus/page-1.pdf\"\n    }\n}"}],"_postman_id":"685764f9-0559-41e4-8c44-c3aeadd999e7"},{"name":"Delete menu page","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"f7230e3f-b673-4c38-96fe-58d07e0e1718"}}],"id":"bbd9698d-98b2-4f9f-9d08-49fd6971ca9e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/services/1/menus/1/pages/1","urlObject":{"path":["partner","services","1","menus","1","pages","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"56f87bd8-6e1f-4609-9efc-bff52f3e82e3","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/partner/services/1/menus/1/pages/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"bbd9698d-98b2-4f9f-9d08-49fd6971ca9e"}],"id":"5a23a665-0141-41aa-87ab-5eaeb961f083","description":"<p>Owner JWT (<code></code>). Catalog, stats, employees, and service-scoped promos. Loya promos with <code>isEditable: false</code> cannot be edited or deleted here.</p>\n","_postman_id":"5a23a665-0141-41aa-87ab-5eaeb961f083"},{"name":"Employee (/staff)","item":[{"name":"Scope","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"b6a5670c-a01b-4ec6-a551-4e6ae8e42d6f"}}],"id":"0109c8ee-c467-4cc9-81d1-827ccacd2bc6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/scope","urlObject":{"path":["staff","scope"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"17005443-7008-4fa7-957a-9d3f07134293","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/scope"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"0109c8ee-c467-4cc9-81d1-827ccacd2bc6"},{"name":"Stats","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"0def9c03-ff44-4b4b-bbfa-dc6308e8b2cf"}}],"id":"6e02563b-ae46-44e2-821b-6aa1fb016369","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/stats?period=this_month","description":"<h2 id=\"summary\">Summary</h2>\n<p>Activation stats inside the employee access scope.</p>\n","urlObject":{"path":["staff","stats"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p><code>today</code> · <code>this_week</code> · <code>last_30</code> · <code>this_month</code> · <code>this_year</code></p>\n","type":"text/plain"},"key":"period","value":"this_month"},{"disabled":true,"description":{"content":"<p>Optional calendar year</p>\n","type":"text/plain"},"key":"year","value":"2026"},{"disabled":true,"description":{"content":"<p>Optional month 1–12</p>\n","type":"text/plain"},"key":"month","value":"10"},{"disabled":true,"description":{"content":"<p>Filter by branch</p>\n","type":"text/plain"},"key":"branch_id","value":"1"},{"disabled":true,"description":{"content":"<p>Filter by service</p>\n","type":"text/plain"},"key":"service_id","value":"1"},{"disabled":true,"description":{"content":"<p>Filter by country entity</p>\n","type":"text/plain"},"key":"country_entity_id","value":"1"},{"disabled":true,"description":{"content":"<p>Filter by city</p>\n","type":"text/plain"},"key":"city_id","value":"1"},{"disabled":true,"description":{"content":"<p>Promo type slug</p>\n","type":"text/plain"},"key":"promo_type","value":"happy-time"}],"variable":[]}},"response":[{"id":"5a62e814-1165-42c4-b68c-2126241b9312","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/staff/stats?period=this_month","host":["https://api.loya.cc/api/v1"],"path":["staff","stats"],"query":[{"key":"period","value":"this_month","description":"`today` · `this_week` · `last_30` · `this_month` · `this_year`"},{"key":"year","value":"2026","description":"Optional calendar year","disabled":true},{"key":"month","value":"10","description":"Optional month 1–12","disabled":true},{"key":"branch_id","value":"1","description":"Filter by branch","disabled":true},{"key":"service_id","value":"1","description":"Filter by service","disabled":true},{"key":"country_entity_id","value":"1","description":"Filter by country entity","disabled":true},{"key":"city_id","value":"1","description":"Filter by city","disabled":true},{"key":"promo_type","value":"happy-time","description":"Promo type slug","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"6e02563b-ae46-44e2-821b-6aa1fb016369"},{"name":"Activation receipt","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"e3bb8737-bce0-42af-ab0d-835ad1408ef1"}}],"id":"cbf82038-aa95-4347-959f-d52938594f97","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/stats/activations/1","urlObject":{"path":["staff","stats","activations","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"596e70f4-13e5-4f79-a5d4-bc79631095d4","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/stats/activations/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"cbf82038-aa95-4347-959f-d52938594f97"},{"name":"Update settings","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"1aeca835-de5d-42c5-9f74-3fc8d7f8ed6d"}}],"id":"ffb08da5-6181-488c-8765-840bc0f68707","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Validator\",\n    \"locale\": \"en\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/staff/settings","description":"<h2 id=\"summary\">Summary</h2>\n<p>Account name and locale. Owners use <code>PATCH /partner/me</code> instead.</p>\n","urlObject":{"path":["staff","settings"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"f91384ef-4900-49b1-bd94-6a60a1fd1881","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/staff/settings"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Validator\",\n        \"locale\": \"en\"\n    }\n}"}],"_postman_id":"ffb08da5-6181-488c-8765-840bc0f68707"},{"name":"Delete account","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"397f7b66-466a-4a01-a035-5ffad8eb0b7b"}}],"id":"3cf76347-77db-4328-8e91-3c0daf6ae9b3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/account","description":"<h2 id=\"summary\">Summary</h2>\n<p>Deactivate the signed-in employee account. The user-panel dashboard does not call this; the validator app does.</p>\n","urlObject":{"path":["staff","account"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"603b42cb-c01e-4c39-85e6-64405598595f","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/account"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"3cf76347-77db-4328-8e91-3c0daf6ae9b3"},{"name":"Catalog","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"01a4fc61-8ea0-4807-91f9-5fb5307c235b"}}],"id":"6bcf13e9-5b3d-4a7a-9c1d-34f84ba2a44e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/catalog","urlObject":{"path":["staff","catalog"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"2964cf65-f66b-460a-b9ce-7e9a3222c0ed","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/catalog"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"6bcf13e9-5b3d-4a7a-9c1d-34f84ba2a44e"},{"name":"Branches","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"a5d37d5a-2601-4b38-801f-377c5898b3ae"}}],"id":"6c169cbf-9595-4f18-8642-1cd093bdad52","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/branches","urlObject":{"path":["staff","branches"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"5c8ec0cf-5a1f-4e33-ac22-8b2f968b9811","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/branches"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"6c169cbf-9595-4f18-8642-1cd093bdad52"},{"name":"Branch detail","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"f5889c71-713a-44a1-8410-0f77e26ffbdc"}}],"id":"001f1d95-6c2b-411a-864a-61280027ef67","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/branches/1","urlObject":{"path":["staff","branches","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"735bb83f-d0b6-4885-8b5f-81dfbed9f11f","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/branches/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"001f1d95-6c2b-411a-864a-61280027ef67"},{"name":"Customers","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"7804a5d3-a3dd-4cd1-955d-4f15f671eeb3"}}],"id":"2f49714e-1fac-4e84-892f-4c7e48a87b19","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/customers","urlObject":{"path":["staff","customers"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"7cd98a8f-6069-4734-969c-7599c458165d","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/customers"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"2f49714e-1fac-4e84-892f-4c7e48a87b19"},{"name":"Customer detail","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"76231450-4b5e-443b-8f2d-ea47270d1378"}}],"id":"36a78527-1f73-40c0-81de-45c8a8c747a4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/customers/1","description":"<h2 id=\"summary\">Summary</h2>\n<p>One client. Used by the validator app, not the user-panel clients list.</p>\n","urlObject":{"path":["staff","customers","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"17ccea8d-4b5a-418f-82ba-a15ffba0407f","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/customers/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"36a78527-1f73-40c0-81de-45c8a8c747a4"},{"name":"List employees","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"b08f6fe7-70ce-47ad-b29e-ced155b88fde"}}],"id":"adb38834-dd58-41f0-97bd-eef5f42b325f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/employees","urlObject":{"path":["staff","employees"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"ad9de1fb-2de5-45b8-a8e6-062b4a27c63f","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/employees"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1\n        }\n    ]\n}"}],"_postman_id":"adb38834-dd58-41f0-97bd-eef5f42b325f"},{"name":"Create employee","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"ce2234e6-8dbb-423a-b1f6-e5124720a37a"}}],"id":"db34fae4-332f-4cca-a21e-38705bcedabd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Cashier\",\n    \"phone\": \"+994501112233\",\n    \"password\": \"password\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/staff/employees","urlObject":{"path":["staff","employees"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"90bd7be5-a932-4ac1-b4d9-d610c1b72410","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/staff/employees"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Cashier\",\n        \"phone\": \"+994501112233\",\n        \"password\": \"password\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"db34fae4-332f-4cca-a21e-38705bcedabd"},{"name":"Update employee","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"2a8dadf8-d948-435f-ad84-2fd01072f1f1"}}],"id":"04509b0d-b9e3-46b7-aaa9-e8ccae01c7ec","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Cashier Updated\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/staff/employees/1","urlObject":{"path":["staff","employees","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"99a9b6ac-bab9-4784-bbbe-18966523a8e0","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/staff/employees/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Cashier Updated\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"04509b0d-b9e3-46b7-aaa9-e8ccae01c7ec"},{"name":"Delete employee","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"cfcd4334-0937-4579-8645-b364e3b38157"}}],"id":"0561d363-12fb-476a-ab54-abf9379dee7f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/employees/1","urlObject":{"path":["staff","employees","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"42481ac7-4397-4447-8696-abee6be454ff","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/employees/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"0561d363-12fb-476a-ab54-abf9379dee7f"},{"name":"Update loyalty card","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"925c967a-91c3-450d-ae46-b1b528b24b84"}}],"id":"ae3e01ee-6056-4d47-9741-59a595a8e228","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/staff/loyalty-cards/1","urlObject":{"path":["staff","loyalty-cards","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"de801635-2d99-432c-bdd0-bbaca07c6094","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/staff/loyalty-cards/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"is_active\": true\n    }\n}"}],"_postman_id":"ae3e01ee-6056-4d47-9741-59a595a8e228"},{"name":"Update service","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"3f630bc9-ee3e-40fa-89dd-c245b39988a7"}}],"id":"d1d402a4-d63d-49e8-92ba-78e5570d890b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/staff/services/1","urlObject":{"path":["staff","services","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"68a4be8e-5e89-4741-a274-c11075558b25","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/staff/services/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"is_active\": false\n    }\n}"}],"_postman_id":"d1d402a4-d63d-49e8-92ba-78e5570d890b"},{"name":"List promos","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"c0e39ac9-1210-46b4-bead-2c4ef6fe082f"}}],"id":"08c5adac-160e-4466-85eb-2e6f82becd5b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/promos","description":"<h2 id=\"summary\">Summary</h2>\n<p>Promos visible to this employee.</p>\n","urlObject":{"path":["staff","promos"],"host":["https://api.loya.cc/api/v1"],"query":[{"disabled":true,"description":{"content":"<p>Optional service filter.</p>\n","type":"text/plain"},"key":"service_id","value":""},{"disabled":true,"description":{"content":"<p>Optional channel filter.</p>\n","type":"text/plain"},"key":"channel","value":""}],"variable":[]}},"response":[{"id":"f79f5335-9dc8-48db-944b-b7594d7830bc","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/staff/promos","host":["https://api.loya.cc/api/v1"],"path":["staff","promos"],"query":[{"key":"service_id","value":"","description":"Optional service filter.","disabled":true},{"key":"channel","value":"","description":"Optional channel filter.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1\n        }\n    ]\n}"}],"_postman_id":"08c5adac-160e-4466-85eb-2e6f82becd5b"},{"name":"Show promo","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"931b34e0-8ebe-42ff-8492-4ea38c6d32ce"}}],"id":"98d6fe8c-6d13-4a52-8f0f-34ddd1d93a0d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/promos/1","urlObject":{"path":["staff","promos","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"446de114-931f-4b82-ac0e-1e7d69758da4","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/promos/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"98d6fe8c-6d13-4a52-8f0f-34ddd1d93a0d"},{"name":"Create promo","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('promoId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"3fd14908-54c8-4474-baa7-1b277968eaa2"}}],"id":"def5aca8-5ad1-44b2-9468-4a7ff90d7fdc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"promo_type_id\": 1,\n    \"service_id\": 1,\n    \"discount_type\": \"percentage\",\n    \"discount_value\": 20,\n    \"applicable_to\": [\n        \"on_site\"\n    ],\n    \"is_active\": true,\n    \"time_rule\": \"time\",\n    \"time_mode\": \"between\",\n    \"time_from\": \"12:00\",\n    \"time_to\": \"16:00\",\n    \"per_user_limit_type\": \"limited\",\n    \"per_user_limit_count\": 1,\n    \"coupon_mode\": \"unlimited\",\n    \"valid_with_loyalty\": false,\n    \"translations\": {\n        \"title\": {\n            \"en\": \"Happy time 20%\"\n        },\n        \"description\": {\n            \"en\": \"Weekday afternoon discount.\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/staff/promos","description":"<h2 id=\"summary\">Summary</h2>\n<p>Create or update a promo. Response is camelCase (<code>timeRule</code>, <code>timeMode</code>, <code>weekdays</code>, <code>couponMode</code>, <code>loyaltyCardIds</code>, <code>schedule</code> fields). Request body is snake_case.</p>\n<h2 id=\"scope-scope\">Scope (<code>scope</code>)</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n<th>Required with it</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>service</code></td>\n<td>One service (default)</td>\n<td><code>service_id</code></td>\n</tr>\n<tr>\n<td><code>partner</code></td>\n<td>Whole partner (global)</td>\n<td><code>partner_id</code></td>\n</tr>\n<tr>\n<td><code>country</code></td>\n<td>One country entity</td>\n<td><code>country_entity_id</code></td>\n</tr>\n<tr>\n<td><code>branch</code></td>\n<td>One or more branches</td>\n<td><code>branch_id</code> or <code>branch_ids</code></td>\n</tr>\n<tr>\n<td><code>selection</code></td>\n<td>Selected countries, branches, and/or services</td>\n<td><code>country_entity_ids</code>, <code>branch_ids</code>, <code>service_ids</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"schedule\">Schedule</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Values</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>time_rule</code></td>\n<td><code>anytime</code> · <code>days</code> · <code>time</code> · <code>days_and_time</code></td>\n<td>Happy Time (<code>happy-time</code> promo type) cannot use <code>anytime</code></td>\n</tr>\n<tr>\n<td><code>weekdays</code></td>\n<td>integers 1–7</td>\n<td>ISO: 1 Monday … 7 Sunday. Required when the rule includes days</td>\n</tr>\n<tr>\n<td><code>time_mode</code></td>\n<td><code>anytime</code> · <code>before</code> · <code>between</code> · <code>after</code></td>\n<td>Clock window. <code>anytime</code> is invalid when <code>time_rule</code> is <code>time</code> — pick before, after, or between</td>\n</tr>\n<tr>\n<td><code>time_from</code> / <code>time_to</code></td>\n<td><code>HH:MM</code></td>\n<td><code>between</code> and <code>after</code> need <code>time_from</code>. <code>between</code> and <code>before</code> need <code>time_to</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"limits-and-stock\">Limits and stock</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Values</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>per_user_limit_type</code></td>\n<td><code>unlimited</code> · <code>limited</code></td>\n<td>Welcome promos force a lifetime personal limit</td>\n</tr>\n<tr>\n<td><code>per_user_limit_count</code></td>\n<td>integer ≥ 1</td>\n<td>Required when type is <code>limited</code></td>\n</tr>\n<tr>\n<td><code>per_user_limit_reset</code></td>\n<td><code>daily</code> · <code>weekly</code> · <code>monthly</code> · <code>never</code> · <code>calendar_year</code></td>\n<td>Birthday promos use a yearly personal limit</td>\n</tr>\n<tr>\n<td><code>coupon_mode</code></td>\n<td><code>unlimited</code> · <code>renews_daily</code> · <code>renews_weekly</code> · <code>renews_monthly</code> · <code>total</code></td>\n<td>Weekly/monthly coupon types lock the reset when stock is on</td>\n</tr>\n<tr>\n<td><code>coupon_quantity</code></td>\n<td>integer ≥ 1</td>\n<td>Required when stock mode is not <code>unlimited</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"channels-loyalty-special-types\">Channels, loyalty, special types</h2>\n<ul>\n<li><code>applicable_to[]</code> / <code>delivery_type</code>: <code>on_site</code>, <code>pick_up</code>, <code>delivery</code>, <code>online</code>, <code>home_visit</code></li>\n<li><code>valid_with_loyalty</code> + <code>loyalty_card_ids[]</code> (or <code>loyalty_card_id</code>) — cards must belong to the partner</li>\n<li>Birthday: <code>birthday_days_before</code>, <code>birthday_days_after</code> (0–7)</li>\n<li>Holiday: <code>holiday_name</code>, <code>holiday_starts_on</code> / <code>holiday_date</code>, <code>holiday_ends_on</code>, <code>holiday_days_before</code>, <code>holiday_days_after</code></li>\n<li>Student: <code>requires_student_verification</code></li>\n<li><code>translations.title.en</code> is required on admin create. <code>az</code> and <code>ru</code> are optional.</li>\n<li>Loya-owned promos return <code>isEditable: false</code>. Partners and staff cannot delete those.</li>\n</ul>\n<h2 id=\"customer-catalog-fields-added\">Customer catalog fields added</h2>\n<p><code>scheduleText</code>, <code>isAvailableNow</code>, <code>availabilityState</code>, <code>availabilityNotice</code>, <code>nextAvailableAt</code>, <code>applicableTo</code>, <code>scopeLabel</code> on <code>GET /promos</code> and <code>GET /promos/{id}</code>.</p>\n","urlObject":{"path":["staff","promos"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"ebb8b107-ed78-4b15-bdae-e8bbd07590b9","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/staff/promos"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"promo_type_id\": 1,\n        \"service_id\": 1,\n        \"discount_type\": \"percentage\",\n        \"discount_value\": 20,\n        \"applicable_to\": [\n            \"on_site\"\n        ],\n        \"is_active\": true,\n        \"time_rule\": \"time\",\n        \"time_mode\": \"between\",\n        \"time_from\": \"12:00\",\n        \"time_to\": \"16:00\",\n        \"per_user_limit_type\": \"limited\",\n        \"per_user_limit_count\": 1,\n        \"coupon_mode\": \"unlimited\",\n        \"valid_with_loyalty\": false,\n        \"translations\": {\n            \"title\": {\n                \"en\": \"Happy time 20%\"\n            },\n            \"description\": {\n                \"en\": \"Weekday afternoon discount.\"\n            }\n        }\n    }\n}"}],"_postman_id":"def5aca8-5ad1-44b2-9468-4a7ff90d7fdc"},{"name":"Update promo","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"6cfb5f20-ba46-49b9-83d9-b13ba68557ac"}}],"id":"48cad599-baa9-4312-b09a-b7988af5d483","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"time_mode\": \"before\",\n    \"time_to\": \"11:00\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/staff/promos/1","urlObject":{"path":["staff","promos","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"dd57c0d0-fcfb-4ea6-af9c-845bb5cc248c","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/staff/promos/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"time_mode\": \"before\",\n        \"time_to\": \"11:00\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"48cad599-baa9-4312-b09a-b7988af5d483"},{"name":"Delete promo","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"e36d726d-c1d6-4705-80c2-0d34bba9b948"}}],"id":"69339f24-497e-4703-a573-af682ea2e8fc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/promos/1","urlObject":{"path":["staff","promos","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"da11eee9-aa0e-4c28-9fd6-cb7241efab39","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/promos/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"69339f24-497e-4703-a573-af682ea2e8fc"},{"name":"List service menus","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"ffde97c7-2d75-47f7-a7b1-521a23845da3"}}],"id":"d0ed968d-a054-4330-b02f-8ce729cce387","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/services/1/menus","urlObject":{"path":["staff","services","1","menus"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"06515cab-e13c-4e16-85d2-1a907e893f40","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/services/1/menus"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1\n        }\n    ]\n}"}],"_postman_id":"d0ed968d-a054-4330-b02f-8ce729cce387"},{"name":"Create service menu","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('menuId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"ee354665-2094-40dc-9690-4c029b276a36"}}],"id":"73d115e5-c7cb-40db-8e76-9cf3f33f90cd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"title\": \"Menu\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/staff/services/1/menus","urlObject":{"path":["staff","services","1","menus"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"18852d77-060f-449f-a88f-e6b28c09a06b","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/staff/services/1/menus"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"title\": \"Menu\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"73d115e5-c7cb-40db-8e76-9cf3f33f90cd"},{"name":"Update service menu","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"bde5db8c-8380-4c8e-a1e5-ff7a3bcde1bd"}}],"id":"56b9437a-fe4f-4453-8c83-bd10f2debc4d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"title\": \"Updated menu\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/staff/services/1/menus/1","urlObject":{"path":["staff","services","1","menus","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"c2d753ad-0013-4829-b483-143f83c21749","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/staff/services/1/menus/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"title\": \"Updated menu\"\n    }\n}"}],"_postman_id":"56b9437a-fe4f-4453-8c83-bd10f2debc4d"},{"name":"Delete service menu","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"9b77855f-7e9f-464e-b1cb-9d8140c3a85f"}}],"id":"7225e2d5-349a-436b-a981-0dafa9391a1e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/services/1/menus/1","urlObject":{"path":["staff","services","1","menus","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"a5f19a50-c88c-4ccf-a991-134cf7c034a4","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/services/1/menus/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"7225e2d5-349a-436b-a981-0dafa9391a1e"},{"name":"Add menu page","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"b6a4ec48-628b-4c24-949d-52f6ebfd79a4"}}],"id":"234e62fd-75f0-4778-86bf-8f1712b358ec","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"file\": \"menus/page-1.pdf\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/staff/services/1/menus/1/pages","urlObject":{"path":["staff","services","1","menus","1","pages"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"1270da70-70b8-4894-aa0d-2d0214643785","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/staff/services/1/menus/1/pages"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"file\": \"menus/page-1.pdf\"\n    }\n}"}],"_postman_id":"234e62fd-75f0-4778-86bf-8f1712b358ec"},{"name":"Delete menu page","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"3c5ac23e-876f-4128-bd26-ca00d48ed619"}}],"id":"e4bbc47a-cf48-4ed9-b4ff-313e38dee4a8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/services/1/menus/1/pages/1","urlObject":{"path":["staff","services","1","menus","1","pages","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"ef41627c-42a8-4075-887d-4c514d7ccfdd","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/services/1/menus/1/pages/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"e4bbc47a-cf48-4ed9-b4ff-313e38dee4a8"},{"name":"Update menu","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"0fe6cc98-048d-4ab0-a3a4-46c783b83bd4"}}],"id":"a724fa3f-e4d7-4a28-b76f-0cd2a2f2e414","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"title\": \"Renamed menu\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/staff/menus/1","urlObject":{"path":["staff","menus","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"30951d66-305d-4c3b-9efd-56929640e548","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/staff/menus/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"title\": \"Renamed menu\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"a724fa3f-e4d7-4a28-b76f-0cd2a2f2e414"}],"id":"5cd378a0-229c-432d-8696-d29d5ef804d4","description":"<p>Same dashboard as Owner, for an employee signed in through <code>POST /auth/login</code> with <code>role: employee</code>. Prefix <code>/staff</code>. QR scan routes are in the Validator application.</p>\n","_postman_id":"5cd378a0-229c-432d-8696-d29d5ef804d4"}],"id":"032125ff-bf0b-4248-ae74-2d6d094dc2a9","description":"<p>Dashboard (<code>/dashboard</code>) inside the user panel.</p>\n<ul>\n<li><strong>Owner</strong> — <code>role</code> <code>partner</code> or <code>owner</code>. Prefix <code>/partner</code>. Token <code></code> (also saved as <code></code>).</li>\n<li><strong>Employee</strong> — <code>role</code> <code>employee</code>. Prefix <code>/staff</code>. Token <code></code>.</li>\n</ul>\n<p>The same screen calls one prefix or the other. Scan/confirm QR routes stay in the Validator application.</p>\n<p>The employees screen also calls <code>GET/PUT /partner/global-parents</code>. That path is <strong>not registered</strong> and returns 404.</p>\n","_postman_id":"032125ff-bf0b-4248-ae74-2d6d094dc2a9"}],"id":"3139cafb-67f7-4f0b-b1b0-f83c9c58407a","description":"<p>Frontend: <strong>user-panel</strong> (Next.js, port 3002)\nAPI base: <code>https://api.loya.cc/api/v1</code></p>\n<p>One app, two groups:</p>\n<ul>\n<li><strong>Customer</strong> — <code>/home</code>. Guard <code>customer</code>. Public catalog needs no token.</li>\n<li><strong>Partner</strong> — <code>/dashboard</code>. Owners call <code>/partner</code> (<code></code>). Employees call <code>/staff</code> (<code></code>).</li>\n</ul>\n<h3 id=\"recommended-test-flow\">Recommended test flow</h3>\n<ol>\n<li><strong>Customer → Auth → OTP send</strong> then <strong>OTP verify</strong> (<code>111111</code> — currently fixed in all environments; treat as insecure for production)</li>\n<li><strong>Customer → Auth → Register</strong> or <strong>Login</strong> (saves the token for the returned role)</li>\n<li><strong>Customer → Browse → Branches nearby</strong> then open <strong>Branch detail</strong></li>\n<li><strong>Customer → Promos → Activate promo</strong> with <code>1</code></li>\n<li>Partner dashboard: <strong>Partner → Owner</strong> or <strong>Partner → Employee</strong> after login returns <code>partner</code> or <code>employee</code></li>\n</ol>\n<h3 id=\"response-format\">Response format</h3>\n<ul>\n<li>Plain JSON (<code>application/json</code>), camelCase keys</li>\n<li>Lists return <code>{ \"data\": [ ... ] }</code></li>\n<li>Image fields are full CDN URLs (<code>logo</code>, <code>coverImage</code>, <code>logoUrl</code>, etc.)</li>\n<li>Send <code>Accept: application/json</code> and <code>Accept-Language: en</code> (<code>en</code>, <code>az</code>, <code>ru</code>)</li>\n<li>Public catalog lists are cached in Redis for 10 minutes and flushed when catalog data changes</li>\n<li>Without <code>Accept: application/json</code>, a missing token returns HTML 500 instead of JSON 401</li>\n</ul>\n<p><strong>Endpoints:</strong> 108\n<strong>Methods:</strong> GET 58 · POST 25 · PATCH 15 · DELETE 10</p>\n<p><strong>Sections:</strong></p>\n<ul>\n<li>Customer: 55</li>\n<li>Partner: 53</li>\n</ul>\n","_postman_id":"3139cafb-67f7-4f0b-b1b0-f83c9c58407a"},{"name":"Validator Application (@validator-partner-for-worker)","item":[{"name":"Auth","item":[{"name":"Login","event":[{"listen":"test","script":{"type":"text/javascript","exec":["if ([200, 201].includes(pm.response.code)) {","  const json = pm.response.json();","  if (json.access_token) pm.collectionVariables.set('employeeToken', json.access_token);","}","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"d1a2818b-2059-4941-8722-37187b2bc53a"}}],"id":"44b1e632-1c91-46fb-85f7-4467f510628f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"validator@papajohns.az\",\n    \"password\": \"password\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/auth/employee/login","description":"<h2 id=\"summary\">Summary</h2>\n<p>Employee login for validator app. Demo: <code>validator@papajohns.az</code> / <code>password</code>.</p>\n","urlObject":{"path":["auth","employee","login"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"285f61cb-cec9-469c-8a6c-d44a788f4a04","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/auth/employee/login"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"token_type\": \"Bearer\",\n    \"access_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example\",\n    \"role\": \"employee\",\n    \"user\": {\n        \"id\": 1,\n        \"name\": \"Validator\",\n        \"email\": \"validator@papajohns.az\",\n        \"phone\": \"+994501111111\",\n        \"isActive\": true\n    }\n}"}],"_postman_id":"44b1e632-1c91-46fb-85f7-4467f510628f"},{"name":"Me","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"d572eed6-bfe5-4e4c-b437-63d6744692df"}}],"id":"a8dac015-92df-4122-8e21-9412377c1358","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/auth/employee/me","description":"<h2 id=\"auth\">Auth</h2>\n<p>Bearer <code></code></p>\n","urlObject":{"path":["auth","employee","me"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"98f0d779-d3e2-4be1-acdf-495489e7deda","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/auth/employee/me"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"user\": {\n        \"id\": 1,\n        \"name\": \"Validator\",\n        \"email\": \"validator@papajohns.az\",\n        \"phone\": \"+994501111111\",\n        \"isActive\": true\n    }\n}"}],"_postman_id":"a8dac015-92df-4122-8e21-9412377c1358"},{"name":"Logout","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"82187704-77e0-410b-82df-199213fc70e9"}}],"id":"f64c0500-36b3-4ab8-8703-3fbeac2f7a3e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/auth/employee/logout","description":"<h2 id=\"summary\">Summary</h2>\n<p>End employee session.</p>\n","urlObject":{"path":["auth","employee","logout"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"1489ea41-2ae6-455e-a2d0-5151cd211254","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/auth/employee/logout"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Logged out.\"\n}"}],"_postman_id":"f64c0500-36b3-4ab8-8703-3fbeac2f7a3e"}],"id":"6427e0bb-a7f2-41b9-9242-fb31d2fb7f2e","_postman_id":"6427e0bb-a7f2-41b9-9242-fb31d2fb7f2e","description":""},{"name":"Promo validation","item":[{"name":"Scan code","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('activationId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"84714c20-55e5-486c-93d1-428812695cc0"}}],"id":"d4030e4d-3e0e-4526-adc0-2710b0db783a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"code\": \"PAPADEMO\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/promo-activations/scan","description":"<h2 id=\"summary\">Summary</h2>\n<p>Look up a promo activation by QR code string.</p>\n","urlObject":{"path":["promo-activations","scan"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"b5223324-e429-4a32-a3bc-8d328f266469","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/promo-activations/scan"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"code\": \"PAPADEMO\",\n        \"status\": \"pending\"\n    }\n}"}],"_postman_id":"d4030e4d-3e0e-4526-adc0-2710b0db783a"},{"name":"Confirm activation","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"9b69a819-8d41-4fa8-b82f-bdfa5adc28af"}}],"id":"f021c5c9-3fd5-4ec9-b45d-9c7c68bc1682","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/promo-activations/1/confirm","description":"<h2 id=\"summary\">Summary</h2>\n<p>Confirm scanned promo — marks activation as used.</p>\n","urlObject":{"path":["promo-activations","1","confirm"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"f352b2a2-def6-414e-bd80-6b4a76e93b5e","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/promo-activations/1/confirm"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"code\": \"PAPADEMO\",\n        \"status\": \"confirmed\"\n    }\n}"}],"_postman_id":"f021c5c9-3fd5-4ec9-b45d-9c7c68bc1682"},{"name":"Reject activation","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"27d59d53-dab2-42e0-ba6e-2e052bc86f7f"}}],"id":"ed009fa7-a37f-4943-8b9c-3561022f93e3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"reason\": \"Invalid promo code\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/promo-activations/1/reject","description":"<h2 id=\"body\">Body</h2>\n<p><code>reason</code> (optional string)</p>\n","urlObject":{"path":["promo-activations","1","reject"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"434ebe8b-67f3-4d16-9108-9f5734f6561d","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/promo-activations/1/reject"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"code\": \"PAPADEMO\",\n        \"status\": \"rejected\"\n    }\n}"}],"_postman_id":"ed009fa7-a37f-4943-8b9c-3561022f93e3"}],"id":"52806e8b-e790-4dec-929c-64a288887071","description":"<p>Scan customer promo QR codes and confirm or reject activations.</p>\n","_postman_id":"52806e8b-e790-4dec-929c-64a288887071"},{"name":"Loyalty check-in validation","item":[{"name":"Scan check-in","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('loyaltyCheckInId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"9d2cdde0-9ac6-459d-9859-f29583113555"}}],"id":"712f4ee1-cbaa-4a83-bf80-d08653e61b07","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"code\": \"CHECKIN-DEMO\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/loyalty-check-ins/scan","description":"<h2 id=\"summary\">Summary</h2>\n<p>Scan loyalty check-in QR from customer app.</p>\n","urlObject":{"path":["loyalty-check-ins","scan"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"9fa65ef8-906c-4780-b1a6-5a117a08e1c2","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/loyalty-check-ins/scan"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"status\": \"pending\",\n        \"punches\": 1\n    }\n}"}],"_postman_id":"712f4ee1-cbaa-4a83-bf80-d08653e61b07"},{"name":"Confirm check-in","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"d5033b8b-5543-43ed-aaa8-3579b878acd3"}}],"id":"209d6369-993a-49b7-9d88-9b768dbae812","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/loyalty-check-ins/1/confirm","description":"<h2 id=\"summary\">Summary</h2>\n<p>Confirm punch / visit.</p>\n","urlObject":{"path":["loyalty-check-ins","1","confirm"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"49d114bd-9777-4a68-8ce5-d4205903f941","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/loyalty-check-ins/1/confirm"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"status\": \"pending\",\n        \"punches\": 1\n    }\n}"}],"_postman_id":"209d6369-993a-49b7-9d88-9b768dbae812"},{"name":"Reject check-in","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"5d303ceb-0e27-4f2d-97ed-111838802393"}}],"id":"ce51a0d4-f275-48aa-ab14-3cb9b1870439","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"reason\": \"Invalid code\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/loyalty-check-ins/1/reject","description":"<h2 id=\"summary\">Summary</h2>\n<p>Reject invalid check-in.</p>\n","urlObject":{"path":["loyalty-check-ins","1","reject"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"b43b867e-7324-4d3a-a281-2a9a31bc17e9","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/loyalty-check-ins/1/reject"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"status\": \"pending\",\n        \"punches\": 1\n    }\n}"}],"_postman_id":"ce51a0d4-f275-48aa-ab14-3cb9b1870439"}],"id":"36e66089-111c-4874-a8ec-11d304e374b5","_postman_id":"36e66089-111c-4874-a8ec-11d304e374b5","description":""},{"name":"Loyalty redemption validation","item":[{"name":"Scan redemption","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('loyaltyRedemptionId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"4dc22f21-cf78-4be7-a6e2-39e519da2898"}}],"id":"ee3efd5d-e59a-4f0b-a66d-dc892eb3c316","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"code\": \"REDEEM-DEMO\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/loyalty-redemptions/scan","description":"<h2 id=\"summary\">Summary</h2>\n<p>Scan loyalty reward redemption QR.</p>\n","urlObject":{"path":["loyalty-redemptions","scan"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"2d684be2-fe20-401d-a912-40aa9a0a7952","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/loyalty-redemptions/scan"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"status\": \"pending\"\n    }\n}"}],"_postman_id":"ee3efd5d-e59a-4f0b-a66d-dc892eb3c316"},{"name":"Confirm redemption","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"b5959739-c05b-4107-97d6-9d47871aa2dd"}}],"id":"00154265-c125-473d-a1f7-5aee5b322943","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/loyalty-redemptions/1/confirm","description":"<h2 id=\"summary\">Summary</h2>\n<p>Confirm reward handover.</p>\n","urlObject":{"path":["loyalty-redemptions","1","confirm"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"a982d969-4e63-4dda-af36-460d413548a6","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/loyalty-redemptions/1/confirm"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"status\": \"pending\"\n    }\n}"}],"_postman_id":"00154265-c125-473d-a1f7-5aee5b322943"},{"name":"Reject redemption","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"96cc8bff-aed9-4580-a269-49f75cd86a0d"}}],"id":"7bdc8318-d223-4bf6-be1b-054eb5212c8e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"reason\": \"Invalid code\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/loyalty-redemptions/1/reject","description":"<h2 id=\"summary\">Summary</h2>\n<p>Reject invalid redemption.</p>\n","urlObject":{"path":["loyalty-redemptions","1","reject"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"ae9bd7a1-0d04-41b1-8588-6f755c759f70","name":"OK","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/loyalty-redemptions/1/reject"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"status\": \"pending\"\n    }\n}"}],"_postman_id":"7bdc8318-d223-4bf6-be1b-054eb5212c8e"}],"id":"2964c97b-ecd7-47db-8949-1158d1b7cc1a","_postman_id":"2964c97b-ecd7-47db-8949-1158d1b7cc1a","description":""},{"name":"Staff panel","item":[{"name":"Scope","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"13ae1bba-1f03-4ef8-b9c5-fc4acd5342be"}}],"id":"77e1d329-729d-4426-9273-f9909edd22bd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/scope","urlObject":{"path":["staff","scope"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"45f86284-c2e8-4460-9d91-1ab73e5d726d","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/scope"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"77e1d329-729d-4426-9273-f9909edd22bd"},{"name":"Stats","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"752a03d5-8ecb-4e57-9520-1426979e5573"}}],"id":"52110592-cd9d-4d54-94ff-3127042efd30","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/stats?period=this_month","description":"<h2 id=\"summary\">Summary</h2>\n<p>Activation stats inside the employee access scope.</p>\n","urlObject":{"path":["staff","stats"],"host":["https://api.loya.cc/api/v1"],"query":[{"description":{"content":"<p><code>today</code> · <code>this_week</code> · <code>last_30</code> · <code>this_month</code> · <code>this_year</code></p>\n","type":"text/plain"},"key":"period","value":"this_month"},{"disabled":true,"description":{"content":"<p>Optional calendar year</p>\n","type":"text/plain"},"key":"year","value":"2026"},{"disabled":true,"description":{"content":"<p>Optional month 1–12</p>\n","type":"text/plain"},"key":"month","value":"10"},{"disabled":true,"description":{"content":"<p>Filter by branch</p>\n","type":"text/plain"},"key":"branch_id","value":"1"},{"disabled":true,"description":{"content":"<p>Filter by service</p>\n","type":"text/plain"},"key":"service_id","value":"1"},{"disabled":true,"description":{"content":"<p>Filter by country entity</p>\n","type":"text/plain"},"key":"country_entity_id","value":"1"},{"disabled":true,"description":{"content":"<p>Filter by city</p>\n","type":"text/plain"},"key":"city_id","value":"1"},{"disabled":true,"description":{"content":"<p>Promo type slug</p>\n","type":"text/plain"},"key":"promo_type","value":"happy-time"}],"variable":[]}},"response":[{"id":"1b15e40d-1eea-4e4b-b5fd-400b84997c34","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/staff/stats?period=this_month","host":["https://api.loya.cc/api/v1"],"path":["staff","stats"],"query":[{"key":"period","value":"this_month","description":"`today` · `this_week` · `last_30` · `this_month` · `this_year`"},{"key":"year","value":"2026","description":"Optional calendar year","disabled":true},{"key":"month","value":"10","description":"Optional month 1–12","disabled":true},{"key":"branch_id","value":"1","description":"Filter by branch","disabled":true},{"key":"service_id","value":"1","description":"Filter by service","disabled":true},{"key":"country_entity_id","value":"1","description":"Filter by country entity","disabled":true},{"key":"city_id","value":"1","description":"Filter by city","disabled":true},{"key":"promo_type","value":"happy-time","description":"Promo type slug","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"52110592-cd9d-4d54-94ff-3127042efd30"},{"name":"Activation receipt","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"57c9b85f-c0ef-4fa8-9712-58f0af1d5833"}}],"id":"3b13cb72-4067-448a-83e3-d8d2b73bac0c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/stats/activations/1","urlObject":{"path":["staff","stats","activations","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"6978f692-7c1a-4e33-8f59-32638f7d479b","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/stats/activations/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"3b13cb72-4067-448a-83e3-d8d2b73bac0c"},{"name":"Update settings","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"8a3b2239-91d7-4768-96f4-7f601ae794ad"}}],"id":"b46aff62-9abe-4ec2-bdd2-8814b2e4e5c1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Validator\",\n    \"locale\": \"en\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/staff/settings","description":"<h2 id=\"summary\">Summary</h2>\n<p>Account name and locale. Owners use <code>PATCH /partner/me</code> instead.</p>\n","urlObject":{"path":["staff","settings"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"450925b2-9884-4697-bd17-6092657901ab","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/staff/settings"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Validator\",\n        \"locale\": \"en\"\n    }\n}"}],"_postman_id":"b46aff62-9abe-4ec2-bdd2-8814b2e4e5c1"},{"name":"Delete account","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"8e36193c-6f3b-4f89-bbdb-29b723f94e15"}}],"id":"069ac068-2942-46f1-95e1-fb113ba39e7c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/account","description":"<h2 id=\"summary\">Summary</h2>\n<p>Deactivate the signed-in employee account. The user-panel dashboard does not call this; the validator app does.</p>\n","urlObject":{"path":["staff","account"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"070e1892-bc8d-4aa3-b3a4-812530cf508e","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/account"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"069ac068-2942-46f1-95e1-fb113ba39e7c"},{"name":"Catalog","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"0d9979a1-1aed-4af0-a95b-c2b7cd7bee58"}}],"id":"a08fb417-9016-4ae5-bf56-d6190b326e43","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/catalog","urlObject":{"path":["staff","catalog"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"2b320799-f6eb-49ba-8b22-bc4114daed09","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/catalog"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"a08fb417-9016-4ae5-bf56-d6190b326e43"},{"name":"Branches","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"74045f5a-3e65-49b7-bea9-7ceaf9629a9f"}}],"id":"acd81277-2994-4bf5-a440-7d0259e1e856","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/branches","urlObject":{"path":["staff","branches"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"f4b67018-f1eb-4b88-9ec9-4c2d98f4ebfc","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/branches"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"acd81277-2994-4bf5-a440-7d0259e1e856"},{"name":"Branch detail","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"39c0af81-fdb0-4cec-a65b-770e54ca0cbe"}}],"id":"66170243-38b6-4225-b5c7-4615dbe6e11b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/branches/1","urlObject":{"path":["staff","branches","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"55934f81-cc90-414f-bbef-a50dc1180ac0","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/branches/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"66170243-38b6-4225-b5c7-4615dbe6e11b"},{"name":"Customers","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"62b2bb13-d32c-494a-af82-34b45db953bc"}}],"id":"f4d28385-e552-409a-9378-235aa4998135","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/customers","urlObject":{"path":["staff","customers"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"c439a8ca-8499-43b8-a253-e7ed244c1acc","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/customers"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"f4d28385-e552-409a-9378-235aa4998135"},{"name":"Customer detail","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"473a8ffb-feb1-4d23-a2b0-8429e50020db"}}],"id":"b6623ac3-376d-4526-8614-28238d0b569c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/customers/1","description":"<h2 id=\"summary\">Summary</h2>\n<p>One client. Used by the validator app, not the user-panel clients list.</p>\n","urlObject":{"path":["staff","customers","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"fecda594-6980-4dbe-961e-c0b1d3d0194c","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/customers/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"b6623ac3-376d-4526-8614-28238d0b569c"},{"name":"List employees","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"768f7554-d557-4537-9308-3bf96b02f657"}}],"id":"1041baa8-1cd7-4d22-8771-c7ac3429a4c7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/employees","urlObject":{"path":["staff","employees"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"2b5d5919-1160-49b1-b136-8d4d772ebf1e","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/employees"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1\n        }\n    ]\n}"}],"_postman_id":"1041baa8-1cd7-4d22-8771-c7ac3429a4c7"},{"name":"Create employee","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"406b7f93-279d-4cad-a883-b118ca2f50e7"}}],"id":"8871d862-e1db-4061-a952-f531cc3e8f94","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Cashier\",\n    \"phone\": \"+994501112233\",\n    \"password\": \"password\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/staff/employees","urlObject":{"path":["staff","employees"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"b1e46f66-6032-431c-b627-72737d09d87c","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/staff/employees"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Cashier\",\n        \"phone\": \"+994501112233\",\n        \"password\": \"password\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"8871d862-e1db-4061-a952-f531cc3e8f94"},{"name":"Update employee","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"7b1c6245-dcb7-4344-933c-e87ce8ba4f9c"}}],"id":"a8eeb094-fc92-4de6-a16a-49279e906225","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Cashier Updated\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/staff/employees/1","urlObject":{"path":["staff","employees","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"bbc6dfd2-a057-445f-9d51-d8e1aeebf703","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/staff/employees/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Cashier Updated\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"a8eeb094-fc92-4de6-a16a-49279e906225"},{"name":"Delete employee","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"2e781e7c-7fa2-41b3-b7fe-48487a8fc1d4"}}],"id":"65df9eb9-62b4-41a5-b3d5-96098c7587d5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/employees/1","urlObject":{"path":["staff","employees","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"c0f47878-35a8-4cc0-b5ef-f933d015f9cd","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/employees/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"65df9eb9-62b4-41a5-b3d5-96098c7587d5"},{"name":"Update loyalty card","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"0f5fc99d-2ed4-4d3e-a509-b0274e7a3c31"}}],"id":"8c76b37d-c117-45fe-9bd9-18cc0a037263","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/staff/loyalty-cards/1","urlObject":{"path":["staff","loyalty-cards","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"78dc318a-a0d1-49f6-9663-0c26f528f568","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/staff/loyalty-cards/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"is_active\": true\n    }\n}"}],"_postman_id":"8c76b37d-c117-45fe-9bd9-18cc0a037263"},{"name":"Update service","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"f206a462-28c9-4d2f-a068-98139242cd49"}}],"id":"7ba9b3e0-da18-41ee-91d0-f4218b01a8c5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"is_active\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/staff/services/1","urlObject":{"path":["staff","services","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"0a9937a4-54ae-4426-9d6c-37746e65c785","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/staff/services/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"is_active\": false\n    }\n}"}],"_postman_id":"7ba9b3e0-da18-41ee-91d0-f4218b01a8c5"},{"name":"List promos","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"e79080df-ca0f-4ece-ba58-d4d7a7e0a497"}}],"id":"30de12ea-3c06-45c1-aaa0-dad4654e2198","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/promos","description":"<h2 id=\"summary\">Summary</h2>\n<p>Promos visible to this employee.</p>\n","urlObject":{"path":["staff","promos"],"host":["https://api.loya.cc/api/v1"],"query":[{"disabled":true,"description":{"content":"<p>Optional service filter.</p>\n","type":"text/plain"},"key":"service_id","value":""},{"disabled":true,"description":{"content":"<p>Optional channel filter.</p>\n","type":"text/plain"},"key":"channel","value":""}],"variable":[]}},"response":[{"id":"54ce2fe1-9144-453e-8163-5bc78bedeab6","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://api.loya.cc/api/v1/staff/promos","host":["https://api.loya.cc/api/v1"],"path":["staff","promos"],"query":[{"key":"service_id","value":"","description":"Optional service filter.","disabled":true},{"key":"channel","value":"","description":"Optional channel filter.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1\n        }\n    ]\n}"}],"_postman_id":"30de12ea-3c06-45c1-aaa0-dad4654e2198"},{"name":"Show promo","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"636838cc-c28f-4690-8beb-36195d72df3e"}}],"id":"49a5c059-8b61-4535-ac27-3f03010342b8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/promos/1","urlObject":{"path":["staff","promos","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"1634fce9-4fe7-4788-a207-104805a1d7c6","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/promos/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"49a5c059-8b61-4535-ac27-3f03010342b8"},{"name":"Create promo","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('promoId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"446e09d3-a625-4abd-bc4f-ed1de8061fb7"}}],"id":"b50486a3-c931-4c49-be21-6c9c40cb17db","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"promo_type_id\": 1,\n    \"service_id\": 1,\n    \"discount_type\": \"percentage\",\n    \"discount_value\": 20,\n    \"applicable_to\": [\n        \"on_site\"\n    ],\n    \"is_active\": true,\n    \"time_rule\": \"time\",\n    \"time_mode\": \"between\",\n    \"time_from\": \"12:00\",\n    \"time_to\": \"16:00\",\n    \"per_user_limit_type\": \"limited\",\n    \"per_user_limit_count\": 1,\n    \"coupon_mode\": \"unlimited\",\n    \"valid_with_loyalty\": false,\n    \"translations\": {\n        \"title\": {\n            \"en\": \"Happy time 20%\"\n        },\n        \"description\": {\n            \"en\": \"Weekday afternoon discount.\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/staff/promos","description":"<h2 id=\"summary\">Summary</h2>\n<p>Create or update a promo. Response is camelCase (<code>timeRule</code>, <code>timeMode</code>, <code>weekdays</code>, <code>couponMode</code>, <code>loyaltyCardIds</code>, <code>schedule</code> fields). Request body is snake_case.</p>\n<h2 id=\"scope-scope\">Scope (<code>scope</code>)</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Value</th>\n<th>Meaning</th>\n<th>Required with it</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>service</code></td>\n<td>One service (default)</td>\n<td><code>service_id</code></td>\n</tr>\n<tr>\n<td><code>partner</code></td>\n<td>Whole partner (global)</td>\n<td><code>partner_id</code></td>\n</tr>\n<tr>\n<td><code>country</code></td>\n<td>One country entity</td>\n<td><code>country_entity_id</code></td>\n</tr>\n<tr>\n<td><code>branch</code></td>\n<td>One or more branches</td>\n<td><code>branch_id</code> or <code>branch_ids</code></td>\n</tr>\n<tr>\n<td><code>selection</code></td>\n<td>Selected countries, branches, and/or services</td>\n<td><code>country_entity_ids</code>, <code>branch_ids</code>, <code>service_ids</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"schedule\">Schedule</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Values</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>time_rule</code></td>\n<td><code>anytime</code> · <code>days</code> · <code>time</code> · <code>days_and_time</code></td>\n<td>Happy Time (<code>happy-time</code> promo type) cannot use <code>anytime</code></td>\n</tr>\n<tr>\n<td><code>weekdays</code></td>\n<td>integers 1–7</td>\n<td>ISO: 1 Monday … 7 Sunday. Required when the rule includes days</td>\n</tr>\n<tr>\n<td><code>time_mode</code></td>\n<td><code>anytime</code> · <code>before</code> · <code>between</code> · <code>after</code></td>\n<td>Clock window. <code>anytime</code> is invalid when <code>time_rule</code> is <code>time</code> — pick before, after, or between</td>\n</tr>\n<tr>\n<td><code>time_from</code> / <code>time_to</code></td>\n<td><code>HH:MM</code></td>\n<td><code>between</code> and <code>after</code> need <code>time_from</code>. <code>between</code> and <code>before</code> need <code>time_to</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"limits-and-stock\">Limits and stock</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Values</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>per_user_limit_type</code></td>\n<td><code>unlimited</code> · <code>limited</code></td>\n<td>Welcome promos force a lifetime personal limit</td>\n</tr>\n<tr>\n<td><code>per_user_limit_count</code></td>\n<td>integer ≥ 1</td>\n<td>Required when type is <code>limited</code></td>\n</tr>\n<tr>\n<td><code>per_user_limit_reset</code></td>\n<td><code>daily</code> · <code>weekly</code> · <code>monthly</code> · <code>never</code> · <code>calendar_year</code></td>\n<td>Birthday promos use a yearly personal limit</td>\n</tr>\n<tr>\n<td><code>coupon_mode</code></td>\n<td><code>unlimited</code> · <code>renews_daily</code> · <code>renews_weekly</code> · <code>renews_monthly</code> · <code>total</code></td>\n<td>Weekly/monthly coupon types lock the reset when stock is on</td>\n</tr>\n<tr>\n<td><code>coupon_quantity</code></td>\n<td>integer ≥ 1</td>\n<td>Required when stock mode is not <code>unlimited</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"channels-loyalty-special-types\">Channels, loyalty, special types</h2>\n<ul>\n<li><code>applicable_to[]</code> / <code>delivery_type</code>: <code>on_site</code>, <code>pick_up</code>, <code>delivery</code>, <code>online</code>, <code>home_visit</code></li>\n<li><code>valid_with_loyalty</code> + <code>loyalty_card_ids[]</code> (or <code>loyalty_card_id</code>) — cards must belong to the partner</li>\n<li>Birthday: <code>birthday_days_before</code>, <code>birthday_days_after</code> (0–7)</li>\n<li>Holiday: <code>holiday_name</code>, <code>holiday_starts_on</code> / <code>holiday_date</code>, <code>holiday_ends_on</code>, <code>holiday_days_before</code>, <code>holiday_days_after</code></li>\n<li>Student: <code>requires_student_verification</code></li>\n<li><code>translations.title.en</code> is required on admin create. <code>az</code> and <code>ru</code> are optional.</li>\n<li>Loya-owned promos return <code>isEditable: false</code>. Partners and staff cannot delete those.</li>\n</ul>\n<h2 id=\"customer-catalog-fields-added\">Customer catalog fields added</h2>\n<p><code>scheduleText</code>, <code>isAvailableNow</code>, <code>availabilityState</code>, <code>availabilityNotice</code>, <code>nextAvailableAt</code>, <code>applicableTo</code>, <code>scopeLabel</code> on <code>GET /promos</code> and <code>GET /promos/{id}</code>.</p>\n","urlObject":{"path":["staff","promos"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"ac76c661-56ba-47ff-9cf1-0f057d9020fd","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/staff/promos"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"promo_type_id\": 1,\n        \"service_id\": 1,\n        \"discount_type\": \"percentage\",\n        \"discount_value\": 20,\n        \"applicable_to\": [\n            \"on_site\"\n        ],\n        \"is_active\": true,\n        \"time_rule\": \"time\",\n        \"time_mode\": \"between\",\n        \"time_from\": \"12:00\",\n        \"time_to\": \"16:00\",\n        \"per_user_limit_type\": \"limited\",\n        \"per_user_limit_count\": 1,\n        \"coupon_mode\": \"unlimited\",\n        \"valid_with_loyalty\": false,\n        \"translations\": {\n            \"title\": {\n                \"en\": \"Happy time 20%\"\n            },\n            \"description\": {\n                \"en\": \"Weekday afternoon discount.\"\n            }\n        }\n    }\n}"}],"_postman_id":"b50486a3-c931-4c49-be21-6c9c40cb17db"},{"name":"Update promo","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"64e19c79-d045-4b93-8136-413f72125729"}}],"id":"aad74d89-18b9-4502-b61a-b30b56cd6aef","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"time_mode\": \"before\",\n    \"time_to\": \"11:00\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/staff/promos/1","urlObject":{"path":["staff","promos","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"0d47f27a-862b-496e-902a-386780a81f80","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/staff/promos/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"time_mode\": \"before\",\n        \"time_to\": \"11:00\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"aad74d89-18b9-4502-b61a-b30b56cd6aef"},{"name":"Delete promo","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"3c7e3413-9f86-4a88-bb7b-33998c485b56"}}],"id":"9579d077-191b-4c81-a2f6-83ddc6fc342b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/promos/1","urlObject":{"path":["staff","promos","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"8bf59175-078c-4719-a1d8-ef1ad4bb5b45","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/promos/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"9579d077-191b-4c81-a2f6-83ddc6fc342b"},{"name":"List service menus","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});"],"id":"903c221c-1db0-40e9-8868-940a5297a61d"}}],"id":"6543df32-a157-4a36-a151-81a7ff90e2df","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/services/1/menus","urlObject":{"path":["staff","services","1","menus"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"ac479e59-ffa6-4a57-ae47-ccf7745f9722","name":"OK","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/services/1/menus"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1\n        }\n    ]\n}"}],"_postman_id":"6543df32-a157-4a36-a151-81a7ff90e2df"},{"name":"Create service menu","event":[{"listen":"test","script":{"type":"text/javascript","exec":["const json = pm.response.json();","const rows = Array.isArray(json.data) ? json.data : (Array.isArray(json) ? json : []);","if (rows.length && rows[0].id) pm.collectionVariables.set('menuId', String(rows[0].id));","pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"0c9bfec0-d7d3-40f6-991c-3fd812b5ca9e"}}],"id":"d1069310-df49-4df6-a8a9-583453f7d522","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"title\": \"Menu\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/staff/services/1/menus","urlObject":{"path":["staff","services","1","menus"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"4d7f7a41-08f6-4bae-b03b-3cce9f30b782","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/staff/services/1/menus"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"title\": \"Menu\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"d1069310-df49-4df6-a8a9-583453f7d522"},{"name":"Update service menu","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"b3820b23-c7af-46f4-998b-5c49ce651e82"}}],"id":"b3a4ad1a-d954-4025-9778-b47bad5e9f94","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"title\": \"Updated menu\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/staff/services/1/menus/1","urlObject":{"path":["staff","services","1","menus","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"b6dd8721-fed7-45ab-a277-ee17364d4fdd","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/staff/services/1/menus/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"title\": \"Updated menu\"\n    }\n}"}],"_postman_id":"b3a4ad1a-d954-4025-9778-b47bad5e9f94"},{"name":"Delete service menu","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"2156a2a1-75dc-4eba-ab3c-d9d03ef76838"}}],"id":"b1f2c1e8-c948-4a6d-9ac8-ed4fd06dc1ac","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/services/1/menus/1","urlObject":{"path":["staff","services","1","menus","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"d6db9994-5b69-41ab-9b49-02aa4eb2d7e4","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/services/1/menus/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"b1f2c1e8-c948-4a6d-9ac8-ed4fd06dc1ac"},{"name":"Add menu page","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"c1f2e158-4a73-4304-a08b-bed08a0e2437"}}],"id":"4791e832-7a3a-433c-b89a-e42329b5a716","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"file\": \"menus/page-1.pdf\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/staff/services/1/menus/1/pages","urlObject":{"path":["staff","services","1","menus","1","pages"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"47fc0498-1582-43cc-9f9e-bb844ac497af","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/staff/services/1/menus/1/pages"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"file\": \"menus/page-1.pdf\"\n    }\n}"}],"_postman_id":"4791e832-7a3a-433c-b89a-e42329b5a716"},{"name":"Delete menu page","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"09dc3a71-e7cb-40c6-81ed-7f61e26222da"}}],"id":"692c37ad-c08a-4faf-9255-00a1c47a2d84","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/services/1/menus/1/pages/1","urlObject":{"path":["staff","services","1","menus","1","pages","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"54f1e565-0a84-490e-aef6-081cd07b2d39","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "}],"url":"https://api.loya.cc/api/v1/staff/services/1/menus/1/pages/1"},"status":"No Content","code":204,"_postman_previewlanguage":"text","header":[],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"692c37ad-c08a-4faf-9255-00a1c47a2d84"},{"name":"Update menu","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test('Status code is successful (200, 201, 204)', function () {","  pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});"],"id":"0fe87461-fd91-498b-9a56-b86433313805"}}],"id":"18682f00-8f32-409f-b255-62ca53d3ab3c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"title\": \"Renamed menu\",\n    \"is_active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.loya.cc/api/v1/staff/menus/1","urlObject":{"path":["staff","menus","1"],"host":["https://api.loya.cc/api/v1"],"query":[],"variable":[]}},"response":[{"id":"d9191d03-4c64-43d5-a454-6ee50995f4b2","name":"OK","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Accept-Language","value":"en"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/json"}],"url":"https://api.loya.cc/api/v1/staff/menus/1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 1,\n        \"title\": \"Renamed menu\",\n        \"is_active\": true\n    }\n}"}],"_postman_id":"18682f00-8f32-409f-b255-62ca53d3ab3c"}],"id":"74650624-988e-45e1-a5f3-9fc6492818cf","description":"<p>Employee JWT. Same dashboard routes as <strong>Customer Mobile Application → Partner → Employee (/staff)</strong>. Promo writes require a superadmin employee. <code>time_mode</code> <code>anytime</code> means all day and is rejected when <code>time_rule</code> is <code>time</code>.</p>\n","_postman_id":"74650624-988e-45e1-a5f3-9fc6492818cf"}],"id":"e664e55f-f21d-4a7f-85ff-8f76c3c63fc7","description":"<p>Frontend: <strong>validator-partner-for-worker</strong> (port 3004)\nAPI base: <code>https://api.loya.cc/api/v1</code>\nAuth guard: <strong>employee</strong></p>\n<h3 id=\"flow\">Flow</h3>\n<ol>\n<li><strong>Auth → Login</strong> as branch employee</li>\n<li><strong>Promo validation → Scan code</strong> (customer QR)</li>\n<li><strong>Confirm</strong> or <strong>Reject</strong> activation</li>\n<li>Same pattern for <strong>Loyalty check-ins</strong> and <strong>Loyalty redemptions</strong></li>\n</ol>\n<p><strong>Endpoints:</strong> 40\n<strong>Methods:</strong> GET 13 · POST 15 · PATCH 7 · DELETE 5</p>\n<p><strong>Sections:</strong></p>\n<ul>\n<li>Auth: 3</li>\n<li>Promo validation: 3</li>\n<li>Loyalty check-in validation: 3</li>\n<li>Loyalty redemption validation: 3</li>\n<li>Staff panel: 28</li>\n</ul>\n","_postman_id":"e664e55f-f21d-4a7f-85ff-8f76c3c63fc7"}],"variable":[{"key":"baseUrl","value":"https://api.loya.cc/api/v1","description":"API base URL including /api/v1. Local: https://loya-cc-dev.test/api/v1"},{"key":"locale","value":"en","description":"Accept-Language header value"},{"key":"adminToken","value":"","description":"Admin JWT from Auth → Panel login / Login"},{"key":"ownerToken","value":"","description":"Owner JWT from Auth → Owner login"},{"key":"customerToken","value":"","description":"Customer JWT from register/login"},{"key":"userToken","value":"","description":"Active customer or partner token for /auth/me"},{"key":"partnerToken","value":"","description":"Partner JWT from unified login"},{"key":"employeeToken","value":"","description":"Employee JWT for validator app"},{"key":"ownersId","value":"1","description":"Owner account ID"},{"key":"activityId","value":"1","description":"Partner activity log entry ID"},{"key":"serviceGroupId","value":"1","description":"Branch service group ID"},{"key":"promoId","value":"1","description":"Promo ID for activation"},{"key":"activationId","value":"1","description":"Promo activation ID"},{"key":"customerId","value":"1","description":"Customer record ID"},{"key":"languageId","value":"1","description":"UI message language ID"},{"key":"loyaltyRedemptionId","value":"1","description":"Loyalty redemption ID"},{"key":"loyaltyCheckInId","value":"1","description":"Loyalty check-in ID"},{"key":"serviceId","value":"1","description":"Service unit ID"},{"key":"notificationId","value":"1","description":"Customer notification ID"},{"key":"mediaPath","value":"branches/logos/kfc-narimanov.png","description":"Storage path for /media/{path}"},{"key":"appSettingId","value":"1","description":"Admin app setting ID (alias for app-settingsId)"},{"key":"customPageSlug","value":"about","description":"CMS custom page slug for /custom-pages/{slug}"},{"key":"menuId","value":"1","description":"Branch or service menu ID"},{"key":"menuPageId","value":"1","description":"Service menu page ID"},{"key":"translationId","value":"1","description":"Admin translation record ID"},{"key":"iconsId","value":"1","description":"Admin library icon ID"},{"key":"categoriesId","value":"1","description":"Resource ID for categories endpoints"},{"key":"subcategoriesId","value":"1","description":"Resource ID for subcategories endpoints"},{"key":"category-filter-groupsId","value":"1","description":"Resource ID for category-filter-groups endpoints"},{"key":"category-filter-fieldsId","value":"1","description":"Resource ID for category-filter-fields endpoints"},{"key":"category-filter-optionsId","value":"1","description":"Resource ID for category-filter-options endpoints"},{"key":"countriesId","value":"1","description":"Resource ID for countries endpoints"},{"key":"statesId","value":"1","description":"Resource ID for states endpoints"},{"key":"citiesId","value":"1","description":"Resource ID for cities endpoints"},{"key":"districtsId","value":"1","description":"Resource ID for districts endpoints"},{"key":"partnersId","value":"1","description":"Resource ID for partners endpoints"},{"key":"country-entitiesId","value":"1","description":"Resource ID for country-entities endpoints"},{"key":"branchesId","value":"1","description":"Resource ID for branches endpoints"},{"key":"branch-about-sectionsId","value":"1","description":"Resource ID for branch-about-sections endpoints"},{"key":"amenitiesId","value":"1","description":"Resource ID for amenities endpoints"},{"key":"promosId","value":"1","description":"Resource ID for promos endpoints"},{"key":"promo-typesId","value":"1","description":"Resource ID for promo-types endpoints"},{"key":"promo-activationsId","value":"1","description":"Resource ID for promo-activations endpoints"},{"key":"promo-activation-logsId","value":"1","description":"Resource ID for promo-activation-logs endpoints"},{"key":"loyalty-cardsId","value":"1","description":"Resource ID for loyalty-cards endpoints"},{"key":"adminsId","value":"1","description":"Resource ID for admins endpoints"},{"key":"customersId","value":"1","description":"Resource ID for customers endpoints"},{"key":"employeesId","value":"1","description":"Resource ID for employees endpoints"},{"key":"customer-devicesId","value":"1","description":"Resource ID for customer-devices endpoints"},{"key":"partner-customersId","value":"1","description":"Resource ID for partner-customers endpoints"},{"key":"home-bannersId","value":"1","description":"Resource ID for home-banners endpoints"},{"key":"cms-pagesId","value":"1","description":"Resource ID for cms-pages endpoints"},{"key":"question-answersId","value":"1","description":"Resource ID for question-answers endpoints"},{"key":"app-settingsId","value":"1","description":"Resource ID for app-settings endpoints"},{"key":"translationsId","value":"1","description":"Resource ID for translations endpoints"},{"key":"help-filtersId","value":"1","description":"Help filter ID"},{"key":"help-filter-optionsId","value":"1","description":"Help filter option ID"}]}