Skip to content

Purchase order ​

INFO

Каждый ответ приходит в общем конверте — code, message, messages, status_code, time — а полезная нагрузка лежит в data. Таблицы ниже описывают содержимое data.

GET /purchase-order/get-by-id/{id} ​

Get a purchase order by its _id (detailed view).

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

ПараметрТипОбязательноОписание
idstringДа

Тело запроса

Тело запроса не требуется.

Ответ

ПолеТипОписание
_idstring
numberstring
codestring
organization_idstring
supplier_idstring
supplierobject
supplier._idstring
supplier.namestring
responsible_idstring
responsibleobject
responsible._idstring
responsible.full_namestring
warehouse_idstring
currency_idstring
datestring (date-time)
delivery_datestring (date-time)
statestringДопустимые значения: new, in_progress, done, canceled, draft
is_fully_purchasedboolean
totalnumber
notestring
itemsobject[]
items[]._idstring
items[].product_idstring
items[].amountnumber
items[].costnumber
items[].purchased_amountnumber
created_atstring (date-time)
updated_atstring (date-time)
json
{
  "code": 0,
  "message": "Success",
  "status_code": 200,
  "data": {
    "_id": "string",
    "number": "string",
    "code": "string",
    "organization_id": "string",
    "supplier_id": "string",
    "supplier": {
      "_id": "string",
      "name": "string"
    },
    "responsible_id": "string",
    "responsible": {
      "_id": "string",
      "full_name": "string"
    },
    "warehouse_id": "string",
    "currency_id": "string",
    "date": "2025-05-01T12:00:00Z",
    "delivery_date": "2025-05-01T12:00:00Z",
    "state": "new",
    "is_fully_purchased": false,
    "total": 0,
    "note": "string",
    "items": [
      {
        "_id": "string",
        "product_id": "string",
        "amount": 0,
        "cost": 0,
        "purchased_amount": 0
      }
    ],
    "created_at": "2025-05-01T12:00:00Z",
    "updated_at": "2025-05-01T12:00:00Z"
  },
  "time": "2025-05-01T12:00:00Z"
}

POST /purchase-order/get-paging ​

Paginated list of purchase orders with optional filters.

Тело запроса

ПолеТипОбязательноОписание
pagenumberДаПо умолчанию: 1
limitnumberДаПо умолчанию: 20
statesstring[]Нет
organization_idstringНет
supplier_idstringНет
responsible_idstringНет
currency_idstringНет
is_fully_purchasedbooleanНет
json
{
  "page": 1,
  "limit": 20,
  "states": [
    "new"
  ],
  "organization_id": "string",
  "supplier_id": "string",
  "responsible_id": "string",
  "currency_id": "string",
  "is_fully_purchased": false
}

Ответ

ПолеТипОписание
listobject[]
list[]._idstring
list[].numberstring
list[].codestring
list[].organization_idstring
list[].supplier_idstring
list[].supplierobject
list[].supplier._idstring
list[].supplier.namestring
list[].responsible_idstring
list[].responsibleobject
list[].responsible._idstring
list[].responsible.full_namestring
list[].warehouse_idstring
list[].currency_idstring
list[].datestring (date-time)
list[].delivery_datestring (date-time)
list[].statestringДопустимые значения: new, in_progress, done, canceled, draft
list[].is_fully_purchasedboolean
list[].totalnumber
list[].notestring
list[].itemsobject[]
list[].items[]._idstring
list[].items[].product_idstring
list[].items[].amountnumber
list[].items[].costnumber
list[].items[].purchased_amountnumber
list[].created_atstring (date-time)
list[].updated_atstring (date-time)
totalnumber
json
{
  "code": 0,
  "message": "Success",
  "status_code": 200,
  "data": {
    "list": [
      {
        "_id": "string",
        "number": "string",
        "code": "string",
        "organization_id": "string",
        "supplier_id": "string",
        "supplier": {
          "_id": null,
          "name": null
        },
        "responsible_id": "string",
        "responsible": {
          "_id": null,
          "full_name": null
        },
        "warehouse_id": "string",
        "currency_id": "string",
        "date": "2025-05-01T12:00:00Z",
        "delivery_date": "2025-05-01T12:00:00Z",
        "state": "new",
        "is_fully_purchased": false,
        "total": 0,
        "note": "string",
        "items": [],
        "created_at": "2025-05-01T12:00:00Z",
        "updated_at": "2025-05-01T12:00:00Z"
      }
    ],
    "total": 0
  },
  "time": "2025-05-01T12:00:00Z"
}

