QUINCE API. Повернення від покупця
Список методів
| Метод | Опис |
|---|---|
/api/v2/document/outgoing_return/list | Отримання списку документів повернення від покупця |
/api/v2/document/outgoing_return/add | Створення повернення від покупця |
/api/v2/document/outgoing_return/update | Оновлення повернення від покупця |
/api/v2/document/outgoing_return/unpublish | Зняття повернення від покупця з проведення |
Отримання списку документів повернення від покупця
Назва методу: /api/v2/document/outgoing_return/list
Повертає список документів повернення від покупця. Для навігації використовується номер сторінки page. Розмір сторінки фіксований і дорівнює 100 елементам.
Параметри запиту
| Поле | Тип | Опис |
|---|---|---|
filter | object | Фільтр документів. Поля фільтра працюють з логікою AND. |
filter.Id | integer | Ідентифікатор документа. |
filter.DateFrom | string | Дата, починаючи з якої повертати документи. Формат: yyyy-mm-dd або yyyy-mm-dd HH:mm:ss. |
filter.DateTo | string | Дата, до якої повертати документи. Формат: yyyy-mm-dd або yyyy-mm-dd HH:mm:ss. |
filter.Company | integer | Ідентифікатор організації. |
filter.Archive | boolean | Ознака повернення архівних або скасованих документів. |
filter.MobileApp | boolean | Якщо true, API використовує збільшений ліміт вибірки. |
page | integer | Номер сторінки. Якщо не передати, використовується перша сторінка. |
Якщо DateFrom і DateTo не передані та немає фільтра Id, API повертає документи за поточний день. Якщо передати тільки одну з дат, API поверне помилку DateFrom and DateTo are required.
Основні поля відповіді
| Поле | Опис |
|---|---|
Id | Ідентифікатор документа. |
Date | Дата документа. |
Number | Номер документа. |
Sum | Сума документа. |
VatInclude | Ознака, що суми включають ПДВ. |
SumVat | Сума ПДВ. |
SumWithoutVat | Сума без ПДВ. |
Comment | Коментар. |
DeliveryAddress | Адреса доставки. |
DateScheduleShipment | Запланована дата доставки. |
Fixed | Ознака публікації документа. |
Partner | Партнер. |
Store | Склад. |
Status | Статус документа. |
Company | Організація. |
Contract | Контракт. |
PriceType | Тип ціни. |
DiscountType | Тип знижки. |
Responsible | Відповідальний. |
Rows | Товарні позиції. |
Поля рядків Rows
| Поле | Опис |
|---|---|
Id | Ідентифікатор рядка. |
RowNo | Номер рядка. |
Product | Ідентифікатор товару або послуги. |
Price | Ціна. |
Qty | Кількість. |
Sum | Сума. |
SumVat | Сума ПДВ. |
PriceWithoutDiscount | Ціна без знижки. |
PercentDiscount | Відсоток знижки. |
CostSum | Собівартість за всі одиниці рядка. |
Kind | Вид позиції: P - товар, S - послуга. |
Приклад запиту
{
"filter": {
"DateFrom": "2026-03-01",
"DateTo": "2026-03-31"
},
"page": 1
}
Створення повернення від покупця
Назва методу: /api/v2/document/outgoing_return/add
Метод створює один документ за запит. Основний сценарій - створення повернення на основі документа-джерела через ParentDoc, наприклад на основі замовлення покупця. API використовує той самий механізм копіювання, що й інтерфейс QUINCEFIN: реквізити та рядки беруться з документа-джерела, після чого їх можна уточнити в запиті.
Цей endpoint є відповіддю на сценарій, коли зовнішня система вже має Id замовлення покупця в QUINCEFIN і повинна створити документ Повернення від покупця програмно. Для створення на основі замовлення передайте ParentDoc з Id замовлення. Якщо потрібно повернути не всі позиції, передайте власний масив Rows з потрібними товарами та кількостями.
Якщо array відсутній або не є масивом, API повертає Not valid format or empty array. Якщо передати більше одного документа, API поверне помилку Only one record can be added at a time.
Поля запиту
| Поле | Опис |
|---|---|
array | Масив з одним документом. |
array[].ParentDoc | Id документа-джерела. Обов’язковий. |
array[].Date | Дата повернення. Якщо не передати, береться дата з шаблону копіювання. |
array[].Company | Id організації. Якщо не передати, береться з документа-джерела. |
array[].Store | Id складу. Якщо не передати, береться з документа-джерела. |
array[].Partner | Id партнера. Якщо не передати, береться з документа-джерела. |
array[].Contract | Id контракту. Якщо не передати, береться з документа-джерела. |
array[].PriceType | Id типу ціни. |
array[].DiscountType | Id типу знижки. |
array[].Responsible | Id відповідального. Якщо не передати, використовується поточний API-користувач. |
array[].Comment | Коментар. |
array[].Fixed | Якщо true, API спробує провести документ після створення. |
array[].Rows | Товарні рядки. Необов’язково: якщо не передати, рядки копіюються з документа-джерела. |
array[].RowsServices | Рядки послуг. Необов’язково: якщо не передати, рядки послуг копіюються з документа-джерела. |
Поля рядків
| Поле | Опис |
|---|---|
Product | Id товару або послуги. Обов’язковий, якщо рядки передаються вручну. |
Qty | Кількість. Якщо не передати, використовується 1. |
Price | Ціна. |
Sum | Сума рядка. Якщо не передати, API рахує Qty * Price. |
Vat | Id ставки ПДВ. |
SumVat | Сума ПДВ. |
Store | Id складу рядка. Якщо не передати, використовується склад документа. |
Unit | Id одиниці виміру. |
QtyRate | Кількість в основній одиниці. |
PercentDiscount | Відсоток знижки. |
PnlItem | Id статті P&L. |
MemoRows | Коментар до рядка. |
Приклад створення на основі замовлення
{
"array": [
{
"ParentDoc": 12345,
"Date": "2026-06-01",
"Comment": "Повернення товару за замовленням покупця",
"Fixed": false
}
]
}
У відповіді API повертає success: true і data[].Id створеного повернення. Якщо передати Fixed: true, документ буде проведено після створення або в елементі data повернеться поле Message з текстом помилки проведення.
Мінімальний робочий сценарій для інтеграції:
- Отримайте або збережіть
Idзамовлення покупця з/api/v2/order/listабо/api/v2/order/add. - Викличте
/api/v2/document/outgoing_return/addзParentDoc. - Якщо повернення часткове, передайте
Rowsтільки з позиціями, які повертаються. - Передайте
Fixed: true, якщо документ потрібно одразу провести. - Якщо проведення не вдалося, перевірте поле
Messageу відповіді та проведіть документ після виправлення даних черезupdate.
Приклад створення з уточненням рядків
{
"array": [
{
"ParentDoc": 12345,
"Date": "2026-06-01",
"Comment": "Часткове повернення за замовленням покупця",
"Fixed": true,
"Rows": [
{
"Product": 1001,
"Qty": 1,
"Price": 450.00,
"Sum": 450.00
}
]
}
]
}
Оновлення повернення від покупця
Назва методу: /api/v2/document/outgoing_return/update
Метод оновлює один документ за запит. Якщо передати більше одного документа, API поверне помилку Only one record can be updated at a time.
| Поле | Опис |
|---|---|
array | Масив з одним документом. |
array[].Id | Id документа повернення. Обов’язковий. |
array[].Date | Дата документа. |
array[].Company | Id організації. |
array[].Store | Id складу. |
array[].Partner | Id партнера. |
array[].Contract | Id контракту. |
array[].PriceType | Id типу ціни. |
array[].DiscountType | Id типу знижки. |
array[].Responsible | Id відповідального. |
array[].Comment | Коментар. |
array[].Fixed | Якщо true, API спробує провести документ після оновлення. |
array[].Rows | Товарні рядки. Якщо не передати, наявні товарні рядки зберігаються. |
array[].RowsServices | Рядки послуг. Якщо не передати, наявні рядки послуг зберігаються. |
Для зміни рядка передайте його Id, який повертається у списку документів у полі Rows. Якщо рядок передати без Id, API створить новий рядок. Рядки, яких немає в переданому масиві, видаляються з документа.
Приклад оновлення
{
"array": [
{
"Id": 67890,
"Date": "2026-06-02",
"Comment": "Уточнене часткове повернення",
"Fixed": false,
"Rows": [
{
"Id": 70001,
"Product": 1001,
"Qty": 1,
"Price": 450.00,
"Sum": 450.00
}
]
}
]
}
Проведення документа
Окремого endpoint fix для цього документа немає. Його аналог для інтеграційного сценарію:
- при
POST /api/v2/document/outgoing_return/addпередатиFixed: true - або при
POST /api/v2/document/outgoing_return/updateпередатиFixed: true.
API зберігає документ і викликає проведення після збереження.
Якщо потрібно спочатку створити чернетку, передайте Fixed: false або не передавайте це поле. Пізніше той самий документ можна провести через update з Id документа і Fixed: true.
Зняття з проведення
Назва методу: /api/v2/document/outgoing_return/unpublish
Метод знімає з проведення один документ за запит. Він викликає Document.UnApply: документ не видаляється і не архівується. Якщо array відсутній, не є масивом, містить більше одного документа або не має Id, API поверне помилку.
Приклад запиту
{
"array": [
{
"Id": 67890
}
]
}
Після успішного виконання документ лишається в системі, але його рухи скасовуються. Для повторного проведення оновіть документ через update з Fixed: true або проведіть його в інтерфейсі QUINCEFIN.