{"info":{"_postman_id":"5b6fbb1e-f1ae-41d5-9f59-1ce6cd4de4e8","name":"Qapida","description":"<html><head></head><body><h1 id=\"qapida-partnyor-konnektor-api\">Qapida — Partnyor Konnektor API</h1>\n<p>Partnyorlar bağlama məlumatlarını <strong>qutu</strong> (<code>uid</code>) məntiqi ilə Qapida xidmətinə göndərir. Hər sorğuda <strong>1–3000</strong> bağlama göndərmək olar. Qutu adında göndərilmə tarixindən istifadə oxunaqlığı artırır, məsələn: <code>XKargo 24.10.2024</code>. Eyni qutu adı ilə bir neçə sorğu göndərilə bilər — yeni bağlamalar həmin qutuya əlavə olunur.</p>\n<h2 id=\"qoşulma-prosesi-test-→-prod\">Qoşulma prosesi: test → prod</h2>\n<ol>\n<li>Partnyor inteqrasiyanı öz tərəfində hazırlayır.</li>\n<li>Qapida partnyora <strong>test API açarı</strong> verir. Test açarı ilə göndərilən bağlamalar ayrıca test şirkətinə yazılır və real çatdırılmaya getmir.</li>\n<li>Bütün ssenarilər (göndərmə, xəta cavabları, nəticənin alınması, geri dönüşlər) test açarı ilə yoxlanılır.</li>\n<li>Test uğurla bitdikdən sonra Qapida <strong>prod API açarı</strong> verir. Prod açarı ilə göndərilən bağlamalar real əməliyyata daxil olur.</li>\n</ol>\n<p>Bütün partnyorlar eyni ünvandan istifadə edir — şirkəti <strong>API açarı</strong> müəyyən edir:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Dəyişən</th>\n<th>Dəyər</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>https://qapida-4dctuoc5.nw.gateway.dev</code></td>\n<td><code>https://qapida-4dctuoc5.nw.gateway.dev</code></td>\n</tr>\n<tr>\n<td><code>TEST_API_KEY</code></td>\n<td>Qapida tərəfindən verilən açar (əvvəlcə test, sonra prod)</td>\n</tr>\n</tbody>\n</table>\n</div><p>API açarı olmadıqda və ya yanlış olduqda <strong>401</strong> qaytarılır.</p>\n<h2 id=\"limitlər\">Limitlər</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Sorğu</th>\n<th>Limit</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>PUT /v1/packages</code> (göndərmə)</td>\n<td>dəqiqədə <strong>10</strong> sorğu</td>\n</tr>\n<tr>\n<td><code>GET /v1/packages</code> (nəticə)</td>\n<td>dəqiqədə <strong>60</strong> sorğu, hər barkod üzrə maksimum <strong>2</strong> dəfə</td>\n</tr>\n</tbody>\n</table>\n</div><p>Limit aşıldıqda <strong>429</strong> qaytarılır. Çoxlu bağlamanı ayrı-ayrı sorğularla deyil, bir sorğuda (3000-ə qədər) göndərin.</p>\n<h2 id=\"xidmət-növləri\">Xidmət növləri</h2>\n<p>Hər bağlamada <code>service_type</code> sahəsi ilə xidmət seçilir:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><code>service_type</code></th>\n<th>Xidmət</th>\n<th>Son status</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>boş və ya <code>delivery</code></td>\n<td>Çatdırılma — kuryer bağlamanı müştəriyə çatdırır</td>\n<td>5 / 6</td>\n</tr>\n<tr>\n<td><code>sorting</code></td>\n<td>Çeşidləmə — Qapida anbarında bağlamalar partnyorun sürücü/məntəqələrinə görə çeşidlənir, partnyor özü götürür</td>\n<td>13</td>\n</tr>\n<tr>\n<td><code>distribution</code></td>\n<td>Paylama — çeşidləmə + Qapida kuryeri məntəqənin bütün bağlamalarını məntəqəyə çatdırır</td>\n<td>14</td>\n</tr>\n</tbody>\n</table>\n</div><p>Çeşidləmə və paylama yalnız partnyor üçün aktivləşdirildikdən sonra qəbul olunur (əks halda həmin bağlama xəta ilə qaytarılır). Ətraflı: <strong>Çeşidləmə / Paylama</strong> qovluğu.</p>\n<h2 id=\"status-kodları\">Status kodları</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status</th>\n<th>Açıqlama</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>0</td>\n<td>Qəbul edildi (anbar bağlamanı yoxladı və qəbul etdi)</td>\n</tr>\n<tr>\n<td>4</td>\n<td>Yoldadır (kuryer bağlamanı çatdırılma üçün qəbul etdi)</td>\n</tr>\n<tr>\n<td>5</td>\n<td>Çatdırıldı</td>\n</tr>\n<tr>\n<td>6</td>\n<td>Çatdırılmadı (bağlama geri qaytarılır)</td>\n</tr>\n<tr>\n<td>7</td>\n<td>İmtina edildi (bağlama əməliyyatsız geri qaytarıldı)</td>\n</tr>\n<tr>\n<td>13</td>\n<td>Çeşidləndi (çeşidləmə / paylama xidməti)</td>\n</tr>\n<tr>\n<td>14</td>\n<td>Məntəqəyə çatdırıldı (paylama xidməti)</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Reason (səbəb)</strong> yalnız status <strong>6</strong> üçün göndərilir:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Reason</th>\n<th>Açıqlama</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>RecipientNotFound</code></td>\n<td>Telefon zəngi cavablandırılmadı, ünvanda heç kim yoxdur, FİN kodu uyğun gəlmir</td>\n</tr>\n<tr>\n<td><code>WrongAddress</code></td>\n<td>Ünvan aydın deyil və ya yanlışdır</td>\n</tr>\n<tr>\n<td><code>RefusedByRecipient</code></td>\n<td>Müştəri bağlamadan imtina etdi</td>\n</tr>\n<tr>\n<td><code>NoAccess</code></td>\n<td>Ünvana giriş yoxdur</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"geri-dönüş-callback\">Geri dönüş (callback)</h2>\n<p>Qapida status dəyişikliklərini partnyorun təqdim etdiyi API ünvanına göndərir:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"barcode\": \"DEMO0000000001\",\n    \"status\": 6,\n    \"reason\": \"WrongAddress\",\n    \"signature_url\": \"https://...\",\n    \"images\": [\"https://...\", \"https://...\"]\n  }\n]\n</code></pre>\n<ul>\n<li>Geri dönüşləri göndərən IP ünvanı: <strong>35.207.189.140</strong>.</li>\n<li>Hər sorğunun <code>X-Request-ID</code> başlığı unikaldır — sinxronizasiya üçün istifadə edə bilərsiniz.</li>\n<li>Partnyor <strong>HTTP 201</strong> qaytarmadıqda status yenidən göndərilir: <strong>hər 5 dəqiqədən bir (08:00–23:00)</strong>, maksimum <strong>5 dəfə</strong>. Ona görə eyni statusun təkrar gəlməsi mümkündür — bunun müştəriyə/üçüncü tərəfə təkrar ötürülməməsini partnyor təmin etməlidir.</li>\n<li>5 cəhddən sonra da alınmazsa, status Qapida Partnyor Portalından izlənilməlidir.</li>\n</ul>\n<h2 id=\"i̇mza-və-şəkillər-pod\">İmza və şəkillər (POD)</h2>\n<ul>\n<li><strong>Çatdırıldı (5)</strong> və <strong>Çatdırılmadı (6)</strong> statuslarında müştərinin rəqəmsal imzası və şəkillər <strong>link</strong> olaraq göndərilir.</li>\n<li>Hər link <strong>10 dəqiqə</strong> etibarlıdır — partnyor faylları bu müddətdə öz sisteminə yükləməlidir.</li>\n<li>Formatlar: <code>PNG</code>, <code>JPEG</code>; orta ölçü ~250 KB.</li>\n<li>Yükləmə alınmazsa <code>GET</code> sorğusu ilə yeni linklər əldə edin (hər barkod üzrə 2 dəfə).</li>\n</ul>\n<h2 id=\"səhvən-göndərilmiş-bağlamalar\">Səhvən göndərilmiş bağlamalar</h2>\n<p>Bağlama səhvən göndərilibsə, Qapida-da imtina (7) kimi qeyd olunur və fiziki qəbul edilibsə partnyora qaytarılır.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"Qapida — Partnyor Konnektor API","slug":"qapida-partnyor-konnektor-api"}],"owner":"11395166","collectionId":"5b6fbb1e-f1ae-41d5-9f59-1ce6cd4de4e8","publishedId":"2sBYHQ1hQs","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-10-08T20:00:19.000Z"},"item":[{"name":"Çatdırılma","item":[{"name":"Çatdırılma — bağlamaları göndər","id":"7f1c9f8a-58e0-4d05-bd8a-e85abb13c9e5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"uid\": \"DemoKargo 24.10.2026\",\n    \"items\": [\n        {\n            \"barcode\": \"DEMO0000000001\",\n            \"tr_barcode\": \"DEMO0000000001\",\n            \"company\": {\n                \"name\": \"Demo Mağaza\",\n                \"barcode\": \"ORD-100001\"\n            },\n            \"customer_uid\": \"CUST-0001\",\n            \"customer_fin\": \"AB12CD3\",\n            \"customer_name\": \"Test\",\n            \"customer_surname\": \"Müştəri\",\n            \"customer_phone\": \"+994500000001\",\n            \"customer_available\": \"10:00-18:00\",\n            \"delivery_address\": \"Bakı şəhəri, Nümunə küçəsi 1, mənzil 1\",\n            \"delivery_city\": \"Bakı\",\n            \"delivery_region\": \"Nəsimi\",\n            \"current_status\": \"in_warehouse\",\n            \"current_place\": \"Demo anbar\",\n            \"date\": 1760000000,\n            \"latitude\": 40.4093,\n            \"longitude\": 49.8671,\n            \"package_weight\": \"1.20\",\n            \"package_dimensions\": \"30x20x10\",\n            \"option\": \"\"\n        },\n        {\n            \"barcode\": \"DEMO0000000002\",\n            \"tr_barcode\": \"\",\n            \"company\": {\n                \"name\": \"Demo Mağaza\",\n                \"barcode\": \"ORD-100002\"\n            },\n            \"customer_uid\": \"CUST-0002\",\n            \"customer_fin\": \"XY98ZW7\",\n            \"customer_name\": \"Nümunə\",\n            \"customer_surname\": \"Alıcı\",\n            \"customer_phone\": \"+994500000002\",\n            \"delivery_address\": \"Sumqayıt şəhəri, Demo prospekti 25\",\n            \"delivery_city\": \"Sumqayıt\",\n            \"delivery_region\": \"\",\n            \"date\": 1760000000,\n            \"package_weight\": \"0.45\",\n            \"package_dimensions\": \"\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://qapida-4dctuoc5.nw.gateway.dev/v1/packages?key=TEST_API_KEY","description":"<p>Bağlamaları göndərmək üçün.</p>\n<h3 id=\"tələb-olunan-sahələr-çatdırılma\">Tələb olunan sahələr (çatdırılma)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Sahə</th>\n<th>Açıqlama</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uid</code></td>\n<td>Qutu adı (sorğu səviyyəsində)</td>\n</tr>\n<tr>\n<td><code>items[].barcode</code></td>\n<td>Bağlamanın üzərindəki, skanerlə oxunan unikal barkod. Partnyorla razılaşdırılmış prefikslə başlamalıdır</td>\n</tr>\n<tr>\n<td><code>items[].company.name</code></td>\n<td>Satıcının adı (məs. <code>temu</code>) — müştəri satıcı barkodunu daha tez tanıyır</td>\n</tr>\n<tr>\n<td><code>items[].company.barcode</code></td>\n<td>Satıcının barkodu / sifariş nömrəsi</td>\n</tr>\n<tr>\n<td><code>items[].customer_uid</code></td>\n<td>Partnyorun sistemində alıcının unikal ID-si</td>\n</tr>\n<tr>\n<td><code>items[].customer_fin</code></td>\n<td>Alıcının FİN kodu</td>\n</tr>\n<tr>\n<td><code>items[].customer_name</code>, <code>customer_surname</code></td>\n<td>Alıcının adı və soyadı</td>\n</tr>\n<tr>\n<td><code>items[].customer_phone</code></td>\n<td>Beynəlxalq formatda: <code>+994XXXXXXXXX</code></td>\n</tr>\n<tr>\n<td><code>items[].delivery_address</code></td>\n<td>Çatdırılma ünvanı</td>\n</tr>\n<tr>\n<td><code>items[].date</code></td>\n<td>Alış tarixi — <strong>Unix saniyə</strong> (millisaniyə deyil), 2020-ci ildən sonra</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"i̇stəyə-bağlı-sahələr\">İstəyə bağlı sahələr</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Sahə</th>\n<th>Açıqlama</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>tr_barcode</code></td>\n<td>Əlavə izləmə barkodu</td>\n</tr>\n<tr>\n<td><code>delivery_city</code>, <code>delivery_region</code></td>\n<td>Şəhər və rayon</td>\n</tr>\n<tr>\n<td><code>package_weight</code>, <code>package_dimensions</code></td>\n<td>Çəki (kq) və ölçü — mətn</td>\n</tr>\n<tr>\n<td><code>customer_available</code></td>\n<td>Müştərinin çatdırılma üçün uyğun vaxtı</td>\n</tr>\n<tr>\n<td><code>current_status</code>, <code>current_place</code></td>\n<td>Bağlamanın partnyordakı statusu və yeri</td>\n</tr>\n<tr>\n<td><code>latitude</code>, <code>longitude</code></td>\n<td>Ünvanın koordinatları</td>\n</tr>\n<tr>\n<td><code>option</code></td>\n<td>Çatdırılma seçimi (qapıya və ya məntəqəyə)</td>\n</tr>\n<tr>\n<td><code>service_type</code></td>\n<td>Boş = çatdırılma. Digər xidmətlər üçün <strong>Çeşidləmə / Paylama</strong> qovluğuna baxın</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"yoxlamalar\">Yoxlamalar</h3>\n<ul>\n<li>Tələb olunan sahə olmadıqda həmin bağlama xəta ilə qaytarılır.</li>\n<li>Test FİN kodları (<code>1234567</code>, <code>123456</code> və s.) və bloklanmış FİN kodları qəbul edilmir.</li>\n<li><code>date</code> millisaniyə ilə göndərilərsə xəta qaytarılır.</li>\n</ul>\n<h3 id=\"cavablar\">Cavablar</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>HTTP</th>\n<th>Nə vaxt</th>\n<th>Gövdə</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>201</strong></td>\n<td>Bütün bağlamalar qəbul edildi</td>\n<td><code>{\"message\":\"successfully accepted\",\"total_packages\":N}</code></td>\n</tr>\n<tr>\n<td><strong>400</strong></td>\n<td>Bir hissəsi qəbul edildi</td>\n<td><code>{\"message\":\"partially accepted\",\"total_packages\":N,\"errors\":{\"&lt;barkod&gt;\":\"&lt;səbəb&gt;\"}}</code></td>\n</tr>\n<tr>\n<td><strong>400</strong></td>\n<td>Heç biri qəbul edilmədi</td>\n<td><code>{\"message\":\"no packages accepted\",\"total_packages\":0,\"errors\":{...}}</code></td>\n</tr>\n<tr>\n<td><strong>400</strong></td>\n<td>Yanlış JSON, boş <code>uid</code> və ya <code>items</code></td>\n<td>mətn xəta</td>\n</tr>\n<tr>\n<td><strong>401</strong></td>\n<td>API açarı yoxdur / yanlışdır</td>\n<td></td>\n</tr>\n<tr>\n<td><strong>429</strong></td>\n<td>Limit aşıldı</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Qismən qəbul:</strong> düzgün bağlamalar qəbul olunur, səhvlər <code>errors</code> obyektində barkod üzrə qaytarılır — yalnız onları düzəldib yenidən göndərin. <code>total_packages</code> qəbul edilənlərin sayıdır.</p>\n","urlObject":{"path":["v1","packages"],"host":["https://qapida-4dctuoc5.nw.gateway.dev"],"query":[{"key":"key","value":"TEST_API_KEY"}],"variable":[]}},"response":[{"id":"587e4705-e2d3-4add-9a35-cd96390bb976","name":"201 — hamısı qəbul edildi","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"uid\": \"DemoKargo 24.10.2026\",\n    \"items\": [\n        {\n            \"barcode\": \"DEMO0000000001\",\n            \"tr_barcode\": \"DEMO0000000001\",\n            \"company\": {\n                \"name\": \"Demo Mağaza\",\n                \"barcode\": \"ORD-100001\"\n            },\n            \"customer_uid\": \"CUST-0001\",\n            \"customer_fin\": \"AB12CD3\",\n            \"customer_name\": \"Test\",\n            \"customer_surname\": \"Müştəri\",\n            \"customer_phone\": \"+994500000001\",\n            \"customer_available\": \"10:00-18:00\",\n            \"delivery_address\": \"Bakı şəhəri, Nümunə küçəsi 1, mənzil 1\",\n            \"delivery_city\": \"Bakı\",\n            \"delivery_region\": \"Nəsimi\",\n            \"current_status\": \"in_warehouse\",\n            \"current_place\": \"Demo anbar\",\n            \"date\": 1760000000,\n            \"latitude\": 40.4093,\n            \"longitude\": 49.8671,\n            \"package_weight\": \"1.20\",\n            \"package_dimensions\": \"30x20x10\",\n            \"option\": \"\"\n        },\n        {\n            \"barcode\": \"DEMO0000000002\",\n            \"tr_barcode\": \"\",\n            \"company\": {\n                \"name\": \"Demo Mağaza\",\n                \"barcode\": \"ORD-100002\"\n            },\n            \"customer_uid\": \"CUST-0002\",\n            \"customer_fin\": \"XY98ZW7\",\n            \"customer_name\": \"Nümunə\",\n            \"customer_surname\": \"Alıcı\",\n            \"customer_phone\": \"+994500000002\",\n            \"delivery_address\": \"Sumqayıt şəhəri, Demo prospekti 25\",\n            \"delivery_city\": \"Sumqayıt\",\n            \"delivery_region\": \"\",\n            \"date\": 1760000000,\n            \"package_weight\": \"0.45\",\n            \"package_dimensions\": \"\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://qapida-4dctuoc5.nw.gateway.dev/v1/packages?key=TEST_API_KEY","host":["https://qapida-4dctuoc5.nw.gateway.dev"],"path":["v1","packages"],"query":[{"key":"key","value":"TEST_API_KEY"}]},"description":"Bağlamaları göndərmək üçün.\n\n### Tələb olunan sahələr (çatdırılma)\n\n| Sahə | Açıqlama |\n|---|---|\n| `uid` | Qutu adı (sorğu səviyyəsində) |\n| `items[].barcode` | Bağlamanın üzərindəki, skanerlə oxunan unikal barkod. Partnyorla razılaşdırılmış prefikslə başlamalıdır |\n| `items[].company.name` | Satıcının adı (məs. `temu`) — müştəri satıcı barkodunu daha tez tanıyır |\n| `items[].company.barcode` | Satıcının barkodu / sifariş nömrəsi |\n| `items[].customer_uid` | Partnyorun sistemində alıcının unikal ID-si |\n| `items[].customer_fin` | Alıcının FİN kodu |\n| `items[].customer_name`, `customer_surname` | Alıcının adı və soyadı |\n| `items[].customer_phone` | Beynəlxalq formatda: `+994XXXXXXXXX` |\n| `items[].delivery_address` | Çatdırılma ünvanı |\n| `items[].date` | Alış tarixi — **Unix saniyə** (millisaniyə deyil), 2020-ci ildən sonra |\n\n### İstəyə bağlı sahələr\n\n| Sahə | Açıqlama |\n|---|---|\n| `tr_barcode` | Əlavə izləmə barkodu |\n| `delivery_city`, `delivery_region` | Şəhər və rayon |\n| `package_weight`, `package_dimensions` | Çəki (kq) və ölçü — mətn |\n| `customer_available` | Müştərinin çatdırılma üçün uyğun vaxtı |\n| `current_status`, `current_place` | Bağlamanın partnyordakı statusu və yeri |\n| `latitude`, `longitude` | Ünvanın koordinatları |\n| `option` | Çatdırılma seçimi (qapıya və ya məntəqəyə) |\n| `service_type` | Boş = çatdırılma. Digər xidmətlər üçün **Çeşidləmə / Paylama** qovluğuna baxın |\n\n### Yoxlamalar\n\n- Tələb olunan sahə olmadıqda həmin bağlama xəta ilə qaytarılır.\n- Test FİN kodları (`1234567`, `123456` və s.) və bloklanmış FİN kodları qəbul edilmir.\n- `date` millisaniyə ilə göndərilərsə xəta qaytarılır.\n\n### Cavablar\n\n| HTTP | Nə vaxt | Gövdə |\n|---|---|---|\n| **201** | Bütün bağlamalar qəbul edildi | `{\"message\":\"successfully accepted\",\"total_packages\":N}` |\n| **400** | Bir hissəsi qəbul edildi | `{\"message\":\"partially accepted\",\"total_packages\":N,\"errors\":{\"<barkod>\":\"<səbəb>\"}}` |\n| **400** | Heç biri qəbul edilmədi | `{\"message\":\"no packages accepted\",\"total_packages\":0,\"errors\":{...}}` |\n| **400** | Yanlış JSON, boş `uid` və ya `items` | mətn xəta |\n| **401** | API açarı yoxdur / yanlışdır | |\n| **429** | Limit aşıldı | |\n\n**Qismən qəbul:** düzgün bağlamalar qəbul olunur, səhvlər `errors` obyektində barkod üzrə qaytarılır — yalnız onları düzəldib yenidən göndərin. `total_packages` qəbul edilənlərin sayıdır."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"successfully accepted\",\n    \"total_packages\": 2\n}"},{"id":"a3a50756-adb8-48e4-8cb3-83fd9e364771","name":"400 — qismən qəbul edildi","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"uid\": \"DemoKargo 24.10.2026\",\n    \"items\": [\n        {\n            \"barcode\": \"DEMO0000000001\",\n            \"tr_barcode\": \"DEMO0000000001\",\n            \"company\": {\n                \"name\": \"Demo Mağaza\",\n                \"barcode\": \"ORD-100001\"\n            },\n            \"customer_uid\": \"CUST-0001\",\n            \"customer_fin\": \"AB12CD3\",\n            \"customer_name\": \"Test\",\n            \"customer_surname\": \"Müştəri\",\n            \"customer_phone\": \"+994500000001\",\n            \"customer_available\": \"10:00-18:00\",\n            \"delivery_address\": \"Bakı şəhəri, Nümunə küçəsi 1, mənzil 1\",\n            \"delivery_city\": \"Bakı\",\n            \"delivery_region\": \"Nəsimi\",\n            \"current_status\": \"in_warehouse\",\n            \"current_place\": \"Demo anbar\",\n            \"date\": 1760000000,\n            \"latitude\": 40.4093,\n            \"longitude\": 49.8671,\n            \"package_weight\": \"1.20\",\n            \"package_dimensions\": \"30x20x10\",\n            \"option\": \"\"\n        },\n        {\n            \"barcode\": \"DEMO0000000002\",\n            \"tr_barcode\": \"\",\n            \"company\": {\n                \"name\": \"Demo Mağaza\",\n                \"barcode\": \"ORD-100002\"\n            },\n            \"customer_uid\": \"CUST-0002\",\n            \"customer_fin\": \"XY98ZW7\",\n            \"customer_name\": \"Nümunə\",\n            \"customer_surname\": \"Alıcı\",\n            \"customer_phone\": \"+994500000002\",\n            \"delivery_address\": \"Sumqayıt şəhəri, Demo prospekti 25\",\n            \"delivery_city\": \"Sumqayıt\",\n            \"delivery_region\": \"\",\n            \"date\": 1760000000,\n            \"package_weight\": \"0.45\",\n            \"package_dimensions\": \"\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://qapida-4dctuoc5.nw.gateway.dev/v1/packages?key=TEST_API_KEY","host":["https://qapida-4dctuoc5.nw.gateway.dev"],"path":["v1","packages"],"query":[{"key":"key","value":"TEST_API_KEY"}]},"description":"Bağlamaları göndərmək üçün.\n\n### Tələb olunan sahələr (çatdırılma)\n\n| Sahə | Açıqlama |\n|---|---|\n| `uid` | Qutu adı (sorğu səviyyəsində) |\n| `items[].barcode` | Bağlamanın üzərindəki, skanerlə oxunan unikal barkod. Partnyorla razılaşdırılmış prefikslə başlamalıdır |\n| `items[].company.name` | Satıcının adı (məs. `temu`) — müştəri satıcı barkodunu daha tez tanıyır |\n| `items[].company.barcode` | Satıcının barkodu / sifariş nömrəsi |\n| `items[].customer_uid` | Partnyorun sistemində alıcının unikal ID-si |\n| `items[].customer_fin` | Alıcının FİN kodu |\n| `items[].customer_name`, `customer_surname` | Alıcının adı və soyadı |\n| `items[].customer_phone` | Beynəlxalq formatda: `+994XXXXXXXXX` |\n| `items[].delivery_address` | Çatdırılma ünvanı |\n| `items[].date` | Alış tarixi — **Unix saniyə** (millisaniyə deyil), 2020-ci ildən sonra |\n\n### İstəyə bağlı sahələr\n\n| Sahə | Açıqlama |\n|---|---|\n| `tr_barcode` | Əlavə izləmə barkodu |\n| `delivery_city`, `delivery_region` | Şəhər və rayon |\n| `package_weight`, `package_dimensions` | Çəki (kq) və ölçü — mətn |\n| `customer_available` | Müştərinin çatdırılma üçün uyğun vaxtı |\n| `current_status`, `current_place` | Bağlamanın partnyordakı statusu və yeri |\n| `latitude`, `longitude` | Ünvanın koordinatları |\n| `option` | Çatdırılma seçimi (qapıya və ya məntəqəyə) |\n| `service_type` | Boş = çatdırılma. Digər xidmətlər üçün **Çeşidləmə / Paylama** qovluğuna baxın |\n\n### Yoxlamalar\n\n- Tələb olunan sahə olmadıqda həmin bağlama xəta ilə qaytarılır.\n- Test FİN kodları (`1234567`, `123456` və s.) və bloklanmış FİN kodları qəbul edilmir.\n- `date` millisaniyə ilə göndərilərsə xəta qaytarılır.\n\n### Cavablar\n\n| HTTP | Nə vaxt | Gövdə |\n|---|---|---|\n| **201** | Bütün bağlamalar qəbul edildi | `{\"message\":\"successfully accepted\",\"total_packages\":N}` |\n| **400** | Bir hissəsi qəbul edildi | `{\"message\":\"partially accepted\",\"total_packages\":N,\"errors\":{\"<barkod>\":\"<səbəb>\"}}` |\n| **400** | Heç biri qəbul edilmədi | `{\"message\":\"no packages accepted\",\"total_packages\":0,\"errors\":{...}}` |\n| **400** | Yanlış JSON, boş `uid` və ya `items` | mətn xəta |\n| **401** | API açarı yoxdur / yanlışdır | |\n| **429** | Limit aşıldı | |\n\n**Qismən qəbul:** düzgün bağlamalar qəbul olunur, səhvlər `errors` obyektində barkod üzrə qaytarılır — yalnız onları düzəldib yenidən göndərin. `total_packages` qəbul edilənlərin sayıdır."},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"partially accepted\",\n    \"total_packages\": 1,\n    \"errors\": {\n        \"DEMO0000000002\": \"customer_uid is empty\"\n    }\n}"},{"id":"2eeca465-61f1-4608-a50d-0774252b5f96","name":"400 — heç biri qəbul edilmədi","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"uid\": \"DemoKargo 24.10.2026\",\n    \"items\": [\n        {\n            \"barcode\": \"DEMO0000000001\",\n            \"tr_barcode\": \"DEMO0000000001\",\n            \"company\": {\n                \"name\": \"Demo Mağaza\",\n                \"barcode\": \"ORD-100001\"\n            },\n            \"customer_uid\": \"CUST-0001\",\n            \"customer_fin\": \"AB12CD3\",\n            \"customer_name\": \"Test\",\n            \"customer_surname\": \"Müştəri\",\n            \"customer_phone\": \"+994500000001\",\n            \"customer_available\": \"10:00-18:00\",\n            \"delivery_address\": \"Bakı şəhəri, Nümunə küçəsi 1, mənzil 1\",\n            \"delivery_city\": \"Bakı\",\n            \"delivery_region\": \"Nəsimi\",\n            \"current_status\": \"in_warehouse\",\n            \"current_place\": \"Demo anbar\",\n            \"date\": 1760000000,\n            \"latitude\": 40.4093,\n            \"longitude\": 49.8671,\n            \"package_weight\": \"1.20\",\n            \"package_dimensions\": \"30x20x10\",\n            \"option\": \"\"\n        },\n        {\n            \"barcode\": \"DEMO0000000002\",\n            \"tr_barcode\": \"\",\n            \"company\": {\n                \"name\": \"Demo Mağaza\",\n                \"barcode\": \"ORD-100002\"\n            },\n            \"customer_uid\": \"CUST-0002\",\n            \"customer_fin\": \"XY98ZW7\",\n            \"customer_name\": \"Nümunə\",\n            \"customer_surname\": \"Alıcı\",\n            \"customer_phone\": \"+994500000002\",\n            \"delivery_address\": \"Sumqayıt şəhəri, Demo prospekti 25\",\n            \"delivery_city\": \"Sumqayıt\",\n            \"delivery_region\": \"\",\n            \"date\": 1760000000,\n            \"package_weight\": \"0.45\",\n            \"package_dimensions\": \"\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://qapida-4dctuoc5.nw.gateway.dev/v1/packages?key=TEST_API_KEY","host":["https://qapida-4dctuoc5.nw.gateway.dev"],"path":["v1","packages"],"query":[{"key":"key","value":"TEST_API_KEY"}]},"description":"Bağlamaları göndərmək üçün.\n\n### Tələb olunan sahələr (çatdırılma)\n\n| Sahə | Açıqlama |\n|---|---|\n| `uid` | Qutu adı (sorğu səviyyəsində) |\n| `items[].barcode` | Bağlamanın üzərindəki, skanerlə oxunan unikal barkod. Partnyorla razılaşdırılmış prefikslə başlamalıdır |\n| `items[].company.name` | Satıcının adı (məs. `temu`) — müştəri satıcı barkodunu daha tez tanıyır |\n| `items[].company.barcode` | Satıcının barkodu / sifariş nömrəsi |\n| `items[].customer_uid` | Partnyorun sistemində alıcının unikal ID-si |\n| `items[].customer_fin` | Alıcının FİN kodu |\n| `items[].customer_name`, `customer_surname` | Alıcının adı və soyadı |\n| `items[].customer_phone` | Beynəlxalq formatda: `+994XXXXXXXXX` |\n| `items[].delivery_address` | Çatdırılma ünvanı |\n| `items[].date` | Alış tarixi — **Unix saniyə** (millisaniyə deyil), 2020-ci ildən sonra |\n\n### İstəyə bağlı sahələr\n\n| Sahə | Açıqlama |\n|---|---|\n| `tr_barcode` | Əlavə izləmə barkodu |\n| `delivery_city`, `delivery_region` | Şəhər və rayon |\n| `package_weight`, `package_dimensions` | Çəki (kq) və ölçü — mətn |\n| `customer_available` | Müştərinin çatdırılma üçün uyğun vaxtı |\n| `current_status`, `current_place` | Bağlamanın partnyordakı statusu və yeri |\n| `latitude`, `longitude` | Ünvanın koordinatları |\n| `option` | Çatdırılma seçimi (qapıya və ya məntəqəyə) |\n| `service_type` | Boş = çatdırılma. Digər xidmətlər üçün **Çeşidləmə / Paylama** qovluğuna baxın |\n\n### Yoxlamalar\n\n- Tələb olunan sahə olmadıqda həmin bağlama xəta ilə qaytarılır.\n- Test FİN kodları (`1234567`, `123456` və s.) və bloklanmış FİN kodları qəbul edilmir.\n- `date` millisaniyə ilə göndərilərsə xəta qaytarılır.\n\n### Cavablar\n\n| HTTP | Nə vaxt | Gövdə |\n|---|---|---|\n| **201** | Bütün bağlamalar qəbul edildi | `{\"message\":\"successfully accepted\",\"total_packages\":N}` |\n| **400** | Bir hissəsi qəbul edildi | `{\"message\":\"partially accepted\",\"total_packages\":N,\"errors\":{\"<barkod>\":\"<səbəb>\"}}` |\n| **400** | Heç biri qəbul edilmədi | `{\"message\":\"no packages accepted\",\"total_packages\":0,\"errors\":{...}}` |\n| **400** | Yanlış JSON, boş `uid` və ya `items` | mətn xəta |\n| **401** | API açarı yoxdur / yanlışdır | |\n| **429** | Limit aşıldı | |\n\n**Qismən qəbul:** düzgün bağlamalar qəbul olunur, səhvlər `errors` obyektində barkod üzrə qaytarılır — yalnız onları düzəldib yenidən göndərin. `total_packages` qəbul edilənlərin sayıdır."},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"no packages accepted\",\n    \"total_packages\": 0,\n    \"errors\": {\n        \"DEMO0000000001\": \"date looks like milliseconds: 1760000000000\"\n    }\n}"}],"_postman_id":"7f1c9f8a-58e0-4d05-bd8a-e85abb13c9e5"},{"name":"Bağlamanın nəticəsi","id":"0b101674-24a5-4e3d-9485-5dbaeefe139c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"url":"https://qapida-4dctuoc5.nw.gateway.dev/v1/packages?key=TEST_API_KEY&barcode=DEMO0000000001","description":"<p>Bağlamanın nəticəsini almaq üçün (geri dönüş alınmadıqda və ya şəkil linklərinin müddəti bitdikdə).</p>\n<ul>\n<li>Yalnız <strong>tamamlanmış</strong> bağlamalar üçün məlumat qaytarılır: 5, 6, 7 (çatdırılma), 13, 14 (çeşidləmə/paylama).</li>\n<li>Tamamlanmamış bağlamalar üçün <strong>HTTP 202</strong> qaytarılır.</li>\n<li>Hər barkod üzrə maksimum <strong>2</strong> sorğu; sonra <strong>404</strong>. Bundan sonra məlumat Qapida Partnyor Portalından əldə edilir.</li>\n<li><code>reason</code> yalnız status <strong>6</strong> olduqda göndərilir.</li>\n<li><code>signature_url</code> və <code>images</code> linkləri 10 dəqiqə etibarlıdır.</li>\n</ul>\n","urlObject":{"path":["v1","packages"],"host":["https://qapida-4dctuoc5.nw.gateway.dev"],"query":[{"key":"key","value":"TEST_API_KEY"},{"key":"barcode","value":"DEMO0000000001"}],"variable":[]}},"response":[{"id":"e1240fc0-615c-42aa-8c9a-b034a588f026","name":"200 — çatdırıldı","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"https://qapida-4dctuoc5.nw.gateway.dev/v1/packages?key=TEST_API_KEY&barcode=DEMO0000000001","host":["https://qapida-4dctuoc5.nw.gateway.dev"],"path":["v1","packages"],"query":[{"key":"key","value":"TEST_API_KEY"},{"key":"barcode","value":"DEMO0000000001"}]},"description":"Bağlamanın nəticəsini almaq üçün (geri dönüş alınmadıqda və ya şəkil linklərinin müddəti bitdikdə).\n\n- Yalnız **tamamlanmış** bağlamalar üçün məlumat qaytarılır: 5, 6, 7 (çatdırılma), 13, 14 (çeşidləmə/paylama).\n- Tamamlanmamış bağlamalar üçün **HTTP 202** qaytarılır.\n- Hər barkod üzrə maksimum **2** sorğu; sonra **404**. Bundan sonra məlumat Qapida Partnyor Portalından əldə edilir.\n- `reason` yalnız status **6** olduqda göndərilir.\n- `signature_url` və `images` linkləri 10 dəqiqə etibarlıdır."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"barcode\": \"DEMO0000000001\",\n    \"status\": 5,\n    \"signature_url\": \"https://storage.example/signature.png\",\n    \"images\": [\n        \"https://storage.example/photo1.jpg\"\n    ]\n}"},{"id":"5bb07fe1-678c-4601-b69f-1084264f8ad1","name":"200 — çatdırılmadı","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"https://qapida-4dctuoc5.nw.gateway.dev/v1/packages?key=TEST_API_KEY&barcode=DEMO0000000001","host":["https://qapida-4dctuoc5.nw.gateway.dev"],"path":["v1","packages"],"query":[{"key":"key","value":"TEST_API_KEY"},{"key":"barcode","value":"DEMO0000000001"}]},"description":"Bağlamanın nəticəsini almaq üçün (geri dönüş alınmadıqda və ya şəkil linklərinin müddəti bitdikdə).\n\n- Yalnız **tamamlanmış** bağlamalar üçün məlumat qaytarılır: 5, 6, 7 (çatdırılma), 13, 14 (çeşidləmə/paylama).\n- Tamamlanmamış bağlamalar üçün **HTTP 202** qaytarılır.\n- Hər barkod üzrə maksimum **2** sorğu; sonra **404**. Bundan sonra məlumat Qapida Partnyor Portalından əldə edilir.\n- `reason` yalnız status **6** olduqda göndərilir.\n- `signature_url` və `images` linkləri 10 dəqiqə etibarlıdır."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"barcode\": \"DEMO0000000001\",\n    \"status\": 6,\n    \"reason\": \"WrongAddress\",\n    \"signature_url\": \"\",\n    \"images\": [\n        \"https://storage.example/photo1.jpg\"\n    ]\n}"},{"id":"c847b51f-83cb-42bb-9b6a-819b4ad67cfe","name":"202 — hələ tamamlanmayıb","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"https://qapida-4dctuoc5.nw.gateway.dev/v1/packages?key=TEST_API_KEY&barcode=DEMO0000000001","host":["https://qapida-4dctuoc5.nw.gateway.dev"],"path":["v1","packages"],"query":[{"key":"key","value":"TEST_API_KEY"},{"key":"barcode","value":"DEMO0000000001"}]},"description":"Bağlamanın nəticəsini almaq üçün (geri dönüş alınmadıqda və ya şəkil linklərinin müddəti bitdikdə).\n\n- Yalnız **tamamlanmış** bağlamalar üçün məlumat qaytarılır: 5, 6, 7 (çatdırılma), 13, 14 (çeşidləmə/paylama).\n- Tamamlanmamış bağlamalar üçün **HTTP 202** qaytarılır.\n- Hər barkod üzrə maksimum **2** sorğu; sonra **404**. Bundan sonra məlumat Qapida Partnyor Portalından əldə edilir.\n- `reason` yalnız status **6** olduqda göndərilir.\n- `signature_url` və `images` linkləri 10 dəqiqə etibarlıdır."},"status":"Accepted","code":202,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":""},{"id":"1a89398e-d743-47f3-b497-a1eca1642caf","name":"404 — limit bitib / tapılmadı","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"https://qapida-4dctuoc5.nw.gateway.dev/v1/packages?key=TEST_API_KEY&barcode=DEMO0000000001","host":["https://qapida-4dctuoc5.nw.gateway.dev"],"path":["v1","packages"],"query":[{"key":"key","value":"TEST_API_KEY"},{"key":"barcode","value":"DEMO0000000001"}]},"description":"Bağlamanın nəticəsini almaq üçün (geri dönüş alınmadıqda və ya şəkil linklərinin müddəti bitdikdə).\n\n- Yalnız **tamamlanmış** bağlamalar üçün məlumat qaytarılır: 5, 6, 7 (çatdırılma), 13, 14 (çeşidləmə/paylama).\n- Tamamlanmamış bağlamalar üçün **HTTP 202** qaytarılır.\n- Hər barkod üzrə maksimum **2** sorğu; sonra **404**. Bundan sonra məlumat Qapida Partnyor Portalından əldə edilir.\n- `reason` yalnız status **6** olduqda göndərilir.\n- `signature_url` və `images` linkləri 10 dəqiqə etibarlıdır."},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"0b101674-24a5-4e3d-9485-5dbaeefe139c"}],"id":"835d6cb7-21fa-4d3c-8df5-83ae5534d391","description":"<p>Kuryer çatdırılması — standart xidmət.</p>\n","_postman_id":"835d6cb7-21fa-4d3c-8df5-83ae5534d391"},{"name":"Çeşidləmə / Paylama","item":[{"name":"Çeşidləmə — bağlamaları göndər","id":"768f661b-3273-49bf-a90b-b3e6645f9ce9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"uid\": \"DemoKargo çeşidləmə 24.10.2026\",\n    \"items\": [\n        {\n            \"barcode\": \"DMX0000000101\",\n            \"service_type\": \"sorting\",\n            \"sort_code\": \"7568\",\n            \"delivery_address\": \"Bakı, Nərimanov rayonu, Demo məntəqəsi\",\n            \"delivery_city\": \"Bakı\",\n            \"delivery_region\": \"Nərimanov\",\n            \"package_weight\": \"0.80\",\n            \"extra\": {\n                \"route\": \"R-12\",\n                \"shelf\": \"A3\"\n            }\n        },\n        {\n            \"barcode\": \"4400000000102\",\n            \"service_type\": \"sorting\",\n            \"sort_code\": \"8537\",\n            \"delivery_address\": \"Bakı, Yasamal rayonu, Demo məntəqəsi 2\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://qapida-4dctuoc5.nw.gateway.dev/v1/packages?key=TEST_API_KEY","description":"<p>Çeşidləmə bağlamaları. Tələb olunan: <code>barcode</code>, <code>service_type: \"sorting\"</code>, <code>sort_code</code>, <code>delivery_address</code>.</p>\n","urlObject":{"path":["v1","packages"],"host":["https://qapida-4dctuoc5.nw.gateway.dev"],"query":[{"key":"key","value":"TEST_API_KEY"}],"variable":[]}},"response":[{"id":"847b8abb-dfd4-4eae-b4e4-10e7661db490","name":"201 — qəbul edildi","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"uid\": \"DemoKargo çeşidləmə 24.10.2026\",\n    \"items\": [\n        {\n            \"barcode\": \"DMX0000000101\",\n            \"service_type\": \"sorting\",\n            \"sort_code\": \"7568\",\n            \"delivery_address\": \"Bakı, Nərimanov rayonu, Demo məntəqəsi\",\n            \"delivery_city\": \"Bakı\",\n            \"delivery_region\": \"Nərimanov\",\n            \"package_weight\": \"0.80\",\n            \"extra\": {\n                \"route\": \"R-12\",\n                \"shelf\": \"A3\"\n            }\n        },\n        {\n            \"barcode\": \"4400000000102\",\n            \"service_type\": \"sorting\",\n            \"sort_code\": \"8537\",\n            \"delivery_address\": \"Bakı, Yasamal rayonu, Demo məntəqəsi 2\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://qapida-4dctuoc5.nw.gateway.dev/v1/packages?key=TEST_API_KEY","host":["https://qapida-4dctuoc5.nw.gateway.dev"],"path":["v1","packages"],"query":[{"key":"key","value":"TEST_API_KEY"}]},"description":"Çeşidləmə bağlamaları. Tələb olunan: `barcode`, `service_type: \"sorting\"`, `sort_code`, `delivery_address`."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"successfully accepted\",\n    \"total_packages\": 2\n}"},{"id":"85054ff6-9b6e-4ce6-8b9f-05d36c9ea63f","name":"400 — sort_code yoxdur","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"uid\": \"DemoKargo çeşidləmə 24.10.2026\",\n    \"items\": [\n        {\n            \"barcode\": \"DMX0000000101\",\n            \"service_type\": \"sorting\",\n            \"sort_code\": \"7568\",\n            \"delivery_address\": \"Bakı, Nərimanov rayonu, Demo məntəqəsi\",\n            \"delivery_city\": \"Bakı\",\n            \"delivery_region\": \"Nərimanov\",\n            \"package_weight\": \"0.80\",\n            \"extra\": {\n                \"route\": \"R-12\",\n                \"shelf\": \"A3\"\n            }\n        },\n        {\n            \"barcode\": \"4400000000102\",\n            \"service_type\": \"sorting\",\n            \"sort_code\": \"8537\",\n            \"delivery_address\": \"Bakı, Yasamal rayonu, Demo məntəqəsi 2\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://qapida-4dctuoc5.nw.gateway.dev/v1/packages?key=TEST_API_KEY","host":["https://qapida-4dctuoc5.nw.gateway.dev"],"path":["v1","packages"],"query":[{"key":"key","value":"TEST_API_KEY"}]},"description":"Çeşidləmə bağlamaları. Tələb olunan: `barcode`, `service_type: \"sorting\"`, `sort_code`, `delivery_address`."},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"partially accepted\",\n    \"total_packages\": 1,\n    \"errors\": {\n        \"4400000000102\": \"sort_code is empty - barcode: 4400000000102\"\n    }\n}"},{"id":"4b7042bf-8339-4b18-b0ea-7f3f1f66046c","name":"400 — xidmət aktiv deyil","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"uid\": \"DemoKargo çeşidləmə 24.10.2026\",\n    \"items\": [\n        {\n            \"barcode\": \"DMX0000000101\",\n            \"service_type\": \"sorting\",\n            \"sort_code\": \"7568\",\n            \"delivery_address\": \"Bakı, Nərimanov rayonu, Demo məntəqəsi\",\n            \"delivery_city\": \"Bakı\",\n            \"delivery_region\": \"Nərimanov\",\n            \"package_weight\": \"0.80\",\n            \"extra\": {\n                \"route\": \"R-12\",\n                \"shelf\": \"A3\"\n            }\n        },\n        {\n            \"barcode\": \"4400000000102\",\n            \"service_type\": \"sorting\",\n            \"sort_code\": \"8537\",\n            \"delivery_address\": \"Bakı, Yasamal rayonu, Demo məntəqəsi 2\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://qapida-4dctuoc5.nw.gateway.dev/v1/packages?key=TEST_API_KEY","host":["https://qapida-4dctuoc5.nw.gateway.dev"],"path":["v1","packages"],"query":[{"key":"key","value":"TEST_API_KEY"}]},"description":"Çeşidləmə bağlamaları. Tələb olunan: `barcode`, `service_type: \"sorting\"`, `sort_code`, `delivery_address`."},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"no packages accepted\",\n    \"total_packages\": 0,\n    \"errors\": {\n        \"DMX0000000101\": \"service type sorting is not enabled for this company - barcode: DMX0000000101\"\n    }\n}"}],"_postman_id":"768f661b-3273-49bf-a90b-b3e6645f9ce9"},{"name":"Paylama — bağlamaları göndər","id":"aca84226-7c1e-4fa6-a194-e5713fd1e5aa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"uid\": \"DemoKargo paylama 24.10.2026\",\n    \"items\": [\n        {\n            \"barcode\": \"DMX0000000201\",\n            \"service_type\": \"distribution\",\n            \"sort_code\": \"7568\",\n            \"delivery_address\": \"Bakı, Nərimanov rayonu, Demo məntəqəsi\",\n            \"delivery_city\": \"Bakı\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://qapida-4dctuoc5.nw.gateway.dev/v1/packages?key=TEST_API_KEY","description":"<p>Paylama bağlamaları: çeşidləmə + məntəqəyə çatdırılma. Sahələr çeşidləmə ilə eynidir, <code>service_type: \"distribution\"</code>.</p>\n","urlObject":{"path":["v1","packages"],"host":["https://qapida-4dctuoc5.nw.gateway.dev"],"query":[{"key":"key","value":"TEST_API_KEY"}],"variable":[]}},"response":[{"id":"cb66eef3-f624-442e-a68c-b04b4d63cf0f","name":"201 — qəbul edildi","originalRequest":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"uid\": \"DemoKargo paylama 24.10.2026\",\n    \"items\": [\n        {\n            \"barcode\": \"DMX0000000201\",\n            \"service_type\": \"distribution\",\n            \"sort_code\": \"7568\",\n            \"delivery_address\": \"Bakı, Nərimanov rayonu, Demo məntəqəsi\",\n            \"delivery_city\": \"Bakı\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://qapida-4dctuoc5.nw.gateway.dev/v1/packages?key=TEST_API_KEY","host":["https://qapida-4dctuoc5.nw.gateway.dev"],"path":["v1","packages"],"query":[{"key":"key","value":"TEST_API_KEY"}]},"description":"Paylama bağlamaları: çeşidləmə + məntəqəyə çatdırılma. Sahələr çeşidləmə ilə eynidir, `service_type: \"distribution\"`."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"successfully accepted\",\n    \"total_packages\": 1\n}"}],"_postman_id":"aca84226-7c1e-4fa6-a194-e5713fd1e5aa"},{"name":"Çeşidləmə / paylama nəticəsi","id":"95e3b231-9af8-4138-a1d0-27a179472104","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"url":"https://qapida-4dctuoc5.nw.gateway.dev/v1/packages?key=TEST_API_KEY&barcode=DMX0000000101","description":"<p>Çeşidlənmiş (13) və ya məntəqəyə çatdırılmış (14) bağlamanın statusu. Hələ çeşidlənməyibsə <strong>202</strong>.</p>\n","urlObject":{"path":["v1","packages"],"host":["https://qapida-4dctuoc5.nw.gateway.dev"],"query":[{"key":"key","value":"TEST_API_KEY"},{"key":"barcode","value":"DMX0000000101"}],"variable":[]}},"response":[{"id":"9e46cb18-361e-47cc-ab73-f629280e41ad","name":"200 — çeşidləndi","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"https://qapida-4dctuoc5.nw.gateway.dev/v1/packages?key=TEST_API_KEY&barcode=DMX0000000101","host":["https://qapida-4dctuoc5.nw.gateway.dev"],"path":["v1","packages"],"query":[{"key":"key","value":"TEST_API_KEY"},{"key":"barcode","value":"DMX0000000101"}]},"description":"Çeşidlənmiş (13) və ya məntəqəyə çatdırılmış (14) bağlamanın statusu. Hələ çeşidlənməyibsə **202**."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"barcode\": \"DMX0000000101\",\n    \"status\": 13,\n    \"signature_url\": \"\",\n    \"images\": []\n}"},{"id":"79d7fcad-bb7e-4ec6-954a-97c35114d349","name":"200 — məntəqəyə çatdırıldı","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"https://qapida-4dctuoc5.nw.gateway.dev/v1/packages?key=TEST_API_KEY&barcode=DMX0000000101","host":["https://qapida-4dctuoc5.nw.gateway.dev"],"path":["v1","packages"],"query":[{"key":"key","value":"TEST_API_KEY"},{"key":"barcode","value":"DMX0000000101"}]},"description":"Çeşidlənmiş (13) və ya məntəqəyə çatdırılmış (14) bağlamanın statusu. Hələ çeşidlənməyibsə **202**."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"barcode\": \"DMX0000000201\",\n    \"status\": 14,\n    \"signature_url\": \"\",\n    \"images\": []\n}"},{"id":"e6a403cd-2284-44a4-9cd3-d3e8285fdf1e","name":"202 — hələ çeşidlənməyib","originalRequest":{"method":"GET","header":[{"key":"Content-Type","value":"application/json"}],"url":{"raw":"https://qapida-4dctuoc5.nw.gateway.dev/v1/packages?key=TEST_API_KEY&barcode=DMX0000000101","host":["https://qapida-4dctuoc5.nw.gateway.dev"],"path":["v1","packages"],"query":[{"key":"key","value":"TEST_API_KEY"},{"key":"barcode","value":"DMX0000000101"}]},"description":"Çeşidlənmiş (13) və ya məntəqəyə çatdırılmış (14) bağlamanın statusu. Hələ çeşidlənməyibsə **202**."},"status":"Accepted","code":202,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"95e3b231-9af8-4138-a1d0-27a179472104"}],"id":"396146c3-034f-442f-9ed5-ca3b35cc70d4","description":"<h1 id=\"çeşidləmə-və-paylama-xidməti\">Çeşidləmə və Paylama xidməti</h1>\n<p><strong>Çeşidləmə (<code>sorting</code>):</strong> partnyor bağlamaları Qapida anbarına gətirir. Qapida hər bağlamanı skan edir və partnyorun <strong>məntəqə ID</strong>-sinə (<code>sort_code</code>) görə — lazım olduqda əvvəlcə sürücüyə, sonra məntəqəyə — çeşidləyir. Çeşidləmə bitdikdə partnyorun WhatsApp qrupuna yekun mesaj göndərilir, partnyor bağlamaları özü götürür.</p>\n<p><strong>Paylama (<code>distribution</code>):</strong> çeşidləmə + Qapida kuryeri hər məntəqənin bütün bağlamalarını bir dəfəyə həmin məntəqəyə çatdırır.</p>\n<h3 id=\"qoşulma\">Qoşulma</h3>\n<ol>\n<li>Qapida partnyor üçün xidməti aktivləşdirir və partnyorun <strong>sürücü → məntəqə</strong> strukturunu (məntəqə ID-ləri) qurur.</li>\n<li>Partnyor <code>sort_code</code> olaraq öz məntəqə ID-sini göndərir (məs. <code>7568</code>).</li>\n<li>Yeni (Qapida-da hələ qurulmamış) məntəqə ID-si gələrsə bağlama qəbul olunur, Qapida məntəqəni qurana qədər həmin bağlama çeşidlənmir.</li>\n<li>Test → prod prosesi çatdırılma ilə eynidir.</li>\n</ol>\n<h3 id=\"tələb-olunan-sahələr\">Tələb olunan sahələr</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Sahə</th>\n<th>Açıqlama</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>uid</code></td>\n<td>Qutu adı</td>\n</tr>\n<tr>\n<td><code>items[].barcode</code></td>\n<td>Bağlamanın üzərindəki unikal barkod (prefiks məhdudiyyəti yoxdur, qarışıq barkodlar qəbul olunur)</td>\n</tr>\n<tr>\n<td><code>items[].service_type</code></td>\n<td><code>sorting</code> və ya <code>distribution</code></td>\n</tr>\n<tr>\n<td><code>items[].sort_code</code></td>\n<td>Partnyorun məntəqə ID-si (mətn, 64 simvola qədər)</td>\n</tr>\n<tr>\n<td><code>items[].delivery_address</code></td>\n<td>Məntəqənin / alıcının ünvanı</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"i̇stəyə-bağlı-sahələr\">İstəyə bağlı sahələr</h3>\n<p><code>delivery_city</code>, <code>delivery_region</code>, <code>tr_barcode</code>, <code>company</code> (satıcı), <code>package_weight</code>, <code>package_dimensions</code>, <code>date</code> (göndərilməsə qəbul vaxtı yazılır), <code>extra</code> — partnyorun öz məlumatları üçün sərbəst obyekt (maks. 4 KB; olduğu kimi saxlanılır).</p>\n<p>Müştəri məlumatları (FİN, telefon, ad) <strong>tələb olunmur</strong>.</p>\n<h3 id=\"statuslar\">Statuslar</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status</th>\n<th>Açıqlama</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>13</td>\n<td>Çeşidləndi (bağlama anbarda qəbul edilib və məntəqəsinə görə çeşidlənib)</td>\n</tr>\n<tr>\n<td>14</td>\n<td>Məntəqəyə çatdırıldı (yalnız paylama)</td>\n</tr>\n</tbody>\n</table>\n</div><p>Eyni bağlama sonradan yenidən çeşidlənərsə (məs. partnyor geri qaytarıb), bu ayrıca çeşidləmə kimi qeyd olunur.</p>\n<p>Status geri dönüşləri (callback) partnyorun istəyi ilə aktivləşdirilir; <code>GET</code> sorğusu hər zaman işləyir.</p>\n","_postman_id":"396146c3-034f-442f-9ed5-ca3b35cc70d4"}],"variable":[{"key":"host","value":"https://qapida-4dctuoc5.nw.gateway.dev"},{"key":"api-key","value":"TEST_API_KEY"}]}