POST /purchase-order/create ​

Open a purchase order — the request stage that precedes a purchase. Ordered quantities are validated against product stock/measure rules before anything is written. state must be "new"; any other value is rejected. Returns the created order in its detailed form.

Тело запроса

ПолеТипОбязательноОписание
organization_idstringДаOrganization placing the order (required). Must exist.
ordered_atstring (date-time)ДаWhen the order was placed (required, ISO 8601).
purchase_datestring (date-time)НетExpected purchase/delivery date.
responsible_idstringДаResponsible user ObjectId (required).
supplier_idstringДаSupplier ObjectId (required).
supplier_assistant_idstringНетSupplier-side contact person ObjectId.
currency_idstringДаCurrency the costs are quoted in (required).
price_idstringНетPrice list the costs were quoted from.
statestringДаInitial state (required). Only "new" is accepted on create — anything else is rejected.. Допустимые значения: new, accepted, in_progress, done, canceled, draft
state_idstringНетBoard column ObjectId. When omitted the default column for the state is resolved.
codestringНетCaller-supplied external code.
notestringНетFree-text note.
requestsobject[]ДаOrder lines grouped by source purchase request (required, at least one group).
requests[].request_idstringНетSource purchase-request ObjectId. Omit for an order raised without a request.
requests[].productsobject[]ДаLines in this group (required, at least one).
requests[].products[].product_idstringДаProduct ObjectId (required).
requests[].products[].amountnumberДаOrdered quantity (required, > 0). Validated against the product measure.
requests[].products[].box_countnumberНетWhole boxes ordered. Defaults to 0.
requests[].products[].costnumberНетUnit cost in the order currency.
requests[].products[].total_costnumberНетLine total. Derived when omitted.
requests[].products[].request_item_idstringНетSource purchase-request line this order line fulfils.
requests[].products[].used_measureobjectНетAlternative unit of measure: { _id, ratio, amount }.
attachmentsobject[]НетAttached files: { name, path, size, note }.
json
{
  "organization_id": "64b7f4d9e2b3b6a0b7c5d80a",
  "ordered_at": "2025-05-01T12:00:00Z",
  "purchase_date": "2025-05-01T12:00:00Z",
  "responsible_id": "string",
  "supplier_id": "string",
  "supplier_assistant_id": "string",
  "currency_id": "string",
  "price_id": "string",
  "state": "new",
  "state_id": "string",
  "code": "string",
  "note": "string",
  "requests": [
    {
      "request_id": "string",
      "products": []
    }
  ],
  "attachments": [
    {}
  ]
}

Ответ

Структура ответа совпадает с GET /purchase-order/get-by-id/{id}.

PUT /purchase-order/set-state ​

Move a purchase order along its lifecycle. Allowed transitions: new → in_progress | accepted | canceled; in_progress → done | in_progress; accepted → done. Returns the updated order in its detailed form.

Тело запроса

ПолеТипОбязательноОписание
_idstringДаPurchase order ObjectId (required).
statestringДаTarget state (required). Allowed transitions: new → in_progress | accepted | canceled; in_progress → done | in_progress; accepted → done. An unsupported transition is rejected.. Допустимые значения: new, accepted, in_progress, done, canceled, draft
state_idstringНетBoard column ObjectId to move the order into.
json
{
  "_id": "64b7f4d9e2b3b6a0b7c5d80a",
  "state": "new",
  "state_id": "string"
}

Ответ

Структура ответа совпадает с GET /purchase-order/get-by-id/{id}.


Эта страница сгенерирована из спецификации OpenAPI.

Bito 2.0 Integration API