API K2 ERP
PATCH /api/v1/orders/{id}/status Приклади: K2 ERP має змогу надсилати webhooks у зовнішні системи.; * order.created;
- order.updated;
- order.cancelled;
- payment.paid;
- payment.refunded;
- product.updated;
- inventory.changed;
- fiscal.receipt.created;
- fiscal.receipt.failed;
- shipment.created;
- shipment.delivered;
- edo.document.signed;
- edo.document.rejected.;== Sandbox ==
Під час роботи з API K2 ERP можуть виникати такі помилки: GET /api/v1/orders/by-external-id/{externalId}
price
- отримати список товарів;
- отримати товар за ID;
- отримати товар за SKU;
- створити товар;
- оновити товар;
- отримати характеристики;
- отримати фото;
- отримати статус публікації;
- отримати категорії.; Основні задачі API:
API K2 ERP має змогу забезпечувати такі функціональні можливості:
- ПРРО;
- SAF-T UA;
- електронна формування звітів;
- податкові накладні;
- розрахунки коригування;
- запити до електронного кабінету;
- контроль строків звітності;
- отримання квитанцій.;</syntaxhighlight>Для деяких інтеграцій додатково можуть використовуватися:
GET /api/v1/products/{id}
name
- LiqPay;
- інтернет-еквайринг;
- банківські платежі;
- оплата карткою;
- післяплата;
- переказ на рахунок.; * GET;
- POST;
- PUT;
- PATCH;
- DELETE.; "message": "Замовлення з таким externalId вже існує",
REST API
Це потрібно для:
"phone": "+380501112233",
Приклади:
Фіскальні чеки
K2 ERP має змогу містити багато функціональних модулів: продажі та реалізація, закупівельна діяльність, складський облік, виробництво, зарплата, основні засоби, бухгалтерський обліковий облік, електронний документообіг, інтеграції з банками, ДПС, ЕДО, РРО, ПРРО, маркетплейсами, інтернет-магазинами та логістичними сервісами.; API має перевіряти вхідні інформаційні дані до виконання бізнес-операції.; Типові операції: Можливі операції: GET /api/v1/counterparties
Джерела
GET /api/v1/edo/documents/{id}/status
Incremental synchronization
Безпека: журнал API потрібен для діагностики, але в ньому не можна зберігати паролі, private keys, access tokens, повні реквізити карток, ключі електронного підпису або зайві персональні інформаційні дані.; # API передає документ у компонент ЕДО.; як ілюстрація:
Доставка
Асинхронно можуть оброблятися: </syntaxhighlight>
status
Для облікової системи: фіскальний чек має бути пов’язаний із замовленням, оплатою, касиром, зміною, складом, клієнтом і документом продажу.; # Покупець оформлює замовлення.;</syntaxhighlight>Версіонування потрібне для:
},
</syntaxhighlight> GET /api/v1/counterparties/{id}
- автоматизацію обміну даними;
- менше ручного введення;
- менше дублювання документів;
- швидше створення інтеграцій;
- централізований доступ до даних ERP;
- контроль прав доступу;
- зв’язок зовнішніх систем із бізнес-логікою ERP;
- прозорий журнал обміну;
- підтримку інтернет-магазинів;
- підтримку маркетплейсів;
- підтримку оплат;
- підтримку фіскалізації;
- підтримку ЕДО;
- можливість створення мобільних застосунків;
- можливість побудови B2B і B2C-порталів.; "jobId": "job_12345",
Можливі операції:
API K2 ERP має змогу використовуватися для інтеграцій із ДПС або сервісами, які передають інформаційні дані до ДПС.; GET /api/v1/shipments/{id} Можливі операції:
Ціни
API для ПРРО і РРО
}
Він має змогу виконувати:
- отримання довідників;
- створення документів;
- актуалізація статусів документів;
- отримання залишків;
- синхронізація товарів;
- синхронізація цін;
- отримання замовлень;
- передавання замовлень;
- обробка оплат;
- передавання даних для фіскалізації;
- отримання фіскальних чеків;
- інтеграційні функціональні можливості з інтернет-магазинами;
- інтеграційні функціональні можливості з маркетплейсами;
- інтеграційні функціональні можливості з банками;
- інтеграційні функціональні можливості з ЕДО;
- інтеграційні функціональні можливості з ДПС;
- інтеграційні функціональні можливості з логістикою;
- робота з мобільними застосунками;
- обмін даними між модулями K2 ERP.; * OpenAPI Specification
- REST API Tutorial
- GraphQL
- Introduction to JSON Web Tokens
- OAuth 2.0
- HTTP response status codes — MDN
"code": "ORDER_ALREADY_EXISTS",
POST /api/v1/products
}
"status": "new"Приклади:
API доставки застосовується для роботи з логістикою.; Це надає можливість перевіряти права доступу, статуси документів, обов’язкові поля, залишки, проводки, податки та інші правила.; # Покупцю надсилається електронний чек.; Типовий сценарій інтеграції інтернет-магазину з API K2 ERP має змогу виглядати так:
name
"details": {
"externalId": "SHOPIFY-10025"
X-RateLimit-Reset: 1715179200
POST /api/v1/payments/liqpay/callback
<div style="background:#e8f5e9; border-left:5px solid #43a047; padding:12px; margin:12px 0;">
* товарів;
* замовлень;
* документів;
* платежів;
* журналів;
* залишків;
* подій;
* контрагентів.; POST /api/v1/payments
== API для ЕДО ==
Типові операції:
Контрагенти
API компаній має змогу використовуватися для отримання списку юридичних осіб або організацій, доступних користувачу чи інтеграційному сервісу.;=== Webhooks ===
Для безпечної роботи API потрібно контролювати: POST /api/v1/fiscal/shifts/close
Для K2 ERP: API-документація має бути частиною продукту.; GET /api/v1/products GET /api/v1/inventory/{sku}
{
Filtering і sorting
</syntaxhighlight>
POST /api/v1/orders/{id}/cancel Рекомендація: для інтернет-магазинів і маркетплейсів API має повертати не бухгалтерський залишок, а доступний до продажу залишок: фактична кількість мінус резерви та інші блокування.; # K2 ERP створює замовлення клієнта.;СОТА
}
API K2 ERP — це технічний інтерфейс для інтеграції K2 ERP із зовнішніми системами, модулями, сайтами, мобільними застосунками, платіжними сервісами, маркетплейсами, інтернет-магазинами, ПРРО, ЕДО, ДПС, банками та логістичними платформами.; query {
version: 1.0.0
Типовий сценарій інтеграції з ЕДО має змогу виглядати так:
- HTTPS;
- автентифікацію;
- авторизацію;
- ролі;
- права доступу;
- IP allowlist;
- rate limiting;
- audit log;
- secrets management;
- token rotation;
- захист від SQL injection;
- захист від XSS для web-інтерфейсів;
- валідацію вхідних даних;
- CORS;
- CSRF для браузерних сценаріїв;
- журнал доступів;
- контроль персональних даних.; це програмний інтерфейс; додатково реалізовано модулів, сервісів, сайтів, мобільних застосунків, інтеграційних конекторів та внутрішніх компонентів із системою K2 ERP виступає ключовою рисою взаємодії зовнішніх систем забезпечується через API K2 ERP.; # ПРРО повертає фіскальний номер.; Зверніть увагу: API K2 ERP має працювати не напряму з таблицями бази даних, а через бізнес-логіку системи.;
</syntaxhighlight>OpenAPI корисний для:
</syntaxhighlight> GET /api/v1/products?page=1&pageSize=100
- Shopify;
- Magento;
- Wix;
- OpenCart;
- Tilda Commerce;
- власний сайт;
- мобільний застосунок;
- B2B-портал;
- B2C-портал.;== Типовий сценарій інтеграції з ЕДО ==
GET /api/v1/products/changes?updatedAfter=2026-05-08T00:00:00Z API K2 ERP має змогу використовуватися для роботи з банківськими даними.; "externalId": "SHOPIFY-10025",
Залишки
sku phone
Типовий сценарій фіскалізації через API
GET /api/v1/orders?cursor=eyJpZCI6MTIzfQ
OpenAPI
GET /api/v1/fiscal/receipts/{id}
Обробка помилок
GET /api/v1/products
Приклад:== API для логістики ==
API має змогу бути реалізоване як REST API, GraphQL API, WebSocket API, RPC-інтерфейс, webhook-механізм або внутрішній сервісний інтерфейс між модулями.; "error": {
GET /api/v1/products/by-sku/{sku}
* генерації документації;
* генерації клієнтів;
* тестування API;
* контрактного тестування;
* контролю змін;
* роботи frontend і backend команд.; До основних переваг API K2 ERP можна віднести:
Можливі операції:
API K2 ERP має змогу використовуватися для інтеграції з інтернет-магазинами:
"price": 450.00
}
* API Gateway;
* компонент авторизації;
* бізнес-сервіси;
* сервіс довідників;
* сервіс документів;
* сервіс залишків;
* сервіс оплат;
* сервіс фіскалізації;
* сервіс інтеграцій;
* журнал обміну;
* систему черг;
* базу даних;
* компонент моніторингу;
* механізм webhooks;
* механізм rate limiting;
* механізм аудиту.; PATCH /api/v1/products/{id}
GET /api/v1/orders?status=paid&createdFrom=2026-05-01
* потребу в якісній документації;
* потребу в стабільному версіонуванні;
* потребу в захисті токенів;
* потребу в логуванні без секретів;
* ризик перевантаження API;
* ризик дублювання документів;
* ризик некоректної фіскалізації;
* ризик неправильного актуалізація цін;
* ризик неправильних залишків;
* потребу в ідемпотентності;
* потребу в моніторингу;
* потребу в sandbox;
* потребу в тестах;
* потребу в підтримці сумісності.; customer {
</div>
Якісне API K2 ERP має підтримувати авторизацію, версіонування, REST або GraphQL endpoint-и, webhooks, ідемпотентність, журнал обміну, зрозумілі помилки, документацію OpenAPI, sandbox, моніторинг, rate limiting і безпечне зберігання секретів.; API K2 ERP має змогу взаємодіяти з сервісами електронного документообігу.; GET /api/v1/companies
Приклади endpoint-ів:<syntaxhighlight lang="text">
Типовий сценарій фіскалізації має змогу виглядати так:
</syntaxhighlight>
- створено замовлення;
- змінено статус оплати;
- фіскальний чек створено;
- товар оновлено;
- залишок змінився;
- документ підписано в ЕДО;
- замовлення відправлено;
- отримано банківську виписку.; Приклад:
API K2 ERP потрібне для інтеграції ERP з іншими системами та автоматизації бізнес-процесів.; /api/v2/orders K2 Модуль Shopify
POST /api/v1/orders
- захисту від перевантаження;
- контролю інтеграцій;
- захисту від помилкових циклів;
- стабільності системи;
- пріоритезації критичних запитів.;Spring
API залишків застосовується для отримання доступної кількості товарів на складах.; Можливі операції:
Приклад:* Prom;
* Rozetka;
* Hotline;
* інші торгові майданчики.;== API для платіжних сервісів ==
[[YouTrack]]
}
}
Варто контролювати:
Для K2 ERP API є собою основою інтеграційної архітектури: воно надає можливість будувати модулі Shopify, Magento, Wix, Prom, LiqPay, ПРРО, ЕДО, SAF-T UA, е-ТТН, банківські й логістичні інтеграції без ручного дублювання даних.; API K2 ERP має мати механізм автентифікації та авторизації.;[[DevOps]]
POST /api/v1/payments/{id}/refund
<div style="background:#ffebee; border-left:5px solid #e53935; padding:12px; margin:12px 0;">
* доступність API;
* середній час відповіді;
* кількість запитів;
* кількість помилок;
* error rate;
* кількість 401 і 403;
* кількість 429;
* кількість 500;
* повільні endpoint-и;
* стан черг;
* статус зовнішніх інтеграцій;
* помилки webhooks;
* невдалі фіскалізації;
* невдалі платежі.; Можливі операції:
== API для інтернет-магазинів ==
"status": "queued"
* створити замовлення;
* отримати замовлення;
* змінити статус;
* додати оплату;
* додати доставку;
* скасувати замовлення;
* створити повернення;
* отримати історію змін.; Він надає можливість формально описати endpoint-и, параметри, схеми даних, відповіді, помилки й авторизацію.; # Оператор повертає статус.; # Після підписання зберігається підписаний файл.; * отримати залишок за товаром;
* отримати залишки за складом;
* отримати доступний залишок;
* отримати резерви;
* отримати залишки для каналу продажів;
* оновити зовнішню систему після складського руху.; # Статус замовлення оновлюється.;== Документація API ==
API K2 ERP потрібне для того, щоб ці модулі могли взаємодіяти із зовнішніми системами без ручного дублювання даних.;[[K2 Модуль Magento]]
POST /api/v1/fiscal/refunds
Типовий обмін:
GET /api/v1/orders/changes?sinceToken=abc123
'''REST API''' — це найпоширеніший варіант API для ERP-інтеграцій.;[[РРО]]
=== ЕДО ===
}
POST /api/v1/fiscal/receipts
== Основні функціональні можливості ==
Приклади endpoint-ів:<syntaxhighlight lang="text">
[[Edin]]
* створити фіскальний чек;
* створити чек повернення;
* отримати статус чека;
* отримати фіскальний номер;
* отримати посилання на чек;
* відкрити зміну;
* закрити зміну;
* сформувати Z-звіт.; Це захищає систему від дублювання при повторному запиті.; * паролі;
* хеші паролів;
* private keys;
* ключі електронного підпису;
* access tokens;
* refresh tokens;
* production connection strings;
* повні інформаційні дані платіжних карток;
* зайві персональні інформаційні дані;
* внутрішні технічні секрети;
* системні журнали без фільтрації;
* фінансові інформаційні дані без прав доступу.;== Rate limiting ==
[[ЕДО]]
Типовий обмін:
== переважні аспекти API K2 ERP ==
POST /api/v1/edo/documents
== Для чого потрібне API K2 ERP ==
== Idempotency ==
'''API Gateway''' має змогу бути вхідною точкою для API K2 ERP.; '''Безпека:''' API token, private key, client secret і access token не можна зберігати у відкритому коді, логах, публічних файлах, wiki-сторінках або повідомленнях.; # ERP створює відвантаження.; "eventId": "evt_100001",
POST /api/v1/edo/documents/{id}/send
Для якісної роботи API в K2 ERP бажано зберігати:
* тестування інтеграцій;
* перевірки авторизації;
* перевірки форматів;
* навчання партнерів;
* тестування webhooks;
* перевірки помилок;
* тестування фіскалізації в тестовому режимі;
* перевірки обробки повторних запитів.; # Магазин отримує ціни.;== Обмеження та ризики ==
Документація повинна містити:
}
== Черги і асинхронна обробка ==
id
summary: Create order
{
[[SAF-T UA]]
Типові HTTP-коди:
Приклад:<syntaxhighlight lang="text">
Можливі операції:
'''GraphQL API''' має змогу використовуватися тоді, коли клієнту потрібно гнучко отримувати лише потрібні поля, об’єднувати кілька типів даних в одному запиті або будувати складні інтерфейси.; Retry потрібен, якщо:
API K2 ERP має змогу приймати події від платіжних сервісів або передавати платіжні запити.; # Інтернет-магазин отримує товари з K2 ERP.; # Документ проходить внутрішню перевірку.;[[TeamCity]]
* створити платіж;
* отримати callback;
* перевірити підпис;
* оновити статус оплати;
* створити документ оплати;
* запустити фіскалізацію;
* створити повернення.; # За потреби виконується фіскалізація.; {
У журналі можна зберігати:
[[LiqPay]]
[[K2 Модуль Wix]]
number
'''OpenAPI''' — це формат опису REST API.; # API оновлює статус документа в K2 ERP.; Приклади REST endpoint-ів:<syntaxhighlight lang="text">
Приклад GraphQL-запиту:<syntaxhighlight lang="graphql">
* integration ID;
* назву інтеграції;
* тип інтеграції;
* користувача або service account;
* права доступу;
* API token у захищеному вигляді;
* дату створення токена;
* дату останнього використання;
* статус інтеграції;
* request ID;
* correlation ID;
* external ID об’єкта;
* internal ID об’єкта;
* статус синхронізації;
* останню дату синхронізації;
* текст помилки;
* технічну відповідь;
* кількість повторних спроб.; Без зрозумілої документації інтеграції стають залежними від усних пояснень, ручних тестів і технічної підтримки.; {
== Див.; додатково ==
* неправильний token;
* token прострочений;
* немає прав доступу;
* неправильний формат JSON;
* відсутнє обов’язкове поле;
* некоректний SKU;
* контрагент не знайдений;
* товар не знайдений;
* складський облік не знайдений;
* замовлення вже існує;
* недостатній залишок;
* неправильний статус документа;
* оплата вже проведена;
* чек уже фіскалізований;
* помилка зовнішнього сервісу;
* timeout;
* дублювання webhook;
* перевищено rate limit;
* API-версія застаріла;
* помилка бізнес-правила.; '201':
Приклад:<syntaxhighlight lang="text">
</div>
* дату і час запиту;
* endpoint;
* HTTP-метод;
* користувача або сервіс;
* IP-адресу;
* request ID;
* correlation ID;
* статус відповіді;
* час виконання;
* текст помилки;
* ідентифікатор об’єкта;
* напрям інтеграції;
* кількість повторних спроб.; API цін застосовується для синхронізації прайсів з інтернет-магазинами, маркетплейсами, мобільними застосунками або B2B-порталами.; Для великих списків API має підтримувати пагінацію.;
PATCH /api/v1/shipments/{id}/tracking
== інформаційні дані, які бажано зберігати для інтеграції ==
API K2 ERP має змогу використовуватися для інтеграції з маркетплейсами:
"customer": {
Можливі операції:
"status": "paid"
Документацію можна оформити через:
"sku": "SKU-001",
GET /api/v1/companies/{id} IDE GET /api/v1/edo/documents/{id}
"event": "order.created",Приклад заголовка:
{
== інформаційні дані, які не можна відкривати через API ==
post:
items {
* створити оплату;
* отримати статус оплати;
* прив’язати платіж до замовлення;
* обробити callback;
* створити повернення;
* отримати історію платежів;
* виконати звірку оплат.;<div style="background:#e8f5e9; border-left:5px solid #43a047; padding:12px; margin:12px 0;">
"externalId": "SHOPIFY-10025",
Можливі операції:
* Нова пошта;
* Укрпошта;
* Мурашина логістика;
* кур’єрські служби;
* внутрішня доставка;
* е-ТТН.; POST /api/v1/shipments
API електронного документообігу має змогу використовуватися для інтеграції з M.E.Doc, EDIN, СОТА, FREDO або іншими сервісами.; '''Рекомендація:''' усі API-операції, які створюють гроші, документи, чеки або складські рухи, мають підтримувати ідемпотентність.; * зовнішній сервіс тимчасово недоступний;
* стався timeout;
* виникла мережева помилка;
* endpoint повернув 503;
* webhook не доставлено;
* фіскальний сервер не відповів.;== Авторизація і автентифікація ==
* XML;
* CSV;
* XLSX;
* YAML;
* multipart/form-data;
* binary files;
* ZIP-архіви;
* підписані файли.; API K2 ERP має повертати зрозумілі помилки.; Принцип мінімально необхідного доступу важливий для безпеки ERP, персональних даних, платежів і фіскальних операцій.; GET /api/v1/products/{id}/prices
* OpenAPI / Swagger;
* Postman Collection;
* Markdown;
* MediaWiki;
* Redoc;
* Developer Portal.; API замовлень застосовується для створення та актуалізація замовлень клієнтів.; # K2 ERP перевіряє оплату.; Вони мають зберігатися в захищених сховищах.; * базовий URL;
* версію API;
* спосіб авторизації;
* список endpoint-ів;
* приклади запитів;
* приклади відповідей;
* моделі даних;
* помилки;
* rate limits;
* webhooks;
* правила ідемпотентності;
* changelog;
* sandbox-оточення;
* contact support;
* приклади інтеграції.; /api/v1/orders:
Можливі варіанти:
"items": [
'''Не плутати:''' API — це не обхід бізнес-правил ERP.; # компонент ЕДО надсилає документ оператору.;<div style="background:#fff8e1; border-left:5px solid #f9a825; padding:12px; margin:12px 0;">
Приклад:<syntaxhighlight lang="text">
== API для банків ==
Приклад замовлення:<syntaxhighlight lang="json">
</div>
* отримати список контрагентів;
* створити контрагента;
* оновити контактні інформаційні дані;
* знайти контрагента за ЄДРПОУ;
* знайти контрагента за ІПН;
* знайти клієнта за телефоном;
* знайти клієнта за email.; paths:
* маршрутизацію запитів;
* авторизацію;
* rate limiting;
* логування;
* перевірку токенів;
* балансування навантаження;
* трансформацію запитів;
* кешування;
* контроль версій;
* захист від некоректних запитів.; # У картці документа зберігається історичний розвиток обміну.; # Платіжний сервіс надсилає callback про оплату.;[[Git]]
API має підтримувати фільтрацію та сортування.; Приклад webhook-повідомлення:<syntaxhighlight lang="json">
[[Модуль Prom]]
* обов’язкові поля;
* формат телефону;
* формат email;
* валюту;
* кількість;
* ціну;
* SKU;
* наявність товару;
* контрагента;
* складський облік;
* статус документа;
* форму оплати;
* податкові ставки;
* права користувача;
* дублювання externalId.;== Можливі помилки під час інтеграції ==
* M.E.Doc;
* EDIN;
* СОТА;
* FREDO;
* Вчасно;
* інші оператори ЕДО.; * підтримки старих інтеграцій;
* безпечного розвитку API;
* поступового переходу клієнтів;
* тестування нових endpoint-ів;
* документування змін;
* контролю сумісності.; # Сайт передає замовлення в K2 ERP.; Приклад:<syntaxhighlight lang="text">
* отримати ціну товару;
* отримати ціни за типом цін;
* оновити ціну;
* отримати акційну ціну;
* отримати валюту ціни;
* отримати історію зміни ціни.; * товарів;
* залишків;
* цін;
* замовлень;
* контрагентів;
* документів;
* статусів.; GET /api/v1/orders/{id}
</div>
Через API не можна безконтрольно відкривати:
Перевіряти потрібно:
/api/v1/orders
'''істотно:''' API K2 ERP — це не окремий компонент обліку, а технічний інтерфейс доступу до функцій і даних ERP.; Для інтеграцій потрібно підтримувати повторну обробку помилок.; Це особливо істотно для:
* створення замовлень;
* створення оплат;
* створення фіскальних чеків;
* створення повернень;
* імпорту документів;
* обробки webhooks;
* повторних запитів після збою мережі.;
</syntaxhighlight>Це корисно для:
Приклад відповіді:
Dead letter queue потрібна для повідомлень, які не вдалося обробити після кількох спроб.; API K2 ERP має змогу працювати з логістичними сервісами.; '''Webhooks''' — це механізм, за якого K2 ERP або зовнішня платформа надсилає повідомлення про подію.; Приклад відповіді з помилкою:<syntaxhighlight lang="json">
[[M.E.Doc.ЕДО]]
description: Order created
- У K2 ERP створюється документ.; API оплат застосовується для зв’язку з LiqPay, банками, еквайрингом, касами та внутрішніми документами оплати.; POST /api/v1/payments
Компанії
Замовлення
Sandbox — це тестове середовище API, у якому інтеграції можуть перевірятися без впливу на production-дані.; "orderId": "12345", Рекомендація: API має повертати машинозчитуваний код помилки і зрозуміле повідомлення для розробника.;== Загальний характеристика ==
- синхронізація товарів;
- актуалізація цін;
- актуалізація залишків;
- отримання замовлень;
- передавання статусів;
- передавання ТТН;
- фіскалізація;
- обробка повернень.; "quantity": 2,
GET /api/v1/inventory?warehouseId=1 GET /api/v1/products?updatedFrom=2026-05-01T00:00:00Z
Webhooks API K2 ERP
Incremental synchronization — це синхронізація тільки тих даних, які змінилися після певного часу або версії.; }
- створити ТТН;
- отримати статус доставки;
- отримати вартість доставки;
- отримати відділення;
- передати tracking number;
- створити е-ТТН;
- отримати підтвердження доставки.; Через API зовнішні системи можуть читати, створювати або оновлювати інформаційні дані відповідно до прав доступу та бізнес-правил.;== API Gateway ==
- створити документ;
- відправити документ;
- отримати статус;
- отримати підписаний файл;
- отримати квитанцію;
- обробити відмову;
- синхронізувати вхідні документи.; API K2 ERP застосовують, коли потрібно для автоматизації обміну даними: створення документів, отримання довідників, синхронізації товарів, клієнтів, замовлень, оплат, залишків, бухгалтерських операцій, статусів, інтеграційних подій і результатів обробки.; API має повертати не лише статус, а й фіскальний номер та технічну відповідь.; POST /api/v1/fiscal/shifts/open
Idempotency — це властивість API-запиту, за якої повторне виконання того самого запиту не створює дублікати.; # API створює фіскальний чек.;
API для ДПС
- Зовнішній сайт створює замовлення.; GET /api/v1/orders/{id}
Monitoring API
- ERP передає товари;
- ERP передає ціни;
- ERP передає залишки;
- магазин передає замовлення;
- магазин передає оплату;
- ERP передає статус;
- ERP передає tracking number;
- ERP виконує фіскалізацію;
- ERP передає чек або посилання на чек.;== Валідація даних ==
GET /api/v1/prices?priceType=shopify
* login і password;
* access token;
* refresh token;
* API key;
* OAuth2;
* JWT;
* service account;
* client credentials;
* IP allowlist;
* mTLS для критичних інтеграцій.; Можливі напрями:
responses:
"method": "liqpay",
[[Е-ТТН]]
POST /api/v1/orders
== Pagination ==
== Висновок ==
Accept: application/vnd.k2erp.v1+json
X-RateLimit-Limit: 1000
'''Практичне сфера застосування:''' для великих каталогів товарів краще використовувати синхронізацію змін, а не щоразу вивантажувати весь каталог в цілому.;== Безпека API K2 ERP ==
Під час впровадження API потрібно враховувати:
- відкрити зміну;
- закрити зміну;
- створити чек;
- створити чек повернення;
- отримати статус чека;
- отримати фіскальний номер;
- створити Z-звіт;
- зберегти відповідь ДПС;
- надіслати електронний чек покупцю.; # Магазин надсилає замовлення в K2 ERP через API.; API товарів застосовується для отримання і синхронізації номенклатури.; * хто виконує запит;
- до якої компанії є собою доступ;
- які модулі доступні;
- які документи можна читати;
- які документи можна створювати;
- які поля можна змінювати;
- чи дозволено виконувати фіскалізацію;
- чи дозволено працювати з оплатами;
- чи дозволено бачити персональні інформаційні дані.; API фіскалізації застосовується для створення чеків через ПРРО або РРО.; # Магазин показує покупцю статус замовлення.; # Магазин отримує залишки.; * створити електронний документ;
- відправити документ;
- отримати статус;
- отримати квитанцію;
- отримати підписаний файл;
- обробити відхилення;
- зберегти технічну відповідь.; інформаційні дані передаються через HTTP-запити, а об’єкти зазвичай представлені у форматі JSON.; Типові операції:
openapi: 3.0.3
</syntaxhighlight>
- масовий експорт товарів;
- масове актуалізація залишків;
- фіскалізація після оплати;
- передавання документів в ЕДО;
- формування SAF-T UA;
- імпорт великих файлів;
- синхронізація маркетплейсів;
- відправлення webhooks;
- повторна обробка помилок.;</syntaxhighlight>
Практичне сфера застосування: REST API комфортно використовувати для запитів і команд, а webhooks — для швидкого повідомлення про події без постійного опитування системи.; "createdAt": "2026-05-08T12:30:00Z", POST /api/v1/counterparties Типові операції:
}
</syntaxhighlight>
Типова технічна архітектура API K2 ERP має змогу включати:
API K2 ERP має мати документацію.;== API для маркетплейсів == }
У K2 ERP бажано зберігати журнал API-запитів.; # K2 ERP зберігає чек.; "data": {
технічна архітектура API K2 ERP
Типовий сценарій інтеграції інтернет-магазину
quantity
Приклади: API K2 ERP потрібно моніторити.; # Після оплати сайт або платіжний сервіс надсилає подію.; # ERP передає tracking number у магазин.; # K2 ERP створює документ оплати.; Довгі або ризиковані операції краще передавати в чергу.; GET /api/v1/products/{id}
Авторизація має визначати:
- 200 — успішний запит;
- 201 — створено;
- 400 — помилка валідації;
- 401 — не авторизовано;
- 403 — немає прав доступу;
- 404 — об’єкт не знайдено;
- 409 — конфлікт або дублювання;
- 422 — бізнес-правило не виконано;
- 429 — перевищено ліміт запитів;
- 500 — внутрішня помилка сервера;
- 503 — сервіс тимчасово недоступний.; X-RateLimit-Remaining: 850
Типові події:
API контрагентів застосовується для роботи з клієнтами, постачальниками, перевізниками, партнерами та іншими учасниками обліку.;=== GraphQL API ===
- створити доставку;
- прив’язати ТТН до замовлення;
- отримати статус доставки;
- оновити tracking number;
- отримати інформаційні дані перевізника;
- створити е-ТТН;
- отримати історію доставки.;== Типи API ==
- авторизацію користувачів і сервісів;
- роботу з access token;
- роботу з API keys;
- отримання списку компаній;
- отримання довідника контрагентів;
- отримання довідника товарів;
- отримання цін;
- отримання залишків;
- створення замовлення клієнта;
- створення документа продажу;
- створення документа закупівельна діяльність;
- створення оплати;
- створення повернення;
- створення складського руху;
- створення фіскального чека;
- отримання статусу документа;
- отримання історії змін;
- обробку webhooks;
- журналювання інтеграційних операцій;
- контроль помилок і повторних запитів.;== Формат даних ==
}
</syntaxhighlight>Пагінація потрібна для:
- отримати банківські виписки;
- імпортувати платежі;
- зіставити платіж із замовленням;
- створити платіжне доручення;
- отримати статус платежу;
- виконати звірку;
- зберегти банківський документ.;== Retry і dead letter queue ==
order(id: "123") {
title: K2 ERP API
Приклад:Sandbox потрібен для:
],
Приклад заголовків:<syntaxhighlight lang="text">
"payment": {
=== Товари ===
GET /api/v1/inventory?warehouseId=2&sku=ABC-001
API K2 ERP має змогу працювати з ПРРО або РРО.;== Журнал API-запитів ==
Приклади endpoint-ів:<syntaxhighlight lang="text">
"email": "ivan@example.com"
[[Java]]
Не всі API-операції потрібно виконувати синхронно.; '''Не плутати:''' API має надавати тільки ті інформаційні дані, які потрібні інтеграції.; як ілюстрація, інтернет-магазин має змогу передати замовлення в K2 ERP, платіжний сервіс — повідомити про оплату, складська платформа — оновити залишки, а компонент ПРРО — повернути фіскальний номер чека.; API K2 ERP бажано версіонувати, щоб зміни не ламали існуючі інтеграції.;=== Оплати ===
POST /api/v1/fiscal-receipts
== Основні ресурси API ==
GET /api/v1/payments/{id}
Idempotency-Key: 9b2d7a8e-5c1a-4e6a-9e22-123456789abc
info:
PATCH /api/v1/counterparties/{id}
Версіонування API
Типові HTTP-методи:
"name": "Іван Петренко",
</syntaxhighlight>
Приклад фрагмента OpenAPI:<syntaxhighlight lang="yaml">
}