openapi: '3.0.3'
info:
title: Backbone API
version: '1.0.0'
description: |
Auto-generated by backbone-cli.
This API provides 11 standard CRUD endpoints for each model.
servers:
- url: /
description: Development server
tags:
- name: PickingBatches
description: PickingBatch management endpoints
- name: DeliveryNotes
description: DeliveryNote management endpoints
- name: DeliveryNoteItems
description: DeliveryNoteItem management endpoints
- name: InventoryCompanySettings
description: InventoryCompanySetting management endpoints
- name: LandedCosts
description: LandedCost management endpoints
- name: LandedCostLines
description: LandedCostLine management endpoints
- name: LandedCostAdjustmentLines
description: LandedCostAdjustmentLine management endpoints
- name: Locations
description: Location management endpoints
- name: StockMoves
description: StockMove management endpoints
- name: StockMoveLines
description: StockMoveLine management endpoints
- name: OperationTypes
description: OperationType management endpoints
- name: Transfers
description: Transfer management endpoints
- name: Routes
description: Route management endpoints
- name: RouteRules
description: RouteRule management endpoints
- name: ReorderingRules
description: ReorderingRule management endpoints
- name: PurchaseReceipts
description: PurchaseReceipt management endpoints
- name: PurchaseReceiptItems
description: PurchaseReceiptItem management endpoints
- name: Quants
description: Quant management endpoints
- name: Scraps
description: Scrap management endpoints
- name: ScrapReasonTags
description: ScrapReasonTag management endpoints
- name: StockEntries
description: StockEntry management endpoints
- name: StockEntryItems
description: StockEntryItem management endpoints
- name: StockLedgerEntries
description: StockLedgerEntry management endpoints
- name: Bins
description: Bin management endpoints
- name: StockReconciliations
description: StockReconciliation management endpoints
- name: StockReconciliationItems
description: StockReconciliationItem management endpoints
- name: PackageTypes
description: PackageType management endpoints
- name: StorageCategories
description: StorageCategory management endpoints
- name: StorageCategoryCapacities
description: StorageCategoryCapacity management endpoints
- name: PutawayRules
description: PutawayRule management endpoints
- name: Lots
description: Lot management endpoints
- name: Packages
description: Package management endpoints
- name: Warehouses
description: Warehouse management endpoints
- name: StockItems
description: StockItem management endpoints
paths:
/api/v1/inventory/picking_batches:
get:
tags:
- PickingBatches
summary: List PickingBatches
description: Get a paginated list of PickingBatches with optional filtering and sorting
operationId: listPickingBatches
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/PickingBatchList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- PickingBatches
summary: Create PickingBatch
description: Create a new PickingBatch
operationId: createPickingBatch
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePickingBatchRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/PickingBatch'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/picking_batches/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- PickingBatches
summary: Get PickingBatch by ID
operationId: getPickingBatch
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/PickingBatch'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- PickingBatches
summary: Update PickingBatch (full)
operationId: updatePickingBatch
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePickingBatchRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/PickingBatch'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- PickingBatches
summary: Update PickingBatch (partial)
operationId: patchPickingBatch
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchPickingBatchRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/PickingBatch'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- PickingBatches
summary: Delete PickingBatch (soft)
operationId: deletePickingBatch
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/picking_batches/bulk:
post:
tags:
- PickingBatches
summary: Bulk create PickingBatches
operationId: bulkCreatePickingBatches
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreatePickingBatchRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PickingBatch'
put:
tags:
- PickingBatches
summary: Bulk update PickingBatches (full, atomic)
operationId: bulkUpdatePickingBatches
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdatePickingBatchRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/PickingBatchBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- PickingBatches
summary: Bulk partial-update PickingBatches (atomic)
operationId: bulkPatchPickingBatches
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/PickingBatchBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/picking_batches/upsert:
post:
tags:
- PickingBatches
summary: Upsert PickingBatch
operationId: upsertPickingBatch
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePickingBatchRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/PickingBatch'
/api/v1/inventory/picking_batches/trash:
get:
tags:
- PickingBatches
summary: List deleted PickingBatches
operationId: listDeletedPickingBatches
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/PickingBatchList'
/api/v1/inventory/picking_batches/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- PickingBatches
summary: Restore deleted PickingBatch
operationId: restorePickingBatch
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/PickingBatch'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/picking_batches/empty:
delete:
tags:
- PickingBatches
summary: Empty trash for PickingBatches
operationId: emptyTrashPickingBatches
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/picking_batches/delete/bulk:
post:
tags:
- PickingBatches
summary: Bulk soft-delete PickingBatches by ids (atomic)
operationId: bulkDeletePickingBatches
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/picking_batches/restore/bulk:
post:
tags:
- PickingBatches
summary: Bulk restore PickingBatches by ids (atomic)
operationId: bulkRestorePickingBatches
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/PickingBatchBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/picking_batches/restore/all:
post:
tags:
- PickingBatches
summary: Restore all soft-deleted PickingBatches
operationId: restoreAllPickingBatches
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/picking_batches/trash/bulk:
delete:
tags:
- PickingBatches
summary: Bulk permanently-delete PickingBatches from trash by ids (atomic)
operationId: bulkPermanentDeletePickingBatches
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/delivery_notes:
get:
tags:
- DeliveryNotes
summary: List DeliveryNotes
description: Get a paginated list of DeliveryNotes with optional filtering and sorting
operationId: listDeliveryNotes
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryNoteList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- DeliveryNotes
summary: Create DeliveryNote
description: Create a new DeliveryNote
operationId: createDeliveryNote
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateDeliveryNoteRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryNote'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/delivery_notes/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- DeliveryNotes
summary: Get DeliveryNote by ID
operationId: getDeliveryNote
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryNote'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- DeliveryNotes
summary: Update DeliveryNote (full)
operationId: updateDeliveryNote
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateDeliveryNoteRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryNote'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- DeliveryNotes
summary: Update DeliveryNote (partial)
operationId: patchDeliveryNote
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchDeliveryNoteRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryNote'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- DeliveryNotes
summary: Delete DeliveryNote (soft)
operationId: deleteDeliveryNote
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/delivery_notes/bulk:
post:
tags:
- DeliveryNotes
summary: Bulk create DeliveryNotes
operationId: bulkCreateDeliveryNotes
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateDeliveryNoteRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/DeliveryNote'
put:
tags:
- DeliveryNotes
summary: Bulk update DeliveryNotes (full, atomic)
operationId: bulkUpdateDeliveryNotes
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateDeliveryNoteRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryNoteBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- DeliveryNotes
summary: Bulk partial-update DeliveryNotes (atomic)
operationId: bulkPatchDeliveryNotes
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryNoteBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/delivery_notes/upsert:
post:
tags:
- DeliveryNotes
summary: Upsert DeliveryNote
operationId: upsertDeliveryNote
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateDeliveryNoteRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryNote'
/api/v1/inventory/delivery_notes/trash:
get:
tags:
- DeliveryNotes
summary: List deleted DeliveryNotes
operationId: listDeletedDeliveryNotes
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryNoteList'
/api/v1/inventory/delivery_notes/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- DeliveryNotes
summary: Restore deleted DeliveryNote
operationId: restoreDeliveryNote
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryNote'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/delivery_notes/empty:
delete:
tags:
- DeliveryNotes
summary: Empty trash for DeliveryNotes
operationId: emptyTrashDeliveryNotes
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/delivery_notes/delete/bulk:
post:
tags:
- DeliveryNotes
summary: Bulk soft-delete DeliveryNotes by ids (atomic)
operationId: bulkDeleteDeliveryNotes
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/delivery_notes/restore/bulk:
post:
tags:
- DeliveryNotes
summary: Bulk restore DeliveryNotes by ids (atomic)
operationId: bulkRestoreDeliveryNotes
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryNoteBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/delivery_notes/restore/all:
post:
tags:
- DeliveryNotes
summary: Restore all soft-deleted DeliveryNotes
operationId: restoreAllDeliveryNotes
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/delivery_notes/trash/bulk:
delete:
tags:
- DeliveryNotes
summary: Bulk permanently-delete DeliveryNotes from trash by ids (atomic)
operationId: bulkPermanentDeleteDeliveryNotes
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/delivery_note_items:
get:
tags:
- DeliveryNoteItems
summary: List DeliveryNoteItems
description: Get a paginated list of DeliveryNoteItems with optional filtering and sorting
operationId: listDeliveryNoteItems
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryNoteItemList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- DeliveryNoteItems
summary: Create DeliveryNoteItem
description: Create a new DeliveryNoteItem
operationId: createDeliveryNoteItem
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateDeliveryNoteItemRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryNoteItem'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/delivery_note_items/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- DeliveryNoteItems
summary: Get DeliveryNoteItem by ID
operationId: getDeliveryNoteItem
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryNoteItem'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- DeliveryNoteItems
summary: Update DeliveryNoteItem (full)
operationId: updateDeliveryNoteItem
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateDeliveryNoteItemRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryNoteItem'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- DeliveryNoteItems
summary: Update DeliveryNoteItem (partial)
operationId: patchDeliveryNoteItem
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchDeliveryNoteItemRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryNoteItem'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- DeliveryNoteItems
summary: Delete DeliveryNoteItem (soft)
operationId: deleteDeliveryNoteItem
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/delivery_note_items/bulk:
post:
tags:
- DeliveryNoteItems
summary: Bulk create DeliveryNoteItems
operationId: bulkCreateDeliveryNoteItems
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateDeliveryNoteItemRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/DeliveryNoteItem'
put:
tags:
- DeliveryNoteItems
summary: Bulk update DeliveryNoteItems (full, atomic)
operationId: bulkUpdateDeliveryNoteItems
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateDeliveryNoteItemRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryNoteItemBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- DeliveryNoteItems
summary: Bulk partial-update DeliveryNoteItems (atomic)
operationId: bulkPatchDeliveryNoteItems
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryNoteItemBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/delivery_note_items/upsert:
post:
tags:
- DeliveryNoteItems
summary: Upsert DeliveryNoteItem
operationId: upsertDeliveryNoteItem
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateDeliveryNoteItemRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryNoteItem'
/api/v1/inventory/delivery_note_items/trash:
get:
tags:
- DeliveryNoteItems
summary: List deleted DeliveryNoteItems
operationId: listDeletedDeliveryNoteItems
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryNoteItemList'
/api/v1/inventory/delivery_note_items/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- DeliveryNoteItems
summary: Restore deleted DeliveryNoteItem
operationId: restoreDeliveryNoteItem
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryNoteItem'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/delivery_note_items/empty:
delete:
tags:
- DeliveryNoteItems
summary: Empty trash for DeliveryNoteItems
operationId: emptyTrashDeliveryNoteItems
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/delivery_note_items/delete/bulk:
post:
tags:
- DeliveryNoteItems
summary: Bulk soft-delete DeliveryNoteItems by ids (atomic)
operationId: bulkDeleteDeliveryNoteItems
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/delivery_note_items/restore/bulk:
post:
tags:
- DeliveryNoteItems
summary: Bulk restore DeliveryNoteItems by ids (atomic)
operationId: bulkRestoreDeliveryNoteItems
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryNoteItemBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/delivery_note_items/restore/all:
post:
tags:
- DeliveryNoteItems
summary: Restore all soft-deleted DeliveryNoteItems
operationId: restoreAllDeliveryNoteItems
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/delivery_note_items/trash/bulk:
delete:
tags:
- DeliveryNoteItems
summary: Bulk permanently-delete DeliveryNoteItems from trash by ids (atomic)
operationId: bulkPermanentDeleteDeliveryNoteItems
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/inventory_company_settings:
get:
tags:
- InventoryCompanySettings
summary: List InventoryCompanySettings
description: Get a paginated list of InventoryCompanySettings with optional filtering and sorting
operationId: listInventoryCompanySettings
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/InventoryCompanySettingList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- InventoryCompanySettings
summary: Create InventoryCompanySetting
description: Create a new InventoryCompanySetting
operationId: createInventoryCompanySetting
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateInventoryCompanySettingRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/InventoryCompanySetting'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/inventory_company_settings/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- InventoryCompanySettings
summary: Get InventoryCompanySetting by ID
operationId: getInventoryCompanySetting
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/InventoryCompanySetting'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- InventoryCompanySettings
summary: Update InventoryCompanySetting (full)
operationId: updateInventoryCompanySetting
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateInventoryCompanySettingRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/InventoryCompanySetting'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- InventoryCompanySettings
summary: Update InventoryCompanySetting (partial)
operationId: patchInventoryCompanySetting
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchInventoryCompanySettingRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/InventoryCompanySetting'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- InventoryCompanySettings
summary: Delete InventoryCompanySetting (soft)
operationId: deleteInventoryCompanySetting
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/inventory_company_settings/bulk:
post:
tags:
- InventoryCompanySettings
summary: Bulk create InventoryCompanySettings
operationId: bulkCreateInventoryCompanySettings
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateInventoryCompanySettingRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/InventoryCompanySetting'
put:
tags:
- InventoryCompanySettings
summary: Bulk update InventoryCompanySettings (full, atomic)
operationId: bulkUpdateInventoryCompanySettings
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateInventoryCompanySettingRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/InventoryCompanySettingBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- InventoryCompanySettings
summary: Bulk partial-update InventoryCompanySettings (atomic)
operationId: bulkPatchInventoryCompanySettings
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/InventoryCompanySettingBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/inventory_company_settings/upsert:
post:
tags:
- InventoryCompanySettings
summary: Upsert InventoryCompanySetting
operationId: upsertInventoryCompanySetting
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateInventoryCompanySettingRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/InventoryCompanySetting'
/api/v1/inventory/inventory_company_settings/trash:
get:
tags:
- InventoryCompanySettings
summary: List deleted InventoryCompanySettings
operationId: listDeletedInventoryCompanySettings
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/InventoryCompanySettingList'
/api/v1/inventory/inventory_company_settings/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- InventoryCompanySettings
summary: Restore deleted InventoryCompanySetting
operationId: restoreInventoryCompanySetting
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/InventoryCompanySetting'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/inventory_company_settings/empty:
delete:
tags:
- InventoryCompanySettings
summary: Empty trash for InventoryCompanySettings
operationId: emptyTrashInventoryCompanySettings
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/inventory_company_settings/delete/bulk:
post:
tags:
- InventoryCompanySettings
summary: Bulk soft-delete InventoryCompanySettings by ids (atomic)
operationId: bulkDeleteInventoryCompanySettings
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/inventory_company_settings/restore/bulk:
post:
tags:
- InventoryCompanySettings
summary: Bulk restore InventoryCompanySettings by ids (atomic)
operationId: bulkRestoreInventoryCompanySettings
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/InventoryCompanySettingBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/inventory_company_settings/restore/all:
post:
tags:
- InventoryCompanySettings
summary: Restore all soft-deleted InventoryCompanySettings
operationId: restoreAllInventoryCompanySettings
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/inventory_company_settings/trash/bulk:
delete:
tags:
- InventoryCompanySettings
summary: Bulk permanently-delete InventoryCompanySettings from trash by ids (atomic)
operationId: bulkPermanentDeleteInventoryCompanySettings
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/landed_costs:
get:
tags:
- LandedCosts
summary: List LandedCosts
description: Get a paginated list of LandedCosts with optional filtering and sorting
operationId: listLandedCosts
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- LandedCosts
summary: Create LandedCost
description: Create a new LandedCost
operationId: createLandedCost
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateLandedCostRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCost'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/landed_costs/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- LandedCosts
summary: Get LandedCost by ID
operationId: getLandedCost
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCost'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- LandedCosts
summary: Update LandedCost (full)
operationId: updateLandedCost
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateLandedCostRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCost'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- LandedCosts
summary: Update LandedCost (partial)
operationId: patchLandedCost
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchLandedCostRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCost'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- LandedCosts
summary: Delete LandedCost (soft)
operationId: deleteLandedCost
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/landed_costs/bulk:
post:
tags:
- LandedCosts
summary: Bulk create LandedCosts
operationId: bulkCreateLandedCosts
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateLandedCostRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/LandedCost'
put:
tags:
- LandedCosts
summary: Bulk update LandedCosts (full, atomic)
operationId: bulkUpdateLandedCosts
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateLandedCostRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- LandedCosts
summary: Bulk partial-update LandedCosts (atomic)
operationId: bulkPatchLandedCosts
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/landed_costs/upsert:
post:
tags:
- LandedCosts
summary: Upsert LandedCost
operationId: upsertLandedCost
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateLandedCostRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCost'
/api/v1/inventory/landed_costs/trash:
get:
tags:
- LandedCosts
summary: List deleted LandedCosts
operationId: listDeletedLandedCosts
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostList'
/api/v1/inventory/landed_costs/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- LandedCosts
summary: Restore deleted LandedCost
operationId: restoreLandedCost
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCost'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/landed_costs/empty:
delete:
tags:
- LandedCosts
summary: Empty trash for LandedCosts
operationId: emptyTrashLandedCosts
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/landed_costs/delete/bulk:
post:
tags:
- LandedCosts
summary: Bulk soft-delete LandedCosts by ids (atomic)
operationId: bulkDeleteLandedCosts
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/landed_costs/restore/bulk:
post:
tags:
- LandedCosts
summary: Bulk restore LandedCosts by ids (atomic)
operationId: bulkRestoreLandedCosts
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/landed_costs/restore/all:
post:
tags:
- LandedCosts
summary: Restore all soft-deleted LandedCosts
operationId: restoreAllLandedCosts
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/landed_costs/trash/bulk:
delete:
tags:
- LandedCosts
summary: Bulk permanently-delete LandedCosts from trash by ids (atomic)
operationId: bulkPermanentDeleteLandedCosts
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/landed_cost_lines:
get:
tags:
- LandedCostLines
summary: List LandedCostLines
description: Get a paginated list of LandedCostLines with optional filtering and sorting
operationId: listLandedCostLines
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostLineList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- LandedCostLines
summary: Create LandedCostLine
description: Create a new LandedCostLine
operationId: createLandedCostLine
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateLandedCostLineRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostLine'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/landed_cost_lines/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- LandedCostLines
summary: Get LandedCostLine by ID
operationId: getLandedCostLine
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostLine'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- LandedCostLines
summary: Update LandedCostLine (full)
operationId: updateLandedCostLine
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateLandedCostLineRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostLine'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- LandedCostLines
summary: Update LandedCostLine (partial)
operationId: patchLandedCostLine
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchLandedCostLineRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostLine'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- LandedCostLines
summary: Delete LandedCostLine (soft)
operationId: deleteLandedCostLine
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/landed_cost_lines/bulk:
post:
tags:
- LandedCostLines
summary: Bulk create LandedCostLines
operationId: bulkCreateLandedCostLines
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateLandedCostLineRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/LandedCostLine'
put:
tags:
- LandedCostLines
summary: Bulk update LandedCostLines (full, atomic)
operationId: bulkUpdateLandedCostLines
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateLandedCostLineRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostLineBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- LandedCostLines
summary: Bulk partial-update LandedCostLines (atomic)
operationId: bulkPatchLandedCostLines
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostLineBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/landed_cost_lines/upsert:
post:
tags:
- LandedCostLines
summary: Upsert LandedCostLine
operationId: upsertLandedCostLine
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateLandedCostLineRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostLine'
/api/v1/inventory/landed_cost_lines/trash:
get:
tags:
- LandedCostLines
summary: List deleted LandedCostLines
operationId: listDeletedLandedCostLines
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostLineList'
/api/v1/inventory/landed_cost_lines/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- LandedCostLines
summary: Restore deleted LandedCostLine
operationId: restoreLandedCostLine
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostLine'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/landed_cost_lines/empty:
delete:
tags:
- LandedCostLines
summary: Empty trash for LandedCostLines
operationId: emptyTrashLandedCostLines
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/landed_cost_lines/delete/bulk:
post:
tags:
- LandedCostLines
summary: Bulk soft-delete LandedCostLines by ids (atomic)
operationId: bulkDeleteLandedCostLines
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/landed_cost_lines/restore/bulk:
post:
tags:
- LandedCostLines
summary: Bulk restore LandedCostLines by ids (atomic)
operationId: bulkRestoreLandedCostLines
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostLineBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/landed_cost_lines/restore/all:
post:
tags:
- LandedCostLines
summary: Restore all soft-deleted LandedCostLines
operationId: restoreAllLandedCostLines
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/landed_cost_lines/trash/bulk:
delete:
tags:
- LandedCostLines
summary: Bulk permanently-delete LandedCostLines from trash by ids (atomic)
operationId: bulkPermanentDeleteLandedCostLines
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/landed_cost_adjustment_lines:
get:
tags:
- LandedCostAdjustmentLines
summary: List LandedCostAdjustmentLines
description: Get a paginated list of LandedCostAdjustmentLines with optional filtering and sorting
operationId: listLandedCostAdjustmentLines
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostAdjustmentLineList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- LandedCostAdjustmentLines
summary: Create LandedCostAdjustmentLine
description: Create a new LandedCostAdjustmentLine
operationId: createLandedCostAdjustmentLine
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateLandedCostAdjustmentLineRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostAdjustmentLine'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/landed_cost_adjustment_lines/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- LandedCostAdjustmentLines
summary: Get LandedCostAdjustmentLine by ID
operationId: getLandedCostAdjustmentLine
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostAdjustmentLine'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- LandedCostAdjustmentLines
summary: Update LandedCostAdjustmentLine (full)
operationId: updateLandedCostAdjustmentLine
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateLandedCostAdjustmentLineRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostAdjustmentLine'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- LandedCostAdjustmentLines
summary: Update LandedCostAdjustmentLine (partial)
operationId: patchLandedCostAdjustmentLine
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchLandedCostAdjustmentLineRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostAdjustmentLine'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- LandedCostAdjustmentLines
summary: Delete LandedCostAdjustmentLine (soft)
operationId: deleteLandedCostAdjustmentLine
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/landed_cost_adjustment_lines/bulk:
post:
tags:
- LandedCostAdjustmentLines
summary: Bulk create LandedCostAdjustmentLines
operationId: bulkCreateLandedCostAdjustmentLines
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateLandedCostAdjustmentLineRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/LandedCostAdjustmentLine'
put:
tags:
- LandedCostAdjustmentLines
summary: Bulk update LandedCostAdjustmentLines (full, atomic)
operationId: bulkUpdateLandedCostAdjustmentLines
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateLandedCostAdjustmentLineRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostAdjustmentLineBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- LandedCostAdjustmentLines
summary: Bulk partial-update LandedCostAdjustmentLines (atomic)
operationId: bulkPatchLandedCostAdjustmentLines
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostAdjustmentLineBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/landed_cost_adjustment_lines/upsert:
post:
tags:
- LandedCostAdjustmentLines
summary: Upsert LandedCostAdjustmentLine
operationId: upsertLandedCostAdjustmentLine
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateLandedCostAdjustmentLineRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostAdjustmentLine'
/api/v1/inventory/landed_cost_adjustment_lines/trash:
get:
tags:
- LandedCostAdjustmentLines
summary: List deleted LandedCostAdjustmentLines
operationId: listDeletedLandedCostAdjustmentLines
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostAdjustmentLineList'
/api/v1/inventory/landed_cost_adjustment_lines/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- LandedCostAdjustmentLines
summary: Restore deleted LandedCostAdjustmentLine
operationId: restoreLandedCostAdjustmentLine
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostAdjustmentLine'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/landed_cost_adjustment_lines/empty:
delete:
tags:
- LandedCostAdjustmentLines
summary: Empty trash for LandedCostAdjustmentLines
operationId: emptyTrashLandedCostAdjustmentLines
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/landed_cost_adjustment_lines/delete/bulk:
post:
tags:
- LandedCostAdjustmentLines
summary: Bulk soft-delete LandedCostAdjustmentLines by ids (atomic)
operationId: bulkDeleteLandedCostAdjustmentLines
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/landed_cost_adjustment_lines/restore/bulk:
post:
tags:
- LandedCostAdjustmentLines
summary: Bulk restore LandedCostAdjustmentLines by ids (atomic)
operationId: bulkRestoreLandedCostAdjustmentLines
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/LandedCostAdjustmentLineBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/landed_cost_adjustment_lines/restore/all:
post:
tags:
- LandedCostAdjustmentLines
summary: Restore all soft-deleted LandedCostAdjustmentLines
operationId: restoreAllLandedCostAdjustmentLines
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/landed_cost_adjustment_lines/trash/bulk:
delete:
tags:
- LandedCostAdjustmentLines
summary: Bulk permanently-delete LandedCostAdjustmentLines from trash by ids (atomic)
operationId: bulkPermanentDeleteLandedCostAdjustmentLines
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/locations:
get:
tags:
- Locations
summary: List Locations
description: Get a paginated list of Locations with optional filtering and sorting
operationId: listLocations
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/LocationList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- Locations
summary: Create Location
description: Create a new Location
operationId: createLocation
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateLocationRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/Location'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/locations/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- Locations
summary: Get Location by ID
operationId: getLocation
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Location'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- Locations
summary: Update Location (full)
operationId: updateLocation
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateLocationRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/Location'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- Locations
summary: Update Location (partial)
operationId: patchLocation
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchLocationRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/Location'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- Locations
summary: Delete Location (soft)
operationId: deleteLocation
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/locations/bulk:
post:
tags:
- Locations
summary: Bulk create Locations
operationId: bulkCreateLocations
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateLocationRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Location'
put:
tags:
- Locations
summary: Bulk update Locations (full, atomic)
operationId: bulkUpdateLocations
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateLocationRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/LocationBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- Locations
summary: Bulk partial-update Locations (atomic)
operationId: bulkPatchLocations
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/LocationBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/locations/upsert:
post:
tags:
- Locations
summary: Upsert Location
operationId: upsertLocation
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateLocationRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/Location'
/api/v1/inventory/locations/trash:
get:
tags:
- Locations
summary: List deleted Locations
operationId: listDeletedLocations
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/LocationList'
/api/v1/inventory/locations/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- Locations
summary: Restore deleted Location
operationId: restoreLocation
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/Location'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/locations/empty:
delete:
tags:
- Locations
summary: Empty trash for Locations
operationId: emptyTrashLocations
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/locations/delete/bulk:
post:
tags:
- Locations
summary: Bulk soft-delete Locations by ids (atomic)
operationId: bulkDeleteLocations
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/locations/restore/bulk:
post:
tags:
- Locations
summary: Bulk restore Locations by ids (atomic)
operationId: bulkRestoreLocations
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/LocationBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/locations/restore/all:
post:
tags:
- Locations
summary: Restore all soft-deleted Locations
operationId: restoreAllLocations
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/locations/trash/bulk:
delete:
tags:
- Locations
summary: Bulk permanently-delete Locations from trash by ids (atomic)
operationId: bulkPermanentDeleteLocations
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_moves:
get:
tags:
- StockMoves
summary: List StockMoves
description: Get a paginated list of StockMoves with optional filtering and sorting
operationId: listStockMoves
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockMoveList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- StockMoves
summary: Create StockMove
description: Create a new StockMove
operationId: createStockMove
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateStockMoveRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/StockMove'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/stock_moves/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- StockMoves
summary: Get StockMove by ID
operationId: getStockMove
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockMove'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- StockMoves
summary: Update StockMove (full)
operationId: updateStockMove
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStockMoveRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockMove'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- StockMoves
summary: Update StockMove (partial)
operationId: patchStockMove
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchStockMoveRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockMove'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- StockMoves
summary: Delete StockMove (soft)
operationId: deleteStockMove
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/stock_moves/bulk:
post:
tags:
- StockMoves
summary: Bulk create StockMoves
operationId: bulkCreateStockMoves
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateStockMoveRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StockMove'
put:
tags:
- StockMoves
summary: Bulk update StockMoves (full, atomic)
operationId: bulkUpdateStockMoves
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateStockMoveRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockMoveBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- StockMoves
summary: Bulk partial-update StockMoves (atomic)
operationId: bulkPatchStockMoves
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockMoveBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_moves/upsert:
post:
tags:
- StockMoves
summary: Upsert StockMove
operationId: upsertStockMove
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStockMoveRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/StockMove'
/api/v1/inventory/stock_moves/trash:
get:
tags:
- StockMoves
summary: List deleted StockMoves
operationId: listDeletedStockMoves
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockMoveList'
/api/v1/inventory/stock_moves/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- StockMoves
summary: Restore deleted StockMove
operationId: restoreStockMove
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/StockMove'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/stock_moves/empty:
delete:
tags:
- StockMoves
summary: Empty trash for StockMoves
operationId: emptyTrashStockMoves
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/stock_moves/delete/bulk:
post:
tags:
- StockMoves
summary: Bulk soft-delete StockMoves by ids (atomic)
operationId: bulkDeleteStockMoves
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_moves/restore/bulk:
post:
tags:
- StockMoves
summary: Bulk restore StockMoves by ids (atomic)
operationId: bulkRestoreStockMoves
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/StockMoveBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_moves/restore/all:
post:
tags:
- StockMoves
summary: Restore all soft-deleted StockMoves
operationId: restoreAllStockMoves
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/stock_moves/trash/bulk:
delete:
tags:
- StockMoves
summary: Bulk permanently-delete StockMoves from trash by ids (atomic)
operationId: bulkPermanentDeleteStockMoves
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_move_lines:
get:
tags:
- StockMoveLines
summary: List StockMoveLines
description: Get a paginated list of StockMoveLines with optional filtering and sorting
operationId: listStockMoveLines
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockMoveLineList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- StockMoveLines
summary: Create StockMoveLine
description: Create a new StockMoveLine
operationId: createStockMoveLine
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateStockMoveLineRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/StockMoveLine'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/stock_move_lines/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- StockMoveLines
summary: Get StockMoveLine by ID
operationId: getStockMoveLine
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockMoveLine'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- StockMoveLines
summary: Update StockMoveLine (full)
operationId: updateStockMoveLine
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStockMoveLineRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockMoveLine'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- StockMoveLines
summary: Update StockMoveLine (partial)
operationId: patchStockMoveLine
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchStockMoveLineRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockMoveLine'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- StockMoveLines
summary: Delete StockMoveLine (soft)
operationId: deleteStockMoveLine
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/stock_move_lines/bulk:
post:
tags:
- StockMoveLines
summary: Bulk create StockMoveLines
operationId: bulkCreateStockMoveLines
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateStockMoveLineRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StockMoveLine'
put:
tags:
- StockMoveLines
summary: Bulk update StockMoveLines (full, atomic)
operationId: bulkUpdateStockMoveLines
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateStockMoveLineRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockMoveLineBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- StockMoveLines
summary: Bulk partial-update StockMoveLines (atomic)
operationId: bulkPatchStockMoveLines
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockMoveLineBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_move_lines/upsert:
post:
tags:
- StockMoveLines
summary: Upsert StockMoveLine
operationId: upsertStockMoveLine
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStockMoveLineRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/StockMoveLine'
/api/v1/inventory/stock_move_lines/trash:
get:
tags:
- StockMoveLines
summary: List deleted StockMoveLines
operationId: listDeletedStockMoveLines
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockMoveLineList'
/api/v1/inventory/stock_move_lines/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- StockMoveLines
summary: Restore deleted StockMoveLine
operationId: restoreStockMoveLine
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/StockMoveLine'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/stock_move_lines/empty:
delete:
tags:
- StockMoveLines
summary: Empty trash for StockMoveLines
operationId: emptyTrashStockMoveLines
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/stock_move_lines/delete/bulk:
post:
tags:
- StockMoveLines
summary: Bulk soft-delete StockMoveLines by ids (atomic)
operationId: bulkDeleteStockMoveLines
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_move_lines/restore/bulk:
post:
tags:
- StockMoveLines
summary: Bulk restore StockMoveLines by ids (atomic)
operationId: bulkRestoreStockMoveLines
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/StockMoveLineBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_move_lines/restore/all:
post:
tags:
- StockMoveLines
summary: Restore all soft-deleted StockMoveLines
operationId: restoreAllStockMoveLines
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/stock_move_lines/trash/bulk:
delete:
tags:
- StockMoveLines
summary: Bulk permanently-delete StockMoveLines from trash by ids (atomic)
operationId: bulkPermanentDeleteStockMoveLines
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/operation_types:
get:
tags:
- OperationTypes
summary: List OperationTypes
description: Get a paginated list of OperationTypes with optional filtering and sorting
operationId: listOperationTypes
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/OperationTypeList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- OperationTypes
summary: Create OperationType
description: Create a new OperationType
operationId: createOperationType
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateOperationTypeRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/OperationType'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/operation_types/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- OperationTypes
summary: Get OperationType by ID
operationId: getOperationType
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/OperationType'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- OperationTypes
summary: Update OperationType (full)
operationId: updateOperationType
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateOperationTypeRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/OperationType'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- OperationTypes
summary: Update OperationType (partial)
operationId: patchOperationType
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchOperationTypeRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/OperationType'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- OperationTypes
summary: Delete OperationType (soft)
operationId: deleteOperationType
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/operation_types/bulk:
post:
tags:
- OperationTypes
summary: Bulk create OperationTypes
operationId: bulkCreateOperationTypes
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateOperationTypeRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/OperationType'
put:
tags:
- OperationTypes
summary: Bulk update OperationTypes (full, atomic)
operationId: bulkUpdateOperationTypes
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateOperationTypeRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/OperationTypeBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- OperationTypes
summary: Bulk partial-update OperationTypes (atomic)
operationId: bulkPatchOperationTypes
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/OperationTypeBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/operation_types/upsert:
post:
tags:
- OperationTypes
summary: Upsert OperationType
operationId: upsertOperationType
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateOperationTypeRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/OperationType'
/api/v1/inventory/operation_types/trash:
get:
tags:
- OperationTypes
summary: List deleted OperationTypes
operationId: listDeletedOperationTypes
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/OperationTypeList'
/api/v1/inventory/operation_types/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- OperationTypes
summary: Restore deleted OperationType
operationId: restoreOperationType
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/OperationType'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/operation_types/empty:
delete:
tags:
- OperationTypes
summary: Empty trash for OperationTypes
operationId: emptyTrashOperationTypes
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/operation_types/delete/bulk:
post:
tags:
- OperationTypes
summary: Bulk soft-delete OperationTypes by ids (atomic)
operationId: bulkDeleteOperationTypes
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/operation_types/restore/bulk:
post:
tags:
- OperationTypes
summary: Bulk restore OperationTypes by ids (atomic)
operationId: bulkRestoreOperationTypes
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/OperationTypeBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/operation_types/restore/all:
post:
tags:
- OperationTypes
summary: Restore all soft-deleted OperationTypes
operationId: restoreAllOperationTypes
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/operation_types/trash/bulk:
delete:
tags:
- OperationTypes
summary: Bulk permanently-delete OperationTypes from trash by ids (atomic)
operationId: bulkPermanentDeleteOperationTypes
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/transfers:
get:
tags:
- Transfers
summary: List Transfers
description: Get a paginated list of Transfers with optional filtering and sorting
operationId: listTransfers
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/TransferList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- Transfers
summary: Create Transfer
description: Create a new Transfer
operationId: createTransfer
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateTransferRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/Transfer'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/transfers/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- Transfers
summary: Get Transfer by ID
operationId: getTransfer
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Transfer'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- Transfers
summary: Update Transfer (full)
operationId: updateTransfer
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateTransferRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/Transfer'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- Transfers
summary: Update Transfer (partial)
operationId: patchTransfer
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchTransferRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/Transfer'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- Transfers
summary: Delete Transfer (soft)
operationId: deleteTransfer
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/transfers/bulk:
post:
tags:
- Transfers
summary: Bulk create Transfers
operationId: bulkCreateTransfers
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateTransferRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Transfer'
put:
tags:
- Transfers
summary: Bulk update Transfers (full, atomic)
operationId: bulkUpdateTransfers
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateTransferRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/TransferBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- Transfers
summary: Bulk partial-update Transfers (atomic)
operationId: bulkPatchTransfers
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/TransferBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/transfers/upsert:
post:
tags:
- Transfers
summary: Upsert Transfer
operationId: upsertTransfer
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateTransferRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/Transfer'
/api/v1/inventory/transfers/trash:
get:
tags:
- Transfers
summary: List deleted Transfers
operationId: listDeletedTransfers
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/TransferList'
/api/v1/inventory/transfers/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- Transfers
summary: Restore deleted Transfer
operationId: restoreTransfer
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/Transfer'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/transfers/empty:
delete:
tags:
- Transfers
summary: Empty trash for Transfers
operationId: emptyTrashTransfers
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/transfers/delete/bulk:
post:
tags:
- Transfers
summary: Bulk soft-delete Transfers by ids (atomic)
operationId: bulkDeleteTransfers
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/transfers/restore/bulk:
post:
tags:
- Transfers
summary: Bulk restore Transfers by ids (atomic)
operationId: bulkRestoreTransfers
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/TransferBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/transfers/restore/all:
post:
tags:
- Transfers
summary: Restore all soft-deleted Transfers
operationId: restoreAllTransfers
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/transfers/trash/bulk:
delete:
tags:
- Transfers
summary: Bulk permanently-delete Transfers from trash by ids (atomic)
operationId: bulkPermanentDeleteTransfers
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/routes:
get:
tags:
- Routes
summary: List Routes
description: Get a paginated list of Routes with optional filtering and sorting
operationId: listRoutes
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/RouteList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- Routes
summary: Create Route
description: Create a new Route
operationId: createRoute
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateRouteRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/Route'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/routes/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- Routes
summary: Get Route by ID
operationId: getRoute
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Route'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- Routes
summary: Update Route (full)
operationId: updateRoute
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateRouteRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/Route'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- Routes
summary: Update Route (partial)
operationId: patchRoute
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchRouteRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/Route'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- Routes
summary: Delete Route (soft)
operationId: deleteRoute
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/routes/bulk:
post:
tags:
- Routes
summary: Bulk create Routes
operationId: bulkCreateRoutes
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateRouteRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Route'
put:
tags:
- Routes
summary: Bulk update Routes (full, atomic)
operationId: bulkUpdateRoutes
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateRouteRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/RouteBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- Routes
summary: Bulk partial-update Routes (atomic)
operationId: bulkPatchRoutes
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/RouteBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/routes/upsert:
post:
tags:
- Routes
summary: Upsert Route
operationId: upsertRoute
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateRouteRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/Route'
/api/v1/inventory/routes/trash:
get:
tags:
- Routes
summary: List deleted Routes
operationId: listDeletedRoutes
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/RouteList'
/api/v1/inventory/routes/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- Routes
summary: Restore deleted Route
operationId: restoreRoute
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/Route'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/routes/empty:
delete:
tags:
- Routes
summary: Empty trash for Routes
operationId: emptyTrashRoutes
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/routes/delete/bulk:
post:
tags:
- Routes
summary: Bulk soft-delete Routes by ids (atomic)
operationId: bulkDeleteRoutes
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/routes/restore/bulk:
post:
tags:
- Routes
summary: Bulk restore Routes by ids (atomic)
operationId: bulkRestoreRoutes
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/RouteBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/routes/restore/all:
post:
tags:
- Routes
summary: Restore all soft-deleted Routes
operationId: restoreAllRoutes
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/routes/trash/bulk:
delete:
tags:
- Routes
summary: Bulk permanently-delete Routes from trash by ids (atomic)
operationId: bulkPermanentDeleteRoutes
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/route_rules:
get:
tags:
- RouteRules
summary: List RouteRules
description: Get a paginated list of RouteRules with optional filtering and sorting
operationId: listRouteRules
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/RouteRuleList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- RouteRules
summary: Create RouteRule
description: Create a new RouteRule
operationId: createRouteRule
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateRouteRuleRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/RouteRule'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/route_rules/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- RouteRules
summary: Get RouteRule by ID
operationId: getRouteRule
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/RouteRule'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- RouteRules
summary: Update RouteRule (full)
operationId: updateRouteRule
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateRouteRuleRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/RouteRule'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- RouteRules
summary: Update RouteRule (partial)
operationId: patchRouteRule
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchRouteRuleRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/RouteRule'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- RouteRules
summary: Delete RouteRule (soft)
operationId: deleteRouteRule
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/route_rules/bulk:
post:
tags:
- RouteRules
summary: Bulk create RouteRules
operationId: bulkCreateRouteRules
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateRouteRuleRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RouteRule'
put:
tags:
- RouteRules
summary: Bulk update RouteRules (full, atomic)
operationId: bulkUpdateRouteRules
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateRouteRuleRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/RouteRuleBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- RouteRules
summary: Bulk partial-update RouteRules (atomic)
operationId: bulkPatchRouteRules
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/RouteRuleBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/route_rules/upsert:
post:
tags:
- RouteRules
summary: Upsert RouteRule
operationId: upsertRouteRule
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateRouteRuleRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/RouteRule'
/api/v1/inventory/route_rules/trash:
get:
tags:
- RouteRules
summary: List deleted RouteRules
operationId: listDeletedRouteRules
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/RouteRuleList'
/api/v1/inventory/route_rules/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- RouteRules
summary: Restore deleted RouteRule
operationId: restoreRouteRule
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/RouteRule'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/route_rules/empty:
delete:
tags:
- RouteRules
summary: Empty trash for RouteRules
operationId: emptyTrashRouteRules
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/route_rules/delete/bulk:
post:
tags:
- RouteRules
summary: Bulk soft-delete RouteRules by ids (atomic)
operationId: bulkDeleteRouteRules
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/route_rules/restore/bulk:
post:
tags:
- RouteRules
summary: Bulk restore RouteRules by ids (atomic)
operationId: bulkRestoreRouteRules
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/RouteRuleBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/route_rules/restore/all:
post:
tags:
- RouteRules
summary: Restore all soft-deleted RouteRules
operationId: restoreAllRouteRules
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/route_rules/trash/bulk:
delete:
tags:
- RouteRules
summary: Bulk permanently-delete RouteRules from trash by ids (atomic)
operationId: bulkPermanentDeleteRouteRules
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/reordering_rules:
get:
tags:
- ReorderingRules
summary: List ReorderingRules
description: Get a paginated list of ReorderingRules with optional filtering and sorting
operationId: listReorderingRules
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/ReorderingRuleList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- ReorderingRules
summary: Create ReorderingRule
description: Create a new ReorderingRule
operationId: createReorderingRule
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateReorderingRuleRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/ReorderingRule'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/reordering_rules/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- ReorderingRules
summary: Get ReorderingRule by ID
operationId: getReorderingRule
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/ReorderingRule'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- ReorderingRules
summary: Update ReorderingRule (full)
operationId: updateReorderingRule
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateReorderingRuleRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/ReorderingRule'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- ReorderingRules
summary: Update ReorderingRule (partial)
operationId: patchReorderingRule
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchReorderingRuleRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/ReorderingRule'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- ReorderingRules
summary: Delete ReorderingRule (soft)
operationId: deleteReorderingRule
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/reordering_rules/bulk:
post:
tags:
- ReorderingRules
summary: Bulk create ReorderingRules
operationId: bulkCreateReorderingRules
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateReorderingRuleRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ReorderingRule'
put:
tags:
- ReorderingRules
summary: Bulk update ReorderingRules (full, atomic)
operationId: bulkUpdateReorderingRules
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateReorderingRuleRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/ReorderingRuleBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- ReorderingRules
summary: Bulk partial-update ReorderingRules (atomic)
operationId: bulkPatchReorderingRules
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/ReorderingRuleBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/reordering_rules/upsert:
post:
tags:
- ReorderingRules
summary: Upsert ReorderingRule
operationId: upsertReorderingRule
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateReorderingRuleRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/ReorderingRule'
/api/v1/inventory/reordering_rules/trash:
get:
tags:
- ReorderingRules
summary: List deleted ReorderingRules
operationId: listDeletedReorderingRules
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/ReorderingRuleList'
/api/v1/inventory/reordering_rules/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- ReorderingRules
summary: Restore deleted ReorderingRule
operationId: restoreReorderingRule
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/ReorderingRule'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/reordering_rules/empty:
delete:
tags:
- ReorderingRules
summary: Empty trash for ReorderingRules
operationId: emptyTrashReorderingRules
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/reordering_rules/delete/bulk:
post:
tags:
- ReorderingRules
summary: Bulk soft-delete ReorderingRules by ids (atomic)
operationId: bulkDeleteReorderingRules
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/reordering_rules/restore/bulk:
post:
tags:
- ReorderingRules
summary: Bulk restore ReorderingRules by ids (atomic)
operationId: bulkRestoreReorderingRules
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/ReorderingRuleBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/reordering_rules/restore/all:
post:
tags:
- ReorderingRules
summary: Restore all soft-deleted ReorderingRules
operationId: restoreAllReorderingRules
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/reordering_rules/trash/bulk:
delete:
tags:
- ReorderingRules
summary: Bulk permanently-delete ReorderingRules from trash by ids (atomic)
operationId: bulkPermanentDeleteReorderingRules
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/purchase_receipts:
get:
tags:
- PurchaseReceipts
summary: List PurchaseReceipts
description: Get a paginated list of PurchaseReceipts with optional filtering and sorting
operationId: listPurchaseReceipts
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/PurchaseReceiptList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- PurchaseReceipts
summary: Create PurchaseReceipt
description: Create a new PurchaseReceipt
operationId: createPurchaseReceipt
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePurchaseReceiptRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/PurchaseReceipt'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/purchase_receipts/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- PurchaseReceipts
summary: Get PurchaseReceipt by ID
operationId: getPurchaseReceipt
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/PurchaseReceipt'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- PurchaseReceipts
summary: Update PurchaseReceipt (full)
operationId: updatePurchaseReceipt
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePurchaseReceiptRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/PurchaseReceipt'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- PurchaseReceipts
summary: Update PurchaseReceipt (partial)
operationId: patchPurchaseReceipt
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchPurchaseReceiptRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/PurchaseReceipt'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- PurchaseReceipts
summary: Delete PurchaseReceipt (soft)
operationId: deletePurchaseReceipt
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/purchase_receipts/bulk:
post:
tags:
- PurchaseReceipts
summary: Bulk create PurchaseReceipts
operationId: bulkCreatePurchaseReceipts
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreatePurchaseReceiptRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PurchaseReceipt'
put:
tags:
- PurchaseReceipts
summary: Bulk update PurchaseReceipts (full, atomic)
operationId: bulkUpdatePurchaseReceipts
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdatePurchaseReceiptRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/PurchaseReceiptBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- PurchaseReceipts
summary: Bulk partial-update PurchaseReceipts (atomic)
operationId: bulkPatchPurchaseReceipts
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/PurchaseReceiptBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/purchase_receipts/upsert:
post:
tags:
- PurchaseReceipts
summary: Upsert PurchaseReceipt
operationId: upsertPurchaseReceipt
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePurchaseReceiptRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/PurchaseReceipt'
/api/v1/inventory/purchase_receipts/trash:
get:
tags:
- PurchaseReceipts
summary: List deleted PurchaseReceipts
operationId: listDeletedPurchaseReceipts
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/PurchaseReceiptList'
/api/v1/inventory/purchase_receipts/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- PurchaseReceipts
summary: Restore deleted PurchaseReceipt
operationId: restorePurchaseReceipt
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/PurchaseReceipt'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/purchase_receipts/empty:
delete:
tags:
- PurchaseReceipts
summary: Empty trash for PurchaseReceipts
operationId: emptyTrashPurchaseReceipts
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/purchase_receipts/delete/bulk:
post:
tags:
- PurchaseReceipts
summary: Bulk soft-delete PurchaseReceipts by ids (atomic)
operationId: bulkDeletePurchaseReceipts
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/purchase_receipts/restore/bulk:
post:
tags:
- PurchaseReceipts
summary: Bulk restore PurchaseReceipts by ids (atomic)
operationId: bulkRestorePurchaseReceipts
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/PurchaseReceiptBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/purchase_receipts/restore/all:
post:
tags:
- PurchaseReceipts
summary: Restore all soft-deleted PurchaseReceipts
operationId: restoreAllPurchaseReceipts
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/purchase_receipts/trash/bulk:
delete:
tags:
- PurchaseReceipts
summary: Bulk permanently-delete PurchaseReceipts from trash by ids (atomic)
operationId: bulkPermanentDeletePurchaseReceipts
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/purchase_receipt_items:
get:
tags:
- PurchaseReceiptItems
summary: List PurchaseReceiptItems
description: Get a paginated list of PurchaseReceiptItems with optional filtering and sorting
operationId: listPurchaseReceiptItems
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/PurchaseReceiptItemList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- PurchaseReceiptItems
summary: Create PurchaseReceiptItem
description: Create a new PurchaseReceiptItem
operationId: createPurchaseReceiptItem
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePurchaseReceiptItemRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/PurchaseReceiptItem'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/purchase_receipt_items/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- PurchaseReceiptItems
summary: Get PurchaseReceiptItem by ID
operationId: getPurchaseReceiptItem
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/PurchaseReceiptItem'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- PurchaseReceiptItems
summary: Update PurchaseReceiptItem (full)
operationId: updatePurchaseReceiptItem
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePurchaseReceiptItemRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/PurchaseReceiptItem'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- PurchaseReceiptItems
summary: Update PurchaseReceiptItem (partial)
operationId: patchPurchaseReceiptItem
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchPurchaseReceiptItemRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/PurchaseReceiptItem'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- PurchaseReceiptItems
summary: Delete PurchaseReceiptItem (soft)
operationId: deletePurchaseReceiptItem
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/purchase_receipt_items/bulk:
post:
tags:
- PurchaseReceiptItems
summary: Bulk create PurchaseReceiptItems
operationId: bulkCreatePurchaseReceiptItems
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreatePurchaseReceiptItemRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PurchaseReceiptItem'
put:
tags:
- PurchaseReceiptItems
summary: Bulk update PurchaseReceiptItems (full, atomic)
operationId: bulkUpdatePurchaseReceiptItems
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdatePurchaseReceiptItemRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/PurchaseReceiptItemBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- PurchaseReceiptItems
summary: Bulk partial-update PurchaseReceiptItems (atomic)
operationId: bulkPatchPurchaseReceiptItems
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/PurchaseReceiptItemBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/purchase_receipt_items/upsert:
post:
tags:
- PurchaseReceiptItems
summary: Upsert PurchaseReceiptItem
operationId: upsertPurchaseReceiptItem
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePurchaseReceiptItemRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/PurchaseReceiptItem'
/api/v1/inventory/purchase_receipt_items/trash:
get:
tags:
- PurchaseReceiptItems
summary: List deleted PurchaseReceiptItems
operationId: listDeletedPurchaseReceiptItems
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/PurchaseReceiptItemList'
/api/v1/inventory/purchase_receipt_items/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- PurchaseReceiptItems
summary: Restore deleted PurchaseReceiptItem
operationId: restorePurchaseReceiptItem
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/PurchaseReceiptItem'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/purchase_receipt_items/empty:
delete:
tags:
- PurchaseReceiptItems
summary: Empty trash for PurchaseReceiptItems
operationId: emptyTrashPurchaseReceiptItems
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/purchase_receipt_items/delete/bulk:
post:
tags:
- PurchaseReceiptItems
summary: Bulk soft-delete PurchaseReceiptItems by ids (atomic)
operationId: bulkDeletePurchaseReceiptItems
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/purchase_receipt_items/restore/bulk:
post:
tags:
- PurchaseReceiptItems
summary: Bulk restore PurchaseReceiptItems by ids (atomic)
operationId: bulkRestorePurchaseReceiptItems
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/PurchaseReceiptItemBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/purchase_receipt_items/restore/all:
post:
tags:
- PurchaseReceiptItems
summary: Restore all soft-deleted PurchaseReceiptItems
operationId: restoreAllPurchaseReceiptItems
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/purchase_receipt_items/trash/bulk:
delete:
tags:
- PurchaseReceiptItems
summary: Bulk permanently-delete PurchaseReceiptItems from trash by ids (atomic)
operationId: bulkPermanentDeletePurchaseReceiptItems
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/quants:
get:
tags:
- Quants
summary: List Quants
description: Get a paginated list of Quants with optional filtering and sorting
operationId: listQuants
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/QuantList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- Quants
summary: Create Quant
description: Create a new Quant
operationId: createQuant
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateQuantRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/Quant'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/quants/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- Quants
summary: Get Quant by ID
operationId: getQuant
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Quant'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- Quants
summary: Update Quant (full)
operationId: updateQuant
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateQuantRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/Quant'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- Quants
summary: Update Quant (partial)
operationId: patchQuant
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchQuantRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/Quant'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- Quants
summary: Delete Quant (soft)
operationId: deleteQuant
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/quants/bulk:
post:
tags:
- Quants
summary: Bulk create Quants
operationId: bulkCreateQuants
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateQuantRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Quant'
put:
tags:
- Quants
summary: Bulk update Quants (full, atomic)
operationId: bulkUpdateQuants
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateQuantRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/QuantBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- Quants
summary: Bulk partial-update Quants (atomic)
operationId: bulkPatchQuants
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/QuantBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/quants/upsert:
post:
tags:
- Quants
summary: Upsert Quant
operationId: upsertQuant
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateQuantRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/Quant'
/api/v1/inventory/quants/trash:
get:
tags:
- Quants
summary: List deleted Quants
operationId: listDeletedQuants
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/QuantList'
/api/v1/inventory/quants/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- Quants
summary: Restore deleted Quant
operationId: restoreQuant
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/Quant'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/quants/empty:
delete:
tags:
- Quants
summary: Empty trash for Quants
operationId: emptyTrashQuants
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/quants/delete/bulk:
post:
tags:
- Quants
summary: Bulk soft-delete Quants by ids (atomic)
operationId: bulkDeleteQuants
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/quants/restore/bulk:
post:
tags:
- Quants
summary: Bulk restore Quants by ids (atomic)
operationId: bulkRestoreQuants
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/QuantBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/quants/restore/all:
post:
tags:
- Quants
summary: Restore all soft-deleted Quants
operationId: restoreAllQuants
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/quants/trash/bulk:
delete:
tags:
- Quants
summary: Bulk permanently-delete Quants from trash by ids (atomic)
operationId: bulkPermanentDeleteQuants
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/scraps:
get:
tags:
- Scraps
summary: List Scraps
description: Get a paginated list of Scraps with optional filtering and sorting
operationId: listScraps
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/ScrapList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- Scraps
summary: Create Scrap
description: Create a new Scrap
operationId: createScrap
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateScrapRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/Scrap'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/scraps/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- Scraps
summary: Get Scrap by ID
operationId: getScrap
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Scrap'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- Scraps
summary: Update Scrap (full)
operationId: updateScrap
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateScrapRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/Scrap'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- Scraps
summary: Update Scrap (partial)
operationId: patchScrap
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchScrapRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/Scrap'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- Scraps
summary: Delete Scrap (soft)
operationId: deleteScrap
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/scraps/bulk:
post:
tags:
- Scraps
summary: Bulk create Scraps
operationId: bulkCreateScraps
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateScrapRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Scrap'
put:
tags:
- Scraps
summary: Bulk update Scraps (full, atomic)
operationId: bulkUpdateScraps
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateScrapRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/ScrapBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- Scraps
summary: Bulk partial-update Scraps (atomic)
operationId: bulkPatchScraps
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/ScrapBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/scraps/upsert:
post:
tags:
- Scraps
summary: Upsert Scrap
operationId: upsertScrap
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateScrapRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/Scrap'
/api/v1/inventory/scraps/trash:
get:
tags:
- Scraps
summary: List deleted Scraps
operationId: listDeletedScraps
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/ScrapList'
/api/v1/inventory/scraps/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- Scraps
summary: Restore deleted Scrap
operationId: restoreScrap
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/Scrap'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/scraps/empty:
delete:
tags:
- Scraps
summary: Empty trash for Scraps
operationId: emptyTrashScraps
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/scraps/delete/bulk:
post:
tags:
- Scraps
summary: Bulk soft-delete Scraps by ids (atomic)
operationId: bulkDeleteScraps
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/scraps/restore/bulk:
post:
tags:
- Scraps
summary: Bulk restore Scraps by ids (atomic)
operationId: bulkRestoreScraps
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/ScrapBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/scraps/restore/all:
post:
tags:
- Scraps
summary: Restore all soft-deleted Scraps
operationId: restoreAllScraps
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/scraps/trash/bulk:
delete:
tags:
- Scraps
summary: Bulk permanently-delete Scraps from trash by ids (atomic)
operationId: bulkPermanentDeleteScraps
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/scrap_reason_tags:
get:
tags:
- ScrapReasonTags
summary: List ScrapReasonTags
description: Get a paginated list of ScrapReasonTags with optional filtering and sorting
operationId: listScrapReasonTags
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/ScrapReasonTagList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- ScrapReasonTags
summary: Create ScrapReasonTag
description: Create a new ScrapReasonTag
operationId: createScrapReasonTag
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateScrapReasonTagRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/ScrapReasonTag'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/scrap_reason_tags/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- ScrapReasonTags
summary: Get ScrapReasonTag by ID
operationId: getScrapReasonTag
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/ScrapReasonTag'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- ScrapReasonTags
summary: Update ScrapReasonTag (full)
operationId: updateScrapReasonTag
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateScrapReasonTagRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/ScrapReasonTag'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- ScrapReasonTags
summary: Update ScrapReasonTag (partial)
operationId: patchScrapReasonTag
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchScrapReasonTagRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/ScrapReasonTag'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- ScrapReasonTags
summary: Delete ScrapReasonTag (soft)
operationId: deleteScrapReasonTag
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/scrap_reason_tags/bulk:
post:
tags:
- ScrapReasonTags
summary: Bulk create ScrapReasonTags
operationId: bulkCreateScrapReasonTags
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateScrapReasonTagRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ScrapReasonTag'
put:
tags:
- ScrapReasonTags
summary: Bulk update ScrapReasonTags (full, atomic)
operationId: bulkUpdateScrapReasonTags
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateScrapReasonTagRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/ScrapReasonTagBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- ScrapReasonTags
summary: Bulk partial-update ScrapReasonTags (atomic)
operationId: bulkPatchScrapReasonTags
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/ScrapReasonTagBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/scrap_reason_tags/upsert:
post:
tags:
- ScrapReasonTags
summary: Upsert ScrapReasonTag
operationId: upsertScrapReasonTag
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateScrapReasonTagRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/ScrapReasonTag'
/api/v1/inventory/scrap_reason_tags/trash:
get:
tags:
- ScrapReasonTags
summary: List deleted ScrapReasonTags
operationId: listDeletedScrapReasonTags
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/ScrapReasonTagList'
/api/v1/inventory/scrap_reason_tags/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- ScrapReasonTags
summary: Restore deleted ScrapReasonTag
operationId: restoreScrapReasonTag
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/ScrapReasonTag'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/scrap_reason_tags/empty:
delete:
tags:
- ScrapReasonTags
summary: Empty trash for ScrapReasonTags
operationId: emptyTrashScrapReasonTags
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/scrap_reason_tags/delete/bulk:
post:
tags:
- ScrapReasonTags
summary: Bulk soft-delete ScrapReasonTags by ids (atomic)
operationId: bulkDeleteScrapReasonTags
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/scrap_reason_tags/restore/bulk:
post:
tags:
- ScrapReasonTags
summary: Bulk restore ScrapReasonTags by ids (atomic)
operationId: bulkRestoreScrapReasonTags
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/ScrapReasonTagBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/scrap_reason_tags/restore/all:
post:
tags:
- ScrapReasonTags
summary: Restore all soft-deleted ScrapReasonTags
operationId: restoreAllScrapReasonTags
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/scrap_reason_tags/trash/bulk:
delete:
tags:
- ScrapReasonTags
summary: Bulk permanently-delete ScrapReasonTags from trash by ids (atomic)
operationId: bulkPermanentDeleteScrapReasonTags
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_entries:
get:
tags:
- StockEntries
summary: List StockEntries
description: Get a paginated list of StockEntries with optional filtering and sorting
operationId: listStockEntries
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockEntryList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- StockEntries
summary: Create StockEntry
description: Create a new StockEntry
operationId: createStockEntry
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateStockEntryRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/StockEntry'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/stock_entries/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- StockEntries
summary: Get StockEntry by ID
operationId: getStockEntry
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockEntry'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- StockEntries
summary: Update StockEntry (full)
operationId: updateStockEntry
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStockEntryRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockEntry'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- StockEntries
summary: Update StockEntry (partial)
operationId: patchStockEntry
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchStockEntryRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockEntry'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- StockEntries
summary: Delete StockEntry (soft)
operationId: deleteStockEntry
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/stock_entries/bulk:
post:
tags:
- StockEntries
summary: Bulk create StockEntries
operationId: bulkCreateStockEntries
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateStockEntryRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StockEntry'
put:
tags:
- StockEntries
summary: Bulk update StockEntries (full, atomic)
operationId: bulkUpdateStockEntries
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateStockEntryRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockEntryBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- StockEntries
summary: Bulk partial-update StockEntries (atomic)
operationId: bulkPatchStockEntries
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockEntryBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_entries/upsert:
post:
tags:
- StockEntries
summary: Upsert StockEntry
operationId: upsertStockEntry
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStockEntryRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/StockEntry'
/api/v1/inventory/stock_entries/trash:
get:
tags:
- StockEntries
summary: List deleted StockEntries
operationId: listDeletedStockEntries
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockEntryList'
/api/v1/inventory/stock_entries/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- StockEntries
summary: Restore deleted StockEntry
operationId: restoreStockEntry
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/StockEntry'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/stock_entries/empty:
delete:
tags:
- StockEntries
summary: Empty trash for StockEntries
operationId: emptyTrashStockEntries
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/stock_entries/delete/bulk:
post:
tags:
- StockEntries
summary: Bulk soft-delete StockEntries by ids (atomic)
operationId: bulkDeleteStockEntries
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_entries/restore/bulk:
post:
tags:
- StockEntries
summary: Bulk restore StockEntries by ids (atomic)
operationId: bulkRestoreStockEntries
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/StockEntryBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_entries/restore/all:
post:
tags:
- StockEntries
summary: Restore all soft-deleted StockEntries
operationId: restoreAllStockEntries
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/stock_entries/trash/bulk:
delete:
tags:
- StockEntries
summary: Bulk permanently-delete StockEntries from trash by ids (atomic)
operationId: bulkPermanentDeleteStockEntries
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_entry_items:
get:
tags:
- StockEntryItems
summary: List StockEntryItems
description: Get a paginated list of StockEntryItems with optional filtering and sorting
operationId: listStockEntryItems
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockEntryItemList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- StockEntryItems
summary: Create StockEntryItem
description: Create a new StockEntryItem
operationId: createStockEntryItem
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateStockEntryItemRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/StockEntryItem'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/stock_entry_items/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- StockEntryItems
summary: Get StockEntryItem by ID
operationId: getStockEntryItem
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockEntryItem'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- StockEntryItems
summary: Update StockEntryItem (full)
operationId: updateStockEntryItem
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStockEntryItemRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockEntryItem'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- StockEntryItems
summary: Update StockEntryItem (partial)
operationId: patchStockEntryItem
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchStockEntryItemRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockEntryItem'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- StockEntryItems
summary: Delete StockEntryItem (soft)
operationId: deleteStockEntryItem
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/stock_entry_items/bulk:
post:
tags:
- StockEntryItems
summary: Bulk create StockEntryItems
operationId: bulkCreateStockEntryItems
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateStockEntryItemRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StockEntryItem'
put:
tags:
- StockEntryItems
summary: Bulk update StockEntryItems (full, atomic)
operationId: bulkUpdateStockEntryItems
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateStockEntryItemRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockEntryItemBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- StockEntryItems
summary: Bulk partial-update StockEntryItems (atomic)
operationId: bulkPatchStockEntryItems
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockEntryItemBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_entry_items/upsert:
post:
tags:
- StockEntryItems
summary: Upsert StockEntryItem
operationId: upsertStockEntryItem
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStockEntryItemRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/StockEntryItem'
/api/v1/inventory/stock_entry_items/trash:
get:
tags:
- StockEntryItems
summary: List deleted StockEntryItems
operationId: listDeletedStockEntryItems
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockEntryItemList'
/api/v1/inventory/stock_entry_items/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- StockEntryItems
summary: Restore deleted StockEntryItem
operationId: restoreStockEntryItem
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/StockEntryItem'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/stock_entry_items/empty:
delete:
tags:
- StockEntryItems
summary: Empty trash for StockEntryItems
operationId: emptyTrashStockEntryItems
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/stock_entry_items/delete/bulk:
post:
tags:
- StockEntryItems
summary: Bulk soft-delete StockEntryItems by ids (atomic)
operationId: bulkDeleteStockEntryItems
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_entry_items/restore/bulk:
post:
tags:
- StockEntryItems
summary: Bulk restore StockEntryItems by ids (atomic)
operationId: bulkRestoreStockEntryItems
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/StockEntryItemBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_entry_items/restore/all:
post:
tags:
- StockEntryItems
summary: Restore all soft-deleted StockEntryItems
operationId: restoreAllStockEntryItems
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/stock_entry_items/trash/bulk:
delete:
tags:
- StockEntryItems
summary: Bulk permanently-delete StockEntryItems from trash by ids (atomic)
operationId: bulkPermanentDeleteStockEntryItems
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_ledger_entries:
get:
tags:
- StockLedgerEntries
summary: List StockLedgerEntries
description: Get a paginated list of StockLedgerEntries with optional filtering and sorting
operationId: listStockLedgerEntries
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockLedgerEntryList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- StockLedgerEntries
summary: Create StockLedgerEntry
description: Create a new StockLedgerEntry
operationId: createStockLedgerEntry
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateStockLedgerEntryRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/StockLedgerEntry'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/stock_ledger_entries/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- StockLedgerEntries
summary: Get StockLedgerEntry by ID
operationId: getStockLedgerEntry
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockLedgerEntry'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- StockLedgerEntries
summary: Update StockLedgerEntry (full)
operationId: updateStockLedgerEntry
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStockLedgerEntryRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockLedgerEntry'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- StockLedgerEntries
summary: Update StockLedgerEntry (partial)
operationId: patchStockLedgerEntry
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchStockLedgerEntryRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockLedgerEntry'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- StockLedgerEntries
summary: Delete StockLedgerEntry (soft)
operationId: deleteStockLedgerEntry
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/stock_ledger_entries/bulk:
post:
tags:
- StockLedgerEntries
summary: Bulk create StockLedgerEntries
operationId: bulkCreateStockLedgerEntries
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateStockLedgerEntryRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StockLedgerEntry'
put:
tags:
- StockLedgerEntries
summary: Bulk update StockLedgerEntries (full, atomic)
operationId: bulkUpdateStockLedgerEntries
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateStockLedgerEntryRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockLedgerEntryBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- StockLedgerEntries
summary: Bulk partial-update StockLedgerEntries (atomic)
operationId: bulkPatchStockLedgerEntries
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockLedgerEntryBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_ledger_entries/upsert:
post:
tags:
- StockLedgerEntries
summary: Upsert StockLedgerEntry
operationId: upsertStockLedgerEntry
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStockLedgerEntryRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/StockLedgerEntry'
/api/v1/inventory/stock_ledger_entries/trash:
get:
tags:
- StockLedgerEntries
summary: List deleted StockLedgerEntries
operationId: listDeletedStockLedgerEntries
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockLedgerEntryList'
/api/v1/inventory/stock_ledger_entries/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- StockLedgerEntries
summary: Restore deleted StockLedgerEntry
operationId: restoreStockLedgerEntry
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/StockLedgerEntry'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/stock_ledger_entries/empty:
delete:
tags:
- StockLedgerEntries
summary: Empty trash for StockLedgerEntries
operationId: emptyTrashStockLedgerEntries
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/stock_ledger_entries/delete/bulk:
post:
tags:
- StockLedgerEntries
summary: Bulk soft-delete StockLedgerEntries by ids (atomic)
operationId: bulkDeleteStockLedgerEntries
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_ledger_entries/restore/bulk:
post:
tags:
- StockLedgerEntries
summary: Bulk restore StockLedgerEntries by ids (atomic)
operationId: bulkRestoreStockLedgerEntries
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/StockLedgerEntryBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_ledger_entries/restore/all:
post:
tags:
- StockLedgerEntries
summary: Restore all soft-deleted StockLedgerEntries
operationId: restoreAllStockLedgerEntries
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/stock_ledger_entries/trash/bulk:
delete:
tags:
- StockLedgerEntries
summary: Bulk permanently-delete StockLedgerEntries from trash by ids (atomic)
operationId: bulkPermanentDeleteStockLedgerEntries
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/bins:
get:
tags:
- Bins
summary: List Bins
description: Get a paginated list of Bins with optional filtering and sorting
operationId: listBins
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/BinList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- Bins
summary: Create Bin
description: Create a new Bin
operationId: createBin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateBinRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/Bin'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/bins/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- Bins
summary: Get Bin by ID
operationId: getBin
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Bin'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- Bins
summary: Update Bin (full)
operationId: updateBin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateBinRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/Bin'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- Bins
summary: Update Bin (partial)
operationId: patchBin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchBinRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/Bin'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- Bins
summary: Delete Bin (soft)
operationId: deleteBin
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/bins/bulk:
post:
tags:
- Bins
summary: Bulk create Bins
operationId: bulkCreateBins
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateBinRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Bin'
put:
tags:
- Bins
summary: Bulk update Bins (full, atomic)
operationId: bulkUpdateBins
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateBinRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/BinBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- Bins
summary: Bulk partial-update Bins (atomic)
operationId: bulkPatchBins
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/BinBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/bins/upsert:
post:
tags:
- Bins
summary: Upsert Bin
operationId: upsertBin
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateBinRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/Bin'
/api/v1/inventory/bins/trash:
get:
tags:
- Bins
summary: List deleted Bins
operationId: listDeletedBins
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/BinList'
/api/v1/inventory/bins/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- Bins
summary: Restore deleted Bin
operationId: restoreBin
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/Bin'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/bins/empty:
delete:
tags:
- Bins
summary: Empty trash for Bins
operationId: emptyTrashBins
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/bins/delete/bulk:
post:
tags:
- Bins
summary: Bulk soft-delete Bins by ids (atomic)
operationId: bulkDeleteBins
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/bins/restore/bulk:
post:
tags:
- Bins
summary: Bulk restore Bins by ids (atomic)
operationId: bulkRestoreBins
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/BinBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/bins/restore/all:
post:
tags:
- Bins
summary: Restore all soft-deleted Bins
operationId: restoreAllBins
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/bins/trash/bulk:
delete:
tags:
- Bins
summary: Bulk permanently-delete Bins from trash by ids (atomic)
operationId: bulkPermanentDeleteBins
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_reconciliations:
get:
tags:
- StockReconciliations
summary: List StockReconciliations
description: Get a paginated list of StockReconciliations with optional filtering and sorting
operationId: listStockReconciliations
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockReconciliationList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- StockReconciliations
summary: Create StockReconciliation
description: Create a new StockReconciliation
operationId: createStockReconciliation
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateStockReconciliationRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/StockReconciliation'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/stock_reconciliations/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- StockReconciliations
summary: Get StockReconciliation by ID
operationId: getStockReconciliation
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockReconciliation'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- StockReconciliations
summary: Update StockReconciliation (full)
operationId: updateStockReconciliation
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStockReconciliationRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockReconciliation'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- StockReconciliations
summary: Update StockReconciliation (partial)
operationId: patchStockReconciliation
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchStockReconciliationRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockReconciliation'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- StockReconciliations
summary: Delete StockReconciliation (soft)
operationId: deleteStockReconciliation
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/stock_reconciliations/bulk:
post:
tags:
- StockReconciliations
summary: Bulk create StockReconciliations
operationId: bulkCreateStockReconciliations
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateStockReconciliationRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StockReconciliation'
put:
tags:
- StockReconciliations
summary: Bulk update StockReconciliations (full, atomic)
operationId: bulkUpdateStockReconciliations
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateStockReconciliationRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockReconciliationBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- StockReconciliations
summary: Bulk partial-update StockReconciliations (atomic)
operationId: bulkPatchStockReconciliations
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockReconciliationBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_reconciliations/upsert:
post:
tags:
- StockReconciliations
summary: Upsert StockReconciliation
operationId: upsertStockReconciliation
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStockReconciliationRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/StockReconciliation'
/api/v1/inventory/stock_reconciliations/trash:
get:
tags:
- StockReconciliations
summary: List deleted StockReconciliations
operationId: listDeletedStockReconciliations
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockReconciliationList'
/api/v1/inventory/stock_reconciliations/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- StockReconciliations
summary: Restore deleted StockReconciliation
operationId: restoreStockReconciliation
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/StockReconciliation'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/stock_reconciliations/empty:
delete:
tags:
- StockReconciliations
summary: Empty trash for StockReconciliations
operationId: emptyTrashStockReconciliations
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/stock_reconciliations/delete/bulk:
post:
tags:
- StockReconciliations
summary: Bulk soft-delete StockReconciliations by ids (atomic)
operationId: bulkDeleteStockReconciliations
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_reconciliations/restore/bulk:
post:
tags:
- StockReconciliations
summary: Bulk restore StockReconciliations by ids (atomic)
operationId: bulkRestoreStockReconciliations
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/StockReconciliationBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_reconciliations/restore/all:
post:
tags:
- StockReconciliations
summary: Restore all soft-deleted StockReconciliations
operationId: restoreAllStockReconciliations
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/stock_reconciliations/trash/bulk:
delete:
tags:
- StockReconciliations
summary: Bulk permanently-delete StockReconciliations from trash by ids (atomic)
operationId: bulkPermanentDeleteStockReconciliations
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_reconciliation_items:
get:
tags:
- StockReconciliationItems
summary: List StockReconciliationItems
description: Get a paginated list of StockReconciliationItems with optional filtering and sorting
operationId: listStockReconciliationItems
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockReconciliationItemList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- StockReconciliationItems
summary: Create StockReconciliationItem
description: Create a new StockReconciliationItem
operationId: createStockReconciliationItem
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateStockReconciliationItemRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/StockReconciliationItem'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/stock_reconciliation_items/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- StockReconciliationItems
summary: Get StockReconciliationItem by ID
operationId: getStockReconciliationItem
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockReconciliationItem'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- StockReconciliationItems
summary: Update StockReconciliationItem (full)
operationId: updateStockReconciliationItem
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStockReconciliationItemRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockReconciliationItem'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- StockReconciliationItems
summary: Update StockReconciliationItem (partial)
operationId: patchStockReconciliationItem
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchStockReconciliationItemRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockReconciliationItem'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- StockReconciliationItems
summary: Delete StockReconciliationItem (soft)
operationId: deleteStockReconciliationItem
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/stock_reconciliation_items/bulk:
post:
tags:
- StockReconciliationItems
summary: Bulk create StockReconciliationItems
operationId: bulkCreateStockReconciliationItems
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateStockReconciliationItemRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StockReconciliationItem'
put:
tags:
- StockReconciliationItems
summary: Bulk update StockReconciliationItems (full, atomic)
operationId: bulkUpdateStockReconciliationItems
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateStockReconciliationItemRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockReconciliationItemBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- StockReconciliationItems
summary: Bulk partial-update StockReconciliationItems (atomic)
operationId: bulkPatchStockReconciliationItems
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockReconciliationItemBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_reconciliation_items/upsert:
post:
tags:
- StockReconciliationItems
summary: Upsert StockReconciliationItem
operationId: upsertStockReconciliationItem
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStockReconciliationItemRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/StockReconciliationItem'
/api/v1/inventory/stock_reconciliation_items/trash:
get:
tags:
- StockReconciliationItems
summary: List deleted StockReconciliationItems
operationId: listDeletedStockReconciliationItems
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockReconciliationItemList'
/api/v1/inventory/stock_reconciliation_items/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- StockReconciliationItems
summary: Restore deleted StockReconciliationItem
operationId: restoreStockReconciliationItem
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/StockReconciliationItem'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/stock_reconciliation_items/empty:
delete:
tags:
- StockReconciliationItems
summary: Empty trash for StockReconciliationItems
operationId: emptyTrashStockReconciliationItems
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/stock_reconciliation_items/delete/bulk:
post:
tags:
- StockReconciliationItems
summary: Bulk soft-delete StockReconciliationItems by ids (atomic)
operationId: bulkDeleteStockReconciliationItems
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_reconciliation_items/restore/bulk:
post:
tags:
- StockReconciliationItems
summary: Bulk restore StockReconciliationItems by ids (atomic)
operationId: bulkRestoreStockReconciliationItems
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/StockReconciliationItemBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_reconciliation_items/restore/all:
post:
tags:
- StockReconciliationItems
summary: Restore all soft-deleted StockReconciliationItems
operationId: restoreAllStockReconciliationItems
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/stock_reconciliation_items/trash/bulk:
delete:
tags:
- StockReconciliationItems
summary: Bulk permanently-delete StockReconciliationItems from trash by ids (atomic)
operationId: bulkPermanentDeleteStockReconciliationItems
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/package_types:
get:
tags:
- PackageTypes
summary: List PackageTypes
description: Get a paginated list of PackageTypes with optional filtering and sorting
operationId: listPackageTypes
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/PackageTypeList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- PackageTypes
summary: Create PackageType
description: Create a new PackageType
operationId: createPackageType
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePackageTypeRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/PackageType'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/package_types/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- PackageTypes
summary: Get PackageType by ID
operationId: getPackageType
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/PackageType'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- PackageTypes
summary: Update PackageType (full)
operationId: updatePackageType
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePackageTypeRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/PackageType'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- PackageTypes
summary: Update PackageType (partial)
operationId: patchPackageType
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchPackageTypeRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/PackageType'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- PackageTypes
summary: Delete PackageType (soft)
operationId: deletePackageType
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/package_types/bulk:
post:
tags:
- PackageTypes
summary: Bulk create PackageTypes
operationId: bulkCreatePackageTypes
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreatePackageTypeRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PackageType'
put:
tags:
- PackageTypes
summary: Bulk update PackageTypes (full, atomic)
operationId: bulkUpdatePackageTypes
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdatePackageTypeRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/PackageTypeBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- PackageTypes
summary: Bulk partial-update PackageTypes (atomic)
operationId: bulkPatchPackageTypes
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/PackageTypeBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/package_types/upsert:
post:
tags:
- PackageTypes
summary: Upsert PackageType
operationId: upsertPackageType
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePackageTypeRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/PackageType'
/api/v1/inventory/package_types/trash:
get:
tags:
- PackageTypes
summary: List deleted PackageTypes
operationId: listDeletedPackageTypes
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/PackageTypeList'
/api/v1/inventory/package_types/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- PackageTypes
summary: Restore deleted PackageType
operationId: restorePackageType
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/PackageType'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/package_types/empty:
delete:
tags:
- PackageTypes
summary: Empty trash for PackageTypes
operationId: emptyTrashPackageTypes
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/package_types/delete/bulk:
post:
tags:
- PackageTypes
summary: Bulk soft-delete PackageTypes by ids (atomic)
operationId: bulkDeletePackageTypes
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/package_types/restore/bulk:
post:
tags:
- PackageTypes
summary: Bulk restore PackageTypes by ids (atomic)
operationId: bulkRestorePackageTypes
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/PackageTypeBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/package_types/restore/all:
post:
tags:
- PackageTypes
summary: Restore all soft-deleted PackageTypes
operationId: restoreAllPackageTypes
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/package_types/trash/bulk:
delete:
tags:
- PackageTypes
summary: Bulk permanently-delete PackageTypes from trash by ids (atomic)
operationId: bulkPermanentDeletePackageTypes
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/storage_categories:
get:
tags:
- StorageCategories
summary: List StorageCategories
description: Get a paginated list of StorageCategories with optional filtering and sorting
operationId: listStorageCategories
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCategoryList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- StorageCategories
summary: Create StorageCategory
description: Create a new StorageCategory
operationId: createStorageCategory
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateStorageCategoryRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCategory'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/storage_categories/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- StorageCategories
summary: Get StorageCategory by ID
operationId: getStorageCategory
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCategory'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- StorageCategories
summary: Update StorageCategory (full)
operationId: updateStorageCategory
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStorageCategoryRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCategory'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- StorageCategories
summary: Update StorageCategory (partial)
operationId: patchStorageCategory
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchStorageCategoryRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCategory'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- StorageCategories
summary: Delete StorageCategory (soft)
operationId: deleteStorageCategory
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/storage_categories/bulk:
post:
tags:
- StorageCategories
summary: Bulk create StorageCategories
operationId: bulkCreateStorageCategories
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateStorageCategoryRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StorageCategory'
put:
tags:
- StorageCategories
summary: Bulk update StorageCategories (full, atomic)
operationId: bulkUpdateStorageCategories
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateStorageCategoryRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCategoryBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- StorageCategories
summary: Bulk partial-update StorageCategories (atomic)
operationId: bulkPatchStorageCategories
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCategoryBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/storage_categories/upsert:
post:
tags:
- StorageCategories
summary: Upsert StorageCategory
operationId: upsertStorageCategory
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStorageCategoryRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCategory'
/api/v1/inventory/storage_categories/trash:
get:
tags:
- StorageCategories
summary: List deleted StorageCategories
operationId: listDeletedStorageCategories
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCategoryList'
/api/v1/inventory/storage_categories/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- StorageCategories
summary: Restore deleted StorageCategory
operationId: restoreStorageCategory
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCategory'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/storage_categories/empty:
delete:
tags:
- StorageCategories
summary: Empty trash for StorageCategories
operationId: emptyTrashStorageCategories
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/storage_categories/delete/bulk:
post:
tags:
- StorageCategories
summary: Bulk soft-delete StorageCategories by ids (atomic)
operationId: bulkDeleteStorageCategories
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/storage_categories/restore/bulk:
post:
tags:
- StorageCategories
summary: Bulk restore StorageCategories by ids (atomic)
operationId: bulkRestoreStorageCategories
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCategoryBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/storage_categories/restore/all:
post:
tags:
- StorageCategories
summary: Restore all soft-deleted StorageCategories
operationId: restoreAllStorageCategories
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/storage_categories/trash/bulk:
delete:
tags:
- StorageCategories
summary: Bulk permanently-delete StorageCategories from trash by ids (atomic)
operationId: bulkPermanentDeleteStorageCategories
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/storage_category_capacities:
get:
tags:
- StorageCategoryCapacities
summary: List StorageCategoryCapacities
description: Get a paginated list of StorageCategoryCapacities with optional filtering and sorting
operationId: listStorageCategoryCapacities
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCategoryCapacityList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- StorageCategoryCapacities
summary: Create StorageCategoryCapacity
description: Create a new StorageCategoryCapacity
operationId: createStorageCategoryCapacity
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateStorageCategoryCapacityRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCategoryCapacity'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/storage_category_capacities/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- StorageCategoryCapacities
summary: Get StorageCategoryCapacity by ID
operationId: getStorageCategoryCapacity
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCategoryCapacity'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- StorageCategoryCapacities
summary: Update StorageCategoryCapacity (full)
operationId: updateStorageCategoryCapacity
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStorageCategoryCapacityRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCategoryCapacity'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- StorageCategoryCapacities
summary: Update StorageCategoryCapacity (partial)
operationId: patchStorageCategoryCapacity
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchStorageCategoryCapacityRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCategoryCapacity'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- StorageCategoryCapacities
summary: Delete StorageCategoryCapacity (soft)
operationId: deleteStorageCategoryCapacity
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/storage_category_capacities/bulk:
post:
tags:
- StorageCategoryCapacities
summary: Bulk create StorageCategoryCapacities
operationId: bulkCreateStorageCategoryCapacities
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateStorageCategoryCapacityRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StorageCategoryCapacity'
put:
tags:
- StorageCategoryCapacities
summary: Bulk update StorageCategoryCapacities (full, atomic)
operationId: bulkUpdateStorageCategoryCapacities
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateStorageCategoryCapacityRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCategoryCapacityBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- StorageCategoryCapacities
summary: Bulk partial-update StorageCategoryCapacities (atomic)
operationId: bulkPatchStorageCategoryCapacities
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCategoryCapacityBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/storage_category_capacities/upsert:
post:
tags:
- StorageCategoryCapacities
summary: Upsert StorageCategoryCapacity
operationId: upsertStorageCategoryCapacity
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStorageCategoryCapacityRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCategoryCapacity'
/api/v1/inventory/storage_category_capacities/trash:
get:
tags:
- StorageCategoryCapacities
summary: List deleted StorageCategoryCapacities
operationId: listDeletedStorageCategoryCapacities
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCategoryCapacityList'
/api/v1/inventory/storage_category_capacities/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- StorageCategoryCapacities
summary: Restore deleted StorageCategoryCapacity
operationId: restoreStorageCategoryCapacity
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCategoryCapacity'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/storage_category_capacities/empty:
delete:
tags:
- StorageCategoryCapacities
summary: Empty trash for StorageCategoryCapacities
operationId: emptyTrashStorageCategoryCapacities
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/storage_category_capacities/delete/bulk:
post:
tags:
- StorageCategoryCapacities
summary: Bulk soft-delete StorageCategoryCapacities by ids (atomic)
operationId: bulkDeleteStorageCategoryCapacities
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/storage_category_capacities/restore/bulk:
post:
tags:
- StorageCategoryCapacities
summary: Bulk restore StorageCategoryCapacities by ids (atomic)
operationId: bulkRestoreStorageCategoryCapacities
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/StorageCategoryCapacityBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/storage_category_capacities/restore/all:
post:
tags:
- StorageCategoryCapacities
summary: Restore all soft-deleted StorageCategoryCapacities
operationId: restoreAllStorageCategoryCapacities
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/storage_category_capacities/trash/bulk:
delete:
tags:
- StorageCategoryCapacities
summary: Bulk permanently-delete StorageCategoryCapacities from trash by ids (atomic)
operationId: bulkPermanentDeleteStorageCategoryCapacities
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/putaway_rules:
get:
tags:
- PutawayRules
summary: List PutawayRules
description: Get a paginated list of PutawayRules with optional filtering and sorting
operationId: listPutawayRules
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/PutawayRuleList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- PutawayRules
summary: Create PutawayRule
description: Create a new PutawayRule
operationId: createPutawayRule
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePutawayRuleRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/PutawayRule'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/putaway_rules/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- PutawayRules
summary: Get PutawayRule by ID
operationId: getPutawayRule
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/PutawayRule'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- PutawayRules
summary: Update PutawayRule (full)
operationId: updatePutawayRule
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePutawayRuleRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/PutawayRule'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- PutawayRules
summary: Update PutawayRule (partial)
operationId: patchPutawayRule
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchPutawayRuleRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/PutawayRule'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- PutawayRules
summary: Delete PutawayRule (soft)
operationId: deletePutawayRule
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/putaway_rules/bulk:
post:
tags:
- PutawayRules
summary: Bulk create PutawayRules
operationId: bulkCreatePutawayRules
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreatePutawayRuleRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PutawayRule'
put:
tags:
- PutawayRules
summary: Bulk update PutawayRules (full, atomic)
operationId: bulkUpdatePutawayRules
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdatePutawayRuleRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/PutawayRuleBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- PutawayRules
summary: Bulk partial-update PutawayRules (atomic)
operationId: bulkPatchPutawayRules
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/PutawayRuleBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/putaway_rules/upsert:
post:
tags:
- PutawayRules
summary: Upsert PutawayRule
operationId: upsertPutawayRule
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePutawayRuleRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/PutawayRule'
/api/v1/inventory/putaway_rules/trash:
get:
tags:
- PutawayRules
summary: List deleted PutawayRules
operationId: listDeletedPutawayRules
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/PutawayRuleList'
/api/v1/inventory/putaway_rules/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- PutawayRules
summary: Restore deleted PutawayRule
operationId: restorePutawayRule
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/PutawayRule'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/putaway_rules/empty:
delete:
tags:
- PutawayRules
summary: Empty trash for PutawayRules
operationId: emptyTrashPutawayRules
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/putaway_rules/delete/bulk:
post:
tags:
- PutawayRules
summary: Bulk soft-delete PutawayRules by ids (atomic)
operationId: bulkDeletePutawayRules
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/putaway_rules/restore/bulk:
post:
tags:
- PutawayRules
summary: Bulk restore PutawayRules by ids (atomic)
operationId: bulkRestorePutawayRules
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/PutawayRuleBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/putaway_rules/restore/all:
post:
tags:
- PutawayRules
summary: Restore all soft-deleted PutawayRules
operationId: restoreAllPutawayRules
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/putaway_rules/trash/bulk:
delete:
tags:
- PutawayRules
summary: Bulk permanently-delete PutawayRules from trash by ids (atomic)
operationId: bulkPermanentDeletePutawayRules
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/lots:
get:
tags:
- Lots
summary: List Lots
description: Get a paginated list of Lots with optional filtering and sorting
operationId: listLots
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/LotList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- Lots
summary: Create Lot
description: Create a new Lot
operationId: createLot
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateLotRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/Lot'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/lots/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- Lots
summary: Get Lot by ID
operationId: getLot
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Lot'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- Lots
summary: Update Lot (full)
operationId: updateLot
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateLotRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/Lot'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- Lots
summary: Update Lot (partial)
operationId: patchLot
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchLotRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/Lot'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- Lots
summary: Delete Lot (soft)
operationId: deleteLot
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/lots/bulk:
post:
tags:
- Lots
summary: Bulk create Lots
operationId: bulkCreateLots
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateLotRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Lot'
put:
tags:
- Lots
summary: Bulk update Lots (full, atomic)
operationId: bulkUpdateLots
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateLotRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/LotBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- Lots
summary: Bulk partial-update Lots (atomic)
operationId: bulkPatchLots
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/LotBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/lots/upsert:
post:
tags:
- Lots
summary: Upsert Lot
operationId: upsertLot
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateLotRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/Lot'
/api/v1/inventory/lots/trash:
get:
tags:
- Lots
summary: List deleted Lots
operationId: listDeletedLots
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/LotList'
/api/v1/inventory/lots/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- Lots
summary: Restore deleted Lot
operationId: restoreLot
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/Lot'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/lots/empty:
delete:
tags:
- Lots
summary: Empty trash for Lots
operationId: emptyTrashLots
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/lots/delete/bulk:
post:
tags:
- Lots
summary: Bulk soft-delete Lots by ids (atomic)
operationId: bulkDeleteLots
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/lots/restore/bulk:
post:
tags:
- Lots
summary: Bulk restore Lots by ids (atomic)
operationId: bulkRestoreLots
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/LotBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/lots/restore/all:
post:
tags:
- Lots
summary: Restore all soft-deleted Lots
operationId: restoreAllLots
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/lots/trash/bulk:
delete:
tags:
- Lots
summary: Bulk permanently-delete Lots from trash by ids (atomic)
operationId: bulkPermanentDeleteLots
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/packages:
get:
tags:
- Packages
summary: List Packages
description: Get a paginated list of Packages with optional filtering and sorting
operationId: listPackages
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/PackageList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- Packages
summary: Create Package
description: Create a new Package
operationId: createPackage
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePackageRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/Package'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/packages/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- Packages
summary: Get Package by ID
operationId: getPackage
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Package'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- Packages
summary: Update Package (full)
operationId: updatePackage
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePackageRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/Package'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- Packages
summary: Update Package (partial)
operationId: patchPackage
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchPackageRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/Package'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- Packages
summary: Delete Package (soft)
operationId: deletePackage
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/packages/bulk:
post:
tags:
- Packages
summary: Bulk create Packages
operationId: bulkCreatePackages
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreatePackageRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Package'
put:
tags:
- Packages
summary: Bulk update Packages (full, atomic)
operationId: bulkUpdatePackages
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdatePackageRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/PackageBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- Packages
summary: Bulk partial-update Packages (atomic)
operationId: bulkPatchPackages
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/PackageBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/packages/upsert:
post:
tags:
- Packages
summary: Upsert Package
operationId: upsertPackage
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePackageRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/Package'
/api/v1/inventory/packages/trash:
get:
tags:
- Packages
summary: List deleted Packages
operationId: listDeletedPackages
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/PackageList'
/api/v1/inventory/packages/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- Packages
summary: Restore deleted Package
operationId: restorePackage
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/Package'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/packages/empty:
delete:
tags:
- Packages
summary: Empty trash for Packages
operationId: emptyTrashPackages
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/packages/delete/bulk:
post:
tags:
- Packages
summary: Bulk soft-delete Packages by ids (atomic)
operationId: bulkDeletePackages
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/packages/restore/bulk:
post:
tags:
- Packages
summary: Bulk restore Packages by ids (atomic)
operationId: bulkRestorePackages
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/PackageBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/packages/restore/all:
post:
tags:
- Packages
summary: Restore all soft-deleted Packages
operationId: restoreAllPackages
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/packages/trash/bulk:
delete:
tags:
- Packages
summary: Bulk permanently-delete Packages from trash by ids (atomic)
operationId: bulkPermanentDeletePackages
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/warehouses:
get:
tags:
- Warehouses
summary: List Warehouses
description: Get a paginated list of Warehouses with optional filtering and sorting
operationId: listWarehouses
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/WarehouseList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- Warehouses
summary: Create Warehouse
description: Create a new Warehouse
operationId: createWarehouse
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateWarehouseRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/Warehouse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/warehouses/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- Warehouses
summary: Get Warehouse by ID
operationId: getWarehouse
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Warehouse'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- Warehouses
summary: Update Warehouse (full)
operationId: updateWarehouse
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateWarehouseRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/Warehouse'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- Warehouses
summary: Update Warehouse (partial)
operationId: patchWarehouse
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchWarehouseRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/Warehouse'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- Warehouses
summary: Delete Warehouse (soft)
operationId: deleteWarehouse
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/warehouses/bulk:
post:
tags:
- Warehouses
summary: Bulk create Warehouses
operationId: bulkCreateWarehouses
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateWarehouseRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Warehouse'
put:
tags:
- Warehouses
summary: Bulk update Warehouses (full, atomic)
operationId: bulkUpdateWarehouses
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateWarehouseRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/WarehouseBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- Warehouses
summary: Bulk partial-update Warehouses (atomic)
operationId: bulkPatchWarehouses
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/WarehouseBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/warehouses/upsert:
post:
tags:
- Warehouses
summary: Upsert Warehouse
operationId: upsertWarehouse
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateWarehouseRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/Warehouse'
/api/v1/inventory/warehouses/trash:
get:
tags:
- Warehouses
summary: List deleted Warehouses
operationId: listDeletedWarehouses
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/WarehouseList'
/api/v1/inventory/warehouses/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- Warehouses
summary: Restore deleted Warehouse
operationId: restoreWarehouse
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/Warehouse'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/warehouses/empty:
delete:
tags:
- Warehouses
summary: Empty trash for Warehouses
operationId: emptyTrashWarehouses
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/warehouses/delete/bulk:
post:
tags:
- Warehouses
summary: Bulk soft-delete Warehouses by ids (atomic)
operationId: bulkDeleteWarehouses
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/warehouses/restore/bulk:
post:
tags:
- Warehouses
summary: Bulk restore Warehouses by ids (atomic)
operationId: bulkRestoreWarehouses
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/WarehouseBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/warehouses/restore/all:
post:
tags:
- Warehouses
summary: Restore all soft-deleted Warehouses
operationId: restoreAllWarehouses
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/warehouses/trash/bulk:
delete:
tags:
- Warehouses
summary: Bulk permanently-delete Warehouses from trash by ids (atomic)
operationId: bulkPermanentDeleteWarehouses
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_items:
get:
tags:
- StockItems
summary: List StockItems
description: Get a paginated list of StockItems with optional filtering and sorting
operationId: listStockItems
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
- $ref: '#/components/parameters/SortByParam'
- $ref: '#/components/parameters/SortOrderParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockItemList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- StockItems
summary: Create StockItem
description: Create a new StockItem
operationId: createStockItem
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateStockItemRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/StockItem'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/inventory/stock_items/{id}:
parameters:
- $ref: '#/components/parameters/IdParam'
get:
tags:
- StockItems
summary: Get StockItem by ID
operationId: getStockItem
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockItem'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- StockItems
summary: Update StockItem (full)
operationId: updateStockItem
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStockItemRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockItem'
'404':
$ref: '#/components/responses/NotFound'
patch:
tags:
- StockItems
summary: Update StockItem (partial)
operationId: patchStockItem
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PatchStockItemRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockItem'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- StockItems
summary: Delete StockItem (soft)
operationId: deleteStockItem
responses:
'204':
description: Deleted
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/stock_items/bulk:
post:
tags:
- StockItems
summary: Bulk create StockItems
operationId: bulkCreateStockItems
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreateStockItemRequest'
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StockItem'
put:
tags:
- StockItems
summary: Bulk update StockItems (full, atomic)
operationId: bulkUpdateStockItems
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
allOf:
- type: object
required: [id]
properties:
id:
type: string
- $ref: '#/components/schemas/UpdateStockItemRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockItemBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
patch:
tags:
- StockItems
summary: Bulk partial-update StockItems (atomic)
operationId: bulkPatchStockItems
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
required: [ids, patch]
properties:
ids:
type: array
items: { type: string }
patch:
type: object
additionalProperties: true
- type: object
required: [items]
properties:
items:
type: array
items:
type: object
required: [id, patch]
properties:
id: { type: string }
patch: { type: object, additionalProperties: true }
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/StockItemBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_items/upsert:
post:
tags:
- StockItems
summary: Upsert StockItem
operationId: upsertStockItem
parameters:
- name: key_field
in: query
schema:
type: string
- name: key_value
in: query
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStockItemRequest'
responses:
'200':
description: Upserted
content:
application/json:
schema:
$ref: '#/components/schemas/StockItem'
/api/v1/inventory/stock_items/trash:
get:
tags:
- StockItems
summary: List deleted StockItems
operationId: listDeletedStockItems
parameters:
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PerPageParam'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/StockItemList'
/api/v1/inventory/stock_items/{id}/restore:
parameters:
- $ref: '#/components/parameters/IdParam'
post:
tags:
- StockItems
summary: Restore deleted StockItem
operationId: restoreStockItem
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/StockItem'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/inventory/stock_items/empty:
delete:
tags:
- StockItems
summary: Empty trash for StockItems
operationId: emptyTrashStockItems
responses:
'200':
description: Trash emptied
content:
application/json:
schema:
type: object
properties:
deleted_count:
type: integer
/api/v1/inventory/stock_items/delete/bulk:
post:
tags:
- StockItems
summary: Bulk soft-delete StockItems by ids (atomic)
operationId: bulkDeleteStockItems
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Soft-deleted
content:
application/json:
schema:
type: object
properties:
soft_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_items/restore/bulk:
post:
tags:
- StockItems
summary: Bulk restore StockItems by ids (atomic)
operationId: bulkRestoreStockItems
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Restored
content:
application/json:
schema:
$ref: '#/components/schemas/StockItemBulkResult'
'400':
$ref: '#/components/responses/BadRequest'
/api/v1/inventory/stock_items/restore/all:
post:
tags:
- StockItems
summary: Restore all soft-deleted StockItems
operationId: restoreAllStockItems
responses:
'200':
description: Restored
content:
application/json:
schema:
type: object
properties:
restored: { type: integer }
/api/v1/inventory/stock_items/trash/bulk:
delete:
tags:
- StockItems
summary: Bulk permanently-delete StockItems from trash by ids (atomic)
operationId: bulkPermanentDeleteStockItems
requestBody:
$ref: '#/components/requestBodies/BatchIds'
responses:
'200':
description: Permanently deleted
content:
application/json:
schema:
type: object
properties:
permanently_deleted: { type: integer }
'400':
$ref: '#/components/responses/BadRequest'
components:
schemas:
PickingBatch:
type: object
required:
- id
- name
- state
- is_wave
- scheduled_date
- had_members
- metadata
properties:
id:
type: string
format: uuid
name:
type: string
maxLength: 40
note:
nullable: true
type: string
maxLength: 2000
state:
type: string
is_wave:
type: boolean
user_id:
nullable: true
type: string
format: uuid
scheduled_date:
type: string
format: date-time
had_members:
type: boolean
metadata:
type: object
PickingBatchBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/PickingBatch'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreatePickingBatchRequest:
type: object
required:
- name
- state
- is_wave
- scheduled_date
- had_members
- metadata
properties:
name:
type: string
maxLength: 40
note:
nullable: true
type: string
maxLength: 2000
state:
type: string
is_wave:
type: boolean
user_id:
nullable: true
type: string
format: uuid
scheduled_date:
type: string
format: date-time
had_members:
type: boolean
metadata:
type: object
UpdatePickingBatchRequest:
type: object
required:
- name
- state
- is_wave
- scheduled_date
- had_members
- metadata
properties:
name:
type: string
maxLength: 40
note:
nullable: true
type: string
maxLength: 2000
state:
type: string
is_wave:
type: boolean
user_id:
nullable: true
type: string
format: uuid
scheduled_date:
type: string
format: date-time
had_members:
type: boolean
metadata:
type: object
PatchPickingBatchRequest:
type: object
properties:
name:
type: string
maxLength: 40
note:
nullable: true
type: string
maxLength: 2000
state:
type: string
is_wave:
type: boolean
user_id:
nullable: true
type: string
format: uuid
scheduled_date:
type: string
format: date-time
had_members:
type: boolean
metadata:
type: object
PickingBatchList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/PickingBatch'
meta:
$ref: '#/components/schemas/PaginationMeta'
DeliveryNote:
type: object
required:
- id
- delivery_number
- customer_id
- warehouse_id
- posting_date
- total_cogs
- cogs_account_id
- inventory_account_id
- status
- posting_state
- metadata
properties:
id:
type: string
format: uuid
delivery_number:
type: string
maxLength: 40
branch_id:
nullable: true
type: string
format: uuid
customer_id:
type: string
format: uuid
source_so_id:
nullable: true
type: string
format: uuid
warehouse_id:
type: string
format: uuid
posting_date:
type: string
format: date
total_cogs:
type: string
cogs_account_id:
type: string
format: uuid
inventory_account_id:
type: string
format: uuid
transfer_id:
nullable: true
type: string
format: uuid
status:
type: string
posting_state:
type: string
journal_id:
nullable: true
type: string
format: uuid
accounting_post_id:
nullable: true
type: string
format: uuid
posted_at:
nullable: true
type: string
format: date-time
notes:
nullable: true
type: string
maxLength: 1000
metadata:
type: object
DeliveryNoteBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/DeliveryNote'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateDeliveryNoteRequest:
type: object
required:
- delivery_number
- customer_id
- warehouse_id
- posting_date
- total_cogs
- cogs_account_id
- inventory_account_id
- status
- posting_state
- metadata
properties:
delivery_number:
type: string
maxLength: 40
branch_id:
nullable: true
type: string
format: uuid
customer_id:
type: string
format: uuid
source_so_id:
nullable: true
type: string
format: uuid
warehouse_id:
type: string
format: uuid
posting_date:
type: string
format: date
total_cogs:
type: string
cogs_account_id:
type: string
format: uuid
inventory_account_id:
type: string
format: uuid
transfer_id:
nullable: true
type: string
format: uuid
status:
type: string
posting_state:
type: string
journal_id:
nullable: true
type: string
format: uuid
accounting_post_id:
nullable: true
type: string
format: uuid
posted_at:
nullable: true
type: string
format: date-time
notes:
nullable: true
type: string
maxLength: 1000
metadata:
type: object
UpdateDeliveryNoteRequest:
type: object
required:
- delivery_number
- customer_id
- warehouse_id
- posting_date
- total_cogs
- cogs_account_id
- inventory_account_id
- status
- posting_state
- metadata
properties:
delivery_number:
type: string
maxLength: 40
branch_id:
nullable: true
type: string
format: uuid
customer_id:
type: string
format: uuid
source_so_id:
nullable: true
type: string
format: uuid
warehouse_id:
type: string
format: uuid
posting_date:
type: string
format: date
total_cogs:
type: string
cogs_account_id:
type: string
format: uuid
inventory_account_id:
type: string
format: uuid
transfer_id:
nullable: true
type: string
format: uuid
status:
type: string
posting_state:
type: string
journal_id:
nullable: true
type: string
format: uuid
accounting_post_id:
nullable: true
type: string
format: uuid
posted_at:
nullable: true
type: string
format: date-time
notes:
nullable: true
type: string
maxLength: 1000
metadata:
type: object
PatchDeliveryNoteRequest:
type: object
properties:
delivery_number:
type: string
maxLength: 40
branch_id:
nullable: true
type: string
format: uuid
customer_id:
type: string
format: uuid
source_so_id:
nullable: true
type: string
format: uuid
warehouse_id:
type: string
format: uuid
posting_date:
type: string
format: date
total_cogs:
type: string
cogs_account_id:
type: string
format: uuid
inventory_account_id:
type: string
format: uuid
transfer_id:
nullable: true
type: string
format: uuid
status:
type: string
posting_state:
type: string
journal_id:
nullable: true
type: string
format: uuid
accounting_post_id:
nullable: true
type: string
format: uuid
posted_at:
nullable: true
type: string
format: date-time
notes:
nullable: true
type: string
maxLength: 1000
metadata:
type: object
DeliveryNoteList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/DeliveryNote'
meta:
$ref: '#/components/schemas/PaginationMeta'
DeliveryNoteItem:
type: object
required:
- id
- delivery_id
- item_id
- quantity
- valuation_rate
- cogs_amount
- metadata
properties:
id:
type: string
format: uuid
delivery_id:
type: string
format: uuid
item_id:
type: string
format: uuid
quantity:
type: string
valuation_rate:
type: string
cogs_amount:
type: string
metadata:
type: object
DeliveryNoteItemBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/DeliveryNoteItem'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateDeliveryNoteItemRequest:
type: object
required:
- delivery_id
- item_id
- quantity
- valuation_rate
- cogs_amount
- metadata
properties:
delivery_id:
type: string
format: uuid
item_id:
type: string
format: uuid
quantity:
type: string
valuation_rate:
type: string
cogs_amount:
type: string
metadata:
type: object
UpdateDeliveryNoteItemRequest:
type: object
required:
- delivery_id
- item_id
- quantity
- valuation_rate
- cogs_amount
- metadata
properties:
delivery_id:
type: string
format: uuid
item_id:
type: string
format: uuid
quantity:
type: string
valuation_rate:
type: string
cogs_amount:
type: string
metadata:
type: object
PatchDeliveryNoteItemRequest:
type: object
properties:
delivery_id:
type: string
format: uuid
item_id:
type: string
format: uuid
quantity:
type: string
valuation_rate:
type: string
cogs_amount:
type: string
metadata:
type: object
DeliveryNoteItemList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/DeliveryNoteItem'
meta:
$ref: '#/components/schemas/PaginationMeta'
InventoryCompanySetting:
type: object
required:
- id
- cost_method
- valuation_policy
- anglo_saxon_accounting
- metadata
properties:
id:
type: string
format: uuid
cost_method:
type: string
valuation_policy:
type: string
anglo_saxon_accounting:
type: boolean
stock_interim_delivered_account_id:
nullable: true
type: string
format: uuid
metadata:
type: object
InventoryCompanySettingBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/InventoryCompanySetting'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateInventoryCompanySettingRequest:
type: object
required:
- cost_method
- valuation_policy
- anglo_saxon_accounting
- metadata
properties:
cost_method:
type: string
valuation_policy:
type: string
anglo_saxon_accounting:
type: boolean
stock_interim_delivered_account_id:
nullable: true
type: string
format: uuid
metadata:
type: object
UpdateInventoryCompanySettingRequest:
type: object
required:
- cost_method
- valuation_policy
- anglo_saxon_accounting
- metadata
properties:
cost_method:
type: string
valuation_policy:
type: string
anglo_saxon_accounting:
type: boolean
stock_interim_delivered_account_id:
nullable: true
type: string
format: uuid
metadata:
type: object
PatchInventoryCompanySettingRequest:
type: object
properties:
cost_method:
type: string
valuation_policy:
type: string
anglo_saxon_accounting:
type: boolean
stock_interim_delivered_account_id:
nullable: true
type: string
format: uuid
metadata:
type: object
InventoryCompanySettingList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/InventoryCompanySetting'
meta:
$ref: '#/components/schemas/PaginationMeta'
LandedCost:
type: object
required:
- id
- lc_number
- target_receipt_id
- currency
- posting_date
- state
- amount_total
- posting_state
- metadata
properties:
id:
type: string
format: uuid
lc_number:
type: string
maxLength: 40
branch_id:
nullable: true
type: string
format: uuid
target_receipt_id:
type: string
format: uuid
transfer_id:
nullable: true
type: string
format: uuid
currency:
type: string
maxLength: 3
posting_date:
type: string
format: date
state:
type: string
amount_total:
type: string
posting_state:
type: string
journal_id:
nullable: true
type: string
format: uuid
accounting_post_id:
nullable: true
type: string
format: uuid
posted_at:
nullable: true
type: string
format: date-time
notes:
nullable: true
type: string
maxLength: 1000
metadata:
type: object
LandedCostBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/LandedCost'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateLandedCostRequest:
type: object
required:
- lc_number
- target_receipt_id
- currency
- posting_date
- state
- amount_total
- posting_state
- metadata
properties:
lc_number:
type: string
maxLength: 40
branch_id:
nullable: true
type: string
format: uuid
target_receipt_id:
type: string
format: uuid
transfer_id:
nullable: true
type: string
format: uuid
currency:
type: string
maxLength: 3
posting_date:
type: string
format: date
state:
type: string
amount_total:
type: string
posting_state:
type: string
journal_id:
nullable: true
type: string
format: uuid
accounting_post_id:
nullable: true
type: string
format: uuid
posted_at:
nullable: true
type: string
format: date-time
notes:
nullable: true
type: string
maxLength: 1000
metadata:
type: object
UpdateLandedCostRequest:
type: object
required:
- lc_number
- target_receipt_id
- currency
- posting_date
- state
- amount_total
- posting_state
- metadata
properties:
lc_number:
type: string
maxLength: 40
branch_id:
nullable: true
type: string
format: uuid
target_receipt_id:
type: string
format: uuid
transfer_id:
nullable: true
type: string
format: uuid
currency:
type: string
maxLength: 3
posting_date:
type: string
format: date
state:
type: string
amount_total:
type: string
posting_state:
type: string
journal_id:
nullable: true
type: string
format: uuid
accounting_post_id:
nullable: true
type: string
format: uuid
posted_at:
nullable: true
type: string
format: date-time
notes:
nullable: true
type: string
maxLength: 1000
metadata:
type: object
PatchLandedCostRequest:
type: object
properties:
lc_number:
type: string
maxLength: 40
branch_id:
nullable: true
type: string
format: uuid
target_receipt_id:
type: string
format: uuid
transfer_id:
nullable: true
type: string
format: uuid
currency:
type: string
maxLength: 3
posting_date:
type: string
format: date
state:
type: string
amount_total:
type: string
posting_state:
type: string
journal_id:
nullable: true
type: string
format: uuid
accounting_post_id:
nullable: true
type: string
format: uuid
posted_at:
nullable: true
type: string
format: date-time
notes:
nullable: true
type: string
maxLength: 1000
metadata:
type: object
LandedCostList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/LandedCost'
meta:
$ref: '#/components/schemas/PaginationMeta'
LandedCostLine:
type: object
required:
- id
- lc_id
- name
- account_id
- split_method
- amount
- metadata
properties:
id:
type: string
format: uuid
lc_id:
type: string
format: uuid
name:
type: string
maxLength: 150
account_id:
type: string
format: uuid
split_method:
type: string
amount:
type: string
metadata:
type: object
LandedCostLineBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/LandedCostLine'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateLandedCostLineRequest:
type: object
required:
- lc_id
- name
- account_id
- split_method
- amount
- metadata
properties:
lc_id:
type: string
format: uuid
name:
type: string
maxLength: 150
account_id:
type: string
format: uuid
split_method:
type: string
amount:
type: string
metadata:
type: object
UpdateLandedCostLineRequest:
type: object
required:
- lc_id
- name
- account_id
- split_method
- amount
- metadata
properties:
lc_id:
type: string
format: uuid
name:
type: string
maxLength: 150
account_id:
type: string
format: uuid
split_method:
type: string
amount:
type: string
metadata:
type: object
PatchLandedCostLineRequest:
type: object
properties:
lc_id:
type: string
format: uuid
name:
type: string
maxLength: 150
account_id:
type: string
format: uuid
split_method:
type: string
amount:
type: string
metadata:
type: object
LandedCostLineList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/LandedCostLine'
meta:
$ref: '#/components/schemas/PaginationMeta'
LandedCostAdjustmentLine:
type: object
required:
- id
- lc_id
- move_line_id
- cost_line_id
- share
- additional_landed_cost
- remaining_qty
- metadata
properties:
id:
type: string
format: uuid
lc_id:
type: string
format: uuid
move_line_id:
type: string
format: uuid
cost_line_id:
type: string
format: uuid
share:
type: string
additional_landed_cost:
type: string
remaining_qty:
type: string
metadata:
type: object
LandedCostAdjustmentLineBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/LandedCostAdjustmentLine'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateLandedCostAdjustmentLineRequest:
type: object
required:
- lc_id
- move_line_id
- cost_line_id
- share
- additional_landed_cost
- remaining_qty
- metadata
properties:
lc_id:
type: string
format: uuid
move_line_id:
type: string
format: uuid
cost_line_id:
type: string
format: uuid
share:
type: string
additional_landed_cost:
type: string
remaining_qty:
type: string
metadata:
type: object
UpdateLandedCostAdjustmentLineRequest:
type: object
required:
- lc_id
- move_line_id
- cost_line_id
- share
- additional_landed_cost
- remaining_qty
- metadata
properties:
lc_id:
type: string
format: uuid
move_line_id:
type: string
format: uuid
cost_line_id:
type: string
format: uuid
share:
type: string
additional_landed_cost:
type: string
remaining_qty:
type: string
metadata:
type: object
PatchLandedCostAdjustmentLineRequest:
type: object
properties:
lc_id:
type: string
format: uuid
move_line_id:
type: string
format: uuid
cost_line_id:
type: string
format: uuid
share:
type: string
additional_landed_cost:
type: string
remaining_qty:
type: string
metadata:
type: object
LandedCostAdjustmentLineList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/LandedCostAdjustmentLine'
meta:
$ref: '#/components/schemas/PaginationMeta'
Location:
type: object
required:
- id
- name
- complete_name
- active
- usage
- parent_path
- cyclic_inventory_frequency
- metadata
properties:
id:
type: string
format: uuid
name:
type: string
maxLength: 150
complete_name:
type: string
maxLength: 500
active:
type: boolean
usage:
type: string
location_id:
nullable: true
type: string
format: uuid
parent_path:
type: string
maxLength: 1000
barcode:
nullable: true
type: string
maxLength: 64
warehouse_id:
nullable: true
type: string
format: uuid
cyclic_inventory_frequency:
type: integer
format: int32
last_inventory_date:
nullable: true
type: string
format: date
next_inventory_date:
nullable: true
type: string
format: date
valuation_account_id:
nullable: true
type: string
format: uuid
storage_category_id:
nullable: true
type: string
format: uuid
metadata:
type: object
LocationBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Location'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateLocationRequest:
type: object
required:
- name
- complete_name
- active
- usage
- parent_path
- cyclic_inventory_frequency
- metadata
properties:
name:
type: string
maxLength: 150
complete_name:
type: string
maxLength: 500
active:
type: boolean
usage:
type: string
location_id:
nullable: true
type: string
format: uuid
parent_path:
type: string
maxLength: 1000
barcode:
nullable: true
type: string
maxLength: 64
warehouse_id:
nullable: true
type: string
format: uuid
cyclic_inventory_frequency:
type: integer
format: int32
last_inventory_date:
nullable: true
type: string
format: date
next_inventory_date:
nullable: true
type: string
format: date
valuation_account_id:
nullable: true
type: string
format: uuid
storage_category_id:
nullable: true
type: string
format: uuid
metadata:
type: object
UpdateLocationRequest:
type: object
required:
- name
- complete_name
- active
- usage
- parent_path
- cyclic_inventory_frequency
- metadata
properties:
name:
type: string
maxLength: 150
complete_name:
type: string
maxLength: 500
active:
type: boolean
usage:
type: string
location_id:
nullable: true
type: string
format: uuid
parent_path:
type: string
maxLength: 1000
barcode:
nullable: true
type: string
maxLength: 64
warehouse_id:
nullable: true
type: string
format: uuid
cyclic_inventory_frequency:
type: integer
format: int32
last_inventory_date:
nullable: true
type: string
format: date
next_inventory_date:
nullable: true
type: string
format: date
valuation_account_id:
nullable: true
type: string
format: uuid
storage_category_id:
nullable: true
type: string
format: uuid
metadata:
type: object
PatchLocationRequest:
type: object
properties:
name:
type: string
maxLength: 150
complete_name:
type: string
maxLength: 500
active:
type: boolean
usage:
type: string
location_id:
nullable: true
type: string
format: uuid
parent_path:
type: string
maxLength: 1000
barcode:
nullable: true
type: string
maxLength: 64
warehouse_id:
nullable: true
type: string
format: uuid
cyclic_inventory_frequency:
type: integer
format: int32
last_inventory_date:
nullable: true
type: string
format: date
next_inventory_date:
nullable: true
type: string
format: date
valuation_account_id:
nullable: true
type: string
format: uuid
storage_category_id:
nullable: true
type: string
format: uuid
metadata:
type: object
LocationList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Location'
meta:
$ref: '#/components/schemas/PaginationMeta'
StockMove:
type: object
required:
- id
- name
- state
- posting_state
- priority
- create_date
- date
- item_id
- demand_qty
- quantity
- price_unit
- procure_method
- location_id
- location_dest_id
- move_orig_ids
- move_dest_ids
- is_inventory
- scrapped
- propagate_cancel
- metadata
properties:
id:
type: string
format: uuid
name:
type: string
maxLength: 400
state:
type: string
posting_state:
type: string
priority:
type: string
create_date:
type: string
format: date-time
date:
type: string
format: date-time
item_id:
type: string
format: uuid
demand_qty:
type: string
quantity:
type: string
price_unit:
type: string
forced_value:
nullable: true
type: string
procure_method:
type: string
picking_id:
nullable: true
type: string
format: uuid
origin:
nullable: true
type: string
maxLength: 200
location_id:
type: string
format: uuid
location_dest_id:
type: string
format: uuid
partner_id:
nullable: true
type: string
format: uuid
rule_id:
nullable: true
type: string
format: uuid
warehouse_id:
nullable: true
type: string
format: uuid
orderpoint_id:
nullable: true
type: string
format: uuid
move_orig_ids:
type: array
move_dest_ids:
type: array
is_inventory:
type: boolean
scrapped:
type: boolean
propagate_cancel:
type: boolean
metadata:
type: object
StockMoveBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/StockMove'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateStockMoveRequest:
type: object
required:
- name
- state
- posting_state
- priority
- create_date
- date
- item_id
- demand_qty
- quantity
- price_unit
- procure_method
- location_id
- location_dest_id
- move_orig_ids
- move_dest_ids
- is_inventory
- scrapped
- propagate_cancel
- metadata
properties:
name:
type: string
maxLength: 400
state:
type: string
posting_state:
type: string
priority:
type: string
create_date:
type: string
format: date-time
date:
type: string
format: date-time
item_id:
type: string
format: uuid
demand_qty:
type: string
quantity:
type: string
price_unit:
type: string
forced_value:
nullable: true
type: string
procure_method:
type: string
picking_id:
nullable: true
type: string
format: uuid
origin:
nullable: true
type: string
maxLength: 200
location_id:
type: string
format: uuid
location_dest_id:
type: string
format: uuid
partner_id:
nullable: true
type: string
format: uuid
rule_id:
nullable: true
type: string
format: uuid
warehouse_id:
nullable: true
type: string
format: uuid
orderpoint_id:
nullable: true
type: string
format: uuid
move_orig_ids:
type: array
move_dest_ids:
type: array
is_inventory:
type: boolean
scrapped:
type: boolean
propagate_cancel:
type: boolean
metadata:
type: object
UpdateStockMoveRequest:
type: object
required:
- name
- state
- posting_state
- priority
- create_date
- date
- item_id
- demand_qty
- quantity
- price_unit
- procure_method
- location_id
- location_dest_id
- move_orig_ids
- move_dest_ids
- is_inventory
- scrapped
- propagate_cancel
- metadata
properties:
name:
type: string
maxLength: 400
state:
type: string
posting_state:
type: string
priority:
type: string
create_date:
type: string
format: date-time
date:
type: string
format: date-time
item_id:
type: string
format: uuid
demand_qty:
type: string
quantity:
type: string
price_unit:
type: string
forced_value:
nullable: true
type: string
procure_method:
type: string
picking_id:
nullable: true
type: string
format: uuid
origin:
nullable: true
type: string
maxLength: 200
location_id:
type: string
format: uuid
location_dest_id:
type: string
format: uuid
partner_id:
nullable: true
type: string
format: uuid
rule_id:
nullable: true
type: string
format: uuid
warehouse_id:
nullable: true
type: string
format: uuid
orderpoint_id:
nullable: true
type: string
format: uuid
move_orig_ids:
type: array
move_dest_ids:
type: array
is_inventory:
type: boolean
scrapped:
type: boolean
propagate_cancel:
type: boolean
metadata:
type: object
PatchStockMoveRequest:
type: object
properties:
name:
type: string
maxLength: 400
state:
type: string
posting_state:
type: string
priority:
type: string
create_date:
type: string
format: date-time
date:
type: string
format: date-time
item_id:
type: string
format: uuid
demand_qty:
type: string
quantity:
type: string
price_unit:
type: string
forced_value:
nullable: true
type: string
procure_method:
type: string
picking_id:
nullable: true
type: string
format: uuid
origin:
nullable: true
type: string
maxLength: 200
location_id:
type: string
format: uuid
location_dest_id:
type: string
format: uuid
partner_id:
nullable: true
type: string
format: uuid
rule_id:
nullable: true
type: string
format: uuid
warehouse_id:
nullable: true
type: string
format: uuid
orderpoint_id:
nullable: true
type: string
format: uuid
move_orig_ids:
type: array
move_dest_ids:
type: array
is_inventory:
type: boolean
scrapped:
type: boolean
propagate_cancel:
type: boolean
metadata:
type: object
StockMoveList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/StockMove'
meta:
$ref: '#/components/schemas/PaginationMeta'
StockMoveLine:
type: object
required:
- id
- quantity
- picked
- state
- date
- move_id
- location_id
- location_dest_id
- item_id
- metadata
properties:
id:
type: string
format: uuid
quantity:
type: string
quantity_product_uom_id:
nullable: true
type: string
format: uuid
picked:
type: boolean
lot_id:
nullable: true
type: string
format: uuid
package_id:
nullable: true
type: string
format: uuid
result_package_id:
nullable: true
type: string
format: uuid
owner_id:
nullable: true
type: string
format: uuid
state:
type: string
date:
type: string
format: date-time
move_id:
type: string
format: uuid
picking_id:
nullable: true
type: string
format: uuid
location_id:
type: string
format: uuid
location_dest_id:
type: string
format: uuid
item_id:
type: string
format: uuid
metadata:
type: object
StockMoveLineBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/StockMoveLine'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateStockMoveLineRequest:
type: object
required:
- quantity
- picked
- state
- date
- move_id
- location_id
- location_dest_id
- item_id
- metadata
properties:
quantity:
type: string
quantity_product_uom_id:
nullable: true
type: string
format: uuid
picked:
type: boolean
lot_id:
nullable: true
type: string
format: uuid
package_id:
nullable: true
type: string
format: uuid
result_package_id:
nullable: true
type: string
format: uuid
owner_id:
nullable: true
type: string
format: uuid
state:
type: string
date:
type: string
format: date-time
move_id:
type: string
format: uuid
picking_id:
nullable: true
type: string
format: uuid
location_id:
type: string
format: uuid
location_dest_id:
type: string
format: uuid
item_id:
type: string
format: uuid
metadata:
type: object
UpdateStockMoveLineRequest:
type: object
required:
- quantity
- picked
- state
- date
- move_id
- location_id
- location_dest_id
- item_id
- metadata
properties:
quantity:
type: string
quantity_product_uom_id:
nullable: true
type: string
format: uuid
picked:
type: boolean
lot_id:
nullable: true
type: string
format: uuid
package_id:
nullable: true
type: string
format: uuid
result_package_id:
nullable: true
type: string
format: uuid
owner_id:
nullable: true
type: string
format: uuid
state:
type: string
date:
type: string
format: date-time
move_id:
type: string
format: uuid
picking_id:
nullable: true
type: string
format: uuid
location_id:
type: string
format: uuid
location_dest_id:
type: string
format: uuid
item_id:
type: string
format: uuid
metadata:
type: object
PatchStockMoveLineRequest:
type: object
properties:
quantity:
type: string
quantity_product_uom_id:
nullable: true
type: string
format: uuid
picked:
type: boolean
lot_id:
nullable: true
type: string
format: uuid
package_id:
nullable: true
type: string
format: uuid
result_package_id:
nullable: true
type: string
format: uuid
owner_id:
nullable: true
type: string
format: uuid
state:
type: string
date:
type: string
format: date-time
move_id:
type: string
format: uuid
picking_id:
nullable: true
type: string
format: uuid
location_id:
type: string
format: uuid
location_dest_id:
type: string
format: uuid
item_id:
type: string
format: uuid
metadata:
type: object
StockMoveLineList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/StockMoveLine'
meta:
$ref: '#/components/schemas/PaginationMeta'
OperationType:
type: object
required:
- id
- name
- sequence_code
- code
- active
- sequence
- default_location_src_id
- default_location_dest_id
- reservation_method
- move_type
- create_backorder
- use_create_lots
- use_existing_lots
- metadata
properties:
id:
type: string
format: uuid
name:
type: string
maxLength: 150
sequence_code:
type: string
maxLength: 10
code:
type: string
active:
type: boolean
sequence:
type: integer
format: int32
warehouse_id:
nullable: true
type: string
format: uuid
default_location_src_id:
type: string
format: uuid
default_location_dest_id:
type: string
format: uuid
reservation_method:
type: string
reservation_days_before:
nullable: true
type: integer
format: int32
move_type:
type: string
create_backorder:
type: string
use_create_lots:
type: boolean
use_existing_lots:
type: boolean
metadata:
type: object
OperationTypeBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/OperationType'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateOperationTypeRequest:
type: object
required:
- name
- sequence_code
- code
- active
- sequence
- default_location_src_id
- default_location_dest_id
- reservation_method
- move_type
- create_backorder
- use_create_lots
- use_existing_lots
- metadata
properties:
name:
type: string
maxLength: 150
sequence_code:
type: string
maxLength: 10
code:
type: string
active:
type: boolean
sequence:
type: integer
format: int32
warehouse_id:
nullable: true
type: string
format: uuid
default_location_src_id:
type: string
format: uuid
default_location_dest_id:
type: string
format: uuid
reservation_method:
type: string
reservation_days_before:
nullable: true
type: integer
format: int32
move_type:
type: string
create_backorder:
type: string
use_create_lots:
type: boolean
use_existing_lots:
type: boolean
metadata:
type: object
UpdateOperationTypeRequest:
type: object
required:
- name
- sequence_code
- code
- active
- sequence
- default_location_src_id
- default_location_dest_id
- reservation_method
- move_type
- create_backorder
- use_create_lots
- use_existing_lots
- metadata
properties:
name:
type: string
maxLength: 150
sequence_code:
type: string
maxLength: 10
code:
type: string
active:
type: boolean
sequence:
type: integer
format: int32
warehouse_id:
nullable: true
type: string
format: uuid
default_location_src_id:
type: string
format: uuid
default_location_dest_id:
type: string
format: uuid
reservation_method:
type: string
reservation_days_before:
nullable: true
type: integer
format: int32
move_type:
type: string
create_backorder:
type: string
use_create_lots:
type: boolean
use_existing_lots:
type: boolean
metadata:
type: object
PatchOperationTypeRequest:
type: object
properties:
name:
type: string
maxLength: 150
sequence_code:
type: string
maxLength: 10
code:
type: string
active:
type: boolean
sequence:
type: integer
format: int32
warehouse_id:
nullable: true
type: string
format: uuid
default_location_src_id:
type: string
format: uuid
default_location_dest_id:
type: string
format: uuid
reservation_method:
type: string
reservation_days_before:
nullable: true
type: integer
format: int32
move_type:
type: string
create_backorder:
type: string
use_create_lots:
type: boolean
use_existing_lots:
type: boolean
metadata:
type: object
OperationTypeList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/OperationType'
meta:
$ref: '#/components/schemas/PaginationMeta'
Transfer:
type: object
required:
- id
- name
- priority
- picking_type_id
- location_id
- location_dest_id
- move_type
- scheduled_date
- state
- is_locked
- metadata
properties:
id:
type: string
format: uuid
name:
type: string
maxLength: 40
origin:
nullable: true
type: string
maxLength: 200
note:
nullable: true
type: string
maxLength: 2000
priority:
type: string
picking_type_id:
type: string
format: uuid
location_id:
type: string
format: uuid
location_dest_id:
type: string
format: uuid
partner_id:
nullable: true
type: string
format: uuid
move_type:
type: string
scheduled_date:
type: string
format: date-time
date_done:
nullable: true
type: string
format: date-time
state:
type: string
is_locked:
type: boolean
backorder_id:
nullable: true
type: string
format: uuid
return_id:
nullable: true
type: string
format: uuid
batch_id:
nullable: true
type: string
format: uuid
metadata:
type: object
TransferBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Transfer'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateTransferRequest:
type: object
required:
- name
- priority
- picking_type_id
- location_id
- location_dest_id
- move_type
- scheduled_date
- state
- is_locked
- metadata
properties:
name:
type: string
maxLength: 40
origin:
nullable: true
type: string
maxLength: 200
note:
nullable: true
type: string
maxLength: 2000
priority:
type: string
picking_type_id:
type: string
format: uuid
location_id:
type: string
format: uuid
location_dest_id:
type: string
format: uuid
partner_id:
nullable: true
type: string
format: uuid
move_type:
type: string
scheduled_date:
type: string
format: date-time
date_done:
nullable: true
type: string
format: date-time
state:
type: string
is_locked:
type: boolean
backorder_id:
nullable: true
type: string
format: uuid
return_id:
nullable: true
type: string
format: uuid
batch_id:
nullable: true
type: string
format: uuid
metadata:
type: object
UpdateTransferRequest:
type: object
required:
- name
- priority
- picking_type_id
- location_id
- location_dest_id
- move_type
- scheduled_date
- state
- is_locked
- metadata
properties:
name:
type: string
maxLength: 40
origin:
nullable: true
type: string
maxLength: 200
note:
nullable: true
type: string
maxLength: 2000
priority:
type: string
picking_type_id:
type: string
format: uuid
location_id:
type: string
format: uuid
location_dest_id:
type: string
format: uuid
partner_id:
nullable: true
type: string
format: uuid
move_type:
type: string
scheduled_date:
type: string
format: date-time
date_done:
nullable: true
type: string
format: date-time
state:
type: string
is_locked:
type: boolean
backorder_id:
nullable: true
type: string
format: uuid
return_id:
nullable: true
type: string
format: uuid
batch_id:
nullable: true
type: string
format: uuid
metadata:
type: object
PatchTransferRequest:
type: object
properties:
name:
type: string
maxLength: 40
origin:
nullable: true
type: string
maxLength: 200
note:
nullable: true
type: string
maxLength: 2000
priority:
type: string
picking_type_id:
type: string
format: uuid
location_id:
type: string
format: uuid
location_dest_id:
type: string
format: uuid
partner_id:
nullable: true
type: string
format: uuid
move_type:
type: string
scheduled_date:
type: string
format: date-time
date_done:
nullable: true
type: string
format: date-time
state:
type: string
is_locked:
type: boolean
backorder_id:
nullable: true
type: string
format: uuid
return_id:
nullable: true
type: string
format: uuid
batch_id:
nullable: true
type: string
format: uuid
metadata:
type: object
TransferList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Transfer'
meta:
$ref: '#/components/schemas/PaginationMeta'
Route:
type: object
required:
- id
- name
- active
- sequence
- product_selectable
- product_categ_selectable
- warehouse_selectable
- metadata
properties:
id:
type: string
format: uuid
name:
type: string
maxLength: 150
active:
type: boolean
sequence:
type: integer
format: int32
product_selectable:
type: boolean
product_categ_selectable:
type: boolean
warehouse_selectable:
type: boolean
metadata:
type: object
RouteBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Route'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateRouteRequest:
type: object
required:
- name
- active
- sequence
- product_selectable
- product_categ_selectable
- warehouse_selectable
- metadata
properties:
name:
type: string
maxLength: 150
active:
type: boolean
sequence:
type: integer
format: int32
product_selectable:
type: boolean
product_categ_selectable:
type: boolean
warehouse_selectable:
type: boolean
metadata:
type: object
UpdateRouteRequest:
type: object
required:
- name
- active
- sequence
- product_selectable
- product_categ_selectable
- warehouse_selectable
- metadata
properties:
name:
type: string
maxLength: 150
active:
type: boolean
sequence:
type: integer
format: int32
product_selectable:
type: boolean
product_categ_selectable:
type: boolean
warehouse_selectable:
type: boolean
metadata:
type: object
PatchRouteRequest:
type: object
properties:
name:
type: string
maxLength: 150
active:
type: boolean
sequence:
type: integer
format: int32
product_selectable:
type: boolean
product_categ_selectable:
type: boolean
warehouse_selectable:
type: boolean
metadata:
type: object
RouteList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Route'
meta:
$ref: '#/components/schemas/PaginationMeta'
RouteRule:
type: object
required:
- id
- name
- active
- sequence
- action
- auto
- procure_method
- delay
- location_dest_id
- picking_type_id
- route_id
- propagate_cancel
- metadata
properties:
id:
type: string
format: uuid
name:
type: string
maxLength: 150
active:
type: boolean
sequence:
type: integer
format: int32
action:
type: string
auto:
type: string
procure_method:
type: string
delay:
type: integer
format: int32
location_src_id:
nullable: true
type: string
format: uuid
location_dest_id:
type: string
format: uuid
picking_type_id:
type: string
format: uuid
route_id:
type: string
format: uuid
warehouse_id:
nullable: true
type: string
format: uuid
propagate_cancel:
type: boolean
metadata:
type: object
RouteRuleBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/RouteRule'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateRouteRuleRequest:
type: object
required:
- name
- active
- sequence
- action
- auto
- procure_method
- delay
- location_dest_id
- picking_type_id
- route_id
- propagate_cancel
- metadata
properties:
name:
type: string
maxLength: 150
active:
type: boolean
sequence:
type: integer
format: int32
action:
type: string
auto:
type: string
procure_method:
type: string
delay:
type: integer
format: int32
location_src_id:
nullable: true
type: string
format: uuid
location_dest_id:
type: string
format: uuid
picking_type_id:
type: string
format: uuid
route_id:
type: string
format: uuid
warehouse_id:
nullable: true
type: string
format: uuid
propagate_cancel:
type: boolean
metadata:
type: object
UpdateRouteRuleRequest:
type: object
required:
- name
- active
- sequence
- action
- auto
- procure_method
- delay
- location_dest_id
- picking_type_id
- route_id
- propagate_cancel
- metadata
properties:
name:
type: string
maxLength: 150
active:
type: boolean
sequence:
type: integer
format: int32
action:
type: string
auto:
type: string
procure_method:
type: string
delay:
type: integer
format: int32
location_src_id:
nullable: true
type: string
format: uuid
location_dest_id:
type: string
format: uuid
picking_type_id:
type: string
format: uuid
route_id:
type: string
format: uuid
warehouse_id:
nullable: true
type: string
format: uuid
propagate_cancel:
type: boolean
metadata:
type: object
PatchRouteRuleRequest:
type: object
properties:
name:
type: string
maxLength: 150
active:
type: boolean
sequence:
type: integer
format: int32
action:
type: string
auto:
type: string
procure_method:
type: string
delay:
type: integer
format: int32
location_src_id:
nullable: true
type: string
format: uuid
location_dest_id:
type: string
format: uuid
picking_type_id:
type: string
format: uuid
route_id:
type: string
format: uuid
warehouse_id:
nullable: true
type: string
format: uuid
propagate_cancel:
type: boolean
metadata:
type: object
RouteRuleList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/RouteRule'
meta:
$ref: '#/components/schemas/PaginationMeta'
ReorderingRule:
type: object
required:
- id
- name
- trigger
- active
- item_id
- location_id
- warehouse_id
- item_min_qty
- item_max_qty
- qty_on_hand
- qty_forecast
- qty_to_order
- qty_to_order_manual
- lead_days
- metadata
properties:
id:
type: string
format: uuid
name:
type: string
maxLength: 40
trigger:
type: string
active:
type: boolean
snoozed_until:
nullable: true
type: string
format: date
item_id:
type: string
format: uuid
location_id:
type: string
format: uuid
warehouse_id:
type: string
format: uuid
item_min_qty:
type: string
item_max_qty:
type: string
route_id:
nullable: true
type: string
format: uuid
qty_on_hand:
type: string
qty_forecast:
type: string
qty_to_order:
type: string
qty_to_order_manual:
type: string
lead_days:
type: string
deadline_date:
nullable: true
type: string
format: date
metadata:
type: object
ReorderingRuleBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/ReorderingRule'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateReorderingRuleRequest:
type: object
required:
- name
- trigger
- active
- item_id
- location_id
- warehouse_id
- item_min_qty
- item_max_qty
- qty_on_hand
- qty_forecast
- qty_to_order
- qty_to_order_manual
- lead_days
- metadata
properties:
name:
type: string
maxLength: 40
trigger:
type: string
active:
type: boolean
snoozed_until:
nullable: true
type: string
format: date
item_id:
type: string
format: uuid
location_id:
type: string
format: uuid
warehouse_id:
type: string
format: uuid
item_min_qty:
type: string
item_max_qty:
type: string
route_id:
nullable: true
type: string
format: uuid
qty_on_hand:
type: string
qty_forecast:
type: string
qty_to_order:
type: string
qty_to_order_manual:
type: string
lead_days:
type: string
deadline_date:
nullable: true
type: string
format: date
metadata:
type: object
UpdateReorderingRuleRequest:
type: object
required:
- name
- trigger
- active
- item_id
- location_id
- warehouse_id
- item_min_qty
- item_max_qty
- qty_on_hand
- qty_forecast
- qty_to_order
- qty_to_order_manual
- lead_days
- metadata
properties:
name:
type: string
maxLength: 40
trigger:
type: string
active:
type: boolean
snoozed_until:
nullable: true
type: string
format: date
item_id:
type: string
format: uuid
location_id:
type: string
format: uuid
warehouse_id:
type: string
format: uuid
item_min_qty:
type: string
item_max_qty:
type: string
route_id:
nullable: true
type: string
format: uuid
qty_on_hand:
type: string
qty_forecast:
type: string
qty_to_order:
type: string
qty_to_order_manual:
type: string
lead_days:
type: string
deadline_date:
nullable: true
type: string
format: date
metadata:
type: object
PatchReorderingRuleRequest:
type: object
properties:
name:
type: string
maxLength: 40
trigger:
type: string
active:
type: boolean
snoozed_until:
nullable: true
type: string
format: date
item_id:
type: string
format: uuid
location_id:
type: string
format: uuid
warehouse_id:
type: string
format: uuid
item_min_qty:
type: string
item_max_qty:
type: string
route_id:
nullable: true
type: string
format: uuid
qty_on_hand:
type: string
qty_forecast:
type: string
qty_to_order:
type: string
qty_to_order_manual:
type: string
lead_days:
type: string
deadline_date:
nullable: true
type: string
format: date
metadata:
type: object
ReorderingRuleList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/ReorderingRule'
meta:
$ref: '#/components/schemas/PaginationMeta'
PurchaseReceipt:
type: object
required:
- id
- receipt_number
- supplier_id
- warehouse_id
- posting_date
- currency
- total_value
- inventory_account_id
- grir_account_id
- status
- posting_state
- metadata
properties:
id:
type: string
format: uuid
receipt_number:
type: string
maxLength: 40
branch_id:
nullable: true
type: string
format: uuid
supplier_id:
type: string
format: uuid
source_po_id:
nullable: true
type: string
format: uuid
warehouse_id:
type: string
format: uuid
posting_date:
type: string
format: date
currency:
type: string
maxLength: 3
total_value:
type: string
inventory_account_id:
type: string
format: uuid
grir_account_id:
type: string
format: uuid
transfer_id:
nullable: true
type: string
format: uuid
status:
type: string
posting_state:
type: string
journal_id:
nullable: true
type: string
format: uuid
accounting_post_id:
nullable: true
type: string
format: uuid
posted_at:
nullable: true
type: string
format: date-time
notes:
nullable: true
type: string
maxLength: 1000
metadata:
type: object
PurchaseReceiptBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/PurchaseReceipt'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreatePurchaseReceiptRequest:
type: object
required:
- receipt_number
- supplier_id
- warehouse_id
- posting_date
- currency
- total_value
- inventory_account_id
- grir_account_id
- status
- posting_state
- metadata
properties:
receipt_number:
type: string
maxLength: 40
branch_id:
nullable: true
type: string
format: uuid
supplier_id:
type: string
format: uuid
source_po_id:
nullable: true
type: string
format: uuid
warehouse_id:
type: string
format: uuid
posting_date:
type: string
format: date
currency:
type: string
maxLength: 3
total_value:
type: string
inventory_account_id:
type: string
format: uuid
grir_account_id:
type: string
format: uuid
transfer_id:
nullable: true
type: string
format: uuid
status:
type: string
posting_state:
type: string
journal_id:
nullable: true
type: string
format: uuid
accounting_post_id:
nullable: true
type: string
format: uuid
posted_at:
nullable: true
type: string
format: date-time
notes:
nullable: true
type: string
maxLength: 1000
metadata:
type: object
UpdatePurchaseReceiptRequest:
type: object
required:
- receipt_number
- supplier_id
- warehouse_id
- posting_date
- currency
- total_value
- inventory_account_id
- grir_account_id
- status
- posting_state
- metadata
properties:
receipt_number:
type: string
maxLength: 40
branch_id:
nullable: true
type: string
format: uuid
supplier_id:
type: string
format: uuid
source_po_id:
nullable: true
type: string
format: uuid
warehouse_id:
type: string
format: uuid
posting_date:
type: string
format: date
currency:
type: string
maxLength: 3
total_value:
type: string
inventory_account_id:
type: string
format: uuid
grir_account_id:
type: string
format: uuid
transfer_id:
nullable: true
type: string
format: uuid
status:
type: string
posting_state:
type: string
journal_id:
nullable: true
type: string
format: uuid
accounting_post_id:
nullable: true
type: string
format: uuid
posted_at:
nullable: true
type: string
format: date-time
notes:
nullable: true
type: string
maxLength: 1000
metadata:
type: object
PatchPurchaseReceiptRequest:
type: object
properties:
receipt_number:
type: string
maxLength: 40
branch_id:
nullable: true
type: string
format: uuid
supplier_id:
type: string
format: uuid
source_po_id:
nullable: true
type: string
format: uuid
warehouse_id:
type: string
format: uuid
posting_date:
type: string
format: date
currency:
type: string
maxLength: 3
total_value:
type: string
inventory_account_id:
type: string
format: uuid
grir_account_id:
type: string
format: uuid
transfer_id:
nullable: true
type: string
format: uuid
status:
type: string
posting_state:
type: string
journal_id:
nullable: true
type: string
format: uuid
accounting_post_id:
nullable: true
type: string
format: uuid
posted_at:
nullable: true
type: string
format: date-time
notes:
nullable: true
type: string
maxLength: 1000
metadata:
type: object
PurchaseReceiptList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/PurchaseReceipt'
meta:
$ref: '#/components/schemas/PaginationMeta'
PurchaseReceiptItem:
type: object
required:
- id
- receipt_id
- item_id
- quantity
- rate
- amount
- is_landed_costs_line
- metadata
properties:
id:
type: string
format: uuid
receipt_id:
type: string
format: uuid
item_id:
type: string
format: uuid
quantity:
type: string
rate:
type: string
amount:
type: string
is_landed_costs_line:
type: boolean
metadata:
type: object
PurchaseReceiptItemBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/PurchaseReceiptItem'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreatePurchaseReceiptItemRequest:
type: object
required:
- receipt_id
- item_id
- quantity
- rate
- amount
- is_landed_costs_line
- metadata
properties:
receipt_id:
type: string
format: uuid
item_id:
type: string
format: uuid
quantity:
type: string
rate:
type: string
amount:
type: string
is_landed_costs_line:
type: boolean
metadata:
type: object
UpdatePurchaseReceiptItemRequest:
type: object
required:
- receipt_id
- item_id
- quantity
- rate
- amount
- is_landed_costs_line
- metadata
properties:
receipt_id:
type: string
format: uuid
item_id:
type: string
format: uuid
quantity:
type: string
rate:
type: string
amount:
type: string
is_landed_costs_line:
type: boolean
metadata:
type: object
PatchPurchaseReceiptItemRequest:
type: object
properties:
receipt_id:
type: string
format: uuid
item_id:
type: string
format: uuid
quantity:
type: string
rate:
type: string
amount:
type: string
is_landed_costs_line:
type: boolean
metadata:
type: object
PurchaseReceiptItemList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/PurchaseReceiptItem'
meta:
$ref: '#/components/schemas/PaginationMeta'
Quant:
type: object
required:
- id
- item_id
- location_id
- quantity
- reserved_quantity
- available_quantity
- inventory_quantity_set
- sn_duplicated
- metadata
properties:
id:
type: string
format: uuid
item_id:
type: string
format: uuid
location_id:
type: string
format: uuid
lot_id:
nullable: true
type: string
format: uuid
package_id:
nullable: true
type: string
format: uuid
owner_id:
nullable: true
type: string
format: uuid
quantity:
type: string
reserved_quantity:
type: string
available_quantity:
type: string
in_date:
nullable: true
type: string
format: date-time
inventory_quantity:
nullable: true
type: string
inventory_diff_quantity:
nullable: true
type: string
inventory_quantity_set:
type: boolean
inventory_date:
nullable: true
type: string
format: date
sn_duplicated:
type: boolean
metadata:
type: object
QuantBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Quant'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateQuantRequest:
type: object
required:
- item_id
- location_id
- quantity
- reserved_quantity
- available_quantity
- inventory_quantity_set
- sn_duplicated
- metadata
properties:
item_id:
type: string
format: uuid
location_id:
type: string
format: uuid
lot_id:
nullable: true
type: string
format: uuid
package_id:
nullable: true
type: string
format: uuid
owner_id:
nullable: true
type: string
format: uuid
quantity:
type: string
reserved_quantity:
type: string
available_quantity:
type: string
in_date:
nullable: true
type: string
format: date-time
inventory_quantity:
nullable: true
type: string
inventory_diff_quantity:
nullable: true
type: string
inventory_quantity_set:
type: boolean
inventory_date:
nullable: true
type: string
format: date
sn_duplicated:
type: boolean
metadata:
type: object
UpdateQuantRequest:
type: object
required:
- item_id
- location_id
- quantity
- reserved_quantity
- available_quantity
- inventory_quantity_set
- sn_duplicated
- metadata
properties:
item_id:
type: string
format: uuid
location_id:
type: string
format: uuid
lot_id:
nullable: true
type: string
format: uuid
package_id:
nullable: true
type: string
format: uuid
owner_id:
nullable: true
type: string
format: uuid
quantity:
type: string
reserved_quantity:
type: string
available_quantity:
type: string
in_date:
nullable: true
type: string
format: date-time
inventory_quantity:
nullable: true
type: string
inventory_diff_quantity:
nullable: true
type: string
inventory_quantity_set:
type: boolean
inventory_date:
nullable: true
type: string
format: date
sn_duplicated:
type: boolean
metadata:
type: object
PatchQuantRequest:
type: object
properties:
item_id:
type: string
format: uuid
location_id:
type: string
format: uuid
lot_id:
nullable: true
type: string
format: uuid
package_id:
nullable: true
type: string
format: uuid
owner_id:
nullable: true
type: string
format: uuid
quantity:
type: string
reserved_quantity:
type: string
available_quantity:
type: string
in_date:
nullable: true
type: string
format: date-time
inventory_quantity:
nullable: true
type: string
inventory_diff_quantity:
nullable: true
type: string
inventory_quantity_set:
type: boolean
inventory_date:
nullable: true
type: string
format: date
sn_duplicated:
type: boolean
metadata:
type: object
QuantList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Quant'
meta:
$ref: '#/components/schemas/PaginationMeta'
Scrap:
type: object
required:
- id
- name
- state
- date_expected
- item_id
- scrap_qty
- location_id
- scrap_location_id
- scrap_reason_tag_ids
- metadata
properties:
id:
type: string
format: uuid
name:
type: string
maxLength: 40
state:
type: string
origin:
nullable: true
type: string
maxLength: 200
date_expected:
type: string
format: date-time
item_id:
type: string
format: uuid
scrap_qty:
type: string
location_id:
type: string
format: uuid
scrap_location_id:
type: string
format: uuid
lot_id:
nullable: true
type: string
format: uuid
package_id:
nullable: true
type: string
format: uuid
owner_id:
nullable: true
type: string
format: uuid
picking_id:
nullable: true
type: string
format: uuid
move_id:
nullable: true
type: string
format: uuid
scrap_reason_tag_ids:
type: array
metadata:
type: object
ScrapBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Scrap'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateScrapRequest:
type: object
required:
- name
- state
- date_expected
- item_id
- scrap_qty
- location_id
- scrap_location_id
- scrap_reason_tag_ids
- metadata
properties:
name:
type: string
maxLength: 40
state:
type: string
origin:
nullable: true
type: string
maxLength: 200
date_expected:
type: string
format: date-time
item_id:
type: string
format: uuid
scrap_qty:
type: string
location_id:
type: string
format: uuid
scrap_location_id:
type: string
format: uuid
lot_id:
nullable: true
type: string
format: uuid
package_id:
nullable: true
type: string
format: uuid
owner_id:
nullable: true
type: string
format: uuid
picking_id:
nullable: true
type: string
format: uuid
move_id:
nullable: true
type: string
format: uuid
scrap_reason_tag_ids:
type: array
metadata:
type: object
UpdateScrapRequest:
type: object
required:
- name
- state
- date_expected
- item_id
- scrap_qty
- location_id
- scrap_location_id
- scrap_reason_tag_ids
- metadata
properties:
name:
type: string
maxLength: 40
state:
type: string
origin:
nullable: true
type: string
maxLength: 200
date_expected:
type: string
format: date-time
item_id:
type: string
format: uuid
scrap_qty:
type: string
location_id:
type: string
format: uuid
scrap_location_id:
type: string
format: uuid
lot_id:
nullable: true
type: string
format: uuid
package_id:
nullable: true
type: string
format: uuid
owner_id:
nullable: true
type: string
format: uuid
picking_id:
nullable: true
type: string
format: uuid
move_id:
nullable: true
type: string
format: uuid
scrap_reason_tag_ids:
type: array
metadata:
type: object
PatchScrapRequest:
type: object
properties:
name:
type: string
maxLength: 40
state:
type: string
origin:
nullable: true
type: string
maxLength: 200
date_expected:
type: string
format: date-time
item_id:
type: string
format: uuid
scrap_qty:
type: string
location_id:
type: string
format: uuid
scrap_location_id:
type: string
format: uuid
lot_id:
nullable: true
type: string
format: uuid
package_id:
nullable: true
type: string
format: uuid
owner_id:
nullable: true
type: string
format: uuid
picking_id:
nullable: true
type: string
format: uuid
move_id:
nullable: true
type: string
format: uuid
scrap_reason_tag_ids:
type: array
metadata:
type: object
ScrapList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Scrap'
meta:
$ref: '#/components/schemas/PaginationMeta'
ScrapReasonTag:
type: object
required:
- id
- name
- active
- metadata
properties:
id:
type: string
format: uuid
name:
type: string
maxLength: 150
active:
type: boolean
metadata:
type: object
ScrapReasonTagBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/ScrapReasonTag'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateScrapReasonTagRequest:
type: object
required:
- name
- active
- metadata
properties:
name:
type: string
maxLength: 150
active:
type: boolean
metadata:
type: object
UpdateScrapReasonTagRequest:
type: object
required:
- name
- active
- metadata
properties:
name:
type: string
maxLength: 150
active:
type: boolean
metadata:
type: object
PatchScrapReasonTagRequest:
type: object
properties:
name:
type: string
maxLength: 150
active:
type: boolean
metadata:
type: object
ScrapReasonTagList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/ScrapReasonTag'
meta:
$ref: '#/components/schemas/PaginationMeta'
StockEntry:
type: object
required:
- id
- entry_number
- stock_entry_type
- posting_date
- status
- posting_state
- metadata
properties:
id:
type: string
format: uuid
entry_number:
type: string
maxLength: 40
stock_entry_type:
type: string
from_warehouse_id:
nullable: true
type: string
format: uuid
to_warehouse_id:
nullable: true
type: string
format: uuid
posting_date:
type: string
format: date
transfer_id:
nullable: true
type: string
format: uuid
status:
type: string
posting_state:
type: string
notes:
nullable: true
type: string
maxLength: 1000
metadata:
type: object
StockEntryBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/StockEntry'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateStockEntryRequest:
type: object
required:
- entry_number
- stock_entry_type
- posting_date
- status
- posting_state
- metadata
properties:
entry_number:
type: string
maxLength: 40
stock_entry_type:
type: string
from_warehouse_id:
nullable: true
type: string
format: uuid
to_warehouse_id:
nullable: true
type: string
format: uuid
posting_date:
type: string
format: date
transfer_id:
nullable: true
type: string
format: uuid
status:
type: string
posting_state:
type: string
notes:
nullable: true
type: string
maxLength: 1000
metadata:
type: object
UpdateStockEntryRequest:
type: object
required:
- entry_number
- stock_entry_type
- posting_date
- status
- posting_state
- metadata
properties:
entry_number:
type: string
maxLength: 40
stock_entry_type:
type: string
from_warehouse_id:
nullable: true
type: string
format: uuid
to_warehouse_id:
nullable: true
type: string
format: uuid
posting_date:
type: string
format: date
transfer_id:
nullable: true
type: string
format: uuid
status:
type: string
posting_state:
type: string
notes:
nullable: true
type: string
maxLength: 1000
metadata:
type: object
PatchStockEntryRequest:
type: object
properties:
entry_number:
type: string
maxLength: 40
stock_entry_type:
type: string
from_warehouse_id:
nullable: true
type: string
format: uuid
to_warehouse_id:
nullable: true
type: string
format: uuid
posting_date:
type: string
format: date
transfer_id:
nullable: true
type: string
format: uuid
status:
type: string
posting_state:
type: string
notes:
nullable: true
type: string
maxLength: 1000
metadata:
type: object
StockEntryList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/StockEntry'
meta:
$ref: '#/components/schemas/PaginationMeta'
StockEntryItem:
type: object
required:
- id
- entry_id
- item_id
- quantity
- metadata
properties:
id:
type: string
format: uuid
entry_id:
type: string
format: uuid
item_id:
type: string
format: uuid
quantity:
type: string
metadata:
type: object
StockEntryItemBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/StockEntryItem'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateStockEntryItemRequest:
type: object
required:
- entry_id
- item_id
- quantity
- metadata
properties:
entry_id:
type: string
format: uuid
item_id:
type: string
format: uuid
quantity:
type: string
metadata:
type: object
UpdateStockEntryItemRequest:
type: object
required:
- entry_id
- item_id
- quantity
- metadata
properties:
entry_id:
type: string
format: uuid
item_id:
type: string
format: uuid
quantity:
type: string
metadata:
type: object
PatchStockEntryItemRequest:
type: object
properties:
entry_id:
type: string
format: uuid
item_id:
type: string
format: uuid
quantity:
type: string
metadata:
type: object
StockEntryItemList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/StockEntryItem'
meta:
$ref: '#/components/schemas/PaginationMeta'
StockLedgerEntry:
type: object
required:
- id
- item_id
- warehouse_id
- posting_date
- actual_qty
- qty_after_txn
- incoming_rate
- valuation_rate
- stock_value
- stock_value_difference
- voucher_type
- voucher_id
- voucher_no
- sle_no
- status
- metadata
properties:
id:
type: string
format: uuid
item_id:
type: string
format: uuid
warehouse_id:
type: string
format: uuid
posting_date:
type: string
format: date
actual_qty:
type: string
qty_after_txn:
type: string
incoming_rate:
type: string
valuation_rate:
type: string
stock_value:
type: string
stock_value_difference:
type: string
voucher_type:
type: string
voucher_id:
type: string
format: uuid
voucher_no:
type: string
maxLength: 120
sle_no:
type: integer
format: int32
status:
type: string
metadata:
type: object
StockLedgerEntryBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/StockLedgerEntry'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateStockLedgerEntryRequest:
type: object
required:
- item_id
- warehouse_id
- posting_date
- actual_qty
- qty_after_txn
- incoming_rate
- valuation_rate
- stock_value
- stock_value_difference
- voucher_type
- voucher_id
- voucher_no
- sle_no
- status
- metadata
properties:
item_id:
type: string
format: uuid
warehouse_id:
type: string
format: uuid
posting_date:
type: string
format: date
actual_qty:
type: string
qty_after_txn:
type: string
incoming_rate:
type: string
valuation_rate:
type: string
stock_value:
type: string
stock_value_difference:
type: string
voucher_type:
type: string
voucher_id:
type: string
format: uuid
voucher_no:
type: string
maxLength: 120
sle_no:
type: integer
format: int32
status:
type: string
metadata:
type: object
UpdateStockLedgerEntryRequest:
type: object
required:
- item_id
- warehouse_id
- posting_date
- actual_qty
- qty_after_txn
- incoming_rate
- valuation_rate
- stock_value
- stock_value_difference
- voucher_type
- voucher_id
- voucher_no
- sle_no
- status
- metadata
properties:
item_id:
type: string
format: uuid
warehouse_id:
type: string
format: uuid
posting_date:
type: string
format: date
actual_qty:
type: string
qty_after_txn:
type: string
incoming_rate:
type: string
valuation_rate:
type: string
stock_value:
type: string
stock_value_difference:
type: string
voucher_type:
type: string
voucher_id:
type: string
format: uuid
voucher_no:
type: string
maxLength: 120
sle_no:
type: integer
format: int32
status:
type: string
metadata:
type: object
PatchStockLedgerEntryRequest:
type: object
properties:
item_id:
type: string
format: uuid
warehouse_id:
type: string
format: uuid
posting_date:
type: string
format: date
actual_qty:
type: string
qty_after_txn:
type: string
incoming_rate:
type: string
valuation_rate:
type: string
stock_value:
type: string
stock_value_difference:
type: string
voucher_type:
type: string
voucher_id:
type: string
format: uuid
voucher_no:
type: string
maxLength: 120
sle_no:
type: integer
format: int32
status:
type: string
metadata:
type: object
StockLedgerEntryList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/StockLedgerEntry'
meta:
$ref: '#/components/schemas/PaginationMeta'
Bin:
type: object
required:
- id
- item_id
- warehouse_id
- actual_qty
- reserved_qty
- valuation_rate
- stock_value
- metadata
properties:
id:
type: string
format: uuid
item_id:
type: string
format: uuid
warehouse_id:
type: string
format: uuid
actual_qty:
type: string
reserved_qty:
type: string
valuation_rate:
type: string
stock_value:
type: string
metadata:
type: object
BinBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Bin'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateBinRequest:
type: object
required:
- item_id
- warehouse_id
- actual_qty
- reserved_qty
- valuation_rate
- stock_value
- metadata
properties:
item_id:
type: string
format: uuid
warehouse_id:
type: string
format: uuid
actual_qty:
type: string
reserved_qty:
type: string
valuation_rate:
type: string
stock_value:
type: string
metadata:
type: object
UpdateBinRequest:
type: object
required:
- item_id
- warehouse_id
- actual_qty
- reserved_qty
- valuation_rate
- stock_value
- metadata
properties:
item_id:
type: string
format: uuid
warehouse_id:
type: string
format: uuid
actual_qty:
type: string
reserved_qty:
type: string
valuation_rate:
type: string
stock_value:
type: string
metadata:
type: object
PatchBinRequest:
type: object
properties:
item_id:
type: string
format: uuid
warehouse_id:
type: string
format: uuid
actual_qty:
type: string
reserved_qty:
type: string
valuation_rate:
type: string
stock_value:
type: string
metadata:
type: object
BinList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Bin'
meta:
$ref: '#/components/schemas/PaginationMeta'
StockReconciliation:
type: object
required:
- id
- recon_number
- warehouse_id
- posting_date
- net_difference
- inventory_account_id
- adjustment_account_id
- status
- posting_state
- metadata
properties:
id:
type: string
format: uuid
recon_number:
type: string
maxLength: 40
warehouse_id:
type: string
format: uuid
posting_date:
type: string
format: date
net_difference:
type: string
inventory_account_id:
type: string
format: uuid
adjustment_account_id:
type: string
format: uuid
transfer_id:
nullable: true
type: string
format: uuid
status:
type: string
posting_state:
type: string
journal_id:
nullable: true
type: string
format: uuid
accounting_post_id:
nullable: true
type: string
format: uuid
posted_at:
nullable: true
type: string
format: date-time
metadata:
type: object
StockReconciliationBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/StockReconciliation'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateStockReconciliationRequest:
type: object
required:
- recon_number
- warehouse_id
- posting_date
- net_difference
- inventory_account_id
- adjustment_account_id
- status
- posting_state
- metadata
properties:
recon_number:
type: string
maxLength: 40
warehouse_id:
type: string
format: uuid
posting_date:
type: string
format: date
net_difference:
type: string
inventory_account_id:
type: string
format: uuid
adjustment_account_id:
type: string
format: uuid
transfer_id:
nullable: true
type: string
format: uuid
status:
type: string
posting_state:
type: string
journal_id:
nullable: true
type: string
format: uuid
accounting_post_id:
nullable: true
type: string
format: uuid
posted_at:
nullable: true
type: string
format: date-time
metadata:
type: object
UpdateStockReconciliationRequest:
type: object
required:
- recon_number
- warehouse_id
- posting_date
- net_difference
- inventory_account_id
- adjustment_account_id
- status
- posting_state
- metadata
properties:
recon_number:
type: string
maxLength: 40
warehouse_id:
type: string
format: uuid
posting_date:
type: string
format: date
net_difference:
type: string
inventory_account_id:
type: string
format: uuid
adjustment_account_id:
type: string
format: uuid
transfer_id:
nullable: true
type: string
format: uuid
status:
type: string
posting_state:
type: string
journal_id:
nullable: true
type: string
format: uuid
accounting_post_id:
nullable: true
type: string
format: uuid
posted_at:
nullable: true
type: string
format: date-time
metadata:
type: object
PatchStockReconciliationRequest:
type: object
properties:
recon_number:
type: string
maxLength: 40
warehouse_id:
type: string
format: uuid
posting_date:
type: string
format: date
net_difference:
type: string
inventory_account_id:
type: string
format: uuid
adjustment_account_id:
type: string
format: uuid
transfer_id:
nullable: true
type: string
format: uuid
status:
type: string
posting_state:
type: string
journal_id:
nullable: true
type: string
format: uuid
accounting_post_id:
nullable: true
type: string
format: uuid
posted_at:
nullable: true
type: string
format: date-time
metadata:
type: object
StockReconciliationList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/StockReconciliation'
meta:
$ref: '#/components/schemas/PaginationMeta'
StockReconciliationItem:
type: object
required:
- id
- reconciliation_id
- item_id
- counted_qty
- counted_rate
- qty_difference
- value_difference
- metadata
properties:
id:
type: string
format: uuid
reconciliation_id:
type: string
format: uuid
item_id:
type: string
format: uuid
counted_qty:
type: string
counted_rate:
type: string
qty_difference:
type: string
value_difference:
type: string
metadata:
type: object
StockReconciliationItemBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/StockReconciliationItem'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateStockReconciliationItemRequest:
type: object
required:
- reconciliation_id
- item_id
- counted_qty
- counted_rate
- qty_difference
- value_difference
- metadata
properties:
reconciliation_id:
type: string
format: uuid
item_id:
type: string
format: uuid
counted_qty:
type: string
counted_rate:
type: string
qty_difference:
type: string
value_difference:
type: string
metadata:
type: object
UpdateStockReconciliationItemRequest:
type: object
required:
- reconciliation_id
- item_id
- counted_qty
- counted_rate
- qty_difference
- value_difference
- metadata
properties:
reconciliation_id:
type: string
format: uuid
item_id:
type: string
format: uuid
counted_qty:
type: string
counted_rate:
type: string
qty_difference:
type: string
value_difference:
type: string
metadata:
type: object
PatchStockReconciliationItemRequest:
type: object
properties:
reconciliation_id:
type: string
format: uuid
item_id:
type: string
format: uuid
counted_qty:
type: string
counted_rate:
type: string
qty_difference:
type: string
value_difference:
type: string
metadata:
type: object
StockReconciliationItemList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/StockReconciliationItem'
meta:
$ref: '#/components/schemas/PaginationMeta'
PackageType:
type: object
required:
- id
- name
- package_use
- sequence
- active
- metadata
properties:
id:
type: string
format: uuid
name:
type: string
maxLength: 150
barcode:
nullable: true
type: string
maxLength: 64
package_use:
type: string
sequence:
type: integer
format: int32
length:
nullable: true
type: string
width:
nullable: true
type: string
height:
nullable: true
type: string
max_weight:
nullable: true
type: string
active:
type: boolean
metadata:
type: object
PackageTypeBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/PackageType'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreatePackageTypeRequest:
type: object
required:
- name
- package_use
- sequence
- active
- metadata
properties:
name:
type: string
maxLength: 150
barcode:
nullable: true
type: string
maxLength: 64
package_use:
type: string
sequence:
type: integer
format: int32
length:
nullable: true
type: string
width:
nullable: true
type: string
height:
nullable: true
type: string
max_weight:
nullable: true
type: string
active:
type: boolean
metadata:
type: object
UpdatePackageTypeRequest:
type: object
required:
- name
- package_use
- sequence
- active
- metadata
properties:
name:
type: string
maxLength: 150
barcode:
nullable: true
type: string
maxLength: 64
package_use:
type: string
sequence:
type: integer
format: int32
length:
nullable: true
type: string
width:
nullable: true
type: string
height:
nullable: true
type: string
max_weight:
nullable: true
type: string
active:
type: boolean
metadata:
type: object
PatchPackageTypeRequest:
type: object
properties:
name:
type: string
maxLength: 150
barcode:
nullable: true
type: string
maxLength: 64
package_use:
type: string
sequence:
type: integer
format: int32
length:
nullable: true
type: string
width:
nullable: true
type: string
height:
nullable: true
type: string
max_weight:
nullable: true
type: string
active:
type: boolean
metadata:
type: object
PackageTypeList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/PackageType'
meta:
$ref: '#/components/schemas/PaginationMeta'
StorageCategory:
type: object
required:
- id
- name
- allow_new_product
- active
- metadata
properties:
id:
type: string
format: uuid
name:
type: string
maxLength: 150
max_weight:
nullable: true
type: string
allow_new_product:
type: string
active:
type: boolean
metadata:
type: object
StorageCategoryBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/StorageCategory'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateStorageCategoryRequest:
type: object
required:
- name
- allow_new_product
- active
- metadata
properties:
name:
type: string
maxLength: 150
max_weight:
nullable: true
type: string
allow_new_product:
type: string
active:
type: boolean
metadata:
type: object
UpdateStorageCategoryRequest:
type: object
required:
- name
- allow_new_product
- active
- metadata
properties:
name:
type: string
maxLength: 150
max_weight:
nullable: true
type: string
allow_new_product:
type: string
active:
type: boolean
metadata:
type: object
PatchStorageCategoryRequest:
type: object
properties:
name:
type: string
maxLength: 150
max_weight:
nullable: true
type: string
allow_new_product:
type: string
active:
type: boolean
metadata:
type: object
StorageCategoryList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/StorageCategory'
meta:
$ref: '#/components/schemas/PaginationMeta'
StorageCategoryCapacity:
type: object
required:
- id
- storage_category_id
- quantity
- metadata
properties:
id:
type: string
format: uuid
storage_category_id:
type: string
format: uuid
item_id:
nullable: true
type: string
format: uuid
package_type_id:
nullable: true
type: string
format: uuid
quantity:
type: string
metadata:
type: object
StorageCategoryCapacityBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/StorageCategoryCapacity'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateStorageCategoryCapacityRequest:
type: object
required:
- storage_category_id
- quantity
- metadata
properties:
storage_category_id:
type: string
format: uuid
item_id:
nullable: true
type: string
format: uuid
package_type_id:
nullable: true
type: string
format: uuid
quantity:
type: string
metadata:
type: object
UpdateStorageCategoryCapacityRequest:
type: object
required:
- storage_category_id
- quantity
- metadata
properties:
storage_category_id:
type: string
format: uuid
item_id:
nullable: true
type: string
format: uuid
package_type_id:
nullable: true
type: string
format: uuid
quantity:
type: string
metadata:
type: object
PatchStorageCategoryCapacityRequest:
type: object
properties:
storage_category_id:
type: string
format: uuid
item_id:
nullable: true
type: string
format: uuid
package_type_id:
nullable: true
type: string
format: uuid
quantity:
type: string
metadata:
type: object
StorageCategoryCapacityList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/StorageCategoryCapacity'
meta:
$ref: '#/components/schemas/PaginationMeta'
PutawayRule:
type: object
required:
- id
- sequence
- location_in_id
- location_out_id
- sublocation
- active
- metadata
properties:
id:
type: string
format: uuid
sequence:
type: integer
format: int32
location_in_id:
type: string
format: uuid
location_out_id:
type: string
format: uuid
item_id:
nullable: true
type: string
format: uuid
category_id:
nullable: true
type: string
format: uuid
package_type_id:
nullable: true
type: string
format: uuid
storage_category_id:
nullable: true
type: string
format: uuid
sublocation:
type: string
active:
type: boolean
metadata:
type: object
PutawayRuleBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/PutawayRule'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreatePutawayRuleRequest:
type: object
required:
- sequence
- location_in_id
- location_out_id
- sublocation
- active
- metadata
properties:
sequence:
type: integer
format: int32
location_in_id:
type: string
format: uuid
location_out_id:
type: string
format: uuid
item_id:
nullable: true
type: string
format: uuid
category_id:
nullable: true
type: string
format: uuid
package_type_id:
nullable: true
type: string
format: uuid
storage_category_id:
nullable: true
type: string
format: uuid
sublocation:
type: string
active:
type: boolean
metadata:
type: object
UpdatePutawayRuleRequest:
type: object
required:
- sequence
- location_in_id
- location_out_id
- sublocation
- active
- metadata
properties:
sequence:
type: integer
format: int32
location_in_id:
type: string
format: uuid
location_out_id:
type: string
format: uuid
item_id:
nullable: true
type: string
format: uuid
category_id:
nullable: true
type: string
format: uuid
package_type_id:
nullable: true
type: string
format: uuid
storage_category_id:
nullable: true
type: string
format: uuid
sublocation:
type: string
active:
type: boolean
metadata:
type: object
PatchPutawayRuleRequest:
type: object
properties:
sequence:
type: integer
format: int32
location_in_id:
type: string
format: uuid
location_out_id:
type: string
format: uuid
item_id:
nullable: true
type: string
format: uuid
category_id:
nullable: true
type: string
format: uuid
package_type_id:
nullable: true
type: string
format: uuid
storage_category_id:
nullable: true
type: string
format: uuid
sublocation:
type: string
active:
type: boolean
metadata:
type: object
PutawayRuleList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/PutawayRule'
meta:
$ref: '#/components/schemas/PaginationMeta'
Lot:
type: object
required:
- id
- name
- item_id
- product_qty
- metadata
properties:
id:
type: string
format: uuid
name:
type: string
maxLength: 150
reference:
nullable: true
type: string
maxLength: 150
item_id:
type: string
format: uuid
product_qty:
type: string
location_id:
nullable: true
type: string
format: uuid
note:
nullable: true
type: string
maxLength: 2000
metadata:
type: object
LotBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Lot'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateLotRequest:
type: object
required:
- name
- item_id
- product_qty
- metadata
properties:
name:
type: string
maxLength: 150
reference:
nullable: true
type: string
maxLength: 150
item_id:
type: string
format: uuid
product_qty:
type: string
location_id:
nullable: true
type: string
format: uuid
note:
nullable: true
type: string
maxLength: 2000
metadata:
type: object
UpdateLotRequest:
type: object
required:
- name
- item_id
- product_qty
- metadata
properties:
name:
type: string
maxLength: 150
reference:
nullable: true
type: string
maxLength: 150
item_id:
type: string
format: uuid
product_qty:
type: string
location_id:
nullable: true
type: string
format: uuid
note:
nullable: true
type: string
maxLength: 2000
metadata:
type: object
PatchLotRequest:
type: object
properties:
name:
type: string
maxLength: 150
reference:
nullable: true
type: string
maxLength: 150
item_id:
type: string
format: uuid
product_qty:
type: string
location_id:
nullable: true
type: string
format: uuid
note:
nullable: true
type: string
maxLength: 2000
metadata:
type: object
LotList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Lot'
meta:
$ref: '#/components/schemas/PaginationMeta'
Package:
type: object
required:
- id
- name
- complete_name
- parent_path
- metadata
properties:
id:
type: string
format: uuid
name:
type: string
maxLength: 150
complete_name:
type: string
maxLength: 1000
location_id:
nullable: true
type: string
format: uuid
parent_package_id:
nullable: true
type: string
format: uuid
parent_path:
type: string
maxLength: 1000
pack_date:
nullable: true
type: string
format: date
package_type_id:
nullable: true
type: string
format: uuid
metadata:
type: object
PackageBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Package'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreatePackageRequest:
type: object
required:
- name
- complete_name
- parent_path
- metadata
properties:
name:
type: string
maxLength: 150
complete_name:
type: string
maxLength: 1000
location_id:
nullable: true
type: string
format: uuid
parent_package_id:
nullable: true
type: string
format: uuid
parent_path:
type: string
maxLength: 1000
pack_date:
nullable: true
type: string
format: date
package_type_id:
nullable: true
type: string
format: uuid
metadata:
type: object
UpdatePackageRequest:
type: object
required:
- name
- complete_name
- parent_path
- metadata
properties:
name:
type: string
maxLength: 150
complete_name:
type: string
maxLength: 1000
location_id:
nullable: true
type: string
format: uuid
parent_package_id:
nullable: true
type: string
format: uuid
parent_path:
type: string
maxLength: 1000
pack_date:
nullable: true
type: string
format: date
package_type_id:
nullable: true
type: string
format: uuid
metadata:
type: object
PatchPackageRequest:
type: object
properties:
name:
type: string
maxLength: 150
complete_name:
type: string
maxLength: 1000
location_id:
nullable: true
type: string
format: uuid
parent_package_id:
nullable: true
type: string
format: uuid
parent_path:
type: string
maxLength: 1000
pack_date:
nullable: true
type: string
format: date
package_type_id:
nullable: true
type: string
format: uuid
metadata:
type: object
PackageList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Package'
meta:
$ref: '#/components/schemas/PaginationMeta'
Warehouse:
type: object
required:
- id
- code
- name
- warehouse_type
- is_group
- metadata
properties:
id:
type: string
format: uuid
code:
type: string
maxLength: 40
name:
type: string
maxLength: 150
warehouse_type:
type: string
parent_warehouse_id:
nullable: true
type: string
format: uuid
is_group:
type: boolean
metadata:
type: object
WarehouseBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Warehouse'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateWarehouseRequest:
type: object
required:
- code
- name
- warehouse_type
- is_group
- metadata
properties:
code:
type: string
maxLength: 40
name:
type: string
maxLength: 150
warehouse_type:
type: string
parent_warehouse_id:
nullable: true
type: string
format: uuid
is_group:
type: boolean
metadata:
type: object
UpdateWarehouseRequest:
type: object
required:
- code
- name
- warehouse_type
- is_group
- metadata
properties:
code:
type: string
maxLength: 40
name:
type: string
maxLength: 150
warehouse_type:
type: string
parent_warehouse_id:
nullable: true
type: string
format: uuid
is_group:
type: boolean
metadata:
type: object
PatchWarehouseRequest:
type: object
properties:
code:
type: string
maxLength: 40
name:
type: string
maxLength: 150
warehouse_type:
type: string
parent_warehouse_id:
nullable: true
type: string
format: uuid
is_group:
type: boolean
metadata:
type: object
WarehouseList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Warehouse'
meta:
$ref: '#/components/schemas/PaginationMeta'
StockItem:
type: object
required:
- id
- item_id
- stock_uom
- is_stock_item
- has_batch
- valuation_method
- reorder_level
- weight_per_unit
- service_tracking
- metadata
properties:
id:
type: string
format: uuid
item_id:
type: string
format: uuid
stock_uom:
type: string
maxLength: 20
is_stock_item:
type: boolean
has_batch:
type: boolean
valuation_method:
type: string
reorder_level:
type: string
weight_per_unit:
type: string
service_tracking:
type: string
service_project_id:
nullable: true
type: string
format: uuid
service_project_template_id:
nullable: true
type: string
format: uuid
metadata:
type: object
StockItemBulkResult:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/StockItem'
total: { type: integer }
failed: { type: integer }
errors:
type: array
items: { type: string }
CreateStockItemRequest:
type: object
required:
- item_id
- stock_uom
- is_stock_item
- has_batch
- valuation_method
- reorder_level
- weight_per_unit
- service_tracking
- metadata
properties:
item_id:
type: string
format: uuid
stock_uom:
type: string
maxLength: 20
is_stock_item:
type: boolean
has_batch:
type: boolean
valuation_method:
type: string
reorder_level:
type: string
weight_per_unit:
type: string
service_tracking:
type: string
service_project_id:
nullable: true
type: string
format: uuid
service_project_template_id:
nullable: true
type: string
format: uuid
metadata:
type: object
UpdateStockItemRequest:
type: object
required:
- item_id
- stock_uom
- is_stock_item
- has_batch
- valuation_method
- reorder_level
- weight_per_unit
- service_tracking
- metadata
properties:
item_id:
type: string
format: uuid
stock_uom:
type: string
maxLength: 20
is_stock_item:
type: boolean
has_batch:
type: boolean
valuation_method:
type: string
reorder_level:
type: string
weight_per_unit:
type: string
service_tracking:
type: string
service_project_id:
nullable: true
type: string
format: uuid
service_project_template_id:
nullable: true
type: string
format: uuid
metadata:
type: object
PatchStockItemRequest:
type: object
properties:
item_id:
type: string
format: uuid
stock_uom:
type: string
maxLength: 20
is_stock_item:
type: boolean
has_batch:
type: boolean
valuation_method:
type: string
reorder_level:
type: string
weight_per_unit:
type: string
service_tracking:
type: string
service_project_id:
nullable: true
type: string
format: uuid
service_project_template_id:
nullable: true
type: string
format: uuid
metadata:
type: object
StockItemList:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/StockItem'
meta:
$ref: '#/components/schemas/PaginationMeta'
PaginationMeta:
type: object
properties:
total:
type: integer
example: 100
page:
type: integer
example: 1
per_page:
type: integer
example: 20
total_pages:
type: integer
example: 5
Error:
type: object
required:
- code
- message
properties:
code:
type: string
example: VALIDATION_ERROR
message:
type: string
example: Invalid input data
details:
type: object
additionalProperties: true
parameters:
IdParam:
name: id
in: path
required: true
schema:
type: string
format: uuid
PageParam:
name: page
in: query
schema:
type: integer
minimum: 1
default: 1
PerPageParam:
name: per_page
in: query
schema:
type: integer
minimum: 1
maximum: 100
default: 20
SortByParam:
name: sort_by
in: query
schema:
type: string
SortOrderParam:
name: sort_order
in: query
schema:
type: string
enum: [asc, desc]
default: asc
responses:
BadRequest:
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
requestBodies:
BatchIds:
required: true
content:
application/json:
schema:
type: object
required: [ids]
properties:
ids:
type: array
items: { type: string }
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
security:
- bearerAuth: []