Опис API

API призначено для експорту замовлень та ТТН(товарно-транспортних накладних) в складську систему та відслідковування їх статусів.

Формат обміну

В якості протоколу в API використовєтся JSON RPC.
Повідомлення відправляєтся методом POST и в загальному має вигляд:
{"jsonrpc": "2.0", "method": "echo", "params": {"say": "Привет"}, "id": 1}

  • jsonrpc - завжди "2.0"
  • method - функция що викликаєтся
  • params - параметри (необов'язкове поле)
  • id - ідентификатор запиту
Ідентификатор запиту повертаєтся в відповіді та може бути бедья яким але унікальним в випадку пакетного (batch) запиту, оскільки сервер може бути асинхронним та повернути відповіді в довільному порядку. В випадку відсутності ідентифікатору вважаєтся що - запит є нотифікацією і не потребує відповіді.
Пакетний запит
[{"jsonrpc": "2.0", "method": "echo", "params": {"say": "Привет"}, "id": 1}, {"jsonrpc": "2.0", "method": "echo", "params": {"say": "Пока"}, "id": 1} ]
Відповідь має вигляд
{"jsonrpc": "2.0", "result": {"answer": "Привіт"}, "id": 1}
  • jsonrpc - завжди "2.0"
  • result - відповідь
  • error - повертаєтся замість result якщо помилка
  • id - відповідний ідентифікатор з запиту

Авторизація

Тип авторизації задаєтся в налаштуваннях та може бути на на підставі JWT токену, Basic аутентификації або авторизация может не використовуватись (наприклад в локальній мережі). Bearer и Basic аутентификація відправляются стардартним чином в заголовку Authorization. Для Bearer попередньо необхідно отримати JWT токен.

Перелік функцій

Для логічного групування запитів використовуются окремі точки входу (endpoints)
Назва URL (endpoint) Команда Параметри Приклад Примітка
Отримати токен /api/common token login - логін
password - пароль
{"login":"admin","password":"admin"}
Список складів /api/items storelist
Список категорій /api/items catlist
Список артикулів /api/items articlelist
Список ТМЦ /api/items itemlist cat_id - id категорії {"cat_id":"10"} Якщо категорія не задана повертаєтся весь список. Поле descriptiion повертаєтся в кодуванні base64
Наявна кількість на складах /api/items getqty store_id - id складу {"store_id":"1"} Якщо склад не задано повертаєтся весь список.
Записати ТМЦ /api/items save itemname - найменування, обов'язкове поле
item_code - артикул, обов'язкове поле
bar_code - штрих-код
measure - ед. измерения
manufacturer - виробник, бренд
cat_id - id категорії
price1,... - відпускні ціни
desсription - опис, в base64
{ "item_code":"К001","bar_code":"К001","itemname":"testapi","description":"","measure":"шт","manufacturer":"", "cat_id":"0","price1":50} Якщо артикул (item_code) існує то ТМЦ перезаписуєтся, якщо відсутній то створюєтся новий запис.
Список контрагентів /api/customers list
Записати контрагента /api/customers save customer_id - id контрагента
customer_name - найменування, обов1язкове поле
phone - телефон, рекомендується вводити як 10 цифр
email - email
city - город
address - адреса
desсription - опис, в base64
{"customer_id":"8","customer_name":"\"ООО Вектор2\"","phone":"0991111111","email":"test@ukr.net","city":"","address":""} Якщо customer_id більше нуля то контрагент перезаписуєтся, якщо дорівнює нулю або відсутній то створюєтся новий.
Список статусів документів /api/docs statuslist Не всіі статуси підходять до всіх типів документів
Список фiлiй /api/docs branchlist Якщо облiковiй системi ввiмкнена пiдтримка фiлiй необхiно вказувати фiлiю в створюваному документI
Створення замовлення якщо замовлення обробляєтся на стороні складскької системи /api/docs createorder number - номер документу. Унікальне значення пов'язане з замовленням в основній системі
phone - телефон, на випадок якщо телефон контакту відрізняєтся від телефона контрагента
email - email, на випадок якщо email контакту відрізняєтся від email контрагента
ship_address - адреса доставки, та інші дані доставки
description - коментар в base64
customer_id - контрагент
amount - всього по документу що до оплати. На випадок якщо відрізняется від всього по позаціях (наприклад зза снижки)
items - список позицій
branch_id - фiлiя якщо ввiмкнено
item_code - артикул
quantity - кількість
price - ціна
{"number":"ID0001","phone":"0971111111","ship_address":"Харьков","items":[{"item_code":"cbs500-1","quantity":2,"price":234},{"item_code":"ID0018","quantity":2,"price":234}] }
Створення ТТН якщо потрібно тільки списання зі складуц /api/docs createttn number - номер документу. Унікальне значення пов'язане з замовленням в основній системі
phone - телефон, на випадок якщо телефон контакту відрізняєтся від телефона контрагента
email - email, на випадок якщо email контакту відрізняєтся від email контрагента
ship_address - адреса доставки, та інші дані доставки
customer_id - контрагент
description - коментар в base64
amount - всього по документу що до оплати. На випадок якщо відрізняется від всього по позаціях (наприклад зза снижки)
branch_id - фiлiя якщо ввiмкнено
items - список позицій
item_code - артикул
quantity - кількість
price - ціна
{"number":"ID0001","phone":"0971111111","ship_address":"Харьков","items":[{"item_code":"cbs500-1","quantity":2,"price":234},{"item_code":"ID0018","quantity":2,"price":234}] }
Создание расходной накладной /api/docs goodsissue number - номер документа. Уникальное значение экспортирующей системи. Обязательное поле
mf - каcса или банковский счет
branch_id - филиал, если включено
customer_id - контрагент
store_id - склад, обязательное поле
autoexec - true, если надо записать проводки
total - итого по документу которое к оплате. На случай если отличается от итогов по позициям (например изза скидки)
payed - внесена сумма оплати.
items - список позиций
item_code - артикул
quantity - количество
price - цена
{"number":"ID0001","store_id":19,"customer_id":8,"mf":2,"total":220,"payed":220,"items":[{"item_code":"cbs500-1","quantity":2,"price":234},{"item_code":"ID0018","quantity":2,"price":234}] }
Создание приходной накладной /api/docs goodsissue number - номер документа. Уникальное значение экспортирующей системи. Обязательное поле
mf - каcса или банковский счет
branch_id - филиал, если включено
customer_id - контрагент . Обязательное поле
store_id - склад, обязательное поле
autoexec - true, если надо записать проводки
total - итого по документу которое к оплате. На случай если отличается от итогов по позициям (например изза скидки)
payed - внесена сумма оплати.
items - список позиций
item_code - артикул
quantity - количество
price - цена
Оприходование ТМЦ /api/docs incomeitem number - номер документа. Уникальное значение экспортирующей системи. Обязательное поле
mf - каcса или банковский счет
branch_id - филиал, если включено
store_id - склад, обязательное поле
autoexec - true, если надо записать проводки
total - итого по документу которое к оплате. На случай если отличается от итогов по позициям (например изза скидки)
items - список позиций
item_code - артикул
quantity - количество
price - цена
{"number":"ID0001","autoexec":true,"store_id":19,"customer_id":8,"mf":2,"total":220,"payed":220,"items":[{"item_code":"cbs500-1","quantity":2,"price":234},{"item_code":"ID0018","quantity":2,"price":234}] }
Статуси документів по списку номерів /api/docs checkstatus numbers - список номерів документів {"numbers":["З-00002","ТТН00034"] } Повертаются тільки ті документи які створені через API. По поверненим статусам оновляются статуси замовлень в основній системі
Запит на видалення. /api/docs cancel number - номер документу
reason - причина
{"number": "ТТН00034","reason":"Тест" } Запрос адміністратору складу на видалення документу. Наприклад якщо замовлення відмінено але вже експортовано.
Перелiк робiт та послуг /api/items servicelist
Создание акта виполнених работ /api/docs serviceact number - номер документа. Уникальное значение экспортирующей системи. Обязательное поле
mf - каcса или банковский счет
branch_id - филиал, если включено
customer_id - контрагент
device - изделие заказчика
autoexec - true, если отправляется на виполнение
total - итого по документу которое к оплате. На случай если отличается от итогов по позициям (например изза скидки)
payed - внесена сумма оплати.
items - список позиций
service_id - id
quantity - количество
price - цена
{"number":"ID0001", "customer_id":8,"mf":2,"total":220,"payed":220,"items":[{"service_id":"5","quantity":2,"price":234} ] }

Коди помилок

-1000 Невірний логін
-1001 Користовач не знайдений
-1002 Просрочений токен
-1003 Невірний синтаксис
-1004 Невірний запит
-1005 Невірна команда