Skip to content

Organizational transfer ​

Stock transfers between organizations

INFO

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

POST /organizational-transfer/create ​

Create a new organizational transfer (cross-organization stock movement) in DRAFT or NEW state.

Тело запроса

ПолеТипОбязательноОписание
codestringНетOptional custom transfer code / reference number
source_organization_idstringДаSending organization ObjectId
destination_organization_idstringДаReceiving organization ObjectId
statestringДаInitial state — draft (held) or new (ready to process). Допустимые значения: draft, new
invoice_createdbooleanНетWhether a supplier invoice was created for this transfer. По умолчанию: false
with_pricebooleanНетWhether product prices are included in the transfer. По умолчанию: false
datestring (date-time)ДаTransfer document date (ISO 8601)
shipping_datestring (date-time)ДаExpected shipment date (ISO 8601)
sender_warehouse_idstringДаSource warehouse ObjectId
sender_employee_idstringДаEmployee responsible for sending ObjectId
reason_idstringДаTransfer reason ObjectId
price_idstringНетPrice-list ObjectId (optional)
notestringНетOptional free-text note (max 500 characters)
currencyobjectНетCurrency snapshot at transfer time (optional)
currency._idstringНетCurrency ObjectId
currency.namestringДа
currency.valuenumberДаExchange rate value
currency.symbolstringНет
requestsobject[]ДаOne or more transfer request lines (each may reference a transfer-request document)
requests[].request_idstringНетLinked transfer-request ObjectId (optional)
requests[].productsobject[]ДаProducts included in this request line
requests[].products[].product_idstringДаProduct ObjectId
requests[].products[].amountnumberДаQuantity to transfer (must be positive)
requests[].products[].pricenumberНетUnit price (optional; required when with_price=true)
requests[].products[].box_countnumberНетNumber of boxes (integer ≥ 0). По умолчанию: 0
requests[].products[].box_itemnumberНетItems per box
requests[].products[].marksstring[]НетMark/serial codes for marked goods. По умолчанию: []
requests[].products[].expiration_datestring (date-time)НетExpiration date (ISO 8601) for perishable goods
requests[].products[].extra_costsobject[]НетPer-product additional costs. По умолчанию: []
additional_costsobject[]НетTransfer-level additional costs. По умолчанию: []
additional_costs[].extra_cost_idstringНет
additional_costs[].amountnumberНет
attachmentsobject[]НетAttached files (documents, scans). По умолчанию: []
attachments[].namestringНет
attachments[].urlstringНет
json
{
  "code": "string",
  "source_organization_id": "string",
  "destination_organization_id": "string",
  "state": "draft",
  "invoice_created": false,
  "with_price": false,
  "date": "2025-05-01T12:00:00Z",
  "shipping_date": "2025-05-01T12:00:00Z",
  "sender_warehouse_id": "string",
  "sender_employee_id": "string",
  "reason_id": "string",
  "price_id": "string",
  "note": "string",
  "currency": {
    "_id": "string",
    "name": "string",
    "value": 0,
    "symbol": "string"
  },
  "requests": [
    {
      "request_id": "string",
      "products": []
    }
  ],
  "additional_costs": [
    {
      "extra_cost_id": "string",
      "amount": 0
    }
  ],
  "attachments": [
    {
      "name": "string",
      "url": "string"
    }
  ]
}

Ответ

json
{
  "code": 0,
  "message": "Success",
  "status_code": 200,
  "data": "string",
  "time": "2025-05-01T12:00:00Z"
}

GET /organizational-transfer/get-by-id/{id} ​

Fetch a single organizational transfer by ObjectId (aggregated detail view with products and requests).

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

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

Тело запроса

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

Ответ

