Purchase
INFO
Every response arrives in the shared envelope — code, message, messages, status_code, time — with the payload in data. The tables below describe what is inside data.
POST /purchase/create
This method allows adding purchase into the account.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
code | string | No | |
organization_id | string | Yes | |
state | string | Yes | One of: canceled, new, done, in_progress, draft |
date | string (date) | Yes | |
income_date | string (date) | No | |
responsible_id | string | Yes | |
supplier_id | string | No | |
supliaer_assistant_id | string | No | |
warehouse_id | string | Yes | |
currency_id | string | Yes | |
note | string | No | |
price_id | string | No | |
orders | object[] | Yes | |
orders[].order_id | string | No | |
orders[].products | object[] | Yes | |
orders[].products[].order_item_id | string | No | |
orders[].products[].product_id | string | Yes | |
orders[].products[].amount | number | Yes | |
orders[].products[].box_count | number | No | |
orders[].products[].box_item | number | No | |
orders[].products[].cost | number | Yes | |
orders[].products[].extra_cost | number | Yes | |
orders[].products[].extra_costs | object[] | Yes | |
orders[].products[].marks | string[] | Yes | |
orders[].products[].prices | object[] | Yes | |
additional_costs | object[] | Yes | |
additional_costs[].cost_id | string | Yes | |
additional_costs[].amount | number | Yes | |
additional_costs[].customer_id | string | No | |
additional_costs[].employee_id | string | No | |
additional_costs[].supplier_id | string | No | |
additional_costs[].person_id | string | No | |
is_auto_income | boolean | No | |
contract_id | string | No |
json
{
"code": "PR-001",
"organization_id": "64b7f4d9e2b3b6a0b7c5d80a",
"state": "new",
"date": "2023-10-01",
"income_date": "2023-10-01",
"responsible_id": "64b7f4d9e2b3b6a0b7c5d80a",
"supplier_id": "64b7f4d9e2b3b6a0b7c5d80a",
"supliaer_assistant_id": "64b7f4d9e2b3b6a0b7c5d80a",
"warehouse_id": "64b7f4d9e2b3b6a0b7c5d80a",
"currency_id": "64b7f4d9e2b3b6a0b7c5d80a",
"note": "This is a note",
"price_id": "64b7f4d9e2b3b6a0b7c5d80a",
"orders": [
{
"order_id": "64b7f4d9e2b3b6a0b7c5d80a",
"products": []
}
],
"additional_costs": [
{
"cost_id": "64b7f4d9e2b3b6a0b7c5d80a",
"amount": 10,
"customer_id": "64b7f4d9e2b3b6a0b7c5d80a",
"employee_id": "64b7f4d9e2b3b6a0b7c5d80a",
"supplier_id": "64b7f4d9e2b3b6a0b7c5d80a",
"person_id": "64b7f4d9e2b3b6a0b7c5d80a"
}
],
"is_auto_income": true,
"contract_id": "64b7f4d9e2b3b6a0b7c5d80a"
}Response
| Field | Type | Description |
|---|---|---|
created_at | string (date-time) | |
updated_at | string (date-time) | |
code | string | |
number | string | |
organization_id | string | |
organization | object | |
organization._id | string | |
organization.name | string | |
state | string | |
date | string (date-time) | |
income_date | string (date-time) | |
responsible_id | string | |
responsible | object | |
responsible._id | string | |
responsible.full_name | string | |
supplier_id | string | |
supplier | object | |
supplier._id | string | |
supplier.name | string | |
created_by | object | |
created_by._id | string | |
created_by.full_name | string | |
suplier_assistant | object | |
suplier_assistant._id | string | |
suplier_assistant.name | string | |
suplier_assistant.type | string | |
supplier_assistant_hierarchy | object[] | |
supplier_assistant_hierarchy[]._id | string | |
supplier_assistant_hierarchy[].name | string | |
supplier_assistant_hierarchy[].type | string | |
supplier_assistant_hierarchy[].first_name | string | |
supplier_assistant_hierarchy[].last_name | string | |
supplier_assistant_hierarchy[].middle_name | string | |
currency_id | string | |
currency | object | |
currency._id | string | |
currency.name | string | |
currency.uuid | number | |
currency.value | number | |
currency.symbol | string | |
currency.side | string | |
note | string | |
total_amount | number | |
total_cost | number | |
additional_costs | object[] | |
orders | object[] | |
invoice | object | |
is_fully_income | boolean | |
total_income | number | |
total_refunded | number | |
is_auto_create | boolean | |
is_fully_refunded | boolean | |
incomes | object[] | |
purchase_returns | object[] | |
total_extra_cost | number | |
contract_id | string | |
contract | object | |
contract._id | string | |
contract.name | string | |
contract.code | string | |
contract.number | string | |
contract.currency_id | string | |
contract.organization_id | string | |
contract.amount | number | |
contract.date | string (date-time) | |
contract.expire_date | string (date-time) | |
contract.person_id | string | |
contract.note | string | |
contract.is_active | boolean | |
contract.contract_number | string |
json
{
"code": 0,
"message": "Success",
"status_code": 200,
"data": {
"created_at": "2025-05-01T12:00:00Z",
"updated_at": "2025-05-01T12:00:00Z",
"code": "string",
"number": "string",
"organization_id": "string",
"organization": {
"_id": "string",
"name": "string"
},
"state": "string",
"date": "2025-05-01T12:00:00Z",
"income_date": "2025-05-01T12:00:00Z",
"responsible_id": "string",
"responsible": {
"_id": "string",
"full_name": "string"
},
"supplier_id": "string",
"supplier": {
"_id": "string",
"name": "string"
},
"created_by": {
"_id": "string",
"full_name": "string"
},
"suplier_assistant": {
"_id": "string",
"name": "string",
"type": "string"
},
"supplier_assistant_hierarchy": [
{
"_id": "string",
"name": "string",
"type": "string",
"first_name": "string",
"last_name": "string",
"middle_name": "string"
}
],
"currency_id": "string",
"currency": {
"_id": "string",
"name": "string",
"uuid": 0,
"value": 0,
"symbol": "string",
"side": "string"
},
"note": "string",
"total_amount": 0,
"total_cost": 0,
"additional_costs": [
{}
],
"orders": [
{}
],
"invoice": {},
"is_fully_income": false,
"total_income": 0,
"total_refunded": 0,
"is_auto_create": false,
"is_fully_refunded": false,
"incomes": [
{}
],
"purchase_returns": [
{}
],
"total_extra_cost": 0,
"contract_id": "string",
"contract": {
"_id": "string",
"name": "string",
"code": "string",
"number": "string",
"currency_id": "string",
"organization_id": "string",
"amount": 0,
"date": "2025-05-01T12:00:00Z",
"expire_date": "2025-05-01T12:00:00Z",
"person_id": "string",
"note": "string",
"is_active": false,
"contract_number": "string"
}
},
"time": "2025-05-01T12:00:00Z"
}PUT /purchase/update
This method allows updating purchase in the account.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
_id | string | No | |
code | string | No | |
organization_id | string | Yes | |
date | string (date) | Yes | |
income_date | string (date) | No | |
responsible_id | string | Yes | |
supliaer_id | string | Yes | |
supliaer_assistant_id | string | No | |
warehouse_id | string | Yes | |
currency_id | string | Yes | |
note | string | No | |
orders | object[] | Yes | |
orders[].order_id | string | No | |
orders[].products | object[] | Yes | |
orders[].products[].order_item_id | string | No | |
orders[].products[].product_id | string | Yes | |
orders[].products[].amount | number | Yes | |
orders[].products[].box_count | number | No | |
orders[].products[].box_item | number | No | |
orders[].products[].cost | number | Yes | |
orders[].products[].extra_cost | number | Yes | |
orders[].products[].extra_costs | object[] | Yes | |
orders[].products[].prices | object[] | Yes | |
additional_costs | object[] | Yes | |
additional_costs[].cost_id | string | Yes | |
additional_costs[].amount | number | Yes | |
additional_costs[].customer_id | string | No | |
additional_costs[].employee_id | string | No | |
additional_costs[].supplier_id | string | No | |
additional_costs[].person_id | string | No | |
is_auto_income | boolean | No | |
contract_id | string | No |
json
{
"_id": "64b7f4d9e2b3b6a0b7c5d80a",
"code": "PR-001",
"organization_id": "64b7f4d9e2b3b6a0b7c5d80a",
"date": "2023-10-01",
"income_date": "2023-10-01",
"responsible_id": "64b7f4d9e2b3b6a0b7c5d80a",
"supliaer_id": "64b7f4d9e2b3b6a0b7c5d80a",
"supliaer_assistant_id": "64b7f4d9e2b3b6a0b7c5d80a",
"warehouse_id": "64b7f4d9e2b3b6a0b7c5d80a",
"currency_id": "64b7f4d9e2b3b6a0b7c5d80a",
"note": "This is a note",
"orders": [
{
"order_id": "64b7f4d9e2b3b6a0b7c5d80a",
"products": []
}
],
"additional_costs": [
{
"cost_id": "64b7f4d9e2b3b6a0b7c5d80a",
"amount": 10,
"customer_id": "64b7f4d9e2b3b6a0b7c5d80a",
"employee_id": "64b7f4d9e2b3b6a0b7c5d80a",
"supplier_id": "64b7f4d9e2b3b6a0b7c5d80a",
"person_id": "64b7f4d9e2b3b6a0b7c5d80a"
}
],
"is_auto_income": true,
"contract_id": "64b7f4d9e2b3b6a0b7c5d80a"
}Response
Same response shape as POST /purchase/create.
POST /purchase/get-paging
Get purchase by paging
Request body
| Field | Type | Required | Description |
|---|---|---|---|
page | number | Yes | Default: 1 |
limit | number | Yes | Default: 20 |
search | string | No | search string to filter by code or name |
states | string[] | No | list of states to filter by state |
organization_id | string | No | organization id to filter by organization |
responsible_id | string | No | responsible id to filter by responsible |
date_from | string (date-time) | No | date from to filter by date |
date_to | string (date-time) | No | date to to filter by date |
supliaer_id | string | No | supplier id to filter by supplier |
is_fully_income | boolean | No | is fully income to filter by fully income |
is_fully_refunded | boolean | No | is fully refunded to filter by fully refunded |
has_any_income | boolean | No | has any income to filter by any income |
contract_id | string | No | contract id to filter by contract |
income_states | string[] | No | list of states to filter by income state |
refunded_states | string[] | No | list of states to filter by refunded state |
currency_id | string | No | currency id to filter by currency |
updated_at | string (date-time) | No | updated at from to filter by updated at |
total_from | number | No | total from to filter by total |
total_to | number | No | total to to filter by total |
is_auto_create | boolean | No | is auto created to filter by auto created |
sort_by | string | No | sort by field to sort by |
json
{
"page": 1,
"limit": 20,
"search": "string",
"states": [
"canceled"
],
"organization_id": "string",
"responsible_id": "string",
"date_from": "2025-05-01T12:00:00Z",
"date_to": "2025-05-01T12:00:00Z",
"supliaer_id": "string",
"is_fully_income": false,
"is_fully_refunded": false,
"has_any_income": false,
"contract_id": "string",
"income_states": [
"zero"
],
"refunded_states": [
"zero"
],
"currency_id": "string",
"updated_at": "2025-05-01T12:00:00Z",
"total_from": 0,
"total_to": 0,
"is_auto_create": false,
"sort_by": "string"
}Response
| Field | Type | Description |
|---|---|---|
code | string | |
message | string | |
status_code | number | status code of response. Default: 200 |
messages | object | |
messages.uz | string | |
messages.ru | string | |
messages.en | string | |
time | string (date-time) | time of response |
created_at | string (date-time) | |
updated_at | string (date-time) | |
number | string | |
organization_id | string | |
organization | object | |
organization._id | string | |
organization.name | string | |
state | string | |
date | string (date-time) | |
income_date | string (date-time) | |
responsible_id | string | |
responsible | object | |
responsible._id | string | |
responsible.full_name | string | |
supplier_id | string | |
supplier | object | |
supplier._id | string | |
supplier.name | string | |
currency_id | string | |
total_amount | number | |
total_cost | number | |
is_fully_income | boolean | |
total_income | number | |
total_refunded | number | |
is_fully_refunded | boolean | |
contract | object | |
contract._id | string | |
contract.name | string | |
contract.code | string | |
contract.number | string | |
contract.currency_id | string | |
contract.organization_id | string | |
contract.amount | number | |
contract.date | string (date-time) | |
contract.expire_date | string (date-time) | |
contract.person_id | string | |
contract.note | string | |
contract.is_active | boolean | |
contract.contract_number | string |
json
{
"code": 0,
"message": "Success",
"status_code": 200,
"data": {
"code": "string",
"message": "Success",
"status_code": 200,
"messages": {
"uz": "Muvaffaqiyatli",
"ru": "Успешно",
"en": "Successful"
},
"time": "2025-05-01T12:00:00Z",
"created_at": "2025-05-01T12:00:00Z",
"updated_at": "2025-05-01T12:00:00Z",
"number": "string",
"organization_id": "string",
"organization": {
"_id": "string",
"name": "string"
},
"state": "string",
"date": "2025-05-01T12:00:00Z",
"income_date": "2025-05-01T12:00:00Z",
"responsible_id": "string",
"responsible": {
"_id": "string",
"full_name": "string"
},
"supplier_id": "string",
"supplier": {
"_id": "string",
"name": "string"
},
"currency_id": "string",
"total_amount": 0,
"total_cost": 0,
"is_fully_income": false,
"total_income": 0,
"total_refunded": 0,
"is_fully_refunded": false,
"contract": {
"_id": "string",
"name": "string",
"code": "string",
"number": "string",
"currency_id": "string",
"organization_id": "string",
"amount": 0,
"date": "2025-05-01T12:00:00Z",
"expire_date": "2025-05-01T12:00:00Z",
"person_id": "string",
"note": "string",
"is_active": false,
"contract_number": "string"
}
},
"time": "2025-05-01T12:00:00Z"
}GET /purchase/get-by-id/{id}
Get purchase using its _id
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes |
Request body
No request body.
Response
Same response shape as POST /purchase/create.
PUT /purchase/set-state
setState purchase
Request body
| Field | Type | Required | Description |
|---|---|---|---|
_id | string | Yes | |
state | string | Yes | One of: canceled, new, done, in_progress, draft |
cancel_extra_cost | boolean | Yes | cancel extra costs when canceling the purchase. Default: false |
with_transactions | boolean | Yes | cancel transactions when canceling the purchase. Default: false |
json
{
"_id": "64b7f4d9e2b3b6a0b7c5d80a",
"state": "new",
"cancel_extra_cost": false,
"with_transactions": false
}Response
Same response shape as POST /purchase/create.
This page is generated from the OpenAPI spec.