QUINCEFINСпробувати
Відкрити меню

QUINCE API. Замовлення

Список методів

МетодОпис
/api/v2/order/listОтримання списку замовлень
/api/v2/order/addСтворення замовлень
/api/v2/order/updateОновлення замовлень

Отримання списку замовлень

Назва методу: /api/v2/order/list

Повертає список замовлень. Для навігації використовується номер сторінки page. Розмір сторінки фіксований і дорівнює 100 елементам.

Параметри запиту

ПолеТипОпис
filterobjectФільтр замовлень. Поля фільтра працюють з логікою AND.
filter.IdintegerІдентифікатор замовлення.
filter.DateFromstringДата, починаючи з якої повертати замовлення. Формат: yyyy-mm-dd або yyyy-mm-dd HH:mm:ss.
filter.DateTostringДата, до якої повертати замовлення. Формат: yyyy-mm-dd або yyyy-mm-dd HH:mm:ss.
filter.DateModifiedFromstringПочаток періоду змін у замовленні. Дає змогу вибирати змінені замовлення без DateFrom/DateTo.
filter.DateModifiedTostringКінець періоду змін у замовленні.
filter.CompanyintegerІдентифікатор організації.
filter.StatusarrayІдентифікатори статусів замовлення.
filter.ArchivebooleanОзнака повернення архівних або скасованих замовлень.
filter.MobileAppbooleanЯкщо true, API використовує збільшений ліміт вибірки.
pageintegerНомер сторінки. Якщо не передати, використовується перша сторінка.

Якщо DateFrom і DateTo не передані та немає фільтра Id або DateModifiedFrom, API повертає документи за поточний день. Якщо передати тільки одну з дат DateFrom/DateTo без DateModifiedFrom, API поверне помилку DateFrom and DateTo are required. Поле Status має бути масивом.

Основні поля відповіді

ПолеОпис
IdІдентифікатор замовлення.
DateДата замовлення.
DateCreatedДата створення.
DateModifiedДата останнього редагування.
UserCreatedКористувач, який створив документ.
UserModifiedКористувач, який останнім редагував документ.
NumberВнутрішній номер.
NumberOrderSiteЗовнішній номер замовлення.
SumСума замовлення.
StoresInRowsОзнака використання складів у рядках документа.
VatIncludeОзнака, що суми включають ПДВ.
SumVatСума ПДВ.
SumWithoutVatСума без ПДВ.
CommentКоментар.
ExtraCommentРозширений коментар.
DeliveryAddressТекстова адреса доставки.
NovaPoshtaЗбережені дані доставки Новою Поштою для цього замовлення або null, якщо їх немає.
DateScheduleShipmentЗапланована дата доставки.
FixedОзнака публікації документа.
PartnerПартнер.
StoreСклад.
StatusСтатус замовлення.
CompanyОрганізація.
ContractКонтракт.
PriceTypeТип ціни.
DiscountTypeТип знижки.
DepartmentПідрозділ: об’єкт з Id і Name.
SegmentСегмент діяльності: об’єкт з Id і Name.
ProjectПроєкт: об’єкт з Id і Name.
ResponsibleВідповідальний за замовлення.
BankAccountБанківський рахунок.
RowsТоварні позиції замовлення.

Поля рядків Rows

ПолеОпис
IdІдентифікатор рядка.
RowNoНомер рядка.
ProductІдентифікатор товару або послуги.
PriceЦіна.
QtyКількість.
SumСума рядка.
SumVatСума ПДВ.
PriceWithoutDiscountЦіна без знижки.
PercentDiscountВідсоток знижки.
KindВид позиції: P - товар, S - послуга.
StoreСклад рядка, якщо склади ведуться в рядках.

Приклад запиту

{
  "filter": {
    "DateFrom": "2026-03-01",
    "DateTo": "2026-03-11",
    "Status": [111, 192]
  },
  "page": 1
}

Створення та оновлення замовлень

Назва методу створення: /api/v2/order/add