ПолеТипОписание
_idstringTransfer ObjectId
numberstringAuto-generated transfer document number
codestringCustom reference code
statestringДопустимые значения: draft, new, accepted, in_progress, done, canceled
typestringTransfer type (o2o for organizational transfers)
source_organization_idstring
destination_organization_idstring
sender_warehouse_idstring
receiver_warehouse_idstringSet after receive; null until received
sender_employee_idstring
reason_idstring
price_idstring
datestring (date-time)
shipping_datestring (date-time)
invoice_createdboolean
with_priceboolean
notestring
total_amountnumberTotal quantity across all products
total_costnumber
total_pricenumber
total_extra_costnumber
requestsobject[]Transfer request lines with their product details
requests[].request_idstring
requests[].productsobject[]
requests[].products[].product_idstring
requests[].products[].amountnumber
requests[].products[].pricenumber
requests[].products[].box_countnumber
requests[].products[].marksstring[]
requests[].products[].expiration_datestring (date-time)
requests[].products[].sender_stock_beforenumberSender warehouse stock before outflow
requests[].products[].sender_stock_afternumberDerived: sender_stock_before − amount
requests[].products[].receiver_stock_beforenumberReceiver warehouse stock before inflow (set after receive)
requests[].products[].receiver_stock_afternumberDerived: receiver_stock_before + amount (set after receive)
additional_costsobject[]
attachmentsobject[]
created_atstring (date-time)
updated_atstring (date-time)
json
{
  "code": 0,
  "message": "Success",
  "status_code": 200,
  "data": {
    "_id": "string",
    "number": "string",
    "code": "string",
    "state": "draft",
    "type": "string",
    "source_organization_id": "string",
    "destination_organization_id": "string",
    "sender_warehouse_id": "string",
    "receiver_warehouse_id": "string",
    "sender_employee_id": "string",
    "reason_id": "string",
    "price_id": "string",
    "date": "2025-05-01T12:00:00Z",
    "shipping_date": "2025-05-01T12:00:00Z",
    "invoice_created": false,
    "with_price": false,
    "note": "string",
    "total_amount": 0,
    "total_cost": 0,
    "total_price": 0,
    "total_extra_cost": 0,
    "requests": [
      {
        "request_id": "string",
        "products": []
      }
    ],
    "additional_costs": [
      {}
    ],
    "attachments": [
      {}
    ],
    "created_at": "2025-05-01T12:00:00Z",
    "updated_at": "2025-05-01T12:00:00Z"
  },
  "time": "2025-05-01T12:00:00Z"
}

POST /organizational-transfer/get-paging ​

Paginated list of organizational transfers, filterable by organization, warehouse, state, and reason.

Тело запроса

ПолеТипОбязательноОписание
pagenumberДаПо умолчанию: 1
limitnumberДаПо умолчанию: 20
source_organization_idstringНетFilter by sending organization ObjectId
destination_organization_idstringНетFilter by receiving organization ObjectId
sender_warehouse_idstringНетFilter by sender warehouse ObjectId
receiver_warehouse_idstringНетFilter by receiver warehouse ObjectId
statesstring[]НетFilter by one or more transfer states
reason_idstringНетFilter by transfer reason ObjectId
json
{
  "page": 1,
  "limit": 20,
  "source_organization_id": "string",
  "destination_organization_id": "string",
  "sender_warehouse_id": "string",
  "receiver_warehouse_id": "string",
  "states": [
    "draft"
  ],
  "reason_id": "string"
}

Ответ

ПолеТипОписание
totalnumber
listany[]
json
{
  "code": 0,
  "message": "Success",
  "status_code": 200,
  "data": {
    "total": 0,
    "list": []
  },
  "time": "2025-05-01T12:00:00Z"
}

PUT /organizational-transfer/update/{id} ​

Update an existing organizational transfer. Only allowed in DRAFT or NEW state.

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

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

Тело запроса

