Inventory
Operations in the Inventory group.
- GET/v1/boms
- POST/v1/boms
- GET/v1/boms/{id}
- PATCH/v1/boms/{id}
- DEL/v1/boms/{id}
- GET/v1/catalog-categories
- POST/v1/catalog-categories
- PATCH/v1/catalog-categories/{id}
- DEL/v1/catalog-categories/{id}
- GET/v1/catalog-parameters
- POST/v1/catalog-parameters
- PATCH/v1/catalog-parameters/{id}
- DEL/v1/catalog-parameters/{id}
- GET/v1/delivery-notes/uninvoiced
- GET/v1/gpsr-records
- POST/v1/gpsr-records
- GET/v1/gpsr-records/{id}
- PATCH/v1/gpsr-records/{id}
- DEL/v1/gpsr-records/{id}
- GET/v1/gpsr-records/{id}/certificates
- POST/v1/gpsr-records/{id}/certificates
- DEL/v1/gpsr-records/{id}/certificates/{certificateId}
- GET/v1/gpsr-records/{id}/certificates/{certificateId}/file
- GET/v1/gpsr-records/export.xml
- GET/v1/inventory/margin-warnings
- GET/v1/inventory/purchase-planning
- POST/v1/inventory/purchase-planning/orders
- GET/v1/inventory/reports/slow-movers
- GET/v1/inventory/reports/stock-card
- GET/v1/inventory/reports/turnover
- GET/v1/inventory/reports/valuation
- GET/v1/inventory/reports/value
- GET/v1/inventory/settings
- PATCH/v1/inventory/settings
- GET/v1/inventory/year-end
- POST/v1/inventory/year-end
- GET/v1/item-groups
- POST/v1/item-groups
- PATCH/v1/item-groups/{id}
- DEL/v1/item-groups/{id}
- GET/v1/items
- POST/v1/items
- GET/v1/items/{id}
- PATCH/v1/items/{id}
- DEL/v1/items/{id}
- GET/v1/items/{id}/catalog
- PUT/v1/items/{id}/catalog
- GET/v1/items/{id}/images
- POST/v1/items/{id}/images
- GET/v1/items/{id}/images/{imageId}
- DEL/v1/items/{id}/images/{imageId}
- GET/v1/items/{id}/kit
- PUT/v1/items/{id}/kit
- GET/v1/items/{id}/price
- GET/v1/items/{id}/purchase-info
- GET/v1/items/{id}/revaluation
- POST/v1/items/{id}/revaluation
- GET/v1/items/{id}/stock
- GET/v1/items/{id}/units
- PUT/v1/items/{id}/units
- GET/v1/items/{id}/variants
- POST/v1/items/{id}/variants
- GET/v1/items/export
- POST/v1/items/import
- GET/v1/items/labels
- GET/v1/items/lookup
- POST/v1/items/product-data/assign
- GET/v1/movements
- POST/v1/movements
- GET/v1/price-lists
- POST/v1/price-lists
- GET/v1/price-lists/{id}
- PATCH/v1/price-lists/{id}
- DEL/v1/price-lists/{id}
- GET/v1/price-lists/{id}/export
- POST/v1/price-lists/{id}/import
- PUT/v1/price-lists/{id}/items
- DEL/v1/price-lists/{id}/items/{rowId}
- POST/v1/price-lists/{id}/rules
- DEL/v1/price-lists/{id}/rules/{ruleId}
- GET/v1/production-requests
- POST/v1/production-requests
- GET/v1/production-requests/{id}
- PATCH/v1/production-requests/{id}
- POST/v1/production-requests/{id}/cancel
- PUT/v1/production-requests/{id}/components
- POST/v1/production-requests/{id}/produce
- POST/v1/production-requests/{id}/reserve
- POST/v1/production-requests/{id}/unreserve
- POST/v1/production-requests/from-order
- POST/v1/production-requests/many
- POST/v1/production-requests/produce-many
- POST/v1/received-invoices/{id}/landed-cost
- DEL/v1/received-invoices/{id}/landed-cost
- GET/v1/received-invoices/{id}/stock-costs
- GET/v1/recycling-fees
- POST/v1/recycling-fees
- GET/v1/recycling-fees/{id}
- PATCH/v1/recycling-fees/{id}
- DEL/v1/recycling-fees/{id}
- GET/v1/recycling-fees/export.xml
- GET/v1/recycling-fees/report
- GET/v1/stock
- GET/v1/stock-documents
- POST/v1/stock-documents
- GET/v1/stock-documents/{id}
- PATCH/v1/stock-documents/{id}
- DEL/v1/stock-documents/{id}
- GET/v1/stock-documents/{id}/pdf
- POST/v1/stock-documents/{id}/post
- POST/v1/stock-documents/{id}/storno
- GET/v1/stock-locations
- POST/v1/stock-locations/transfer
- GET/v1/stock-lots
- PATCH/v1/stock-lots/{id}
- GET/v1/stock-reservations
- POST/v1/stock-reservations
- POST/v1/stock-reservations/{id}/fulfil
- POST/v1/stock-reservations/{id}/release
- GET/v1/stock/availability
- GET/v1/stock/summary
- GET/v1/stocktakes
- POST/v1/stocktakes
- GET/v1/stocktakes/{id}
- POST/v1/stocktakes/{id}/cancel
- POST/v1/stocktakes/{id}/counts
- POST/v1/stocktakes/{id}/import
- POST/v1/stocktakes/{id}/post
- GET/v1/supplier-prices
- POST/v1/supplier-prices
- PATCH/v1/supplier-prices/{id}
- DEL/v1/supplier-prices/{id}
- GET/v1/warehouse-locations
- POST/v1/warehouse-locations
- PATCH/v1/warehouse-locations/{id}
- DEL/v1/warehouse-locations/{id}
- GET/v1/warehouses
- POST/v1/warehouses
- GET/v1/warehouses/{id}
- PATCH/v1/warehouses/{id}
- DEL/v1/warehouses/{id}
List bills of materials
/v1/bomsList bills of materials
MCP tool: list-boms
Query parameters
limitintegermin 1max 500offsetintegermin 0max 9007199254740991searchstringmax 200 charsResponse · 200
dataobject[]requiredobject"bom"requiredidstringrequireditemIdstringrequireditemNamestringrequirednamestringrequiredoutputQuantityintegerrequiredextraCostHalerintegerrequiredisActivebooleanrequirednotestring | nullrequiredlinesobject[]requiredidstringrequireditemIdstringrequireditemNamestringrequiredunitnull | stringrequiredquantityintegerrequiredtotalintegerhasMorebooleanrequiredCreate a bill of materials: what one batch of a finished item consumes
/v1/bomsCreate a bill of materials: what one batch of a finished item consumes. extraCostHaler is labour and overhead per batch, added to the cost of the finished goods.
MCP tool: create-bom
Request body
itemIdstringrequirednamestringrequiredmax 200 charsoutputQuantitynumbermax 1000000000extraCostHalerintegermin 0max 9007199254740991isActivebooleannotestring | nulllinesobject[]requireditemIdstringrequiredquantitynumberrequiredmax 1000000000Response · 201
idstringrequireditemIdstringrequireditemNamestringrequirednamestringrequiredoutputQuantityintegerrequiredextraCostHalerintegerrequiredisActivebooleanrequirednotestring | nullrequiredlinesobject[]requiredidstringrequireditemIdstringrequireditemNamestringrequiredunitnull | stringrequiredquantityintegerrequiredGet a bill of materials with its components
/v1/boms/{id}Get a bill of materials with its components
MCP tool: get-bom
Path parameters
idstringrequiredResponse · 200
idstringrequireditemIdstringrequireditemNamestringrequirednamestringrequiredoutputQuantityintegerrequiredextraCostHalerintegerrequiredisActivebooleanrequirednotestring | nullrequiredlinesobject[]requiredidstringrequireditemIdstringrequireditemNamestringrequiredunitnull | stringrequiredquantityintegerrequiredUpdate a bill of materials. Production already posted keeps the quantities it used
/v1/boms/{id}Update a bill of materials. Production already posted keeps the quantities it used
MCP tool: update-bom
Path parameters
idstringrequiredRequest body
namestringmax 200 charsoutputQuantitynumbermax 1000000000extraCostHalerintegermin 0max 9007199254740991isActivebooleannotestring | nulllinesobject[]itemIdstringrequiredquantitynumberrequiredmax 1000000000Response · 200
idstringrequireditemIdstringrequireditemNamestringrequirednamestringrequiredoutputQuantityintegerrequiredextraCostHalerintegerrequiredisActivebooleanrequirednotestring | nullrequiredlinesobject[]requiredidstringrequireditemIdstringrequireditemNamestringrequiredunitnull | stringrequiredquantityintegerrequiredDelete a bill of materials never used in production. A used one can only be deactivated
/v1/boms/{id}Delete a bill of materials never used in production. A used one can only be deactivated
IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.
MCP tool: delete-bom
Path parameters
idstringrequiredResponse · 200
idstringrequireddeletedbooleanrequiredThe category tree for e-shops. An empty list for a company with no shop
/v1/catalog-categoriesThe category tree for e-shops. An empty list for a company with no shop
MCP tool: list-catalog-categories
Query parameters
limitintegermin 1max 500offsetintegermin 0max 9007199254740991searchstringmax 200 charsResponse · 200
dataobject[]requiredobject"catalog_category"requiredidstringrequirednumberintegerrequiredparentIdnull | stringrequirednamestringrequireddescriptionstring | nullrequiredpositionintegerrequiredtotalintegerhasMorebooleanrequiredAdd a category for e-shops, optionally under a parent
/v1/catalog-categoriesAdd a category for e-shops, optionally under a parent
MCP tool: create-catalog-category
Request body
namestringrequiredmax 160 charsparentIdstring | nulldescriptionstring | nullpositionintegermin 0max 100000Response · 201
idstringrequirednumberintegerrequiredparentIdnull | stringrequirednamestringrequireddescriptionstring | nullrequiredpositionintegerrequiredRename or move a category
/v1/catalog-categories/{id}Rename or move a category
MCP tool: update-catalog-category
Path parameters
idstringrequiredRequest body
namestringmax 160 charsparentIdstring | nulldescriptionstring | nullpositionintegermin 0max 100000Response · 200
idstringrequirednumberintegerrequiredparentIdnull | stringrequirednamestringrequireddescriptionstring | nullrequiredpositionintegerrequiredDelete a category with no subcategories. Items keep their other categories
/v1/catalog-categories/{id}Delete a category with no subcategories. Items keep their other categories
IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.
MCP tool: delete-catalog-category
Path parameters
idstringrequiredResponse · 200
idstringrequireddeletedbooleanrequiredAttributes an item can have in an e-shop, such as colour or size
/v1/catalog-parametersAttributes an item can have in an e-shop, such as colour or size
MCP tool: list-catalog-parameters
Query parameters
limitintegermin 1max 500offsetintegermin 0max 9007199254740991searchstringmax 200 charsResponse · 200
dataobject[]requiredobject"catalog_parameter"requiredidstringrequirednumberintegerrequirednamestringrequiredtypestringrequiredunitnull | stringrequiredoptionsstring[]requiredtotalintegerhasMorebooleanrequiredAdd an attribute for e-shops. Types follow POHODA: text, number, date, yes or no, list, unit, currency
/v1/catalog-parametersAdd an attribute for e-shops. Types follow POHODA: text, number, date, yes or no, list, unit, currency
MCP tool: create-catalog-parameter
Request body
namestringrequiredmax 120 charstype"text" | "number" | "date" | "boolean" | "list" | "unit" | "currency"unitstring | nulloptionsstring[]Response · 201
idstringrequirednumberintegerrequirednamestringrequiredtypestringrequiredunitnull | stringrequiredoptionsstring[]requiredChange an attribute for e-shops
/v1/catalog-parameters/{id}Change an attribute for e-shops
MCP tool: update-catalog-parameter
Path parameters
idstringrequiredRequest body
namestringmax 120 charstype"text" | "number" | "date" | "boolean" | "list" | "unit" | "currency"unitstring | nulloptionsstring[]Response · 200
idstringrequirednumberintegerrequirednamestringrequiredtypestringrequiredunitnull | stringrequiredoptionsstring[]requiredDelete an attribute for e-shops and its values on items
/v1/catalog-parameters/{id}Delete an attribute for e-shops and its values on items
IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.
MCP tool: delete-catalog-parameter
Path parameters
idstringrequiredResponse · 200
idstringrequireddeletedbooleanrequiredA customer's issued delivery notes with what is not invoiced yet, optionally for given items. Name them on issue-invoice in deliveryNoteIds so the goods do not leave twice
/v1/delivery-notes/uninvoicedA customer's issued delivery notes with what is not invoiced yet, optionally for given items. Name them on issue-invoice in deliveryNoteIds so the goods do not leave twice
MCP tool: list-uninvoiced-delivery-notes
Query parameters
contactIdstringrequireditemIdsstringmax 2000 charslimitintegermin 1max 500offsetintegermin 0max 9007199254740991searchstringmax 200 charsResponse · 200
dataobject[]requiredobject"uninvoiced_delivery_note"requireddeliveryNoteIdnull | stringrequirednumbernull | stringrequireddeliveryDatestringrequireddateitemsobject[]requireditemIdnull | stringrequirednamenull | stringrequiredunitnull | stringrequiredquantityintegerrequiredlineIdstringrequiredtotalintegerhasMorebooleanrequiredList GpsrRecords
/v1/gpsr-recordsList GpsrRecords
MCP tool: list-gpsr-records
Query parameters
limitintegermin 1max 500offsetintegermin 0max 9007199254740991searchstringmax 200 charsResponse · 200
dataobject[]requiredobject"gpsr_record"requiredidstringrequiredcodestringrequirednamestringrequiredmanufacturerNamenull | stringrequiredmanufacturerAddressnull | stringrequiredmanufacturerEmailnull | stringrequiredmanufacturerWebnull | stringrequiredeuRepresentativeNamenull | stringrequiredeuRepresentativeAddressnull | stringrequiredeuRepresentativeEmailnull | stringrequiredsafetyInfonull | stringrequiredisActivebooleanrequirednotenull | stringattachmentsobject[]kindstringrequirednamestringrequiredurlstringtotalintegerhasMorebooleanrequiredCreate a GpsrRecord
/v1/gpsr-recordsCreate a GpsrRecord
MCP tool: create-gpsr-record
Request body
codestringrequiredmax 32 charsnamestringrequiredmax 200 charsmanufacturerNamestring | nullmanufacturerAddressstring | nullmanufacturerEmailstring | null | ""manufacturerWebstring | nulleuRepresentativeNamestring | nulleuRepresentativeAddressstring | nulleuRepresentativeEmailstring | null | ""safetyInfostring | nullnotestring | nullisActivebooleanResponse · 201
idstringrequiredcodestringrequirednamestringrequiredmanufacturerNamenull | stringrequiredmanufacturerAddressnull | stringrequiredmanufacturerEmailnull | stringrequiredmanufacturerWebnull | stringrequiredeuRepresentativeNamenull | stringrequiredeuRepresentativeAddressnull | stringrequiredeuRepresentativeEmailnull | stringrequiredsafetyInfonull | stringrequiredisActivebooleanrequirednotenull | stringattachmentsobject[]kindstringrequirednamestringrequiredurlstringGet a GpsrRecord
/v1/gpsr-records/{id}Get a GpsrRecord
MCP tool: get-gpsr-record
Path parameters
idstringrequiredResponse · 200
idstringrequiredcodestringrequirednamestringrequiredmanufacturerNamenull | stringrequiredmanufacturerAddressnull | stringrequiredmanufacturerEmailnull | stringrequiredmanufacturerWebnull | stringrequiredeuRepresentativeNamenull | stringrequiredeuRepresentativeAddressnull | stringrequiredeuRepresentativeEmailnull | stringrequiredsafetyInfonull | stringrequiredisActivebooleanrequirednotenull | stringattachmentsobject[]kindstringrequirednamestringrequiredurlstringUpdate a GpsrRecord
/v1/gpsr-records/{id}Update a GpsrRecord
MCP tool: update-gpsr-record
Path parameters
idstringrequiredRequest body
codestringmax 32 charsnamestringmax 200 charsmanufacturerNamestring | nullmanufacturerAddressstring | nullmanufacturerEmailstring | null | ""manufacturerWebstring | nulleuRepresentativeNamestring | nulleuRepresentativeAddressstring | nulleuRepresentativeEmailstring | null | ""safetyInfostring | nullnotestring | nullisActivebooleanResponse · 200
idstringrequiredcodestringrequirednamestringrequiredmanufacturerNamenull | stringrequiredmanufacturerAddressnull | stringrequiredmanufacturerEmailnull | stringrequiredmanufacturerWebnull | stringrequiredeuRepresentativeNamenull | stringrequiredeuRepresentativeAddressnull | stringrequiredeuRepresentativeEmailnull | stringrequiredsafetyInfonull | stringrequiredisActivebooleanrequirednotenull | stringattachmentsobject[]kindstringrequirednamestringrequiredurlstringDelete a GpsrRecord
/v1/gpsr-records/{id}Delete a GpsrRecord
IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.
MCP tool: delete-gpsr-record
Path parameters
idstringrequiredResponse · 200
idstringrequireddeletedbooleanrequiredCertificates and declarations kept on a GPSR record
/v1/gpsr-records/{id}/certificatesCertificates and declarations kept on a GPSR record
MCP tool: list-gpsr-certificates
Path parameters
idstringrequiredQuery parameters
limitintegermin 1max 500offsetintegermin 0max 9007199254740991searchstringmax 200 charsResponse · 200
dataobject[]requiredobject"gpsr_certificate"requiredidstringrequiredgpsrIdstringrequirednamestringrequiredissuedOnnull | stringrequireddatevalidUntilnull | stringrequireddatenotenull | stringrequiredcontentTypestringrequiredbyteSizeinteger | nullrequiredtotalintegerhasMorebooleanrequiredKeep a certificate or declaration on a GPSR record: PDF, PNG or JPEG, up to 10 MB. The dates are for your own overview
/v1/gpsr-records/{id}/certificatesKeep a certificate or declaration on a GPSR record: PDF, PNG or JPEG, up to 10 MB. The dates are for your own overview
MCP tool: upload-gpsr-certificate
Path parameters
idstringrequiredRequest body
namestringrequiredmax 200 charsfileBase64stringrequiredmax 14000000 charscontentType"application/pdf" | "image/png" | "image/jpeg"requiredissuedOnstring | nullvalidUntilstring | nullnotestring | nullResponse · 201
idstringrequiredgpsrIdstringrequirednamestringrequiredissuedOnnull | stringrequireddatevalidUntilnull | stringrequireddatenotenull | stringrequiredcontentTypestringrequiredbyteSizeinteger | nullrequiredRemove a certificate from a GPSR record and delete its file
/v1/gpsr-records/{id}/certificates/{certificateId}Remove a certificate from a GPSR record and delete its file
IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.
MCP tool: delete-gpsr-certificate
Path parameters
idstringrequiredcertificateIdstringrequiredResponse · 200
idstringrequireddeletedbooleanrequiredDownload a certificate kept on a GPSR record
/v1/gpsr-records/{id}/certificates/{certificateId}/fileDownload a certificate kept on a GPSR record
MCP tool: get-gpsr-certificate-file
Path parameters
idstringrequiredcertificateIdstringrequiredResponse · 200
Returns a application/pdf file.
All GPSR records as a POHODA XML file (GPSR.xsd, version 2.0), with the names of their certificates, to load into POHODA
/v1/gpsr-records/export.xmlAll GPSR records as a POHODA XML file (GPSR.xsd, version 2.0), with the names of their certificates, to load into POHODA
MCP tool: export-gpsr-records-xml
Response · 200
Returns a application/xml file.
Items selling below their cost or below the minimum margin set in inventory settings, worst first
/v1/inventory/margin-warningsItems selling below their cost or below the minimum margin set in inventory settings, worst first
MCP tool: list-margin-warnings
Query parameters
limitintegermin 1max 500offsetintegermin 0max 9007199254740991searchstringmax 200 charsResponse · 200
dataobject[]requireditemIdnull | stringrequiredskustringrequirednamenull | stringrequiredsalePriceHalerintegerrequiredcostHalerintegerrequiredmarginHalerintegerrequiredmarginPercentintegerrequiredwarningstringrequiredlastPurchaseOnstringrequireddatetotalintegerhasMorebooleanrequiredReorder suggestions from minimum and maximum stock and sales velocity, with supplier, price, and quantity
/v1/inventory/purchase-planningReorder suggestions from minimum and maximum stock and sales velocity, with supplier, price, and quantity. Projected stock = on hand − reserved + on order. Reorder point = minimum + sales during the lead time. Below it, the suggestion goes up to the maximum, or to the reorder point plus the cover period, rounded up to packs and the supplier minimum.
MCP tool: get-purchase-planning
Query parameters
supplierIdstringwarehouseIdstringperiodDaysintegermin 7max 730leadDaysintegermin 0max 365coverDaysintegermin 0max 365datestringYYYY-MM-DDResponse · 200
datestringrequireddateperiodDaysintegerrequiredleadDaysinteger | nullrequiredcoverDaysintegerrequiredrowsobject[]requireditemIdnull | stringrequiredskustringrequirednamenull | stringrequiredunitnull | stringrequiredsupplierIdstringrequiredsupplierNamestringrequiredsupplierSkustring | nullrequiredonHandintegerrequiredreservedintegerrequiredonOrderintegerrequiredminStockintegerrequiredmaxStockinteger | nullrequiredsoldInPeriodintegerrequiredsoldPerDayintegerrequiredleadDaysinteger | nullrequiredprojectedintegerrequiredreorderPointintegerrequiredtargetintegerrequiredneededintegerrequiredquantityintegerrequiredunitPriceHalerinteger | nullrequiredcurrencynull | stringrequiredpriceSourcestringrequiredlineValueHalerintegerrequiredlastPurchasenull | objectrequireddatestringrequireddatedocumentNumbernull | stringrequiredsupplierIdanyrequiredsupplierNameanyrequiredunitPriceHalerinteger | nullrequiredlandedUnitCostHalerintegerrequiredmarginWarninganyrequiredmarginPercentinteger | nullrequiredTurn reorder lines into one issued order per supplier, in one call
/v1/inventory/purchase-planning/ordersTurn reorder lines into one issued order per supplier, in one call. Prices default to the supplier price list, then the last purchase, then the item. Set issue to false to get drafts. Sending the order to the supplier is a separate step.
MCP tool: create-purchase-orders
Request body
linesobject[]requireditemIdstringrequiredquantitynumberrequiredmax 1000000000supplierIdstringunitPriceHalerintegermin 0max 9007199254740991warehouseIdstringdatestringYYYY-MM-DDissuebooleanResponse · 201
dataobject[]requiredobject"sales_document"requiredidstringrequiredkindstringrequirednumbernull | stringrequiredstatusstringrequiredcontactIdnull | stringrequiredcontactNamenull | stringrequiredissueDatestringrequireddatedueDatenull | stringrequireddatevalidUntilnull | stringrequireddatecurrencystringrequiredtotalHalerintegerrequiredpaidHalerintegerrequiredoverduebooleanrequiredreservationStatusstringrequiredexternalNumbernull | stringrequiredfileIdnull | stringrequiredcustomFieldsobjectkanalstringseriesIdnull | stringvariableSymbolnull | stringconstantSymbolnull | stringcontactIconull | stringcontactDicnull | stringcontactEmailnull | stringbillToStreetnull | stringbillToCitynull | stringbillToPostalCodenull | stringbillToCountrynull | stringtaxPointDatenull | stringdateexchangeRateintegervatModestringtemplateIdstring | nullcenterIdstring | nullactivityIdstring | nullprojectIdstring | nullpaymentMethodstringlanguagestringnotePublicnull | stringnoteInternalnull | stringreasonnull | stringsourceKindnull | stringsourceIdnull | stringoriginalKindnull | stringoriginalIdnull | stringoriginalNumbernull | stringconsumedByIdstring | nullstornoOfIdnull | stringnetHalerintegervatHalerintegerroundingHalerintegerreceivedHalerinteger | nullregisterIdnull | stringclosureIdstring | nullchangeHalerinteger | nulllinesobject[]object"sales_document_line"requiredidstringrequireddescriptionstringrequiredquantityintegerrequiredunitstringrequiredunitPriceHalerintegerrequiredvatRateintegerrequirednetHalerintegerrequiredvatHalerintegerrequiredtotalHalerintegerrequiredaccountNumbernull | stringrequireditemIdnull | stringrequiredwarehouseIdnull | stringrequiredfulfilledQuantitynumberrequiredinvoicedQuantityintegerrequiredreservedQuantityintegerrequiredreturnedQuantityintegerrequiredoriginalLineIdnull | stringrequiredlotsobject[]requiredlotIdstring | nullrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatestring | nullrequiredorderLineIdstring | nullrequiredrecyclingnull | objecttextstringrequiredunitstringrequiredfeeIdstringrequiredrateHalerintegerrequiredtotalHalerintegerrequiredweightMilliintegerrequiredperUnitHalerintegerrequiredcoefficientMilliintegerrequiredpaymentsobject[]object"sales_document_payment"requiredidstringrequiredamountHalerintegerrequiredpaidOnstringrequireddatemethodstringrequirednotenull | stringrequiredlinksobject[]object"document_link"requiredidstringrequiredfromKindstringrequiredfromIdstringrequiredtoKindstringrequiredtoIdstringrequiredkindstringrequiredamountHalerinteger | nullcarrierIdnull | stringbankMovementobjectidstringrequiredbankAccountIdstringrequiredItems in stock with no issue for at least a number of days, largest tied-up value first
/v1/inventory/reports/slow-moversItems in stock with no issue for at least a number of days, largest tied-up value first
MCP tool: get-slow-movers-report
Query parameters
daysintegermin 1max 3650datestringYYYY-MM-DDwarehouseIdstringResponse · 200
datestringrequireddatedaysintegerrequiredtotalValueHalerintegerrequiredrowsobject[]requireditemIdnull | stringrequiredskustringrequirednamenull | stringrequiredunitnull | stringrequiredquantityintegerrequiredvalueHalerinteger | nullrequiredlastIssueOnnull | stringrequireddateidleDaysintegerrequiredStock card of an item: every movement over a period with running quantity and value
/v1/inventory/reports/stock-cardStock card of an item: every movement over a period with running quantity and value
MCP tool: get-stock-card
Query parameters
itemIdstringrequiredwarehouseIdstringfromstringYYYY-MM-DDtostringYYYY-MM-DDResponse · 200
itemIdnull | stringrequiredskustringrequirednamenull | stringrequiredunitnull | stringrequiredvaluationstringrequiredwarehouseIdstring | nullrequiredfromstringrequireddatetostringrequireddateopeningobjectrequiredquantityintegerrequiredvalueHalerinteger | nullrequiredreceivedintegerrequiredissuedintegerrequiredclosingobjectrequiredquantityintegerrequiredvalueHalerinteger | nullrequiredrowsobject[]requiredidstringrequireddatestringrequireddatetypestringrequiredreasonnull | stringrequireddocumentIdnull | stringrequireddocumentTypenull | stringrequireddocumentNumbernull | stringrequiredcontactNamestring | nullrequiredwarehouseIdnull | stringrequiredwarehouseNamestringrequiredisReversalbooleanrequiredreceivedintegerrequiredissuedintegerrequiredmovedanyrequiredvalueDeltaHalerintegerrequiredunitCostHalerinteger | nullrequiredbalanceintegerrequiredbalanceValueHalerintegerrequirednotestring | nullrequiredStock turnover per item over a period: receipts, issues at cost, average stock, turnover ratio and days
/v1/inventory/reports/turnoverStock turnover per item over a period: receipts, issues at cost, average stock, turnover ratio and days
MCP tool: get-stock-turnover-report
Query parameters
fromstringrequiredYYYY-MM-DDtostringrequiredYYYY-MM-DDwarehouseIdstringResponse · 200
fromstringrequireddatetostringrequireddatedaysintegerrequiredrowsobject[]requireditemIdnull | stringrequiredskustringrequirednamenull | stringrequiredunitnull | stringrequiredopeningValueHalerintegerrequiredreceivedQuantityintegerrequiredreceivedValueHalerintegerrequiredissuedQuantityintegerrequiredissuedValueHalerintegerrequiredclosingValueHalerintegerrequiredaverageValueHalerintegerrequiredrationull | numberrequireddaysinteger | nullrequiredInventory value by account on a date, against the ledger balance of 112, 123, and 132, for reconciliation
/v1/inventory/reports/valuationInventory value by account on a date, against the ledger balance of 112, 123, and 132, for reconciliation. Under accounting method B the accounts only move at year end, so differences during the year are expected. Daňová evidence has no ledger to compare with.
MCP tool: get-stock-valuation
Query parameters
datestringYYYY-MM-DDResponse · 200
datestringrequireddatemodestringrequiredtotalStockValueHalerintegerrequiredtotalLedgerValueHalerinteger | nullrequiredtotalDifferenceHalerinteger | nullrequiredrowsobject[]requiredaccountNumbernull | stringrequiredsyntheticstringrequiredstockValueHalerintegerrequiredledgerValueHalerinteger | nullrequireditemsobject[]requireditemIdnull | stringrequiredskustringrequirednamenull | stringrequiredunitnull | stringrequiredwarehouseIdnull | stringrequiredwarehouseNamestringrequiredquantityintegerrequiredvalueHalerinteger | nullrequireddifferenceHalerinteger | nullrequiredStock quantity and value per item on a given date, from the movement ledger
/v1/inventory/reports/valueStock quantity and value per item on a given date, from the movement ledger
MCP tool: get-stock-value-report
Query parameters
datestringYYYY-MM-DDwarehouseIdstringResponse · 200
datestringrequireddatetotalValueHalerintegerrequiredrowsobject[]requireditemIdnull | stringrequiredskustringrequirednamenull | stringrequiredunitnull | stringrequiredtypestringrequiredquantityintegerrequiredaverageCostHalerintegerrequiredvalueHalerinteger | nullrequiredStock accounting method (A or B), negative stock policy, which advanced options are on, and document number series
/v1/inventory/settingsStock accounting method (A or B), negative stock policy, which advanced options are on, and document number series
MCP tool: get-inventory-settings
Response · 200
regimestringrequiredaccountingMethodstringrequiredallowNegativeStockbooleanrequiredfeaturesobjectrequiredpurchasingbooleanrequiredlandedCostsbooleanrequiredvariantsbooleanrequiredunitsbooleanrequiredkitsbooleanrequiredimagesbooleanrequiredlocationsbooleanrequiredregistersbooleanrequiredminMarginPercentnumberrequiredplanningobjectrequiredperiodDaysintegerrequiredleadDaysinteger | nullrequiredcoverDaysintegerrequiredseriesobject[]requireddocumentTypenull | stringrequiredprefixstringrequiredpadintegerrequiredChange the stock accounting method, negative stock policy, advanced options, or number series prefixes
/v1/inventory/settingsChange the stock accounting method, negative stock policy, advanced options, or number series prefixes. The accounting method can only change while the current year has no stock movements.
MCP tool: update-inventory-settings
Request body
accountingMethod"A" | "B"allowNegativeStockbooleanfeaturesobjectpurchasingbooleanlandedCostsbooleanvariantsbooleanunitsbooleankitsbooleanimagesbooleanlocationsbooleanregistersbooleanminMarginPercentnumbermin 0max 100planningobjectperiodDaysintegermin 7max 730leadDaysintegermin 0max 365coverDaysintegermin 0max 365seriesobject[]documentType"receipt" | "issue" | "transfer" | "production" | "stocktake"requiredprefixstringrequiredpadintegermin 3max 6Response · 200
regimestringrequiredaccountingMethodstringrequiredallowNegativeStockbooleanrequiredfeaturesobjectrequiredpurchasingbooleanrequiredlandedCostsbooleanrequiredvariantsbooleanrequiredunitsbooleanrequiredkitsbooleanrequiredimagesbooleanrequiredlocationsbooleanrequiredregistersbooleanrequiredminMarginPercentnumberrequiredplanningobjectrequiredperiodDaysintegerrequiredleadDaysinteger | nullrequiredcoverDaysintegerrequiredseriesobject[]requireddocumentTypenull | stringrequiredprefixstringrequiredpadintegerrequiredOpening and closing stock value of a year, and the entry it needs under accounting method B
/v1/inventory/year-endOpening and closing stock value of a year, and the entry it needs under accounting method B. In daňová evidence this is the year-end inventory value to record; nothing is posted during the year.
MCP tool: get-stock-year-end
Query parameters
yearintegerrequiredmin 2000max 2100Response · 200
yearintegerrequiredcanPostbooleanmodestringopeningValueHalerintegerrequiredclosingValueHalerintegerrequiredpositionsobject[]categorynull | stringrequiredanalyticanyrequiredopeningValueHalerintegerrequiredclosingValueHalerintegerrequiredlinesobject[]debitHalerintegerrequiredcreditHalerintegerrequiredaccountNumbernull | stringrequiredpostedanyjournalEntryIdnull | stringPost the year-end stock change under accounting method B: opening to expense, closing back to stock
/v1/inventory/year-endPost the year-end stock change under accounting method B: opening to expense, closing back to stock. Refused for method A and outside double-entry. Once posted, repost reverses the old entry and writes a new one.
IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.
MCP tool: post-stock-year-end
Request body
yearintegerrequiredmin 2000max 2100repostbooleanResponse · 200
yearintegerrequiredcanPostbooleanmodestringopeningValueHalerintegerrequiredclosingValueHalerintegerrequiredpositionsobject[]categorynull | stringrequiredanalyticanyrequiredopeningValueHalerintegerrequiredclosingValueHalerintegerrequiredlinesobject[]debitHalerintegerrequiredcreditHalerintegerrequiredaccountNumbernull | stringrequiredpostedanyjournalEntryIdnull | stringList item groups
/v1/item-groupsList item groups
MCP tool: list-item-groups
Query parameters
limitintegermin 1max 500offsetintegermin 0max 9007199254740991searchstringmax 200 charsResponse · 200
dataobject[]requiredobject"item_group"requiredidstringrequirednamestringrequiredcodestringrequiredtotalintegerhasMorebooleanrequiredCreate an item group
/v1/item-groupsCreate an item group
MCP tool: create-item-group
Request body
namestringrequiredmax 200 charscodestringrequiredmax 64 charsResponse · 201
idstringrequirednamestringrequiredcodestringrequiredRename an item group
/v1/item-groups/{id}Rename an item group
MCP tool: update-item-group
Path parameters
idstringrequiredRequest body
namestringmax 200 charscodestringmax 64 charsResponse · 200
idstringrequirednamestringrequiredcodestringrequiredDelete an empty item group
/v1/item-groups/{id}Delete an empty item group
IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.
MCP tool: delete-item-group
Path parameters
idstringrequiredResponse · 200
idstringrequireddeletedbooleanrequiredList stock items and services with their prices
/v1/itemsList stock items and services with their prices
MCP tool: list-items
Query parameters
limitintegermin 1max 500offsetintegermin 0max 9007199254740991searchstringmax 200 charstype"goods" | "material" | "product" | "service"groupIdstringactive"true" | "false"customFieldKeystringcustomFieldValuestringmax 2000 charsResponse · 200
dataobject[]requiredobject"item"requiredidstringrequiredskustringrequirednamestringrequiredeannull | stringrequiredgroupIdnull | stringrequiredunitstringrequiredvatRateintegerrequiredtypestringrequiredtrackingstringrequiredtracksExpirybooleanrequiredvaluationstringrequiredpurchasePriceHalerintegerrequiredsalePriceHalerintegerrequiredsupplierIdnull | stringrequiredminStocknull | numberrequiredmaxStockinteger | nullrequiredallowNegativeboolean | nullrequiredisActivebooleanrequirednotestring | nullrequiredweightKgnull | numberrequiredgpsrIdnull | stringrequiredrecyclingFeeIdnull | stringrequiredrecyclingCoefficientnull | numberrequiredcustomFieldsobjectrequiredbarvastringzimnistringprumerintegerzarukastringdatevyrobcestringparentIdnull | stringrequiredattributesobjectrequiredBarvastringVelikoststringisKitbooleanrequiredportableBatterybooleanscannedUnitstringscannedFactorintegertotalintegerhasMorebooleanrequiredCreate a stock item or service
/v1/itemsCreate a stock item or service
MCP tool: create-item
Request body
skustringrequiredmax 64 charsnamestringrequiredmax 160 charseanstring | nullgroupIdstring | nullunitstringmax 16 charsvatRate0 | 10 | 12 | 15 | 21type"goods" | "material" | "product" | "service"requiredpurchasePriceHalerintegermin 0max 9007199254740991salePriceHalerintegermin 0max 9007199254740991supplierIdstring | nullminStocknumber | nullmaxStocknumber | nullvaluation"fifo" | "weighted_average"tracking"none" | "serial" | "lot"tracksExpirybooleanallowNegativeboolean | nullisActivebooleannotestring | nullweightKgnumber | nullgpsrIdstring | nullrecyclingFeeIdstring | nullrecyclingCoefficientnumber | nullportableBatterybooleanattributesobjectResponse · 201
idstringrequiredskustringrequirednamestringrequiredeannull | stringrequiredgroupIdnull | stringrequiredunitstringrequiredvatRateintegerrequiredtypestringrequiredtrackingstringrequiredtracksExpirybooleanrequiredvaluationstringrequiredpurchasePriceHalerintegerrequiredsalePriceHalerintegerrequiredsupplierIdnull | stringrequiredminStocknull | numberrequiredmaxStockinteger | nullrequiredallowNegativeboolean | nullrequiredisActivebooleanrequirednotestring | nullrequiredweightKgnull | numberrequiredgpsrIdnull | stringrequiredrecyclingFeeIdnull | stringrequiredrecyclingCoefficientnull | numberrequiredcustomFieldsobjectrequiredbarvastringzimnistringprumerintegerzarukastringdatevyrobcestringparentIdnull | stringrequiredattributesobjectrequiredBarvastringVelikoststringisKitbooleanrequiredportableBatterybooleanscannedUnitstringscannedFactorintegerGet one item
/v1/items/{id}Get one item
MCP tool: get-item
Path parameters
idstringrequiredResponse · 200
idstringrequiredskustringrequirednamestringrequiredeannull | stringrequiredgroupIdnull | stringrequiredunitstringrequiredvatRateintegerrequiredtypestringrequiredtrackingstringrequiredtracksExpirybooleanrequiredvaluationstringrequiredpurchasePriceHalerintegerrequiredsalePriceHalerintegerrequiredsupplierIdnull | stringrequiredminStocknull | numberrequiredmaxStockinteger | nullrequiredallowNegativeboolean | nullrequiredisActivebooleanrequirednotestring | nullrequiredweightKgnull | numberrequiredgpsrIdnull | stringrequiredrecyclingFeeIdnull | stringrequiredrecyclingCoefficientnull | numberrequiredcustomFieldsobjectrequiredbarvastringzimnistringprumerintegerzarukastringdatevyrobcestringparentIdnull | stringrequiredattributesobjectrequiredBarvastringVelikoststringisKitbooleanrequiredportableBatterybooleanscannedUnitstringscannedFactorintegerUpdate an item. Valuation and tracking can only change while it holds no stock
/v1/items/{id}Update an item. Valuation and tracking can only change while it holds no stock
MCP tool: update-item
Path parameters
idstringrequiredRequest body
skustringmax 64 charsnamestringmax 160 charseanstring | nullgroupIdstring | nullunitstringmax 16 charsvatRate0 | 10 | 12 | 15 | 21type"goods" | "material" | "product" | "service"purchasePriceHalerintegermin 0max 9007199254740991salePriceHalerintegermin 0max 9007199254740991supplierIdstring | nullminStocknumber | nullmaxStocknumber | nullvaluation"fifo" | "weighted_average"tracking"none" | "serial" | "lot"tracksExpirybooleanallowNegativeboolean | nullisActivebooleannotestring | nullweightKgnumber | nullgpsrIdstring | nullrecyclingFeeIdstring | nullrecyclingCoefficientnumber | nullportableBatterybooleanattributesobjectResponse · 200
idstringrequiredskustringrequirednamestringrequiredeannull | stringrequiredgroupIdnull | stringrequiredunitstringrequiredvatRateintegerrequiredtypestringrequiredtrackingstringrequiredtracksExpirybooleanrequiredvaluationstringrequiredpurchasePriceHalerintegerrequiredsalePriceHalerintegerrequiredsupplierIdnull | stringrequiredminStocknull | numberrequiredmaxStockinteger | nullrequiredallowNegativeboolean | nullrequiredisActivebooleanrequirednotestring | nullrequiredweightKgnull | numberrequiredgpsrIdnull | stringrequiredrecyclingFeeIdnull | stringrequiredrecyclingCoefficientnull | numberrequiredcustomFieldsobjectrequiredbarvastringzimnistringprumerintegerzarukastringdatevyrobcestringparentIdnull | stringrequiredattributesobjectrequiredBarvastringVelikoststringisKitbooleanrequiredportableBatterybooleanscannedUnitstringscannedFactorintegerDelete an item that was never used. Used items can only be deactivated
/v1/items/{id}Delete an item that was never used. Used items can only be deactivated
IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.
MCP tool: delete-item
Path parameters
idstringrequiredResponse · 200
idstringrequireddeletedbooleanrequiredWhat an item shows in e-shops: categories, attributes, descriptions, and the shops it is sold in
/v1/items/{id}/catalogWhat an item shows in e-shops: categories, attributes, descriptions, and the shops it is sold in
MCP tool: get-item-catalog
Path parameters
idstringrequiredResponse · 200
itemIdnull | stringrequiredlistedbooleanrequiredshortDescriptionnull | stringrequireddescriptionnull | stringrequiredcategoryIdsstring[]requiredparametersobjectrequiredshopIdsstring[]requiredSet what an item shows in e-shops. Stock goes out only for an item listed in that shop
/v1/items/{id}/catalogSet what an item shows in e-shops. Stock goes out only for an item listed in that shop
MCP tool: put-item-catalog
Path parameters
idstringrequiredRequest body
listedbooleanshortDescriptionstring | nulldescriptionstring | nullcategoryIdsstring[]parametersobjectshopIdsstring[]Response · 200
itemIdnull | stringrequiredlistedbooleanrequiredshortDescriptionnull | stringrequireddescriptionnull | stringrequiredcategoryIdsstring[]requiredparametersobjectrequiredshopIdsstring[]requiredList the images of an item
/v1/items/{id}/imagesList the images of an item
MCP tool: list-item-images
Path parameters
idstringrequiredQuery parameters
limitintegermin 1max 500offsetintegermin 0max 9007199254740991searchstringmax 200 charsResponse · 200
dataobject[]requiredobject"item_image"requiredidstringrequireditemIdstringrequiredpositionintegerrequiredtotalintegerhasMorebooleanrequiredUpload an image of an item (PNG, JPEG, or WebP, up to 2 MB)
/v1/items/{id}/imagesUpload an image of an item (PNG, JPEG, or WebP, up to 2 MB)
MCP tool: upload-item-image
Path parameters
idstringrequiredRequest body
fileBase64stringrequiredmax 4000000 charscontentType"image/png" | "image/jpeg" | "image/webp"requiredResponse · 201
idstringrequireditemIdstringrequiredpositionintegerrequiredDownload an image of an item
/v1/items/{id}/images/{imageId}Download an image of an item
MCP tool: get-item-image
Path parameters
idstringrequiredimageIdstringrequiredResponse · 200
Returns a image/png file.
Remove an image from an item
/v1/items/{id}/images/{imageId}Remove an image from an item
IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.
MCP tool: delete-item-image
Path parameters
idstringrequiredimageIdstringrequiredResponse · 200
idstringrequireddeletedbooleanrequiredComponents of a kit and how many whole sets the free stock makes
/v1/items/{id}/kitComponents of a kit and how many whole sets the free stock makes
MCP tool: get-item-kit
Path parameters
idstringrequiredResponse · 200
itemIdnull | stringrequiredisKitbooleanrequiredavailableSetsinteger | nullrequiredcomponentCostHalerintegerrequiredcomponentsarray | nullrequireditemIdnull | stringrequiredskustringrequirednamenull | stringrequiredunitnull | stringrequiredtrackingstringrequiredquantityintegerrequiredMake the item a kit sold as a bundle: selling it moves its components. An empty list makes it an ordinary item again
/v1/items/{id}/kitMake the item a kit sold as a bundle: selling it moves its components. An empty list makes it an ordinary item again. A kit has no stock of its own. A sale of a kit moves its components: lots are taken by what expires first, and a serial-tracked component must be named on the document line, as a lot entry with its itemId.
MCP tool: put-item-kit
Path parameters
idstringrequiredRequest body
componentsobject[]requireditemIdstringrequiredquantitynumberrequiredmax 1000000000Response · 200
itemIdnull | stringrequiredisKitbooleanrequiredavailableSetsinteger | nullrequiredcomponentCostHalerintegerrequiredcomponentsarray | nullrequireditemIdnull | stringrequiredskustringrequirednamenull | stringrequiredunitnull | stringrequiredtrackingstringrequiredquantityintegerrequiredSale price of an item for a customer, date, and quantity, after price lists and discounts
/v1/items/{id}/priceSale price of an item for a customer, date, and quantity, after price lists and discounts
MCP tool: get-item-price
Path parameters
idstringrequiredQuery parameters
contactIdstringdatestringYYYY-MM-DDquantitynumberResponse · 200
itemIdnull | stringrequiredvatRateintegerrequiredgrossPriceHalerintegerrequiredpriceHalerintegerrequiredbasePriceHalerintegerrequiredpriceListIdnull | stringrequiredsourcestringrequireddiscountPercentintegerrequiredWhat an item costs: last purchase price with and without landed costs, supplier prices, and the margin on its sale price
/v1/items/{id}/purchase-infoWhat an item costs: last purchase price with and without landed costs, supplier prices, and the margin on its sale price
MCP tool: get-item-purchase-info
Path parameters
idstringrequiredResponse · 200
itemIdnull | stringrequiredsalePriceHalerintegerrequiredlastPurchaseobjectrequireddatestringrequireddatedocumentNumbernull | stringrequiredsupplierIdnull | stringrequiredsupplierNamenull | stringrequiredunitPriceHalerinteger | nullrequiredlandedUnitCostHalerintegerrequiredsupplierPricesany[]requiredminMarginPercentintegerrequiredmarginobjectrequiredcostHalerintegerrequiredmarginHalerinteger | nullrequiredmarginPercentinteger | nullrequiredwarningnull | stringrequiredRecompute an item in date order and show how it differs from the posted values, without changing anything
/v1/items/{id}/revaluationRecompute an item in date order and show how it differs from the posted values, without changing anything. Differences appear when documents were backdated. Posted costs stay as they are unless a correction is posted. A corrected component cost is carried into the finished goods made from it: `carried` lists them, and `totalDifferenceHaler` is the whole effect.
MCP tool: preview-item-revaluation
Path parameters
idstringrequiredResponse · 200
itemIdnull | stringrequiredvaluationstringwarehousesobject[]warehouseIdnull | stringrequiredquantityintegerrequiredcomputedQuantityintegerrequiredvalueHalerinteger | nullrequiredcomputedValueHalerintegerrequireddifferenceHalerintegerrequiredlayersobject[]requiredidstringrequiredseqintegerrequiredreceivedOnnull | stringrequireddatelotIdnull | stringrequiredqtyMilliintegerrequiredvalueHalerinteger | nullrequiredissuesobject[]idstringrequiredpostedCostHalerintegerrequiredcomputedCostHalerintegerrequireddifferenceHalerintegerrequireddifferenceHalerintegercarriedobject[]itemIdnull | stringrequiredskustringrequirednamenull | stringrequireddifferenceHalerintegerrequiredwarehousesobject[]requiredwarehouseIdnull | stringrequiredquantityintegerrequiredcomputedQuantityintegerrequiredvalueHalerinteger | nullrequiredcomputedValueHalerintegerrequireddifferenceHalerintegerrequiredlayersobject[]requiredidstringrequiredseqintegerrequiredreceivedOnnull | stringrequireddatelotIdstring | nullrequiredqtyMilliintegerrequiredvalueHalerinteger | nullrequiredtotalDifferenceHalerintegerpostedHalerintegerjournalEntryIdnull | stringPost the recompute difference as a dated correction. Earlier postings are never edited
/v1/items/{id}/revaluationPost the recompute difference as a dated correction. Earlier postings are never edited. Send the differences the preview showed, of the item and of the finished goods it carries into: if history changed since, nothing is posted. Refused in a closed period. Everything posts in one entry, and earlier documents stay as they were.
IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.
MCP tool: post-item-revaluation
Path parameters
idstringrequiredRequest body
datestringrequiredYYYY-MM-DDexpectedDifferenceHalerintegerrequiredmin -9007199254740991max 9007199254740991expectedCarriedobject[]itemIdstringrequireddifferenceHalerintegerrequiredmin -9007199254740991max 9007199254740991Response · 200
itemIdnull | stringrequiredvaluationstringwarehousesobject[]warehouseIdnull | stringrequiredquantityintegerrequiredcomputedQuantityintegerrequiredvalueHalerinteger | nullrequiredcomputedValueHalerintegerrequireddifferenceHalerintegerrequiredlayersobject[]requiredidstringrequiredseqintegerrequiredreceivedOnnull | stringrequireddatelotIdnull | stringrequiredqtyMilliintegerrequiredvalueHalerinteger | nullrequiredissuesobject[]idstringrequiredpostedCostHalerintegerrequiredcomputedCostHalerintegerrequireddifferenceHalerintegerrequireddifferenceHalerintegercarriedobject[]itemIdnull | stringrequiredskustringrequirednamenull | stringrequireddifferenceHalerintegerrequiredwarehousesobject[]requiredwarehouseIdnull | stringrequiredquantityintegerrequiredcomputedQuantityintegerrequiredvalueHalerinteger | nullrequiredcomputedValueHalerintegerrequireddifferenceHalerintegerrequiredlayersobject[]requiredidstringrequiredseqintegerrequiredreceivedOnnull | stringrequireddatelotIdstring | nullrequiredqtyMilliintegerrequiredvalueHalerinteger | nullrequiredtotalDifferenceHalerintegerpostedHalerintegerjournalEntryIdnull | stringItem card: balance per warehouse, cost layers, lots, reservations, and movement history
/v1/items/{id}/stockItem card: balance per warehouse, cost layers, lots, reservations, and movement history
MCP tool: get-item-stock
Path parameters
idstringrequiredResponse · 200
itemobjectrequiredobject"item"requiredidstringrequiredskustringrequirednamestringrequiredeannull | stringrequiredgroupIdnull | stringrequiredunitstringrequiredvatRateintegerrequiredtypestringrequiredtrackingstringrequiredtracksExpirybooleanrequiredvaluationstringrequiredpurchasePriceHalerintegerrequiredsalePriceHalerintegerrequiredsupplierIdnull | stringrequiredminStocknull | numberrequiredmaxStockinteger | nullrequiredallowNegativeboolean | nullrequiredisActivebooleanrequirednotestring | nullrequiredweightKgnull | numberrequiredgpsrIdnull | stringrequiredrecyclingFeeIdnull | stringrequiredrecyclingCoefficientnull | numberrequiredcustomFieldsobjectrequiredbarvastringzimnistringprumerintegerzarukastringdatevyrobcestringparentIdnull | stringrequiredattributesobjectrequiredBarvastringVelikoststringisKitbooleanrequiredportableBatterybooleanscannedUnitstringscannedFactorintegerpositionobjectrequiredobject"stock_position"requiredidstringrequireditemIdnull | stringrequiredskustringrequirednamenull | stringrequiredeannull | stringrequiredunitnull | stringrequiredtypestringrequiredvaluationstringrequiredtrackingstringrequiredonHandnumberrequiredreservedintegerrequiredavailablenumberrequiredaverageCostHalerintegerrequiredvalueHalerinteger | nullrequiredminStockinteger | nullrequiredmaxStockanyrequiredlowStockbooleanrequiredwarehousesobject[]requiredwarehouseIdnull | stringrequirednamenull | stringrequiredonHandnumberrequiredreservedintegerrequiredavailablenumberrequiredvalueHalerinteger | nullrequiredaverageCostHalerintegerrequiredlayersobject[]requiredobject"stock_layer"requiredidstringrequireditemIdstringrequiredwarehouseIdstringrequiredlotIdnull | stringrequiredreceivedOnstringrequireddatequantitynumberrequiredvalueHalerintegerrequiredunitCostHalerinteger | nullrequiredoriginalQuantityintegerrequiredoriginalValueHalerintegerrequiredwarehouseNamestringrequiredlotsobject[]requiredobject"stock_lot"requiredidstringrequireditemIdstringrequiredkindstringrequiredcodestringrequiredexpiryDatenull | stringrequireddatereceivedOnstringrequireddatenotenull | stringrequiredonHandintegeritemNamestringitemSkustringunitnull | stringwarehousesobject[]warehouseIdnull | stringrequirednamenull | stringrequiredonHandintegerrequiredreservationsobject[]requiredobject"stock_reservation"requiredidstringrequireditemIdstringrequiredwarehouseIdstringrequiredquantitynumberrequiredfulfilledintegerrequiredremainingnumberrequiredstatusstringrequiredorderIdnull | stringrequiredorderLineIdnull | stringrequiredorderNumbernull | stringrequiredcontactIdnull | stringrequiredreservedUntilnull | stringrequireddatenotestring | nullrequireditemNamestringitemSkustringunitnull | stringwarehouseNamestringmovementsobject[]requiredobject"movement"requiredidstringrequiredwarehouseIdstringrequiredtoWarehouseIdnull | stringrequireditemIdstringrequiredtypestringrequiredquantitynumberrequireddeltanumberrequiredvalueDeltaHalerintegerrequireddatestringrequireddatedocumentIdnull | stringrequiredstocktakeIdnull | stringrequiredinvoiceIdnull | stringrequireddeliveryNoteIdnull | stringrequiredreceivedInvoiceIdnull | stringrequiredreversalOfIdnull | stringrequiredreversedByIdnull | stringrequirednotenull | stringrequiredwarehouseNamestringdocumentNumbernull | stringdocumentTypenull | stringbalanceintegerList an item's alternative units with their conversion to the base unit
/v1/items/{id}/unitsList an item's alternative units with their conversion to the base unit
MCP tool: get-item-units
Path parameters
idstringrequiredResponse · 200
itemIdstringrequiredbaseUnitstringrequiredunitsobject[]requiredobject"item_unit"requiredidstringrequireditemIdstringrequiredunitstringrequiredfactorintegerrequiredeannull | stringrequiredReplace an item's alternative units, for example 1 balení = 12 ks, each optionally with its own barcode
/v1/items/{id}/unitsReplace an item's alternative units, for example 1 balení = 12 ks, each optionally with its own barcode. A document line in such a unit moves the converted quantity of the base unit. Stock always stays in the base unit.
MCP tool: put-item-units
Path parameters
idstringrequiredRequest body
unitsobject[]requiredunitstringrequiredmax 16 charsfactornumberrequiredmax 1000000000eanstring | nullResponse · 200
itemIdstringrequiredbaseUnitstringrequiredunitsobject[]requiredobject"item_unit"requiredidstringrequireditemIdstringrequiredunitstringrequiredfactorintegerrequiredeannull | stringrequiredList the variants of an item with their attributes
/v1/items/{id}/variantsList the variants of an item with their attributes
MCP tool: list-item-variants
Path parameters
idstringrequiredQuery parameters
limitintegermin 1max 500offsetintegermin 0max 9007199254740991searchstringmax 200 charsResponse · 200
dataobject[]requiredobject"item"requiredidstringrequiredskustringrequirednamestringrequiredeannull | stringrequiredgroupIdnull | stringrequiredunitstringrequiredvatRateintegerrequiredtypestringrequiredtrackingstringrequiredtracksExpirybooleanrequiredvaluationstringrequiredpurchasePriceHalerintegerrequiredsalePriceHalerintegerrequiredsupplierIdnull | stringrequiredminStocknull | numberrequiredmaxStockinteger | nullrequiredallowNegativeboolean | nullrequiredisActivebooleanrequirednotestring | nullrequiredweightKgnull | numberrequiredgpsrIdnull | stringrequiredrecyclingFeeIdnull | stringrequiredrecyclingCoefficientnull | numberrequiredcustomFieldsobjectrequiredbarvastringzimnistringprumerintegerzarukastringdatevyrobcestringparentIdnull | stringrequiredattributesobjectrequiredBarvastringVelikoststringisKitbooleanrequiredportableBatterybooleanscannedUnitstringscannedFactorintegertotalintegerhasMorebooleanrequiredCreate a variant for every combination of attributes, for example Barva × Velikost. Each variant is an ordinary item with its own stock
/v1/items/{id}/variantsCreate a variant for every combination of attributes, for example Barva × Velikost. Each variant is an ordinary item with its own stock. Variants take the unit, prices, VAT, valuation, and tracking of the parent. A combination that already exists is skipped, so the call can be repeated with a new value.
MCP tool: create-item-variants
Path parameters
idstringrequiredRequest body
axesobject[]requirednamestringrequiredmax 40 charsvaluesstring[]requiredResponse · 201
itemIdnull | stringrequiredcreatedintegerrequireddataobject[]requiredobject"item"requiredidstringrequiredskustringrequirednamestringrequiredeannull | stringrequiredgroupIdnull | stringrequiredunitstringrequiredvatRateintegerrequiredtypestringrequiredtrackingstringrequiredtracksExpirybooleanrequiredvaluationstringrequiredpurchasePriceHalerintegerrequiredsalePriceHalerintegerrequiredsupplierIdnull | stringrequiredminStocknull | numberrequiredmaxStockinteger | nullrequiredallowNegativeboolean | nullrequiredisActivebooleanrequirednotestring | nullrequiredweightKgnull | numberrequiredgpsrIdnull | stringrequiredrecyclingFeeIdnull | stringrequiredrecyclingCoefficientnull | numberrequiredcustomFieldsobjectrequiredbarvastringzimnistringprumerintegerzarukastringdatevyrobcestringparentIdnull | stringrequiredattributesobjectrequiredBarvastringVelikoststringisKitbooleanrequiredportableBatterybooleanscannedUnitstringscannedFactorintegerDownload all items as an XLSX workbook, ready to edit and import again
/v1/items/exportDownload all items as an XLSX workbook, ready to edit and import again
MCP tool: export-items
Response · 200
Returns a application/vnd.openxmlformats-officedocument.spreadsheetml.sheet file.
Create or update items from an XLSX workbook, matched by SKU
/v1/items/importCreate or update items from an XLSX workbook, matched by SKU. Send the file as base64. With dryRun nothing is saved and the answer says what would happen. Rows with an error are skipped and listed.
MCP tool: import-items
Request body
fileBase64stringrequiredmax 40000000 charsdryRunbooleanResponse · 200
dryRunbooleanrequiredcreatedintegerrequiredupdatedintegerrequirederrorsobject[]requiredlineintegerrequiredmessagenull | stringrequiredLabels with name, price, EAN bars, and a QR code as PDF: an A4 sheet of 3 × 8, or one 50 × 30 mm label per page for a label printer
/v1/items/labelsLabels with name, price, EAN bars, and a QR code as PDF: an A4 sheet of 3 × 8, or one 50 × 30 mm label per page for a label printer. Pass item ids separated by commas. An item with no valid EAN-13, EAN-8, or UPC-12 prints the QR code and its SKU only.
MCP tool: get-item-labels
Query parameters
idsstringrequiredmax 20000 charscopiesintegermin 1max 500layout"sheet" | "roll"withPrice"true" | "false"withGpsr"true" | "false"Response · 200
Returns a application/pdf file.
Find one item by exact SKU or EAN, as a barcode scanner would. A pack barcode also returns the pack unit and its size
/v1/items/lookupFind one item by exact SKU or EAN, as a barcode scanner would. A pack barcode also returns the pack unit and its size
MCP tool: lookup-item
Query parameters
codestringrequiredmax 64 charsResponse · 200
idstringrequiredskustringrequirednamestringrequiredeannull | stringrequiredgroupIdnull | stringrequiredunitstringrequiredvatRateintegerrequiredtypestringrequiredtrackingstringrequiredtracksExpirybooleanrequiredvaluationstringrequiredpurchasePriceHalerintegerrequiredsalePriceHalerintegerrequiredsupplierIdnull | stringrequiredminStocknull | numberrequiredmaxStockinteger | nullrequiredallowNegativeboolean | nullrequiredisActivebooleanrequirednotestring | nullrequiredweightKgnull | numberrequiredgpsrIdnull | stringrequiredrecyclingFeeIdnull | stringrequiredrecyclingCoefficientnull | numberrequiredcustomFieldsobjectrequiredbarvastringzimnistringprumerintegerzarukastringdatevyrobcestringparentIdnull | stringrequiredattributesobjectrequiredBarvastringVelikoststringisKitbooleanrequiredportableBatterybooleanscannedUnitstringscannedFactorintegerGive many items the same GPSR record or recycling fee at once. Name only what should change; null clears it. Nothing already on a document changes, those lines are frozen
/v1/items/product-data/assignGive many items the same GPSR record or recycling fee at once. Name only what should change; null clears it. Nothing already on a document changes, those lines are frozen
MCP tool: assign-item-product-data
Request body
itemIdsstring[]requiredgpsrIdstring | nullrecyclingFeeIdstring | nullrecyclingCoefficientnumber | nullResponse · 200
updatedCountintegerrequiredrequestedCountintegerrequiredList stock movements, newest first, with quantity and value changes
/v1/movementsList stock movements, newest first, with quantity and value changes
MCP tool: list-movements
Query parameters
limitintegermin 1max 500offsetintegermin 0max 9007199254740991fromstringYYYY-MM-DDtostringYYYY-MM-DDitemIdstringwarehouseIdstringtypestringmax 32 charsResponse · 200
dataobject[]requiredobject"movement"requiredidstringrequiredwarehouseIdstringrequiredtoWarehouseIdnull | stringrequireditemIdstringrequiredtypestringrequiredquantitynumberrequireddeltanumberrequiredvalueDeltaHalerintegerrequireddatestringrequireddatedocumentIdnull | stringrequiredstocktakeIdnull | stringrequiredinvoiceIdnull | stringrequireddeliveryNoteIdnull | stringrequiredreceivedInvoiceIdnull | stringrequiredreversalOfIdnull | stringrequiredreversedByIdnull | stringrequirednotenull | stringrequiredwarehouseNamestringdocumentNumbernull | stringdocumentTypenull | stringbalanceintegertotalintegerhasMorebooleanrequiredRecord one stock movement without a document
/v1/movementsRecord one stock movement without a document. Prefer stock documents, which have numbers, PDFs, and storno. Refuses to oversell unless negative stock is allowed. Items tracked by lot or serial need a document. A stocktake quantity is signed: the difference to apply.
MCP tool: create-movement
Request body
warehouseIdstringrequiredtoWarehouseIdstringitemIdstringrequiredtype"receipt" | "issue" | "transfer" | "stocktake"requiredquantitynumberrequiredunitPriceHalerintegermin 0max 9007199254740991datestringYYYY-MM-DDdocumentIdstringnotestringmax 2000 charsResponse · 201
idstringrequiredwarehouseIdstringrequiredtoWarehouseIdnull | stringrequireditemIdstringrequiredtypestringrequiredquantitynumberrequireddeltanumberrequiredvalueDeltaHalerintegerrequireddatestringrequireddatedocumentIdnull | stringrequiredstocktakeIdnull | stringrequiredinvoiceIdnull | stringrequireddeliveryNoteIdnull | stringrequiredreceivedInvoiceIdnull | stringrequiredreversalOfIdnull | stringrequiredreversedByIdnull | stringrequirednotenull | stringrequiredwarehouseNamestringdocumentNumbernull | stringdocumentTypenull | stringbalanceintegerList price lists
/v1/price-listsList price lists
MCP tool: list-price-lists
Query parameters
limitintegermin 1max 500offsetintegermin 0max 9007199254740991searchstringmax 200 charsResponse · 200
dataobject[]requiredobject"price_list"requiredidstringrequirednamestringrequiredcodestringrequiredisDefaultbooleanrequireddiscountPercentintegerrequiredvalidFromnull | stringrequireddatevalidTonull | stringrequireddatenotestring | nullrequireditemsobject[]object"price_list_item"requiredidstringrequiredpriceListIdstringrequireditemIdstringrequiredpriceHalerintegerrequiredminQuantityintegerrequireditemNamestringrequireditemSkustringrequiredrulesobject[]object"price_list_rule"requiredidstringrequiredpriceListIdstringrequiredcontactIdnull | stringrequiredcontactGroupIdstring | nullrequireddiscountPercentintegerrequiredtotalintegerhasMorebooleanrequiredCreate a price list with an optional overall discount and validity dates
/v1/price-listsCreate a price list with an optional overall discount and validity dates
MCP tool: create-price-list
Request body
namestringrequiredmax 200 charscodestringrequiredmax 64 charsisDefaultbooleandiscountPercentnumbermin 0max 100validFromstring | nullvalidTostring | nullnotestring | nullResponse · 201
idstringrequirednamestringrequiredcodestringrequiredisDefaultbooleanrequireddiscountPercentintegerrequiredvalidFromnull | stringrequireddatevalidTonull | stringrequireddatenotestring | nullrequireditemsobject[]object"price_list_item"requiredidstringrequiredpriceListIdstringrequireditemIdstringrequiredpriceHalerintegerrequiredminQuantityintegerrequireditemNamestringrequireditemSkustringrequiredrulesobject[]object"price_list_rule"requiredidstringrequiredpriceListIdstringrequiredcontactIdnull | stringrequiredcontactGroupIdstring | nullrequireddiscountPercentintegerrequiredGet a price list with its prices and contact or group discounts
/v1/price-lists/{id}Get a price list with its prices and contact or group discounts
MCP tool: get-price-list
Path parameters
idstringrequiredResponse · 200
idstringrequirednamestringrequiredcodestringrequiredisDefaultbooleanrequireddiscountPercentintegerrequiredvalidFromnull | stringrequireddatevalidTonull | stringrequireddatenotestring | nullrequireditemsobject[]object"price_list_item"requiredidstringrequiredpriceListIdstringrequireditemIdstringrequiredpriceHalerintegerrequiredminQuantityintegerrequireditemNamestringrequireditemSkustringrequiredrulesobject[]object"price_list_rule"requiredidstringrequiredpriceListIdstringrequiredcontactIdnull | stringrequiredcontactGroupIdstring | nullrequireddiscountPercentintegerrequiredUpdate a price list
/v1/price-lists/{id}Update a price list
MCP tool: update-price-list
Path parameters
idstringrequiredRequest body
namestringmax 200 charscodestringmax 64 charsisDefaultbooleandiscountPercentnumbermin 0max 100validFromstring | nullvalidTostring | nullnotestring | nullResponse · 200
idstringrequirednamestringrequiredcodestringrequiredisDefaultbooleanrequireddiscountPercentintegerrequiredvalidFromnull | stringrequireddatevalidTonull | stringrequireddatenotestring | nullrequireditemsobject[]object"price_list_item"requiredidstringrequiredpriceListIdstringrequireditemIdstringrequiredpriceHalerintegerrequiredminQuantityintegerrequireditemNamestringrequireditemSkustringrequiredrulesobject[]object"price_list_rule"requiredidstringrequiredpriceListIdstringrequiredcontactIdnull | stringrequiredcontactGroupIdstring | nullrequireddiscountPercentintegerrequiredDelete a price list with its prices and rules
/v1/price-lists/{id}Delete a price list with its prices and rules
IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.
MCP tool: delete-price-list
Path parameters
idstringrequiredResponse · 200
idstringrequireddeletedbooleanrequiredDownload a price list as an XLSX workbook
/v1/price-lists/{id}/exportDownload a price list as an XLSX workbook
MCP tool: export-price-list
Path parameters
idstringrequiredResponse · 200
Returns a application/vnd.openxmlformats-officedocument.spreadsheetml.sheet file.
Set prices on a price list from an XLSX workbook, matched by SKU
/v1/price-lists/{id}/importSet prices on a price list from an XLSX workbook, matched by SKU
MCP tool: import-price-list
Path parameters
idstringrequiredRequest body
fileBase64stringrequiredmax 40000000 charsdryRunbooleanResponse · 200
dryRunbooleanrequiredimportedintegerrequirederrorsobject[]requiredlineintegerrequiredmessagenull | stringrequiredSet prices on a price list. A row with a minimum quantity is a quantity break
/v1/price-lists/{id}/itemsSet prices on a price list. A row with a minimum quantity is a quantity break
MCP tool: put-price-list-items
Path parameters
idstringrequiredRequest body
itemsobject[]requireditemIdstringrequiredpriceHalerintegerrequiredmin 0max 9007199254740991minQuantitynumbermin 0Response · 200
idstringrequirednamestringrequiredcodestringrequiredisDefaultbooleanrequireddiscountPercentintegerrequiredvalidFromnull | stringrequireddatevalidTonull | stringrequireddatenotestring | nullrequireditemsobject[]object"price_list_item"requiredidstringrequiredpriceListIdstringrequireditemIdstringrequiredpriceHalerintegerrequiredminQuantityintegerrequireditemNamestringrequireditemSkustringrequiredrulesobject[]object"price_list_rule"requiredidstringrequiredpriceListIdstringrequiredcontactIdnull | stringrequiredcontactGroupIdstring | nullrequireddiscountPercentintegerrequiredRemove one price from a price list
/v1/price-lists/{id}/items/{rowId}Remove one price from a price list
IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.
MCP tool: delete-price-list-item
Path parameters
idstringrequiredrowIdstringrequiredResponse · 200
idstringrequireddeletedbooleanrequiredAssign a price list to a contact or contact group, with an optional extra discount
/v1/price-lists/{id}/rulesAssign a price list to a contact or contact group, with an optional extra discount
MCP tool: create-price-list-rule
Path parameters
idstringrequiredRequest body
contactIdstringcontactGroupIdstringdiscountPercentnumbermin 0max 100Response · 201
idstringrequiredpriceListIdstringrequiredcontactIdnull | stringrequiredcontactGroupIdstring | nullrequireddiscountPercentintegerrequiredRemove a contact or group assignment from a price list
/v1/price-lists/{id}/rules/{ruleId}Remove a contact or group assignment from a price list
IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.
MCP tool: delete-price-list-rule
Path parameters
idstringrequiredruleIdstringrequiredResponse · 200
idstringrequireddeletedbooleanrequiredList production requests: what should be produced, before anything moves in stock
/v1/production-requestsList production requests: what should be produced, before anything moves in stock
MCP tool: list-production-requests
Query parameters
limitintegermin 1max 500offsetintegermin 0max 9007199254740991searchstringmax 200 charsResponse · 200
dataobject[]requiredobject"production_request"requiredidstringrequirednumberstringrequireddatestringrequireddatebomIdstringrequireditemIdstringrequireditemNamestringrequiredquantityintegerrequiredunitnull | stringrequiredwarehouseIdstringrequiredtoWarehouseIdstring | nullrequiredorderIdnull | stringrequiredorderNumberstring | nullrequiredreservedbooleanrequiredstatusstringrequiredstockDocumentIdnull | stringrequirednotenull | stringrequiredoutputTrackingstringoutputLotsobject[]lotIdstring | nullrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatestring | nullrequiredcomponentsChangedbooleancomponentsarray | nullrequireditemIdstringrequirednamenull | stringrequiredunitnull | stringrequiredtrackingstringquantitynumberrequiredenteredUnitstring | nullenteredQuantityanylotsobject[]lotIdnull | stringrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatestring | nullrequiredtotalintegerhasMorebooleanrequiredPlan a production from a bill of materials. Moves nothing in stock
/v1/production-requestsPlan a production from a bill of materials. Moves nothing in stock
MCP tool: create-production-request
Request body
bomIdstringrequiredquantitynumberrequiredmax 1000000000warehouseIdstringrequiredtoWarehouseIdstring | nulldatestringYYYY-MM-DDorderIdstring | nullorderLineIdstring | nullnotestring | nullResponse · 201
idstringrequirednumberstringrequireddatestringrequireddatebomIdstringrequireditemIdstringrequireditemNamestringrequiredquantityintegerrequiredunitnull | stringrequiredwarehouseIdstringrequiredtoWarehouseIdstring | nullrequiredorderIdnull | stringrequiredorderNumberstring | nullrequiredreservedbooleanrequiredstatusstringrequiredstockDocumentIdnull | stringrequirednotenull | stringrequiredoutputTrackingstringoutputLotsobject[]lotIdstring | nullrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatestring | nullrequiredcomponentsChangedbooleancomponentsarray | nullrequireditemIdstringrequirednamenull | stringrequiredunitnull | stringrequiredtrackingstringquantitynumberrequiredenteredUnitstring | nullenteredQuantityanylotsobject[]lotIdnull | stringrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatestring | nullrequiredGet a production request with the components it needs
/v1/production-requests/{id}Get a production request with the components it needs
MCP tool: get-production-request
Path parameters
idstringrequiredResponse · 200
idstringrequirednumberstringrequireddatestringrequireddatebomIdstringrequireditemIdstringrequireditemNamestringrequiredquantityintegerrequiredunitnull | stringrequiredwarehouseIdstringrequiredtoWarehouseIdstring | nullrequiredorderIdnull | stringrequiredorderNumberstring | nullrequiredreservedbooleanrequiredstatusstringrequiredstockDocumentIdnull | stringrequirednotenull | stringrequiredoutputTrackingstringoutputLotsobject[]lotIdstring | nullrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatestring | nullrequiredcomponentsChangedbooleancomponentsarray | nullrequireditemIdstringrequirednamenull | stringrequiredunitnull | stringrequiredtrackingstringquantitynumberrequiredenteredUnitstring | nullenteredQuantityanylotsobject[]lotIdnull | stringrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatestring | nullrequiredChange an open production request. A reserved one cannot change its quantity or warehouse. Components of its own follow a new quantity, and lots picked for the old one are cleared
/v1/production-requests/{id}Change an open production request. A reserved one cannot change its quantity or warehouse. Components of its own follow a new quantity, and lots picked for the old one are cleared
MCP tool: update-production-request
Path parameters
idstringrequiredRequest body
quantitynumbermax 1000000000warehouseIdstringtoWarehouseIdstring | nulldatestringYYYY-MM-DDnotestring | nullResponse · 200
idstringrequirednumberstringrequireddatestringrequireddatebomIdstringrequireditemIdstringrequireditemNamestringrequiredquantityintegerrequiredunitnull | stringrequiredwarehouseIdstringrequiredtoWarehouseIdstring | nullrequiredorderIdnull | stringrequiredorderNumberstring | nullrequiredreservedbooleanrequiredstatusstringrequiredstockDocumentIdnull | stringrequirednotenull | stringrequiredoutputTrackingstringoutputLotsobject[]lotIdstring | nullrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatestring | nullrequiredcomponentsChangedbooleancomponentsarray | nullrequireditemIdstringrequirednamenull | stringrequiredunitnull | stringrequiredtrackingstringquantitynumberrequiredenteredUnitstring | nullenteredQuantityanylotsobject[]lotIdnull | stringrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatestring | nullrequiredCancel an open production request and give back what it reserved
/v1/production-requests/{id}/cancelCancel an open production request and give back what it reserved
MCP tool: cancel-production-request
Path parameters
idstringrequiredResponse · 200
idstringrequirednumberstringrequireddatestringrequireddatebomIdstringrequireditemIdstringrequireditemNamestringrequiredquantityintegerrequiredunitnull | stringrequiredwarehouseIdstringrequiredtoWarehouseIdstring | nullrequiredorderIdnull | stringrequiredorderNumberstring | nullrequiredreservedbooleanrequiredstatusstringrequiredstockDocumentIdnull | stringrequirednotenull | stringrequiredoutputTrackingstringoutputLotsobject[]lotIdstring | nullrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatestring | nullrequiredcomponentsChangedbooleancomponentsarray | nullrequireditemIdstringrequirednamenull | stringrequiredunitnull | stringrequiredtrackingstringquantitynumberrequiredenteredUnitstring | nullenteredQuantityanylotsobject[]lotIdnull | stringrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatestring | nullrequiredChange what one production request uses: add, remove or change components, in the item unit or a pack, and pick lots or serial numbers. The bill of materials stays as it is
/v1/production-requests/{id}/componentsChange what one production request uses: add, remove or change components, in the item unit or a pack, and pick lots or serial numbers. The bill of materials stays as it is. components: null goes back to the bill of materials. A reserved request has to give its reservation back first, because the reservation holds the old components.
MCP tool: put-production-request-components
Path parameters
idstringrequiredRequest body
componentsobject[] | nullrequireditemIdstringrequiredquantitynumberrequiredmax 1000000000unitstringmax 16 charslotsobject[]lotIdstringcodestringmax 64 charsquantitynumberrequiredmax 1000000000expiryDatestring | nulloutputLotsobject[]lotIdstringcodestringmax 64 charsquantitynumberrequiredmax 1000000000expiryDatestring | nullResponse · 200
idstringrequirednumberstringrequireddatestringrequireddatebomIdstringrequireditemIdstringrequireditemNamestringrequiredquantityintegerrequiredunitnull | stringrequiredwarehouseIdstringrequiredtoWarehouseIdstring | nullrequiredorderIdnull | stringrequiredorderNumberstring | nullrequiredreservedbooleanrequiredstatusstringrequiredstockDocumentIdnull | stringrequirednotenull | stringrequiredoutputTrackingstringoutputLotsobject[]lotIdstring | nullrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatestring | nullrequiredcomponentsChangedbooleancomponentsarray | nullrequireditemIdstringrequirednamenull | stringrequiredunitnull | stringrequiredtrackingstringquantitynumberrequiredenteredUnitstring | nullenteredQuantityanylotsobject[]lotIdnull | stringrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatestring | nullrequiredSend a request to production: posts the production stock document, taking out components and adding the product
/v1/production-requests/{id}/produceSend a request to production: posts the production stock document, taking out components and adding the product. What it reserved is given back first, because this is the production it was reserved for.
MCP tool: produce-production-request
Path parameters
idstringrequiredRequest body
datestringYYYY-MM-DDoverrideReservationsbooleanResponse · 200
idstringrequirednumberstringrequireddatestringrequireddatebomIdstringrequireditemIdstringrequireditemNamestringrequiredquantityintegerrequiredunitnull | stringrequiredwarehouseIdstringrequiredtoWarehouseIdstring | nullrequiredorderIdnull | stringrequiredorderNumberstring | nullrequiredreservedbooleanrequiredstatusstringrequiredstockDocumentIdnull | stringrequirednotenull | stringrequiredoutputTrackingstringoutputLotsobject[]lotIdstring | nullrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatestring | nullrequiredcomponentsChangedbooleancomponentsarray | nullrequireditemIdstringrequirednamenull | stringrequiredunitnull | stringrequiredtrackingstringquantitynumberrequiredenteredUnitstring | nullenteredQuantityanylotsobject[]lotIdnull | stringrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatestring | nullrequiredReserve all components of a production request. A request is reserved whole or not at all
/v1/production-requests/{id}/reserveReserve all components of a production request. A request is reserved whole or not at all
MCP tool: reserve-production-request
Path parameters
idstringrequiredResponse · 200
idstringrequirednumberstringrequireddatestringrequireddatebomIdstringrequireditemIdstringrequireditemNamestringrequiredquantityintegerrequiredunitnull | stringrequiredwarehouseIdstringrequiredtoWarehouseIdstring | nullrequiredorderIdnull | stringrequiredorderNumberstring | nullrequiredreservedbooleanrequiredstatusstringrequiredstockDocumentIdnull | stringrequirednotenull | stringrequiredoutputTrackingstringoutputLotsobject[]lotIdstring | nullrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatestring | nullrequiredcomponentsChangedbooleancomponentsarray | nullrequireditemIdstringrequirednamenull | stringrequiredunitnull | stringrequiredtrackingstringquantitynumberrequiredenteredUnitstring | nullenteredQuantityanylotsobject[]lotIdnull | stringrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatestring | nullrequiredGive back what a production request reserved
/v1/production-requests/{id}/unreserveGive back what a production request reserved
MCP tool: unreserve-production-request
Path parameters
idstringrequiredResponse · 200
idstringrequirednumberstringrequireddatestringrequireddatebomIdstringrequireditemIdstringrequireditemNamestringrequiredquantityintegerrequiredunitnull | stringrequiredwarehouseIdstringrequiredtoWarehouseIdstring | nullrequiredorderIdnull | stringrequiredorderNumberstring | nullrequiredreservedbooleanrequiredstatusstringrequiredstockDocumentIdnull | stringrequirednotenull | stringrequiredoutputTrackingstringoutputLotsobject[]lotIdstring | nullrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatestring | nullrequiredcomponentsChangedbooleancomponentsarray | nullrequireditemIdstringrequirednamenull | stringrequiredunitnull | stringrequiredtrackingstringquantitynumberrequiredenteredUnitstring | nullenteredQuantityanylotsobject[]lotIdnull | stringrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatestring | nullrequiredMake one production request for each line of one or several received orders whose item has an active bill of materials, or only for the lines named
/v1/production-requests/from-orderMake one production request for each line of one or several received orders whose item has an active bill of materials, or only for the lines named. Lines already in a request are left out, so it can run again after the order changes. Give orderId, or orderIds for several at once.
MCP tool: create-production-requests-from-order
Request body
orderIdstringorderIdsstring[]lineIdsstring[]warehouseIdstringrequireddatestringYYYY-MM-DDResponse · 201
dataobject[]requiredobject"production_request"requiredidstringrequirednumberstringrequireddatestringrequireddatebomIdstringrequireditemIdstringrequireditemNamestringrequiredquantityintegerrequiredunitnull | stringrequiredwarehouseIdstringrequiredtoWarehouseIdstring | nullrequiredorderIdnull | stringrequiredorderNumberstring | nullrequiredreservedbooleanrequiredstatusstringrequiredstockDocumentIdnull | stringrequirednotenull | stringrequiredoutputTrackingstringoutputLotsobject[]lotIdstring | nullrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatestring | nullrequiredcomponentsChangedbooleancomponentsarray | nullrequireditemIdstringrequirednamenull | stringrequiredunitnull | stringrequiredtrackingstringquantitynumberrequiredenteredUnitstring | nullenteredQuantityanylotsobject[]lotIdnull | stringrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatestring | nullrequiredtotalintegerrequiredhasMorebooleanrequiredPlan several products at once, each from its bill of materials. All or none, and nothing moves in stock
/v1/production-requests/manyPlan several products at once, each from its bill of materials. All or none, and nothing moves in stock
MCP tool: create-production-requests
Request body
warehouseIdstringrequiredtoWarehouseIdstring | nulldatestringYYYY-MM-DDlinesobject[]requiredbomIdstringrequiredquantitynumberrequiredmax 1000000000Response · 201
dataobject[]requiredobject"production_request"requiredidstringrequirednumberstringrequireddatestringrequireddatebomIdstringrequireditemIdstringrequireditemNamestringrequiredquantityintegerrequiredunitnull | stringrequiredwarehouseIdstringrequiredtoWarehouseIdstring | nullrequiredorderIdnull | stringrequiredorderNumberstring | nullrequiredreservedbooleanrequiredstatusstringrequiredstockDocumentIdnull | stringrequirednotenull | stringrequiredoutputTrackingstringoutputLotsobject[]lotIdstring | nullrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatestring | nullrequiredcomponentsChangedbooleancomponentsarray | nullrequireditemIdstringrequirednamenull | stringrequiredunitnull | stringrequiredtrackingstringquantitynumberrequiredenteredUnitstring | nullenteredQuantityanylotsobject[]lotIdnull | stringrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatestring | nullrequiredtotalintegerrequiredhasMorebooleanrequiredSend many requests to production at once. Each runs on its own, so one that lacks stock or a lot stops nothing else, and the answer says what happened to each
/v1/production-requests/produce-manySend many requests to production at once. Each runs on its own, so one that lacks stock or a lot stops nothing else, and the answer says what happened to each
MCP tool: produce-production-requests
Request body
datestringYYYY-MM-DDoverrideReservationsbooleanidsstring[]requiredResponse · 200
resultsobject[]requiredidstringokbooleanrequirederrornull | stringcodenull | stringnumbernull | stringstockDocumentIdnull | stringdocumentIdnull | stringstatusstringcontactNamenull | stringnamenull | stringtostringamountHalerinteger | nullmovementIdnull | stringrowintegerrecognisedbooleanshipmentIdstringtrackingNumbernull | stringtotalintegerrequiredsucceededintegerrequiredfailedintegerrequiredAdd a transport or customs invoice to the cost of receipts: it moves to 131/111, and what the receipts did not expect is added to the goods
/v1/received-invoices/{id}/landed-costAdd a transport or customs invoice to the cost of receipts: it moves to 131/111, and what the receipts did not expect is added to the goods. Legal effect: posts to the books. By default the invoice lines that do not move stock are allocated. Several receipts share the amount by value, each receipt's lines by value or weight. The first invoice answers for the landed cost the receipt stated, so a difference can be negative. Whatever has left stock goes to 504/501.
MCP tool: allocate-landed-cost-invoice
Path parameters
idstringrequiredRequest body
stockDocumentIdsstring[]requiredlineIdsstring[]method"value" | "weight"Response · 201
receivedInvoiceIdnull | stringrequireddataobject[]requiredobject"stock_cost_adjustment"requiredidstringrequiredkindstringrequiredstockDocumentIdnull | stringrequiredstockDocumentNumberstringrequireditemIdstringrequiredstatedHalerintegerrequiredamountHalerintegerrequiredstockHalerintegerrequiredsoldHalerintegerrequiredTake a transport or customs invoice off the receipts it was added to and reverse the postings
/v1/received-invoices/{id}/landed-costTake a transport or customs invoice off the receipts it was added to and reverse the postings
IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.
MCP tool: remove-landed-cost-invoice
Path parameters
idstringrequiredResponse · 200
receivedInvoiceIdnull | stringrequireddataobject[]requiredobject"stock_cost_adjustment"requiredidstringrequiredkindstringrequiredstockDocumentIdnull | stringrequiredstockDocumentNumberstringrequireditemIdstringrequiredstatedHalerintegerrequiredamountHalerintegerrequiredstockHalerintegerrequiredsoldHalerintegerrequiredWhat this received invoice changed on the value of receipts: a price difference against the receipt, or transport allocated to it
/v1/received-invoices/{id}/stock-costsWhat this received invoice changed on the value of receipts: a price difference against the receipt, or transport allocated to it
MCP tool: get-received-invoice-stock-costs
Path parameters
idstringrequiredResponse · 200
receivedInvoiceIdnull | stringrequireddataobject[]requiredobject"stock_cost_adjustment"requiredidstringrequiredkindstringrequiredstockDocumentIdnull | stringrequiredstockDocumentNumberstringrequireditemIdstringrequiredstatedHalerintegerrequiredamountHalerintegerrequiredstockHalerintegerrequiredsoldHalerintegerrequiredList RecyclingFees
/v1/recycling-feesList RecyclingFees
MCP tool: list-recycling-fees
Query parameters
limitintegermin 1max 500offsetintegermin 0max 9007199254740991searchstringmax 200 charsResponse · 200
dataobject[]requiredobject"recycling_fee"requiredidstringrequiredcodestringrequirednamestringrequiredrateHalerintegerrequiredunitstringrequireddocumentTextnull | stringrequiredisActivebooleanrequiredtotalintegerhasMorebooleanrequiredCreate a RecyclingFee
/v1/recycling-feesCreate a RecyclingFee
MCP tool: create-recycling-fee
Request body
codestringrequiredmax 32 charsnamestringrequiredmax 200 charsrateHalerintegerrequiredmin 0max 9007199254740991unitstringmax 10 charsdocumentTextstring | nullisActivebooleanResponse · 201
idstringrequiredcodestringrequirednamestringrequiredrateHalerintegerrequiredunitstringrequireddocumentTextnull | stringrequiredisActivebooleanrequiredGet a RecyclingFee
/v1/recycling-fees/{id}Get a RecyclingFee
MCP tool: get-recycling-fee
Path parameters
idstringrequiredResponse · 200
idstringrequiredcodestringrequirednamestringrequiredrateHalerintegerrequiredunitstringrequireddocumentTextnull | stringrequiredisActivebooleanrequiredUpdate a RecyclingFee
/v1/recycling-fees/{id}Update a RecyclingFee
MCP tool: update-recycling-fee
Path parameters
idstringrequiredRequest body
codestringmax 32 charsnamestringmax 200 charsrateHalerintegermin 0max 9007199254740991unitstringmax 10 charsdocumentTextstring | nullisActivebooleanResponse · 200
idstringrequiredcodestringrequirednamestringrequiredrateHalerintegerrequiredunitstringrequireddocumentTextnull | stringrequiredisActivebooleanrequiredDelete a RecyclingFee
/v1/recycling-fees/{id}Delete a RecyclingFee
IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.
MCP tool: delete-recycling-fee
Path parameters
idstringrequiredResponse · 200
idstringrequireddeletedbooleanrequiredAll recycling fees as a POHODA XML file (recyclingContrib.xsd, version 2.0), to load into POHODA
/v1/recycling-fees/export.xmlAll recycling fees as a POHODA XML file (recyclingContrib.xsd, version 2.0), to load into POHODA
MCP tool: export-recycling-fees-xml
Response · 200
Returns a application/xml file.
Recycling fees charged in a period, per fee: quantity sold, weight, and total in crowns, from issued invoices, credit notes, and receipts
/v1/recycling-fees/reportRecycling fees charged in a period, per fee: quantity sold, weight, and total in crowns, from issued invoices, credit notes, and receipts
MCP tool: get-recycling-report
Query parameters
fromstringrequiredYYYY-MM-DDtostringrequiredYYYY-MM-DDdirection"sold" | "purchased"Response · 200
dataobject[]requiredobject"recycling_report_row"requiredfeeIdnull | stringrequiredtypedbooleanrequiredcodenull | stringrequirednamenull | stringrequiredquantityMilliinteger | nullrequiredweightMilliintegerrequiredtotalHalerinteger | nullrequiredunitnull | stringrequiredtotalintegerrequiredhasMorebooleanrequiredtotalHalerinteger | nullrequiredList stock positions: on hand, reserved, available, average cost, value, and low-stock flag per item
/v1/stockList stock positions: on hand, reserved, available, average cost, value, and low-stock flag per item
MCP tool: list-stock
Query parameters
limitintegermin 1max 500offsetintegermin 0max 9007199254740991searchstringmax 200 charswarehouseIdstringgroupIdstringlowStock"true" | "false"inStock"true" | "false"Response · 200
dataobject[]requiredobject"stock_position"requiredidstringrequireditemIdnull | stringrequiredskustringrequirednamenull | stringrequiredeannull | stringrequiredunitnull | stringrequiredtypestringrequiredvaluationstringrequiredtrackingstringrequiredonHandnumberrequiredreservedintegerrequiredavailablenumberrequiredaverageCostHalerintegerrequiredvalueHalerinteger | nullrequiredminStockinteger | nullrequiredmaxStockanyrequiredlowStockbooleanrequiredtotalintegerhasMorebooleanrequiredList stock documents: receipts, issues, transfers, and production
/v1/stock-documentsList stock documents: receipts, issues, transfers, and production
MCP tool: list-stock-documents
Query parameters
limitintegermin 1max 500offsetintegermin 0max 9007199254740991searchstringmax 200 charsfromstringYYYY-MM-DDtostringYYYY-MM-DDtype"receipt" | "issue" | "transfer" | "production"status"draft" | "posted" | "storno"warehouseIdstringcustomFieldKeystringcustomFieldValuestringmax 2000 charsResponse · 200
dataobject[]requiredobject"stock_document"requiredidstringrequiredtypestringrequiredreasonstringrequiredstatusstringrequirednumbernull | stringrequireddatestringrequireddatewarehouseIdstringrequiredtoWarehouseIdnull | stringrequiredcontactIdnull | stringrequiredcontactNamenull | stringrequiredbomIdnull | stringrequiredquantityinteger | nullrequiredextraCostHalerintegerrequiredlandedCostsobject[]requiredlabelnull | stringrequiredmethodnull | stringamountHalerinteger | nullrequiredtotalValueHalerintegerrequiredinvoiceIdnull | stringrequiredreceivedInvoiceIdnull | stringrequireddeliveryNoteIdnull | stringrequiredorderIdnull | stringrequiredorderNumbernull | stringrequiredsourceTypenull | stringrequiredsourceIdnull | stringrequiredcenterIdstring | nullrequiredactivityIdstring | nullrequiredprojectIdstring | nullrequiredstornoDatenull | stringrequireddatenotenull | stringrequiredcustomFieldsobjecttistene_polestringlinesobject[]object"stock_document_line"requiredidstringrequiredrolestringrequireditemIdstringrequiredwarehouseIdnull | stringrequiredquantitynumberrequiredunitPriceHalerinteger | nullrequiredvalueHalerinteger | nullrequiredpostedValueHalerinteger | nullrequiredlotsobject[]requiredlotIdnull | stringrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatenull | stringrequireddatereservationIdnull | stringrequiredorderLineIdnull | stringrequiredlandedCostHalerintegerrequiredenteredUnitnull | stringrequiredenteredQuantityinteger | nullrequiredlocationIdnull | stringrequiredtoLocationIdnull | stringrequirednotestring | nullrequireditemNamestringrequireditemSkustringrequiredunitnull | stringrequiredcreditWarningobjectlevelstringrequiredexposureHalerintegerrequiredafterHalerintegerrequiredwarnHaleranyrequiredblockHalerintegerrequiredavailableHalerintegerrequiredtotalintegerhasMorebooleanrequiredCreate a stock document as a draft, or post it at once with post: true
/v1/stock-documentsCreate a stock document as a draft, or post it at once with post: true. Production documents take bomId and quantity and fill their lines from the bill of materials.
MCP tool: create-stock-document
Request body
type"receipt" | "issue" | "transfer" | "production"requiredlandedCostsobject[]labelstringrequiredmax 120 charsamountHalerintegerrequiredmin 0max 9007199254740991method"value" | "weight"reason"purchase" | "return_customer" | "opening" | "other_receipt" | "sale" | "consumption" | "return_supplier" | "warranty_repair" | "loss" | "transfer" | "production"datestringrequiredYYYY-MM-DDwarehouseIdstringrequiredtoWarehouseIdstring | nullextraCostHalerintegermin 0max 9007199254740991bomIdstringquantitynumbermax 1000000000linesobject[]itemIdstringrequiredunitstringmax 16 charslocationIdstring | nulltoLocationIdstring | nullrole"line" | "component" | "output"quantitynumberrequiredmax 1000000000unitPriceHalerintegermin 0max 9007199254740991valueHalerintegermin 0max 9007199254740991lotsobject[]lotIdstringcodestringmax 64 charsquantitynumbermax 1000000000expiryDatestring | nullserialNumbersstring[]reservationIdstringnotestringmax 2000 charspostbooleanoverrideReservationsbooleanoverrideCreditLimitbooleancontactIdstring | nullinvoiceIdstring | nullreceivedInvoiceIdstring | nulldeliveryNoteIdstring | nullorderIdstring | nullorderNumberstring | nullcenterIdstring | nullactivityIdstring | nullprojectIdstring | nullnotestring | nullResponse · 201
idstringrequiredtypestringrequiredreasonstringrequiredstatusstringrequirednumbernull | stringrequireddatestringrequireddatewarehouseIdstringrequiredtoWarehouseIdnull | stringrequiredcontactIdnull | stringrequiredcontactNamenull | stringrequiredbomIdnull | stringrequiredquantityinteger | nullrequiredextraCostHalerintegerrequiredlandedCostsobject[]requiredlabelnull | stringrequiredmethodnull | stringamountHalerinteger | nullrequiredtotalValueHalerintegerrequiredinvoiceIdnull | stringrequiredreceivedInvoiceIdnull | stringrequireddeliveryNoteIdnull | stringrequiredorderIdnull | stringrequiredorderNumbernull | stringrequiredsourceTypenull | stringrequiredsourceIdnull | stringrequiredcenterIdstring | nullrequiredactivityIdstring | nullrequiredprojectIdstring | nullrequiredstornoDatenull | stringrequireddatenotenull | stringrequiredcustomFieldsobjecttistene_polestringlinesobject[]object"stock_document_line"requiredidstringrequiredrolestringrequireditemIdstringrequiredwarehouseIdnull | stringrequiredquantitynumberrequiredunitPriceHalerinteger | nullrequiredvalueHalerinteger | nullrequiredpostedValueHalerinteger | nullrequiredlotsobject[]requiredlotIdnull | stringrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatenull | stringrequireddatereservationIdnull | stringrequiredorderLineIdnull | stringrequiredlandedCostHalerintegerrequiredenteredUnitnull | stringrequiredenteredQuantityinteger | nullrequiredlocationIdnull | stringrequiredtoLocationIdnull | stringrequirednotestring | nullrequireditemNamestringrequireditemSkustringrequiredunitnull | stringrequiredcreditWarningobjectlevelstringrequiredexposureHalerintegerrequiredafterHalerintegerrequiredwarnHaleranyrequiredblockHalerintegerrequiredavailableHalerintegerrequiredGet a stock document with its lines
/v1/stock-documents/{id}Get a stock document with its lines
MCP tool: get-stock-document
Path parameters
idstringrequiredResponse · 200
idstringrequiredtypestringrequiredreasonstringrequiredstatusstringrequirednumbernull | stringrequireddatestringrequireddatewarehouseIdstringrequiredtoWarehouseIdnull | stringrequiredcontactIdnull | stringrequiredcontactNamenull | stringrequiredbomIdnull | stringrequiredquantityinteger | nullrequiredextraCostHalerintegerrequiredlandedCostsobject[]requiredlabelnull | stringrequiredmethodnull | stringamountHalerinteger | nullrequiredtotalValueHalerintegerrequiredinvoiceIdnull | stringrequiredreceivedInvoiceIdnull | stringrequireddeliveryNoteIdnull | stringrequiredorderIdnull | stringrequiredorderNumbernull | stringrequiredsourceTypenull | stringrequiredsourceIdnull | stringrequiredcenterIdstring | nullrequiredactivityIdstring | nullrequiredprojectIdstring | nullrequiredstornoDatenull | stringrequireddatenotenull | stringrequiredcustomFieldsobjecttistene_polestringlinesobject[]object"stock_document_line"requiredidstringrequiredrolestringrequireditemIdstringrequiredwarehouseIdnull | stringrequiredquantitynumberrequiredunitPriceHalerinteger | nullrequiredvalueHalerinteger | nullrequiredpostedValueHalerinteger | nullrequiredlotsobject[]requiredlotIdnull | stringrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatenull | stringrequireddatereservationIdnull | stringrequiredorderLineIdnull | stringrequiredlandedCostHalerintegerrequiredenteredUnitnull | stringrequiredenteredQuantityinteger | nullrequiredlocationIdnull | stringrequiredtoLocationIdnull | stringrequirednotestring | nullrequireditemNamestringrequireditemSkustringrequiredunitnull | stringrequiredcreditWarningobjectlevelstringrequiredexposureHalerintegerrequiredafterHalerintegerrequiredwarnHaleranyrequiredblockHalerintegerrequiredavailableHalerintegerrequiredEdit a draft stock document
/v1/stock-documents/{id}Edit a draft stock document
MCP tool: update-stock-document
Path parameters
idstringrequiredRequest body
landedCostsobject[]labelstringrequiredmax 120 charsamountHalerintegerrequiredmin 0max 9007199254740991method"value" | "weight"reason"purchase" | "return_customer" | "opening" | "other_receipt" | "sale" | "consumption" | "return_supplier" | "warranty_repair" | "loss" | "transfer" | "production"datestringYYYY-MM-DDwarehouseIdstringtoWarehouseIdstring | nullextraCostHalerintegermin 0max 9007199254740991bomIdstringquantitynumbermax 1000000000linesobject[]itemIdstringrequiredunitstringmax 16 charslocationIdstring | nulltoLocationIdstring | nullrole"line" | "component" | "output"quantitynumberrequiredmax 1000000000unitPriceHalerintegermin 0max 9007199254740991valueHalerintegermin 0max 9007199254740991lotsobject[]lotIdstringcodestringmax 64 charsquantitynumbermax 1000000000expiryDatestring | nullserialNumbersstring[]reservationIdstringnotestringmax 2000 charsoverrideCreditLimitbooleancontactIdstring | nullinvoiceIdstring | nullreceivedInvoiceIdstring | nulldeliveryNoteIdstring | nullorderIdstring | nullorderNumberstring | nullcenterIdstring | nullactivityIdstring | nullprojectIdstring | nullnotestring | nullResponse · 200
idstringrequiredtypestringrequiredreasonstringrequiredstatusstringrequirednumbernull | stringrequireddatestringrequireddatewarehouseIdstringrequiredtoWarehouseIdnull | stringrequiredcontactIdnull | stringrequiredcontactNamenull | stringrequiredbomIdnull | stringrequiredquantityinteger | nullrequiredextraCostHalerintegerrequiredlandedCostsobject[]requiredlabelnull | stringrequiredmethodnull | stringamountHalerinteger | nullrequiredtotalValueHalerintegerrequiredinvoiceIdnull | stringrequiredreceivedInvoiceIdnull | stringrequireddeliveryNoteIdnull | stringrequiredorderIdnull | stringrequiredorderNumbernull | stringrequiredsourceTypenull | stringrequiredsourceIdnull | stringrequiredcenterIdstring | nullrequiredactivityIdstring | nullrequiredprojectIdstring | nullrequiredstornoDatenull | stringrequireddatenotenull | stringrequiredcustomFieldsobjecttistene_polestringlinesobject[]object"stock_document_line"requiredidstringrequiredrolestringrequireditemIdstringrequiredwarehouseIdnull | stringrequiredquantitynumberrequiredunitPriceHalerinteger | nullrequiredvalueHalerinteger | nullrequiredpostedValueHalerinteger | nullrequiredlotsobject[]requiredlotIdnull | stringrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatenull | stringrequireddatereservationIdnull | stringrequiredorderLineIdnull | stringrequiredlandedCostHalerintegerrequiredenteredUnitnull | stringrequiredenteredQuantityinteger | nullrequiredlocationIdnull | stringrequiredtoLocationIdnull | stringrequirednotestring | nullrequireditemNamestringrequireditemSkustringrequiredunitnull | stringrequiredcreditWarningobjectlevelstringrequiredexposureHalerintegerrequiredafterHalerintegerrequiredwarnHaleranyrequiredblockHalerintegerrequiredavailableHalerintegerrequiredDelete a draft stock document
/v1/stock-documents/{id}Delete a draft stock document
IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.
MCP tool: delete-stock-document
Path parameters
idstringrequiredResponse · 200
idstringrequireddeletedbooleanrequiredDownload a stock document as PDF, in Czech, English, German or French
/v1/stock-documents/{id}/pdfDownload a stock document as PDF, in Czech, English, German or French
MCP tool: get-stock-document-pdf
Path parameters
idstringrequiredQuery parameters
language"cs" | "en" | "de" | "fr"Response · 200
Returns a application/pdf file.
Post a draft: assign a number, move stock, and write the accounting entry
/v1/stock-documents/{id}/postPost a draft: assign a number, move stock, and write the accounting entry. Refuses to oversell unless negative stock is allowed. Set overrideReservations to issue stock reserved for other orders. A sale to a contact over Kredit max is refused with credit_limit_exceeded; an owner or accountant may set overrideCreditLimit.
MCP tool: post-stock-document
Path parameters
idstringrequiredRequest body
overrideReservationsbooleanoverrideCreditLimitbooleanResponse · 200
idstringrequiredtypestringrequiredreasonstringrequiredstatusstringrequirednumbernull | stringrequireddatestringrequireddatewarehouseIdstringrequiredtoWarehouseIdnull | stringrequiredcontactIdnull | stringrequiredcontactNamenull | stringrequiredbomIdnull | stringrequiredquantityinteger | nullrequiredextraCostHalerintegerrequiredlandedCostsobject[]requiredlabelnull | stringrequiredmethodnull | stringamountHalerinteger | nullrequiredtotalValueHalerintegerrequiredinvoiceIdnull | stringrequiredreceivedInvoiceIdnull | stringrequireddeliveryNoteIdnull | stringrequiredorderIdnull | stringrequiredorderNumbernull | stringrequiredsourceTypenull | stringrequiredsourceIdnull | stringrequiredcenterIdstring | nullrequiredactivityIdstring | nullrequiredprojectIdstring | nullrequiredstornoDatenull | stringrequireddatenotenull | stringrequiredcustomFieldsobjecttistene_polestringlinesobject[]object"stock_document_line"requiredidstringrequiredrolestringrequireditemIdstringrequiredwarehouseIdnull | stringrequiredquantitynumberrequiredunitPriceHalerinteger | nullrequiredvalueHalerinteger | nullrequiredpostedValueHalerinteger | nullrequiredlotsobject[]requiredlotIdnull | stringrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatenull | stringrequireddatereservationIdnull | stringrequiredorderLineIdnull | stringrequiredlandedCostHalerintegerrequiredenteredUnitnull | stringrequiredenteredQuantityinteger | nullrequiredlocationIdnull | stringrequiredtoLocationIdnull | stringrequirednotestring | nullrequireditemNamestringrequireditemSkustringrequiredunitnull | stringrequiredcreditWarningobjectlevelstringrequiredexposureHalerintegerrequiredafterHalerintegerrequiredwarnHaleranyrequiredblockHalerintegerrequiredavailableHalerintegerrequiredReverse a posted stock document with opposite movements and journal entries
/v1/stock-documents/{id}/stornoReverse a posted stock document with opposite movements and journal entries. Refused when received stock was already issued, or when the document came from an invoice or delivery note: storno that document instead.
IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.
MCP tool: storno-stock-document
Path parameters
idstringrequiredRequest body
datestringYYYY-MM-DDnotestringmax 2000 charsResponse · 200
idstringrequiredtypestringrequiredreasonstringrequiredstatusstringrequirednumbernull | stringrequireddatestringrequireddatewarehouseIdstringrequiredtoWarehouseIdnull | stringrequiredcontactIdnull | stringrequiredcontactNamenull | stringrequiredbomIdnull | stringrequiredquantityinteger | nullrequiredextraCostHalerintegerrequiredlandedCostsobject[]requiredlabelnull | stringrequiredmethodnull | stringamountHalerinteger | nullrequiredtotalValueHalerintegerrequiredinvoiceIdnull | stringrequiredreceivedInvoiceIdnull | stringrequireddeliveryNoteIdnull | stringrequiredorderIdnull | stringrequiredorderNumbernull | stringrequiredsourceTypenull | stringrequiredsourceIdnull | stringrequiredcenterIdstring | nullrequiredactivityIdstring | nullrequiredprojectIdstring | nullrequiredstornoDatenull | stringrequireddatenotenull | stringrequiredcustomFieldsobjecttistene_polestringlinesobject[]object"stock_document_line"requiredidstringrequiredrolestringrequireditemIdstringrequiredwarehouseIdnull | stringrequiredquantitynumberrequiredunitPriceHalerinteger | nullrequiredvalueHalerinteger | nullrequiredpostedValueHalerinteger | nullrequiredlotsobject[]requiredlotIdnull | stringrequiredcodenull | stringrequiredquantityintegerrequiredexpiryDatenull | stringrequireddatereservationIdnull | stringrequiredorderLineIdnull | stringrequiredlandedCostHalerintegerrequiredenteredUnitnull | stringrequiredenteredQuantityinteger | nullrequiredlocationIdnull | stringrequiredtoLocationIdnull | stringrequirednotestring | nullrequireditemNamestringrequireditemSkustringrequiredunitnull | stringrequiredcreditWarningobjectlevelstringrequiredexposureHalerintegerrequiredafterHalerintegerrequiredwarnHaleranyrequiredblockHalerintegerrequiredavailableHalerintegerrequiredWhat sits on which location, per item and lot. Stock on no location is listed as unplaced when an item is given
/v1/stock-locationsWhat sits on which location, per item and lot. Stock on no location is listed as unplaced when an item is given
MCP tool: list-stock-location-balances
Query parameters
warehouseIdstringitemIdstringlocationIdstringlimitintegermin 1max 500offsetintegermin 0max 9007199254740991searchstringmax 200 charsResponse · 200
dataobject[]requireditemIdnull | stringrequiredskustringrequirednamenull | stringrequiredunitnull | stringrequiredlocationIdnull | stringrequiredlocationCodestringrequiredwarehouseIdnull | stringrequiredlotIdnull | stringrequiredlotCodenull | stringrequiredquantityintegerrequiredtotalintegerhasMorebooleanrequiredMove goods between locations of one warehouse. Quantity only: no value change and no accounting entry
/v1/stock-locations/transferMove goods between locations of one warehouse. Quantity only: no value change and no accounting entry. Leave fromLocationId empty to shelve unplaced stock, toLocationId empty to take it off a location. A lot- or serial-tracked item names lotId or lotCode.
MCP tool: transfer-stock-location
Request body
itemIdstringrequiredwarehouseIdstringrequiredfromLocationIdstring | nulltoLocationIdstring | nulllotIdstring | nulllotCodestring | nullquantitynumberrequiredmax 1000000000datestringYYYY-MM-DDnotestringmax 2000 charsResponse · 200
movementIdnull | stringrequireditemIdnull | stringrequiredquantityintegerrequiredfromLocationIdnull | stringrequiredtoLocationIdnull | stringrequiredlotIdnull | stringrequiredList lots and serial numbers with expiry and quantity in stock
/v1/stock-lotsList lots and serial numbers with expiry and quantity in stock
MCP tool: list-stock-lots
Query parameters
limitintegermin 1max 500offsetintegermin 0max 9007199254740991searchstringmax 200 charsitemIdstringexpiringBeforestringYYYY-MM-DDinStock"true" | "false"Response · 200
dataobject[]requiredobject"stock_lot"requiredidstringrequireditemIdstringrequiredkindstringrequiredcodestringrequiredexpiryDatenull | stringrequireddatereceivedOnstringrequireddatenotenull | stringrequiredonHandintegeritemNamestringitemSkustringunitnull | stringwarehousesobject[]warehouseIdnull | stringrequirednamenull | stringrequiredonHandintegerrequiredtotalintegerhasMorebooleanrequiredCorrect the expiry date or note of a lot
/v1/stock-lots/{id}Correct the expiry date or note of a lot
MCP tool: update-stock-lot
Path parameters
idstringrequiredRequest body
expiryDatestring | nullnotestring | nullResponse · 200
idstringrequireditemIdstringrequiredkindstringrequiredcodestringrequiredexpiryDatenull | stringrequireddatereceivedOnstringrequireddatenotenull | stringrequiredonHandintegeritemNamestringitemSkustringunitnull | stringwarehousesobject[]warehouseIdnull | stringrequirednamenull | stringrequiredonHandintegerrequiredList stock reservations for received orders
/v1/stock-reservationsList stock reservations for received orders
MCP tool: list-stock-reservations
Query parameters
limitintegermin 1max 500offsetintegermin 0max 9007199254740991searchstringmax 200 charsitemIdstringstatus"active" | "fulfilled" | "released"orderIdstringmax 64 charsResponse · 200
dataobject[]requiredobject"stock_reservation"requiredidstringrequireditemIdstringrequiredwarehouseIdstringrequiredquantitynumberrequiredfulfilledintegerrequiredremainingnumberrequiredstatusstringrequiredorderIdnull | stringrequiredorderLineIdnull | stringrequiredorderNumbernull | stringrequiredcontactIdnull | stringrequiredreservedUntilnull | stringrequireddatenotestring | nullrequireditemNamestringitemSkustringunitnull | stringwarehouseNamestringtotalintegerhasMorebooleanrequiredReserve stock for a received order
/v1/stock-reservationsReserve stock for a received order. Refused when less is available than requested, unless allowShort is set. Set orderLineId to make repeated calls for one order line idempotent.
MCP tool: create-stock-reservation
Request body
itemIdstringrequiredwarehouseIdstringrequiredquantitynumberrequiredmax 1000000000orderIdstring | nullorderLineIdstring | nullorderNumberstring | nullcontactIdstring | nullreservedUntilstring | nullnotestring | nullallowShortbooleanResponse · 201
idstringrequireditemIdstringrequiredwarehouseIdstringrequiredquantitynumberrequiredfulfilledintegerrequiredremainingnumberrequiredstatusstringrequiredorderIdnull | stringrequiredorderLineIdnull | stringrequiredorderNumbernull | stringrequiredcontactIdnull | stringrequiredreservedUntilnull | stringrequireddatenotestring | nullrequireditemNamestringitemSkustringunitnull | stringwarehouseNamestringMark a reservation as fulfilled when the goods left on a document without a link to it
/v1/stock-reservations/{id}/fulfilMark a reservation as fulfilled when the goods left on a document without a link to it. Does not move stock. An issue document that names the reservation fulfils it by itself.
MCP tool: fulfil-stock-reservation
Path parameters
idstringrequiredRequest body
quantitynumbermax 1000000000Response · 200
idstringrequireditemIdstringrequiredwarehouseIdstringrequiredquantitynumberrequiredfulfilledintegerrequiredremainingnumberrequiredstatusstringrequiredorderIdnull | stringrequiredorderLineIdnull | stringrequiredorderNumbernull | stringrequiredcontactIdnull | stringrequiredreservedUntilnull | stringrequireddatenotestring | nullrequireditemNamestringitemSkustringunitnull | stringwarehouseNamestringRelease a reservation, returning its remaining quantity to available stock
/v1/stock-reservations/{id}/releaseRelease a reservation, returning its remaining quantity to available stock
MCP tool: release-stock-reservation
Path parameters
idstringrequiredResponse · 200
idstringrequireditemIdstringrequiredwarehouseIdstringrequiredquantitynumberrequiredfulfilledintegerrequiredremainingnumberrequiredstatusstringrequiredorderIdnull | stringrequiredorderLineIdnull | stringrequiredorderNumbernull | stringrequiredcontactIdnull | stringrequiredreservedUntilnull | stringrequireddatenotestring | nullrequireditemNamestringitemSkustringunitnull | stringwarehouseNamestringCheck whether a quantity of an item is available, in total or in one warehouse
/v1/stock/availabilityCheck whether a quantity of an item is available, in total or in one warehouse. Available is on hand minus active reservations. `sufficient` compares it with the requested quantity.
MCP tool: get-stock-availability
Query parameters
itemIdstringrequiredwarehouseIdstringquantitynumberResponse · 200
itemIdnull | stringrequiredonHandintegerrequiredreservedintegerrequiredavailableintegerrequiredrequestedinteger | nullrequiredsufficientboolean | nullrequiredshortinteger | nullrequiredwarehousesobject[]requiredwarehouseIdnull | stringrequirednamenull | stringrequiredonHandintegerrequiredreservedintegerrequiredavailableintegerrequiredTotal stock value and how many items are below their minimum
/v1/stock/summaryTotal stock value and how many items are below their minimum
MCP tool: get-stock-summary
Response · 200
valueHalerinteger | nullrequireditemCountintegerrequiredlowStockCountintegerrequiredList stocktakes
/v1/stocktakesList stocktakes
MCP tool: list-stocktakes
Query parameters
limitintegermin 1max 500offsetintegermin 0max 9007199254740991searchstringmax 200 charsResponse · 200
dataobject[]requiredobject"stocktake"requiredidstringrequiredwarehouseIdstringrequirednumbernull | stringrequiredstatusstringrequireddatestringrequireddatepostedDatenull | stringrequireddateblockMovementsbooleanrequiredgroupIdstring | nullrequiredbyLocationbooleanrequiredlocationIdnull | stringrequiredshortageValueHalerintegerrequiredsurplusValueHalerintegerrequirednotestring | nullrequiredlineCountintegerrequiredcountedCountintegerrequireddifferenceCountintegerrequiredlinesobject[]object"stocktake_line"requiredidstringrequireditemIdstringrequireditemNamestringrequireditemSkustringrequiredunitnull | stringrequiredlotIdnull | stringrequiredlotCodenull | stringrequiredlocationIdnull | stringrequiredlocationCodenull | stringrequiredfrozenintegerrequiredfrozenValueHalerintegerrequiredcountednull | numberrequireddifferencenull | numberrequiredunitCostHalerinteger | nullrequiredwithinNormbooleanrequiredpostedValueHalerinteger | nullrequirednotestring | nullrequiredtotalintegerhasMorebooleanrequiredStart a stocktake: freezes the quantities of a warehouse, or of one item group in it, in total or shelf by shelf
/v1/stocktakesStart a stocktake: freezes the quantities of a warehouse, or of one item group in it, in total or shelf by shelf. While it runs, movements in the warehouse are refused unless blockMovements is false. One stocktake per warehouse at a time. byLocation freezes one line per item, lot, and shelf, plus what is on no shelf; locationId counts one shelf only. Goods found on another shelf of the warehouse become a shelf move, not a shortage and a surplus.
MCP tool: create-stocktake
Request body
warehouseIdstringrequireddatestringrequiredYYYY-MM-DDgroupIdstring | nullbyLocationbooleanlocationIdstring | nullblockMovementsbooleannotestring | nullResponse · 201
idstringrequiredwarehouseIdstringrequirednumbernull | stringrequiredstatusstringrequireddatestringrequireddatepostedDatenull | stringrequireddateblockMovementsbooleanrequiredgroupIdstring | nullrequiredbyLocationbooleanrequiredlocationIdnull | stringrequiredshortageValueHalerintegerrequiredsurplusValueHalerintegerrequirednotestring | nullrequiredlineCountintegerrequiredcountedCountintegerrequireddifferenceCountintegerrequiredlinesobject[]object"stocktake_line"requiredidstringrequireditemIdstringrequireditemNamestringrequireditemSkustringrequiredunitnull | stringrequiredlotIdnull | stringrequiredlotCodenull | stringrequiredlocationIdnull | stringrequiredlocationCodenull | stringrequiredfrozenintegerrequiredfrozenValueHalerintegerrequiredcountednull | numberrequireddifferencenull | numberrequiredunitCostHalerinteger | nullrequiredwithinNormbooleanrequiredpostedValueHalerinteger | nullrequirednotestring | nullrequiredGet a stocktake with its frozen quantities, counts, and differences
/v1/stocktakes/{id}Get a stocktake with its frozen quantities, counts, and differences
MCP tool: get-stocktake
Path parameters
idstringrequiredResponse · 200
idstringrequiredwarehouseIdstringrequirednumbernull | stringrequiredstatusstringrequireddatestringrequireddatepostedDatenull | stringrequireddateblockMovementsbooleanrequiredgroupIdstring | nullrequiredbyLocationbooleanrequiredlocationIdnull | stringrequiredshortageValueHalerintegerrequiredsurplusValueHalerintegerrequirednotestring | nullrequiredlineCountintegerrequiredcountedCountintegerrequireddifferenceCountintegerrequiredlinesobject[]object"stocktake_line"requiredidstringrequireditemIdstringrequireditemNamestringrequireditemSkustringrequiredunitnull | stringrequiredlotIdnull | stringrequiredlotCodenull | stringrequiredlocationIdnull | stringrequiredlocationCodenull | stringrequiredfrozenintegerrequiredfrozenValueHalerintegerrequiredcountednull | numberrequireddifferencenull | numberrequiredunitCostHalerinteger | nullrequiredwithinNormbooleanrequiredpostedValueHalerinteger | nullrequirednotestring | nullrequiredCancel a running stocktake and unblock the warehouse. Nothing is posted
/v1/stocktakes/{id}/cancelCancel a running stocktake and unblock the warehouse. Nothing is posted
IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.
MCP tool: cancel-stocktake
Path parameters
idstringrequiredResponse · 200
idstringrequiredwarehouseIdstringrequirednumbernull | stringrequiredstatusstringrequireddatestringrequireddatepostedDatenull | stringrequireddateblockMovementsbooleanrequiredgroupIdstring | nullrequiredbyLocationbooleanrequiredlocationIdnull | stringrequiredshortageValueHalerintegerrequiredsurplusValueHalerintegerrequirednotestring | nullrequiredlineCountintegerrequiredcountedCountintegerrequireddifferenceCountintegerrequiredlinesobject[]object"stocktake_line"requiredidstringrequireditemIdstringrequireditemNamestringrequireditemSkustringrequiredunitnull | stringrequiredlotIdnull | stringrequiredlotCodenull | stringrequiredlocationIdnull | stringrequiredlocationCodenull | stringrequiredfrozenintegerrequiredfrozenValueHalerintegerrequiredcountednull | numberrequireddifferencenull | numberrequiredunitCostHalerinteger | nullrequiredwithinNormbooleanrequiredpostedValueHalerinteger | nullrequirednotestring | nullrequiredRecord counted quantities. An item not on the list is added at frozen zero
/v1/stocktakes/{id}/countsRecord counted quantities. An item not on the list is added at frozen zero
MCP tool: record-stocktake-counts
Path parameters
idstringrequiredRequest body
countsobject[]requiredlineIdstringitemIdstringlotCodestringmax 64 charslocationIdstring | nullquantitynumber | nullrequiredunitCostHalerintegermin 0max 9007199254740991withinNormbooleannotestring | nullResponse · 200
idstringrequiredwarehouseIdstringrequirednumbernull | stringrequiredstatusstringrequireddatestringrequireddatepostedDatenull | stringrequireddateblockMovementsbooleanrequiredgroupIdstring | nullrequiredbyLocationbooleanrequiredlocationIdnull | stringrequiredshortageValueHalerintegerrequiredsurplusValueHalerintegerrequirednotestring | nullrequiredlineCountintegerrequiredcountedCountintegerrequireddifferenceCountintegerrequiredlinesobject[]object"stocktake_line"requiredidstringrequireditemIdstringrequireditemNamestringrequireditemSkustringrequiredunitnull | stringrequiredlotIdnull | stringrequiredlotCodenull | stringrequiredlocationIdnull | stringrequiredlocationCodenull | stringrequiredfrozenintegerrequiredfrozenValueHalerintegerrequiredcountednull | numberrequireddifferencenull | numberrequiredunitCostHalerinteger | nullrequiredwithinNormbooleanrequiredpostedValueHalerinteger | nullrequirednotestring | nullrequiredRecord counts from CSV with a code column (SKU or EAN), a quantity column, and optionally lot and shelf columns
/v1/stocktakes/{id}/importRecord counts from CSV with a code column (SKU or EAN), a quantity column, and optionally lot and shelf columns. Semicolon and comma separated files both work, with a decimal comma or point. Rows with an error are skipped and returned.
MCP tool: import-stocktake-counts
Path parameters
idstringrequiredRequest body
csvstringrequiredmax 5000000 charsResponse · 200
importedintegerrequirederrorsobject[]requiredlineintegerrequiredmessagenull | stringrequiredstocktakeobjectrequiredobject"stocktake"requiredidstringrequiredwarehouseIdstringrequirednumbernull | stringrequiredstatusstringrequireddatestringrequireddatepostedDatenull | stringrequireddateblockMovementsbooleanrequiredgroupIdstring | nullrequiredbyLocationbooleanrequiredlocationIdnull | stringrequiredshortageValueHalerintegerrequiredsurplusValueHalerintegerrequirednotestring | nullrequiredlineCountintegerrequiredcountedCountintegerrequireddifferenceCountintegerrequiredlinesobject[]object"stocktake_line"requiredidstringrequireditemIdstringrequireditemNamestringrequireditemSkustringrequiredunitnull | stringrequiredlotIdnull | stringrequiredlotCodenull | stringrequiredlocationIdnull | stringrequiredlocationCodenull | stringrequiredfrozenintegerrequiredfrozenValueHalerintegerrequiredcountednull | numberrequireddifferencenull | numberrequiredunitCostHalerinteger | nullrequiredwithinNormbooleanrequiredpostedValueHalerinteger | nullrequirednotestring | nullrequiredPost the differences: shortages and surpluses become stock movements and accounting entries
/v1/stocktakes/{id}/postPost the differences: shortages and surpluses become stock movements and accounting entries. Refused while a line is uncounted, unless treatUncountedAsFrozen confirms those lines agree. Cannot be undone; a later stocktake corrects it.
IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.
MCP tool: post-stocktake
Path parameters
idstringrequiredRequest body
datestringYYYY-MM-DDtreatUncountedAsFrozenbooleanResponse · 200
idstringrequiredwarehouseIdstringrequirednumbernull | stringrequiredstatusstringrequireddatestringrequireddatepostedDatenull | stringrequireddateblockMovementsbooleanrequiredgroupIdstring | nullrequiredbyLocationbooleanrequiredlocationIdnull | stringrequiredshortageValueHalerintegerrequiredsurplusValueHalerintegerrequirednotestring | nullrequiredlineCountintegerrequiredcountedCountintegerrequireddifferenceCountintegerrequiredlinesobject[]object"stocktake_line"requiredidstringrequireditemIdstringrequireditemNamestringrequireditemSkustringrequiredunitnull | stringrequiredlotIdnull | stringrequiredlotCodenull | stringrequiredlocationIdnull | stringrequiredlocationCodenull | stringrequiredfrozenintegerrequiredfrozenValueHalerintegerrequiredcountednull | numberrequireddifferencenull | numberrequiredunitCostHalerinteger | nullrequiredwithinNormbooleanrequiredpostedValueHalerinteger | nullrequirednotestring | nullrequiredList supplier price list rows, by item or supplier
/v1/supplier-pricesList supplier price list rows, by item or supplier
MCP tool: list-supplier-prices
Query parameters
limitintegermin 1max 500offsetintegermin 0max 9007199254740991searchstringmax 200 charsfromstringYYYY-MM-DDtostringYYYY-MM-DDitemIdstringsupplierIdstringResponse · 200
dataany[]requiredtotalintegerhasMorebooleanrequiredAdd a row to a supplier's price list: price per the item's own unit, minimum order, pack size, lead time
/v1/supplier-pricesAdd a row to a supplier's price list: price per the item's own unit, minimum order, pack size, lead time
MCP tool: create-supplier-price
Request body
supplierIdstringrequireditemIdstringrequiredsupplierSkustring | nullpriceHalerintegerrequiredmin 0max 9007199254740991currencystring3 charsminQuantitynumbermin 0packQuantitynumber | nullleadDaysinteger | nullvalidFromstring | nullvalidTostring | nullResponse · 201
idstringrequiredsupplierIdstringrequireditemIdstringrequiredsupplierSkustring | nullrequiredpriceHalerintegerrequiredcurrencystringrequiredminQuantityintegerrequiredpackQuantityintegerrequiredleadDaysinteger | nullrequiredvalidFromstring | nullrequiredvalidTostring | nullrequiredChange a supplier price list row
/v1/supplier-prices/{id}Change a supplier price list row
MCP tool: update-supplier-price
Path parameters
idstringrequiredRequest body
supplierSkustring | nullpriceHalerintegermin 0max 9007199254740991currencystring3 charsminQuantitynumbermin 0packQuantitynumber | nullleadDaysinteger | nullvalidFromstring | nullvalidTostring | nullResponse · 200
idstringrequiredsupplierIdstringrequireditemIdstringrequiredsupplierSkustring | nullrequiredpriceHalerintegerrequiredcurrencystringrequiredminQuantityintegerrequiredpackQuantityintegerrequiredleadDaysinteger | nullrequiredvalidFromstring | nullrequiredvalidTostring | nullrequiredDelete a supplier price list row
/v1/supplier-prices/{id}Delete a supplier price list row
IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.
MCP tool: delete-supplier-price
Path parameters
idstringrequiredResponse · 200
idstringrequireddeletedbooleanrequiredList warehouse locations (regály)
/v1/warehouse-locationsList warehouse locations (regály)
MCP tool: list-warehouse-locations
Query parameters
limitintegermin 1max 500offsetintegermin 0max 9007199254740991searchstringmax 200 charsfromstringYYYY-MM-DDtostringYYYY-MM-DDwarehouseIdstringResponse · 200
dataany[]requiredtotalintegerhasMorebooleanrequiredAdd a location (regál) to a warehouse
/v1/warehouse-locationsAdd a location (regál) to a warehouse
MCP tool: create-warehouse-location
Request body
warehouseIdstringrequiredcodestringrequiredmax 32 charsnamestring | nullisActivebooleanResponse · 201
idstringrequiredwarehouseIdstringrequiredcodestringrequirednamenull | stringrequiredisActivebooleanrequiredRename or deactivate a warehouse location
/v1/warehouse-locations/{id}Rename or deactivate a warehouse location
MCP tool: update-warehouse-location
Path parameters
idstringrequiredRequest body
codestringmax 32 charsnamestring | nullisActivebooleanResponse · 200
idstringrequiredwarehouseIdstringrequiredcodestringrequirednamenull | stringrequiredisActivebooleanrequiredDelete an empty warehouse location that was never used. Used ones can be deactivated
/v1/warehouse-locations/{id}Delete an empty warehouse location that was never used. Used ones can be deactivated
IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.
MCP tool: delete-warehouse-location
Path parameters
idstringrequiredResponse · 200
idstringrequireddeletedbooleanrequiredList warehouses
/v1/warehousesList warehouses
MCP tool: list-warehouses
Query parameters
limitintegermin 1max 500offsetintegermin 0max 9007199254740991searchstringmax 200 charsResponse · 200
dataobject[]requiredobject"warehouse"requiredidstringrequirednamestringrequiredcodestringrequiredanalyticSuffixnull | stringrequiredaddressstring | nullrequirednotestring | nullrequiredisActivebooleanrequiredisDefaultbooleanrequiredtotalintegerhasMorebooleanrequiredCreate a warehouse. An analytic suffix splits its stock accounts, for example 132001
/v1/warehousesCreate a warehouse. An analytic suffix splits its stock accounts, for example 132001
MCP tool: create-warehouse
Request body
namestringrequiredmax 120 charscodestringrequiredmax 32 charsanalyticSuffixstring | nulladdressstring | nullnotestring | nullisActivebooleanisDefaultbooleanResponse · 201
idstringrequirednamestringrequiredcodestringrequiredanalyticSuffixnull | stringrequiredaddressstring | nullrequirednotestring | nullrequiredisActivebooleanrequiredisDefaultbooleanrequiredGet a warehouse
/v1/warehouses/{id}Get a warehouse
MCP tool: get-warehouse
Path parameters
idstringrequiredResponse · 200
idstringrequirednamestringrequiredcodestringrequiredanalyticSuffixnull | stringrequiredaddressstring | nullrequirednotestring | nullrequiredisActivebooleanrequiredisDefaultbooleanrequiredUpdate a warehouse
/v1/warehouses/{id}Update a warehouse. The analytic suffix can only change while the warehouse has never had stock movements posted.
MCP tool: update-warehouse
Path parameters
idstringrequiredRequest body
namestringmax 120 charscodestringmax 32 charsanalyticSuffixstring | nulladdressstring | nullnotestring | nullisActivebooleanisDefaultbooleanResponse · 200
idstringrequirednamestringrequiredcodestringrequiredanalyticSuffixnull | stringrequiredaddressstring | nullrequirednotestring | nullrequiredisActivebooleanrequiredisDefaultbooleanrequiredDelete a warehouse that was never used. Used warehouses can only be deactivated
/v1/warehouses/{id}Delete a warehouse that was never used. Used warehouses can only be deactivated
IrreversibleThis operation cannot be undone. MCP clients ask for confirmation first.
MCP tool: delete-warehouse
Path parameters
idstringrequiredResponse · 200
idstringrequireddeletedbooleanrequired