Назва методу оновлення: /api/v2/order/update

Методи додають або оновлюють замовлення пакетами до 100 елементів.

API підтримує два режими:

РежимОпис
strict: trueУ полях-посиланнях передаються ідентифікатори сутностей QUINCEFIN.
strict: falseУ полях-посиланнях передаються об’єкти з даними для пошуку. Якщо сутність не знайдена, вона може бути створена автоматично.

Department, Segment і Project є винятком із загального правила для strict: false: в обох режимах їх визначають тільки за Id. Блок NovaPoshta також має однаковий формат в обох режимах: він приймає Ref Нової Пошти, а не Id довідників QUINCEFIN.

Store і Company можуть братися з налаштувань адміністратора за замовчуванням, якщо не передані явно.

Для дат у створенні та оновленні використовуйте формат yyyy-mm-dd або yyyy-mm-dd HH:mm:ss. Якщо передати тільки дату без часу, API додає поточний час сервера.

Параметри для strict: true

ПолеОпис
arrayМасив замовлень. Обов’язковий.
array[].IdІдентифікатор замовлення. Використовується для /api/v2/order/update.
array[].NumberOrderSiteНомер замовлення у зовнішній системі.
array[].DateДата замовлення у форматі yyyy-mm-dd.
array[].SumЗагальна сума.
array[].CommentКоментар.
array[].DeliveryAddressТекстова адреса доставки. Не заповнює структуровані поля ТТН.
array[].NovaPoshtaНеобов’язковий об’єкт доставки Новою Поштою або null. Однаковий формат в обох режимах.
array[].DateScheduleShipmentЗапланована дата доставки у форматі yyyy-mm-dd.
array[].PartnerІдентифікатор партнера.
array[].ContractІдентифікатор контракту.
array[].StatusІдентифікатор статусу.
array[].StoreІдентифікатор складу. Для створення в strict: true обов’язковий.
array[].PriceTypeІдентифікатор типу ціни.
array[].DiscountTypeІдентифікатор типу знижки.
array[].PaymentOptionІдентифікатор варіанта оплати.
array[].ShippingOptionІдентифікатор варіанта відвантаження.
array[].InformationSourceІдентифікатор джерела інформації.
array[].ResponsibleІдентифікатор відповідального користувача.
array[].CompanyІдентифікатор організації.
array[].DepartmentId підрозділу або об’єкт { "Id": 12 }.
array[].SegmentId сегмента діяльності або об’єкт { "Id": 34 }.
array[].ProjectId проєкту або об’єкт { "Id": 56 }.
array[].BankAccountІдентифікатор банківського рахунку.
array[].CashAccountІдентифікатор каси. Не можна передавати одночасно з BankAccount.
array[].RowsРядки замовлення.

Для /api/v2/order/add у strict: true обов’язкові Date, Responsible, Partner, Store, Status, Contract і непорожній масив Rows. Для /api/v2/order/update обов’язковий Id замовлення, а Rows можна не передавати. Якщо під час оновлення у Rows передати Id рядка, рядок буде оновлений. Якщо Id не передати, рядок буде доданий до замовлення.

Параметри рядків для strict: true

ПолеОпис
Rows[].IdІдентифікатор рядка.
Rows[].RowNoНомер рядка.
Rows[].ProductІдентифікатор товару або послуги.
Rows[].PriceЦіна.
Rows[].QtyКількість.
Rows[].SumСума.
Rows[].PriceWithoutDiscountЦіна без знижки.
Rows[].PercentDiscountВідсоток знижки.

Якщо передати PriceWithoutDiscount, треба також передати PercentDiscount, і навпаки. Якщо ці поля не передані, PriceWithoutDiscount дорівнює Price, а PercentDiscount дорівнює 0.

Параметри для strict: false