ПолеТипОбязательноОписание
codestringНетOptional custom transfer code / reference number
source_organization_idstringДаSending organization ObjectId
destination_organization_idstringДаReceiving organization ObjectId
statestringДаInitial state — draft (held) or new (ready to process). Допустимые значения: draft, new
invoice_createdbooleanНетWhether a supplier invoice was created for this transfer. По умолчанию: false
with_pricebooleanНетWhether product prices are included in the transfer. По умолчанию: false
datestring (date-time)ДаTransfer document date (ISO 8601)
shipping_datestring (date-time)ДаExpected shipment date (ISO 8601)
sender_warehouse_idstringДаSource warehouse ObjectId
sender_employee_idstringДаEmployee responsible for sending ObjectId
reason_idstringДаTransfer reason ObjectId
price_idstringНетPrice-list ObjectId (optional)
notestringНетOptional free-text note (max 500 characters)
currencyobjectНетCurrency snapshot at transfer time (optional)
currency._idstringНетCurrency ObjectId
currency.namestringДа
currency.valuenumberДаExchange rate value
currency.symbolstringНет
requestsobject[]ДаOne or more transfer request lines (each may reference a transfer-request document)
requests[].request_idstringНетLinked transfer-request ObjectId (optional)
requests[].productsobject[]ДаProducts included in this request line
requests[].products[].product_idstringДаProduct ObjectId
requests[].products[].amountnumberДаQuantity to transfer (must be positive)
requests[].products[].pricenumberНетUnit price (optional; required when with_price=true)
requests[].products[].box_countnumberНетNumber of boxes (integer ≥ 0). По умолчанию: 0
requests[].products[].box_itemnumberНетItems per box
requests[].products[].marksstring[]НетMark/serial codes for marked goods. По умолчанию: []
requests[].products[].expiration_datestring (date-time)НетExpiration date (ISO 8601) for perishable goods
requests[].products[].extra_costsobject[]НетPer-product additional costs. По умолчанию: []
additional_costsobject[]НетTransfer-level additional costs. По умолчанию: []
additional_costs[].extra_cost_idstringНет
additional_costs[].amountnumberНет
attachmentsobject[]НетAttached files (documents, scans). По умолчанию: []
attachments[].namestringНет
attachments[].urlstringНет
json
{
  "code": "string",
  "source_organization_id": "string",
  "destination_organization_id": "string",
  "state": "draft",
  "invoice_created": false,
  "with_price": false,
  "date": "2025-05-01T12:00:00Z",
  "shipping_date": "2025-05-01T12:00:00Z",
  "sender_warehouse_id": "string",
  "sender_employee_id": "string",
  "reason_id": "string",
  "price_id": "string",
  "note": "string",
  "currency": {
    "_id": "string",
    "name": "string",
    "value": 0,
    "symbol": "string"
  },
  "requests": [
    {
      "request_id": "string",
      "products": []
    }
  ],
  "additional_costs": [
    {
      "extra_cost_id": "string",
      "amount": 0
    }
  ],
  "attachments": [
    {
      "name": "string",
      "url": "string"
    }
  ]
}

Ответ

Структура ответа совпадает с POST /organizational-transfer/create.

PUT /organizational-transfer/set-status/{id} ​

Transition the transfer through the state machine. Valid transitions: NEW→DRAFT|CANCELED|ACCEPTED; DRAFT→NEW; ACCEPTED→IN_PROGRESS|CANCELED; IN_PROGRESS→CANCELED; DONE→CANCELED. Use receive for the ACCEPTED/IN_PROGRESS→DONE transition.

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

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

Тело запроса

ПолеТипОбязательноОписание
statestringДаTarget state. Valid transitions: NEW→DRAFT|CANCELED|ACCEPTED; DRAFT→NEW; ACCEPTED→IN_PROGRESS|CANCELED; IN_PROGRESS→CANCELED; DONE→CANCELED. Use the receive endpoint to transition to DONE.. Допустимые значения: draft, new, accepted, in_progress, canceled
json
{
  "state": "draft"
}

Ответ

Структура ответа совпадает с POST /organizational-transfer/create.

PUT /organizational-transfer/receive/{id} ​

Receive an accepted organizational transfer: transitions ACCEPTED or IN_PROGRESS → DONE and applies stock movement into the receiver warehouse.

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

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

Тело запроса

ПолеТипОбязательноОписание
receiver_warehouse_idstringДаDestination warehouse ObjectId where stock will be received
json
{
  "receiver_warehouse_id": "string"
}

Ответ

Структура ответа совпадает с POST /organizational-transfer/create.


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

Bito 2.0 Integration API