З чого почати інтеграцію
Спільна частина, однакова для всіх операцій API: базова адреса, авторизація, конверт відповіді та HTTP-коди.
Прочитавши цю сторінку, решту документації можна читати вибірково — лише той розділ, який вам потрібен.
Базова адреса й формат
Базова адреса API: https://combopocket.online/v2/exchange.
Усі операції виконуються методом POST, тіло запиту — JSON
у кодуванні UTF-8 із заголовком Content-Type: application/json.
На GET сервер відповідає 405.
Повний шлях операції — це базова адреса плюс шлях операції з її розділу.
Наприклад, відкриття сесії вивантаження штрих-кодів
(/barcodes/session_open) — це
https://combopocket.online/v2/exchange/barcodes/session_open.
Авторизація: входу в систему немає
Не потрібно логінитися, отримувати сесії та продовжувати їх.
Замість цього кожен запит несе заголовок X-API-Token з токеном
вашої бази — система перевіряє його й сама визначає, до якої бази
належать дані.
Токени видаються безкоштовно й автоматично — на сторінці тарифу Free, без оплати.
POST /v2/exchange/barcodes/session_open HTTP/1.1 Host: combopocket.online Content-Type: application/json X-API-Token: 11111111-2222-3333-4444-555555555555
Токенів два види, і не переплутайте їх.
Токен бази — у заголовку X-API-Token,
один на всю облікову систему.
Токен оператора (assignee_token) — у тілі
запиту під час надсилання завдання: він визначає, на терміналі якого
оператора з'явиться документ.
Якщо токен бази не передано або він невідомий, будь-яка операція відповість
ok: false з помилкою unauthorized.
Багаторазові запити з неправильним токеном з однієї адреси тимчасово блокуються захистом від перебору.
Конверт відповіді
Результат операції сервер кладе в тіло — у поле ok.
Тіло — джерело істини, і воно приходить із будь-яким кодом відповіді: уся обробка на вашому боці може зводитися до перевірки одного поля.
ok: true — операцію виконано. ok: false —
відмова: причина в полі error, а в recommendation —
підказка, що робити далі.
єдиний для всіх операцій{
"ok": true,
"error": ""
}
HTTP-коди
HTTP-код — це рівень транспорту: він каже лише, чи доїхав запит
до бізнес-обробки. Сам бізнес-результат — завжди в тілі, у полях
ok та error. Правило просте:
- 200 — запит оброблено, результат дивіться в
ok; - 4xx — запит до обробки не дійшов, виправте запит або токен;
- 5xx — збій на нашому боці.
| Код | Що сталося | Що робити |
|---|---|---|
200 | Запит оброблено. Результат — у полі ok: true — успіх, false — відмова за змістом даних (наприклад, документа не знайдено) | Читати ok та error |
400 | Тіло не є коректним JSON-об'єктом або в ньому не вистачає обов'язкових полів | Перевірити синтаксис і склад полів |
401 | Заголовок X-API-Token не передано або токен невідомий | Перевірити токен |
403 | Токен правильний, але обслуговування бази припинено. Причина — у полі block_reason | Зв'язатися з оператором ComboPocket |
404 | Операції за такою адресою немає — помилка у шляху запиту | Звірити адресу операції з цією документацією |
405 | Використано метод, відмінний від POST | Надсилати POST |
429 | Забагато невдалих спроб авторизації з вашої адреси — спрацював захист від перебору токенів | Повторити через час із заголовка Retry-After (у секундах) |
500 | Внутрішній збій. У тілі — поле incident | Повідомити incident у підтримку — за ним інцидент знаходиться миттєво |
обслуговування бази припинено{
"ok": false,
"error": "доступ відключено",
"recommendation": "Обслуговування бази припинено, зверніться до оператора ComboPocket",
"block_reason": "оплата не надійшла з 01.07.2026"
}
Зверніть увагу: відмова за змістом даних — це так само
HTTP 200 з ok: false. Ваші дані дійшли до обробки,
просто результат негативний.
Код 4xx означає, що до обробки справа не дійшла взагалі.
Повтори безпечні
Обмін спроектовано так, щоб обрив зв'язку не створював проблем: повторення останнього запиту з тими самими параметрами не задвоює дані.
У передачі штрих-кодів це забезпечує ваш власний session_id
і нумерація порцій, у документах — ваш external_id і мітка
версії docversion, у видаленні — ідемпотентність самої операції.
Тому обробку помилок можна починати з простого «повторити ще раз».
Час у полях дати
Дата й час передаються та повертаються у форматі ISO 8601 зі зсувом
часового поясу: 2026-07-28T12:00:00+03:00. Зсув — це
частина значення, саме він робить момент однозначним. Завдяки цьому ваша
облікова система і термінал оператора можуть жити в різних поясах.
Що надсилаєте ви. Приймаються три форми:
| Форма | Приклад | Як трактується |
|---|---|---|
| зі зсувом | 2026-07-28T17:00:00+05:00 | рекомендована форма: вказуйте свій пояс |
| UTC | 2026-07-28T12:00:00Z | момент так само однозначний |
| без зсуву | 2026-07-28T15:00:00 | київський час — сумісність зі старими інтеграціями |
Усі три рядки вище позначають один і той самий момент.
Що повертає сервер. Завжди зі зсувом київського поясу.
Зсув рахується на момент самої дати, а не на сьогодні:
+03:00 для літніх дат, +02:00 для зимових.
Тому в одній вибірці документи можуть мати різні зсуви — це нормально й саме так і має бути. Порівнюйте моменти, а не текст рядків.
Перетворювати отриманий момент у свій пояс вручну не треба: більшість мов
і платформ роблять це самі — зокрема ПрочитатьДатуJSON у 1С.
Незаповнений час повертається як null — наприклад,
completed_at у документа, який ще не завершено.
Окремої операції синхронізації часу немає — вона не потрібна: сервер не
зберігає ваш пояс і нічого не «калібрує». Якщо треба звірити власний
годинник із серверним, у відповіді
ping є поле server_time.
Порядок під'єднання
- Отримайте токен бази й токени операторів — безкоштовно й автоматично на сторінці тарифу Free.
- Перевірте зв'язок викликом
ping: якщо він не відповідаєok: true, далі йти немає сенсу — проблема в адресі, токені або каналі. - Якщо оператор має право додавати товар поза завданням — вивантажте таблицю штрих-кодів. Якщо такий сценарій не потрібен, розділ можна пропустити.
- Надішліть перше завдання: перерахунок або надходження. Обидва види документів влаштовано однаково.
- Опитуйте
statusза розкладом. СтатусDone— заберіть результат черезdownload, проведіть його у себе й видаліть документ черезdelete.