ПолеОпис
search-partner-byПоле пошуку партнера: Name, Email або Phone. Якщо не передати, використовується Name.
arrayМасив замовлень. Обов’язковий.
array[].NumberOrderSiteЗовнішній номер замовлення. Обов’язковий і має бути унікальним. Використовується для пошуку замовлення при оновленні.
array[].DateДата замовлення у форматі yyyy-mm-dd.
array[].SumЗагальна сума.
array[].CommentКоментар.
array[].DeliveryAddressТекстова адреса доставки. Не заповнює структуровані поля ТТН.
array[].NovaPoshtaНеобов’язковий об’єкт доставки Новою Поштою або null. Однаковий формат в обох режимах.
array[].DateScheduleShipmentЗапланована дата доставки у форматі yyyy-mm-dd.
array[].PartnerОб’єкт партнера. Пошук за Name, Email або Phone.
array[].ContractОб’єкт контракту. Пошук за назвою.
array[].StatusОб’єкт статусу. Пошук за назвою.
array[].StoreОб’єкт складу з полем Name. Для створення в strict: false обов’язковий.
array[].PriceTypeОб’єкт типу ціни. Пошук за назвою.
array[].DiscountTypeОб’єкт типу знижки. Пошук за назвою.
array[].CompanyОб’єкт з Id організації.
array[].DepartmentId підрозділу або об’єкт { "Id": 12 }.
array[].SegmentId сегмента діяльності або об’єкт { "Id": 34 }.
array[].ProjectId проєкту або об’єкт { "Id": 56 }.
array[].BankAccountОб’єкт з Id банківського рахунку.
array[].CashAccountОб’єкт з Id каси. Не можна передавати одночасно з BankAccount.
array[].RowsРядки замовлення.

Для /api/v2/order/add у strict: false обов’язкові NumberOrderSite, Date, Partner.Name, Store.Name, Status.Name, Contract.Name, Contract.Currency і непорожній масив Rows. Для /api/v2/order/update обов’язковий NumberOrderSite, а інші поля можна передавати частково. Якщо під час оновлення передати Partner, треба також передати Contract, і навпаки.

Пошук товару виконується спочатку за Article, якщо він переданий, потім за Name. InformationSource, PaymentOption і ShippingOption у strict: false передаються як об’єкти з полем Name; значення мають існувати у відповідних довідниках.

Доставка Новою Поштою

Передавайте NovaPoshta на рівні кожного замовлення в array через /api/v2/order/add або /api/v2/order/update. Дані зберігаються за конкретним замовленням і використовуються, коли менеджер створює ТТН із нього або пов’язаного продажу. Адреса партнера та вже збережені ТТН при цьому не змінюються.

Для використання блоку потрібна серверна версія QUINCEFIN з його підтримкою. Помилка Unknown order field: NovaPoshta означає, що сервер ще не підтримує цей контракт і потребує оновлення.

Поле всередині NovaPoshtaТипОпис
CityRefstringОбов’язковий UUID міста з API Нової Пошти. Передавайте саме CityRef, а не SettlementRef.
WarehouseRefstringОбов’язковий UUID відділення або поштомата в цьому місті. Тип точки визначається за довідником.
CityNamestring або nullНеобов’язкова назва міста, до 255 символів.
WarehouseNamestring або nullНеобов’язкова назва відділення або поштомата, до 255 символів.
CODAmountnumberОбов’язкова сума післяплати у гривнях: від 0 до 9999999999999.99, не більше двох знаків після крапки. Передавайте JSON-число, а не рядок.
CODModestringMoneyTransfer — «Грошовий переказ», використовується за замовчуванням; PaymentControl — «Контроль оплати».
CODPayerstringRecipient — одержувач, за замовчуванням; Sender — відправник. Визначає платника послуги грошового переказу в режимі MoneyTransfer. На платника доставки не впливає.

Інтеграція сама розраховує CODAmount: сума замовлення мінус передоплата, але не менше нуля. Наприклад, для замовлення на 1500 грн із передоплатою 250 грн передайте 1250, а для повністю оплаченого — 0. QUINCEFIN використовує передану суму: цей блок не створює платіжних документів, не перераховує взаєморозрахунки та не змінює оголошену вартість відправлення.

NovaPoshta замінюється цілком. Коли передаєте об’єкт, завжди включайте CityRef, WarehouseRef і CODAmount, навіть якщо змінюєте лише суму. Пропущені CODMode і CODPayer отримають значення за замовчуванням; пропущені назви стануть null. Пробіли на початку й у кінці назв прибираються, порожні назви зберігаються як null.

Що передатиРезультат
Не передавати NovaPoshta під час створенняЗамовлення не матиме власних даних доставки НП; зберігається попередній порядок заповнення ТТН.
Не передавати NovaPoshta під час оновленняЗбережені дані доставки залишаться без змін.
"NovaPoshta": nullВласні дані доставки замовлення буде очищено. Це не означає повну оплату.
Повний об’єкт із "CODAmount": 0Адреса збережеться, а у формі ТТН обидва режими післяплати будуть вимкнені.

Ref міста й точки доставки перевіряються за синхронізованими довідниками QUINCEFIN. Відділення або поштомат має належати вказаному місту, а його населений пункт — бути в довіднику. Назви не замінюють Ref і не обходять перевірку. Якщо правильна точка ще відсутня, оновіть довідники Нової Пошти в QUINCEFIN та повторіть запит. Для форми ТТН система визначає SettlementRef і дані відділення за переданими Ref.

Невідомі вкладені поля, неповний об’єкт, некоректні UUID, від’ємна або надто точна сума, непідтримувані режим чи платник та невідповідність міста й відділення повертають success: false з описом помилки. Дані доставки й замовлення зберігаються в одній транзакції.

Під час order/update замовлення має існувати в поточному акаунті, бути активним і неопублікованим (Fixed: false). У strict: true використовуйте його Id і передавайте кожен Id лише один раз у пакеті оновлення. У strict: false значення NumberOrderSite має однозначно визначати замовлення; повторення такого номера в запиті з даними доставки або кілька збережених замовлень із цим номером спричиняють помилку. Для уточнення конкретного замовлення використовуйте strict: true з його Id.

order/list повертає NovaPoshta з полями з наведеної таблиці або null, якщо власні дані доставки не збережені. Ref повертаються малими літерами, сума 0 зберігається як нуль. Після add або update можна перевірити результат через order/list із filter.Id.

Приклад оновлення адреси й післяплати

UUID у прикладах умовні. Перед виконанням замініть їх на реальні Ref із синхронізованих довідників Нової Пошти, а Id — на Id свого замовлення.

{
  "strict": true,
  "array": [
    {
      "Id": 12345,
      "NovaPoshta": {
        "CityRef": "11111111-1111-4111-8111-111111111111",
        "WarehouseRef": "22222222-2222-4222-8222-222222222222",
        "CityName": "Київ",
        "WarehouseName": "Відділення №1",
        "CODAmount": 1250,
        "CODMode": "MoneyTransfer",
        "CODPayer": "Recipient"
      }
    }
  ]
}

Такий самий блок можна додати до замовлення в order/add разом зі звичайними обов’язковими полями та рядками.

Приклад повністю оплаченого замовлення у strict: false

Післяплату вимикає явний нуль; адреса залишається заданою:

{
  "strict": false,
  "array": [
    {
      "NumberOrderSite": "SHOP-10045",
      "NovaPoshta": {
        "CityRef": "11111111-1111-4111-8111-111111111111",
        "WarehouseRef": "22222222-2222-4222-8222-222222222222",
        "CODAmount": 0
      }
    }
  ]
}

Щоб очистити власні дані доставки, передайте в order/update:

{
  "strict": true,
  "array": [
    {
      "Id": 12345,
      "NovaPoshta": null
    }
  ]
}

Подальші дії менеджера й обмеження для часткових або повторних відправлень описані на сторінці накладних Нової Пошти.

Правила для аналітики замовлення

Department, Segment і Project передаються на рівні замовлення, а не в Rows. В обох режимах використовуйте додатний числовий Id або об’єкт з полем Id; об’єкт тільки з Name та поля DepartmentId, SegmentId, ProjectId не підтримуються. Id має належати активному елементу довідника поточного акаунта, а сегмент — бути доступним користувачу API. Id підрозділів можна отримати через /api/v2/department/list; для сегментів і проєктів використовуйте /api/v2/segment/list і /api/v2/project/list.

При створенні замовлення, якщо одне з трьох полів не передати, API підставляє чинне й доступне значення з налаштувань користувача API за замовчуванням. Явний null залишає поле порожнім. При оновленні відсутнє поле зберігає попереднє значення, Id замінює його, а явний null очищає. Ці правила однакові для strict: true і strict: false.

Невідоме поле на рівні замовлення або некоректний Id аналітики повертає success: false з описом помилки. order/update не змінює опубліковане замовлення (Fixed: true) і повертає помилку. Оновлення API не заповнює аналітику в замовленнях, створених раніше.

Основні вкладені поля для strict: false

Об’єктПоля
PartnerName, Phone, Email
ContractName, Currency
StatusName
PriceTypeName, Currency
DiscountTypeName, Percent
StoreName
InformationSourceName
PaymentOptionName
ShippingOptionName
CompanyId
BankAccountId
CashAccountId
Rows[].ProductName, Article, Unit, Kind (P або S)
Rows[]Product, Price, Qty, Sum, PriceWithoutDiscount, PercentDiscount, RowNo

Формат відповіді

ПолеОпис
successtrue або false.
dataМасив ідентифікаторів створених або оновлених замовлень. Для strict: false також повертається NumberOrderSite.
errorОпис помилки, якщо success = false.

Приклад часткового оновлення аналітики

Для strict: true замовлення визначається за внутрішнім Id. Відсутній Segment залишиться без змін, а Project: null очистить проєкт:

{
  "strict": true,
  "array": [
    {
      "Id": 12345,
      "Department": { "Id": 12 },
      "Project": null
    }
  ]
}

Для strict: false замість Id використовується NumberOrderSite:

{
  "strict": false,
  "array": [
    {
      "NumberOrderSite": "api_order_5",
      "Department": 12,
      "Segment": { "Id": 34 },
      "Project": 56
    }
  ]
}

Приклад створення у strict: true

{
  "strict": true,
  "array": [
    {
      "Date": "2026-03-11",
      "Sum": 1000,
      "Partner": 53869,
      "Responsible": 101,
      "Status": 1397,
      "Contract": 54065,
      "Store": 201,
      "PriceType": 610,
      "Company": 112,
      "Department": 12,
      "Segment": 34,
      "Project": 56,
      "Rows": [
        {
          "Product": 89272,
          "Price": 500,
          "Qty": 2,
          "Sum": 1000,
          "RowNo": 1
        }
      ]
    }
  ]
}

Приклад створення у strict: false

{
  "strict": false,
  "search-partner-by": "Email",
  "array": [
    {
      "NumberOrderSite": "api_order_5",
      "Date": "2026-03-11",
      "Sum": 1000,
      "Partner": {
        "Name": "Partner 1",
        "Email": "partner@example.com"
      },
      "Contract": {
        "Name": "Основний контракт",
        "Currency": "UAH"
      },
      "Status": {
        "Name": "Новий"
      },
      "Store": {
        "Name": "Основний склад"
      },
      "PriceType": {
        "Name": "Ціна продажу",
        "Currency": "UAH"
      },
      "Department": { "Id": 12 },
      "Segment": 34,
      "Project": { "Id": 56 },
      "Rows": [
        {
          "Product": {
            "Name": "Товар 1",
            "Article": "SKU-1",
            "Unit": "шт",
            "Kind": "P"
          },
          "Price": 500,
          "Qty": 2,
          "Sum": 1000,
          "PriceWithoutDiscount": 500,
          "PercentDiscount": 0,
          "RowNo": 1
        }
      ]
    }
  ]
}