# Katana API Documentation
> Welcome to the Katana API documentation. Explore the different ways you can use our API and choose the right one for your business.
## Guides
- [Getting started with Katana API](https://developer.katanamrp.com/docs/getting-started.md): Learn how you can use our open API to develop integrations with Katana.
## API Reference
- [Introduction](https://developer.katanamrp.com/reference/api-introduction.md)
- [Rate limiting](https://developer.katanamrp.com/reference/api-rate-limiting.md)
- [List all additional costs](https://developer.katanamrp.com/reference/getadditionalcosts.md): Returns a list of additional costs you’ve previously created.
- [Create a batch](https://developer.katanamrp.com/reference/createbatch.md): Creates a batch object.
- [List current batch stock](https://developer.katanamrp.com/reference/getbatchstock.md): Returns a list for current batch stock. The inventory is returned in sorted order, base on location_id ASC, variant_id ASC, batch_id DESC.
- [Update batch details](https://developer.katanamrp.com/reference/updatebatchstock.md): Updates the specified batch details by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [List bin inventory levels](https://developer.katanamrp.com/reference/getbininventory.md): Per-bin inventory levels at the chosen granularity. `granularity=VARIANT` (default) returns one row per (location, variant, bin); `BATCH` and `SERIAL_NUMBER` break rows down further by the matching traceability axis. Each row carries three decimal-string quantities: `quantity_in_stock`, `quantity_committed`, `quantity_expected`. A null `bin_location_id`, `batch_id`, or `serial_number_id` denotes stock whose traceability on that axis has not been set (unassigned bin, unbatched stock, untraced serial). Pass `?=null` to target those rows. Rows are removed once all three quantities reach zero; absence implies zero across the board. This prevents the dataset from accumulating stale entries for every combination ever touched — `(location, variant, bin)`, `(location, variant, bin, batch)`, or `(location, variant, bin, serial_number)` depending on granularity — and keeps pagination focused on positions with non-zero stock, commitments, or expected receipts. Bin inventory levels are computed asynchronously and are eventually consistent — recent stock movements may not be reflected immediately.
- [List all bin locations](https://developer.katanamrp.com/reference/getallbinlocations.md): Returns a list of bin locations you’ve previously created. The bin locations are returned in sorted order, with the most recent bin location appearing first.
- [Update a bin location](https://developer.katanamrp.com/reference/updatebinlocation.md): Updates the specified bin location by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete a bin location](https://developer.katanamrp.com/reference/deletebinlocation.md): Deletes a bin location by id.
- [Create a bin location](https://developer.katanamrp.com/reference/createbinlocation.md): Creates a new bin location for the given location.
- [Create a bin transfer](https://developer.katanamrp.com/reference/createbintransfer.md): Creates a bin transfer, optionally with rows and per-row traceability in one call. Bin transfers move stock between bin locations within a single location. New transfers start in `CREATED`; status changes go through the status endpoint.
- [List all bin transfers](https://developer.katanamrp.com/reference/findbintransfers.md): Returns a list of bin transfers you've previously created, sorted with the most recent first. Each transfer is returned with its rows and the rows' traceability allocations.
- [Retrieve a bin transfer](https://developer.katanamrp.com/reference/getbintransfer.md): Retrieves a single bin transfer with its rows and each row's traceability allocations.
- [Update a bin transfer](https://developer.katanamrp.com/reference/updatebintransfer.md): Updates header fields on a bin transfer. Status changes go through the status endpoint. `departed_at` and `arrived_at` accept backfill / correction values within the current status — they cannot transition the transfer between statuses, and they cannot be nulled here.
- [Delete a bin transfer](https://developer.katanamrp.com/reference/deletebintransfer.md): Deletes a bin transfer.
- [Transition a bin transfer status](https://developer.katanamrp.com/reference/updatebintransferstatus.md): Transitions a bin transfer status. Any status is reachable from any other; the transition stamps or clears the corresponding movement dates on the transfer and every row. | From | To | Effect | |--------------|--------------|---------------------------------------------------------------------| | `CREATED` | `IN_TRANSIT` | Stamps `departed_at` = now. | | `CREATED` | `DONE` | Stamps `departed_at` = now and `arrived_at` = now. | | `IN_TRANSIT` | `DONE` | Stamps `arrived_at` = now. | | `IN_TRANSIT` | `CREATED` | Clears `departed_at`. | | `DONE` | `IN_TRANSIT` | Clears `arrived_at`. | | `DONE` | `CREATED` | Clears both `departed_at` and `arrived_at`. | Submitting the current status is a no-op (200 with the unchanged transfer). Stamped or cleared timestamps must fall outside any inventory lock date window, otherwise 422.
- [Create a bin transfer row](https://developer.katanamrp.com/reference/createbintransferrow.md): Adds a row to an existing bin transfer, optionally with traceability in the same call. The row inherits `location_id`, `created_date`, and `departed_at` from the parent transfer. Rows cannot be added when the parent is in `DONE`.
- [List all bin transfer rows](https://developer.katanamrp.com/reference/findbintransferrows.md): Returns a list of bin transfer rows with their traceability allocations.
- [Retrieve a bin transfer row](https://developer.katanamrp.com/reference/getbintransferrow.md): Retrieves a single bin transfer row, including its traceability allocations.
- [Update a bin transfer row](https://developer.katanamrp.com/reference/updatebintransferrow.md): Updates fields on a single bin transfer row. When the parent transfer is in `DONE`, only `traceability` is editable; other fields return 422.
- [Delete a bin transfer row](https://developer.katanamrp.com/reference/deletebintransferrow.md): Deletes a bin transfer row.
- [BOM row](https://developer.katanamrp.com/reference/bom-row.md)
- [The BOM row object](https://developer.katanamrp.com/reference/the-bom-row-object.md)
- [Create a BOM row](https://developer.katanamrp.com/reference/batchcreatebomrows.md): Create a new BOM row for a product.
- [List all BOM rows](https://developer.katanamrp.com/reference/getallbomrows.md): Returns a list of BOM (Bill of Materials) rows you've previously created. Product variant BOM consists of ingredient variants and their quantities.
- [Create many BOM rows](https://developer.katanamrp.com/reference/createbomrow.md): Create BOM rows for a product.
- [Update a BOM row](https://developer.katanamrp.com/reference/updatebomrow.md): Updates the specified BOM row by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete a BOM row](https://developer.katanamrp.com/reference/deletebomrow.md): Deletes a BOM row by id.
- [Create a custom field definition](https://developer.katanamrp.com/reference/createcustomfielddefinition.md): Creates a new custom field definition for a given entity type. A factory may have at most 50 definitions.
- [List all custom field definitions](https://developer.katanamrp.com/reference/getallcustomfielddefinitions.md): Returns a list of custom field definitions in the factory, optionally filtered by label, field type, or entity type.
- [Retrieve a custom field definition](https://developer.katanamrp.com/reference/getcustomfielddefinition.md): Retrieves a custom field definition by id.
- [Update a custom field definition](https://developer.katanamrp.com/reference/updatecustomfielddefinition.md): Updates the `label`, `description`, or `options` of a custom field definition. Other properties (`field_type`, `entity_type`, `source`) are immutable.
- [Delete a custom field definition](https://developer.katanamrp.com/reference/deletecustomfielddefinition.md): Deletes a custom field definition by id.
- [List all custom fields collections](https://developer.katanamrp.com/reference/getcustomfieldscollections.md): Retrieves a list of custom fields collections
- [The customer object](https://developer.katanamrp.com/reference/the-customer-object.md)
- [Create a customer](https://developer.katanamrp.com/reference/create-customer.md): Creates a new customer object.
- [List all customers](https://developer.katanamrp.com/reference/list-all-customers.md): Returns a list of customers you’ve previously created. The customers are returned in sorted order, with the most recent customers appearing first.
- [Update a customer](https://developer.katanamrp.com/reference/updatecustomer.md): Updates the specified customer by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete a customer](https://developer.katanamrp.com/reference/deletecustomer.md): Deletes a customer by id.
- [List all customer addresses](https://developer.katanamrp.com/reference/getcustomeraddresses.md): Returns a list of customer addresses you’ve previously created. The customer addresses are returned in sorted order, with the most recent customer addresses appearing first.
- [Create a customer address](https://developer.katanamrp.com/reference/createcustomeraddress.md): Add an address to an existing customer. A Customer can have one billing address and multiple shipping addresses. If the new address is the first of its type, it is assigned as the default.
- [Update a customer address](https://developer.katanamrp.com/reference/updatecustomeraddress.md): Updates the specified customer address by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete a customer address](https://developer.katanamrp.com/reference/deletecustomeraddress.md): Deletes a customer address by id.
- [Demand forecast](https://developer.katanamrp.com/reference/demand-forecast.md): Endpoint to view and update demand plan forecast.
- [Demand forecast object](https://developer.katanamrp.com/reference/demand-forecast-object.md)
- [List planned demand forecast for variant in location](https://developer.katanamrp.com/reference/getdemandforecasts.md): Returns planned forecasted demand for a variant in given location.
- [Add planned demand forecast to variant.](https://developer.katanamrp.com/reference/createdemandforecast.md): Add planned demand forecast for a variant in location for the specified periods.
- [Clear planned demand forecast to variant.](https://developer.katanamrp.com/reference/deletedemandforecast.md): Clears planned demand forecast for a variant in location for the specified periods.
- [Retrieve the current factory](https://developer.katanamrp.com/reference/getfactory.md): Returns the general information about the factory.
- [The inventory object](https://developer.katanamrp.com/reference/the-inventory-object.md)
- [List current inventory](https://developer.katanamrp.com/reference/list-current-inventory.md): Returns a list for current inventory. The inventory is returned in sorted order, with the oldest locations appearing first.
- [Update the reorder point](https://developer.katanamrp.com/reference/update-reorder-point.md): (Endpoint deprecation, we recommend using safety_stock instead) Updates an item’s safety stock level in a certain location and variant combination.
- [Update the safety stock level](https://developer.katanamrp.com/reference/createinventorysafetystocklevel.md): Update an item’s safety stock level within a certain location and variant combination.
- [List all variants with negative stock](https://developer.katanamrp.com/reference/getallnegativestock.md): Returns a list of variants with negative stock balance. Each variant has a date of the latest stock movement that resulted in negative stock balance.
- [List all inventory movements](https://developer.katanamrp.com/reference/list-all-inventory-movements.md): Returns a list of inventory movements created by your Katana resources. The inventory movements are returned in sorted order, with the most recent movements appearing first.
- [The location object](https://developer.katanamrp.com/reference/the-location-object.md)
- [List all locations](https://developer.katanamrp.com/reference/list-all-locations.md): Returns a list of locations you’ve previously created. The locations are returned in sorted order, with the most recent locations appearing first.
- [Retrieve a location](https://developer.katanamrp.com/reference/getlocation.md): Retrieves the details of an existing location based on ID.
- [Create a manufacturing order](https://developer.katanamrp.com/reference/createmanufacturingorder.md): Creates a new manufacturing order. Manufacturing order recipe and operation rows are created automatically based on the product recipe and operations.
- [List all manufacturing orders](https://developer.katanamrp.com/reference/getallmanufacturingorders.md): Returns a list of manufacturing orders, sorted with the most recent first.
- [Retrieve a manufacturing order](https://developer.katanamrp.com/reference/getmanufacturingorder.md): Retrieves the details of an existing manufacturing order based on ID.
- [Update a manufacturing order](https://developer.katanamrp.com/reference/updatemanufacturingorder.md): Updates the specified manufacturing order by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete a manufacturing order](https://developer.katanamrp.com/reference/deletemanufacturingorder.md): Deletes a single manufacturing order by id.
- [Create a make-to-order manufacturing order](https://developer.katanamrp.com/reference/maketoordermanufacturingorder.md): Creates a new manufacturing order object that is linked to a specific sales order row.
- [Unlink a manufacturing order from sales order row](https://developer.katanamrp.com/reference/unlinkmanufacturingorder.md): Unlinks the manufacturing order from a particular sales order row.
- [Change a manufacturing order's rank](https://developer.katanamrp.com/reference/rerankmanufacturingorder.md): Repositions a manufacturing order in the production schedule relative to another manufacturing order. Ranking is relative, mirroring drag-and-drop reordering: the reranked order is placed next to the target order. Only open manufacturing orders can be reranked. If the reranked order is linked to a sales order, all manufacturing orders linked to that sales order move together.
- [The manufacturing order operation row object](https://developer.katanamrp.com/reference/the-manufacturing-order-operation-row-object.md)
- [Create a manufacturing order operation row](https://developer.katanamrp.com/reference/createmanufacturingorderoperationrow.md): Add an operation row to an existing manufacturing order. Operation rows cannot be added when the manufacturing order status is DONE.
- [List all manufacturing order operation rows](https://developer.katanamrp.com/reference/getallmanufacturingorderoperationrows.md): Returns a list of manufacturing order operation rows you’ve previously created. The manufacturing order operation rows are returned in sorted order, with the most recent manufacturing order operation rows appearing first.
- [Retrieve a manufacturing order operation row](https://developer.katanamrp.com/reference/getmanufacturingorderoperationrow.md): Retrieves the details of an existing manufacturing order operation row.
- [Update a manufacturing order operation row](https://developer.katanamrp.com/reference/updatemanufacturingorderoperationrow.md): Updates the specified manufacturing order operation row by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Only completed_by_operators and total_actual_time can be updated when the manufacturing order status is DONE
- [Delete a manufacturing order operation row](https://developer.katanamrp.com/reference/deletemanufacturingorderoperationrow.md): Deletes a single manufacturing order operation row by id.
- [List all manufacturing order productions](https://developer.katanamrp.com/reference/getallmanufacturingorderproductions.md): Returns a list of manufacturing order productions, sorted with the most recent first.
- [Create a manufacturing order production](https://developer.katanamrp.com/reference/createmanufacturingorderproduction.md): Creates a manufacturing order production (partial completion). The `ingredients` and `operations` arrays each behave independently: - **Entries provided**: records exactly that consumption. - **Empty array (`[]`)**: records no consumption. - **Array omitted**: consumption is auto-created from the manufacturing order plan.
- [Retrieve a manufacturing order production](https://developer.katanamrp.com/reference/getmanufacturingorderproduction.md): Retrieves the details of an existing manufacturing order production based on ID.
- [Update a manufacturing order production](https://developer.katanamrp.com/reference/updatemanufacturingorderproduction.md): Updates the specified manufacturing order production by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete a manufacturing order production](https://developer.katanamrp.com/reference/deletemanufacturingorderproduction.md): Deletes a single manufacturing order production by id.
- [Update a manufacturing order production ingredient](https://developer.katanamrp.com/reference/updatemanufacturingorderproductioningredient.md): Updates the traceability of the specified manufacturing order production ingredient.
- [List all manufacturing order production ingredients](https://developer.katanamrp.com/reference/getallmanufacturingorderproductioningredients.md): Returns a list of manufacturing order production ingredients, sorted with the most recent first.
- [Create a manufacturing order recipe row](https://developer.katanamrp.com/reference/createmanufacturingorderreciperows.md): Add a recipe row to an existing manufacturing order. Recipe rows cannot be added when the manufacturing order status is DONE.
- [List all manufacturing order recipe rows](https://developer.katanamrp.com/reference/getallmanufacturingorderreciperows.md): Returns a list of manufacturing order recipe rows, sorted with the most recent first.
- [Retrieve a manufacturing order recipe row](https://developer.katanamrp.com/reference/getmanufacturingorderreciperow.md): Retrieves the details of an existing manufacturing order recipe row.
- [Update a manufacturing order recipe row](https://developer.katanamrp.com/reference/updatemanufacturingorderreciperows.md): Updates the specified manufacturing order recipe row. Once the manufacturing order status is DONE, `variant_id`, `planned_quantity_per_unit`, and `total_actual_quantity` can no longer be changed.
- [Delete a manufacturing order recipe row](https://developer.katanamrp.com/reference/deletemanufacturingorderreciperow.md): Deletes a single manufacturing order recipe row by id.
- [The material object](https://developer.katanamrp.com/reference/the-material-object.md)
- [Create a material](https://developer.katanamrp.com/reference/creatematerial.md): Creates a material object.
- [List all materials](https://developer.katanamrp.com/reference/getallmaterials.md): Returns a list of materials you’ve previously created. The materials are returned in sorted order, with the most recent materials appearing first.
- [Retrieve a material](https://developer.katanamrp.com/reference/getmaterial.md): Retrieves the details of an existing material based on ID.
- [Update a material](https://developer.katanamrp.com/reference/updatematerial.md): Updates the specified material by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete a material](https://developer.katanamrp.com/reference/deletematerial.md): Deletes a material by id.
- [Get all operators](https://developer.katanamrp.com/reference/getoperators.md): Retrieves a list of operators based on the provided filters.
- [Create an outsourced purchase order recipe row](https://developer.katanamrp.com/reference/createpurchaseorderreciperow.md): Add a recipe row to an existing outsourced purchase order. Recipe rows cannot be added when the order status is RECEIVED.
- [List all outsourced purchase order recipe rows](https://developer.katanamrp.com/reference/getallpurchaseorderreciperows.md): Returns a list of outsourced purchase order recipe rows you’ve previously created. The recipe rows are returned in sorted order, with the most recent rows appearing first.
- [Retrieve an outsourced purchase order recipe row](https://developer.katanamrp.com/reference/getpurchaseorderreciperow.md): Retrieves the details of an existing outsourced purchase order recipe row.
- [Update an outsourced purchase order recipe row](https://developer.katanamrp.com/reference/updatepurchaseorderreciperow.md): Updates the specified outsourced purchase order recipe row by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete outsourced purchase order recipe row](https://developer.katanamrp.com/reference/deletepurchaseorderreciperow.md): Deletes a single outsourced purchase order recipe row by id. Recipe rows cannot be deleted when the order status is RECEIVED.
- [Create a purchase order additional cost row](https://developer.katanamrp.com/reference/createpoadditionalcostrow.md): Add a purchase order additional cost row to an existing group.
- [List all purchase order additional cost rows](https://developer.katanamrp.com/reference/getpurchaseorderadditionalcostrows.md): Returns a list of purchase order additional cost rows you’ve previously created.
- [Retrieve a purchase order additional cost row](https://developer.katanamrp.com/reference/getpoadditionalcostrow.md): Retrieves the details of an existing purchase order additional cost row based on ID
- [Update a purchase order additional cost row](https://developer.katanamrp.com/reference/updateadditionalcostrow.md): Updates the specified purchase order additional cost row by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete a purchase order additional cost row](https://developer.katanamrp.com/reference/deletepoadditionalcost.md): Deletes a purchase order additional cost row by id.
- [Create a price list](https://developer.katanamrp.com/reference/createpricelist.md): Creates a new price list.
- [List all price lists](https://developer.katanamrp.com/reference/getallpricelists.md): Returns a list of price lists you’ve previously created. The price lists are returned in a sorted order, with the most recent price lists appearing first.
- [Update a price list](https://developer.katanamrp.com/reference/updatepricelist.md): Updates the specified price list by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete a price list](https://developer.katanamrp.com/reference/deletepricelist.md): Deletes a single price list by id.
- [Retrieve a price list](https://developer.katanamrp.com/reference/getpricelist.md): Retrieves the details of an existing price list based on ID
- [Create price list customers](https://developer.katanamrp.com/reference/createpricelistcustomer.md): Add customers to a price list.
- [List all price list customers](https://developer.katanamrp.com/reference/getallpricelistcustomers.md): Returns a list of price list customers you’ve previously created. The price list customers are returned in a sorted order, with the most recent price list customers appearing first.
- [Update a price list customer](https://developer.katanamrp.com/reference/updatepricelistcustomer.md): Updates the specified price list customer by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete a price list customer](https://developer.katanamrp.com/reference/deletepricelistcustomer.md): Deletes a single price list customer by id.
- [Retrieve a price list customer](https://developer.katanamrp.com/reference/getpricelistcustomer.md): Retrieves the details of an existing price list customer based on ID
- [Create price list rows](https://developer.katanamrp.com/reference/createpricelistrow.md): Add variants to a price list.
- [List all price list rows](https://developer.katanamrp.com/reference/getallpricelistrows.md): Returns a list of price list rows you’ve previously created. The price list rows are returned in a sorted order, with the most recent price list rows appearing first.
- [Update a price list row](https://developer.katanamrp.com/reference/updatepricelistrow.md): Updates the specified price list row by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete price list row](https://developer.katanamrp.com/reference/deletepricelistrow.md): Deletes a single price list row by id.
- [Retrieve a price list row](https://developer.katanamrp.com/reference/getpricelistrow.md): Retrieves the details of an existing price list row based on ID
- [The product object](https://developer.katanamrp.com/reference/the-product-object.md)
- [Create a product](https://developer.katanamrp.com/reference/create-product.md): Creates a product object.
- [List all products](https://developer.katanamrp.com/reference/list-all-products.md): Returns a list of products you’ve previously created. The products are returned in sorted order, with the most recent products appearing first.
- [Retrieve a product](https://developer.katanamrp.com/reference/getproduct.md): Retrieves the details of an existing product based on ID.
- [Update a product](https://developer.katanamrp.com/reference/updateproduct.md): Updates the specified product by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete a product](https://developer.katanamrp.com/reference/deleteproduct.md): Deletes a product by id.
- [The product operation object](https://developer.katanamrp.com/reference/the-product-operation-object.md)
- [Create product operations](https://developer.katanamrp.com/reference/createproductoperationrows.md): Create one or many new product operation rows for a product. The endpoint accepts up to 150 product operation rows and processes them in bulk. If rows are successfully created, 204 is returned.
- [List all product operations](https://developer.katanamrp.com/reference/getallproductoperationrows.md): Returns a list of product operation rows you’ve previously created.
- [Update a product operation row](https://developer.katanamrp.com/reference/updateproductoperationrow.md): Updates the specified product operation row by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Since one product operation row can apply to multiple product variants, updating the row will apply to all objects with the same product_operation_row_id.
- [Delete a product operation row](https://developer.katanamrp.com/reference/deleteproductoperationrow.md): Deletes a product operation row by product_operation_row_id. If one product operation row applies to multiple product variants then all of them are deleted.
- [Change the product operation's rank](https://developer.katanamrp.com/reference/rerankproductoperation.md): Use this endpoint to rearrange product operations. This endpoint supports the changing of a single product operation's rank in relation to other product operations. After repositioning, the rank attribute for all operations of the same product will be recalculated.
- [The purchase order object](https://developer.katanamrp.com/reference/the-purchase-order-object.md)
- [Create a purchase order](https://developer.katanamrp.com/reference/createpurchaseorder.md): Creates a new purchase order object.
- [List all purchase orders](https://developer.katanamrp.com/reference/findpurchaseorders.md): Returns a list of purchase orders you’ve previously created. The purchase orders are returned in sorted order, with the most recent purchase orders appearing first.
- [Retrieve a purchase order](https://developer.katanamrp.com/reference/getpurchaseorder.md): Retrieves the details of an existing purchase order based on ID
- [Update a purchase order](https://developer.katanamrp.com/reference/updatepurchaseorder.md): Updates the specified purchase order by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete purchase order](https://developer.katanamrp.com/reference/deletepurchaseorder.md): Deletes a single purchase order by id.
- [Receive a purchase order](https://developer.katanamrp.com/reference/receivepurchaseorder.md): If you receive the items on the purchase order, you can mark the purchase order as received. This will update the existing purchase order rows quantities to the quantities left unreceived and create a new rows with the received quantities and dates. If you want to mark all rows as received and the order doesn’t contain batch tracked items, you can use PATCH /purchase_orders/id endpoint. Reverting the receive must also be done through that endpoint.
- [List all purchase order accounting metadata](https://developer.katanamrp.com/reference/getallpurchaseorderaccountingmetadata.md): Returns a list of purchase order accounting metadata entries.
- [The purchase order row object](https://developer.katanamrp.com/reference/the-purchase-order-row-object.md)
- [Create a purchase order row](https://developer.katanamrp.com/reference/createpurchaseorderrow.md): Creates a new purchase order row object.
- [List all purchase order rows](https://developer.katanamrp.com/reference/getallpurchaseorderrows.md): Returns a list of purchase order rows you’ve previously created. The purchase order rows are returned in sorted order, with the most recent rows appearing first.
- [Retrieve a purchase order row](https://developer.katanamrp.com/reference/getpurchaseorderrow.md): Retrieves the details of an existing purchase order row based on ID
- [Update a purchase order row](https://developer.katanamrp.com/reference/updatepurchaseorderrow.md): Updates the specified purchase order row by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete purchase order row](https://developer.katanamrp.com/reference/deletepurchaseorderrow.md): Deletes a single purchase order row by id.
- [Recipe](https://developer.katanamrp.com/reference/recipe.md)
- [The recipe / BOM object](https://developer.katanamrp.com/reference/the-recipe-bom-object.md)
- [Create recipes](https://developer.katanamrp.com/reference/createrecipes.md): (This endpoint is deprecated in favor of BOM rows) Create one or many new recipe rows for a product. The endpoint accepts up to 150 recipe rows and processes them in bulk. If rows are successfully created, 204 is returned.
- [List all recipes](https://developer.katanamrp.com/reference/getallrecipes.md): (This endpoint is deprecated in favor of BOM rows) Returns a list of recipe (bill of materials) rows you’ve previously created. Product variant recipe consists of ingredient variants and their quantities.
- [Update a recipe row](https://developer.katanamrp.com/reference/updatereciperow.md): (This endpoint is deprecated in favor of BOM rows) Updates the specified recipe row by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Since one recipe row can apply to multiple product variants, updating the row will apply to all objects with the same recipe_row_id.
- [Delete a recipe row](https://developer.katanamrp.com/reference/deletereciperow.md): (This endpoint is deprecated in favor of BOM rows) Deletes a recipes row by recipe_row_id. If one recipe row applies to multiple product variants then all of them are deleted.
- [The sales order object](https://developer.katanamrp.com/reference/the-sales-order-object.md)
- [Create a sales order](https://developer.katanamrp.com/reference/create-sales-order.md): Creates a new sales order object.
- [List all sales orders](https://developer.katanamrp.com/reference/list-all-sales-orders.md): Returns a list of sales orders you’ve previously created. The sales orders are returned in a sorted order, with the most recent sales orders appearing first.
- [Retrieve a sales order](https://developer.katanamrp.com/reference/retrieve-sales-order.md): Retrieves the details of an existing sales order based on ID
- [Update a sales order](https://developer.katanamrp.com/reference/update-sales-order.md): Updates the specified sales order by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete sales order](https://developer.katanamrp.com/reference/delete-sales-order.md): Deletes a single sales order by id.
- [Get returnable items](https://developer.katanamrp.com/reference/getreturnableitems.md): Get returnable items for a sales order
- [Search sales orders with advanced filters](https://developer.katanamrp.com/reference/searchsalesorders.md): > 🚧 **Beta — subject to change.** This endpoint is publicly available, but its request/response shape may evolve before General Availability as we incorporate early feedback. Searches sales orders using a structured filter body with nested logical operators (`and`, `or`) and per-field comparators. Use this when the flat query parameters on `GET /sales_orders` aren’t expressive enough. The response payload matches `GET /sales_orders`. Only the fields listed in the request schema may appear in `filter` and `order`; unknown fields return 422. Custom field values are addressable via `custom_fields.` nested paths.
- [Change a sales order's rank](https://developer.katanamrp.com/reference/reranksalesorder.md): Repositions a sales order in the schedule relative to another sales order. Ranking is relative, mirroring drag-and-drop reordering: the reranked order is placed next to the target order. Only open sales orders can be reranked. If the reranked order has linked manufacturing orders, they move together with the sales order.
- [List all sales order accounting metadata](https://developer.katanamrp.com/reference/getallsalesorderaccountingmetadata.md): Returns a list of sales order accounting metadata entries.
- [List all sales order addresses](https://developer.katanamrp.com/reference/getsalesorderaddresses.md): Returns a list of sales order addresses you’ve previously created. The sales order addresses are returned in sorted order, with the most recent sales order addresses appearing first.
- [Create a sales order address](https://developer.katanamrp.com/reference/create-sales-order-address.md): Creates a new sales order address object.
- [Update a sales order address](https://developer.katanamrp.com/reference/update-sales-order-address.md): Updates the specified sales order address by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete sales order address](https://developer.katanamrp.com/reference/delete-sales-order-address.md): Deletes a single sales order address by id.
- [The sales order fulfillment object](https://developer.katanamrp.com/reference/the-sales-order-fulfillment-object.md)
- [Create a sales order fulfillment](https://developer.katanamrp.com/reference/create-sales-order-fulfillment.md): Creates a new fulfillment for an existing sales order.
- [List all sales order fulfillments](https://developer.katanamrp.com/reference/list-all-sales-order-fulfillments.md): Returns a list of sales order fulfillments you’ve previously created. The sales order fulfillments are returned in a sorted order, with the most recent sales order fulfillments appearing first.
- [Retrieve a sales order fulfillment](https://developer.katanamrp.com/reference/retrieve-sales-order-fulfillment.md): Retrieves the details of an existing sales order fulfillment based on ID
- [Update a sales order fulfillment](https://developer.katanamrp.com/reference/update-sales-order-fulfillment.md): Updates the specified sales order fulfillment by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete a sales order fulfillment](https://developer.katanamrp.com/reference/delete-sales-order-fulfillment.md): Deletes a single sales order fulfillment by id.
- [The sales order row object](https://developer.katanamrp.com/reference/the-sales-order-row-object.md)
- [List all sales order rows](https://developer.katanamrp.com/reference/getallsalesorderrows.md): Returns a list of sales order rows you’ve previously created. The sales order rows are returned in a sorted order, with the most recent sales order rows appearing first.
- [Create a sales order row](https://developer.katanamrp.com/reference/create-sales-order-row.md): Add a sales order row to an existing sales order. Rows can be added only when the sales order status is NOT_SHIPPED or PENDING.
- [Retrieve a sales order row](https://developer.katanamrp.com/reference/retrieve-sales-order-row.md): Retrieves the details of an existing sales order row.
- [Update a sales order row](https://developer.katanamrp.com/reference/update-sales-order-row.md): Updates the specified sales order row by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete sales order row](https://developer.katanamrp.com/reference/delete-sales-order-row.md): Deletes a single sales order row by id. Rows can be deleted only when the sales order row status is NOT_SHIPPED or PENDING
- [Search sales order rows with advanced filters](https://developer.katanamrp.com/reference/searchsalesorderrows.md): > 🚧 **Beta — subject to change.** This endpoint is publicly available, but its request/response shape may evolve before General Availability as we incorporate early feedback. Searches sales order rows using a structured filter body with nested logical operators (`and`, `or`) and per-field comparators. Use this when the flat query parameters on `GET /sales_order_rows` aren’t expressive enough. The response payload matches `GET /sales_order_rows`. Only the fields listed in the request schema may appear in `filter` and `order`; unknown fields return 422. Custom field values are addressable via `custom_fields.` nested paths.
- [Creates a sales order shipping fee and add it to sales order](https://developer.katanamrp.com/reference/addshippingfee.md): Creates a sales order shipping fee and add it to sales order.
- [List all shipping fees](https://developer.katanamrp.com/reference/getallshippingfees.md): Returns a list of shipping fees you’ve previously created.
- [Retrieve a shipping fee](https://developer.katanamrp.com/reference/getshippingfee.md): Retrieves the details of an existing shipping fee based on ID
- [Update a shipping fee](https://developer.katanamrp.com/reference/updateshippingfee.md): Updates the specified shipping fee by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Deletes shipping fee, also removes it from attached sales order.](https://developer.katanamrp.com/reference/deleteshippingfee.md): Deletes shipping fee, also removes it from attached sales order
- [The sales return object](https://developer.katanamrp.com/reference/the-sales-return-object.md)
- [Create a sales return](https://developer.katanamrp.com/reference/createsalesreturn.md): Creates a new sales return object.
- [List all sales returns](https://developer.katanamrp.com/reference/getallsalesreturns.md): Returns a list of sales returns you've previously created. The sales returns are returned in a sorted order, with the most recent sales return appearing first.
- [Retrieve a sales return](https://developer.katanamrp.com/reference/getsalesreturn.md): Retrieves the details of an existing sales return based on ID
- [Update a sales return](https://developer.katanamrp.com/reference/updatesalesreturn.md): Updates the specified sales return by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete sales return](https://developer.katanamrp.com/reference/deletesalesreturn.md): Deletes a single sales return by id.
- [Get return reasons](https://developer.katanamrp.com/reference/getreturnreasons.md): Get return reasons
- [The sales return row object](https://developer.katanamrp.com/reference/the-sales-return-row-object.md)
- [Create a sales return row](https://developer.katanamrp.com/reference/createsalesreturnrow.md): Creates a new sales return row object.
- [List all sales return rows](https://developer.katanamrp.com/reference/getallsalesreturnrows.md): Returns a list of sales return rows you've previously created. The sales return rows are returned in a sorted order, with the most recent sales return row appearing first.
- [Retrieve a sales return row](https://developer.katanamrp.com/reference/getsalesreturnrow.md): Retrieves the details of an existing sales return row based on ID
- [Update a sales return row](https://developer.katanamrp.com/reference/updatesalesreturnrow.md): Updates the specified sales return row by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete sales return row](https://developer.katanamrp.com/reference/deletesalesreturnrow.md): Deletes a single sales return row by id.
- [Retrieve unassigned batch transactions for a sales return row](https://developer.katanamrp.com/reference/getsalesreturnrowunassignedbatchtransactions.md): Retrieves the unassigned batch transactions for a sales return row based on sales return row id
- [Returns a list of serial numbers](https://developer.katanamrp.com/reference/getserialnumbers.md): Returns a list of serial numbers linked to the specified resource, sorted alphabetically.
- [Assign serial numbers to a resource](https://developer.katanamrp.com/reference/createserialnumbers.md): Assigns the provided list of serial numbers to the specified resource.
- [Unassign serial numbers from a resource](https://developer.katanamrp.com/reference/deleteserialnumbers.md): Unassigns serial numbers from a resource
- [Returns a list of in-stock serial numbers](https://developer.katanamrp.com/reference/getserialnumberstock.md): Return a list of serial numbers with in-stock status which references to the linked resources
- [The service object](https://developer.katanamrp.com/reference/the-service-object.md)
- [List all services](https://developer.katanamrp.com/reference/getallservices.md): Returns a list of services you’ve previously created. The services are returned in sorted order, with the most recent services appearing first.
- [Create a service](https://developer.katanamrp.com/reference/createservice.md): Creates a service object.
- [Retrieve a service](https://developer.katanamrp.com/reference/getservice.md): Retrieves the details of an existing service based on ID.
- [Update a service](https://developer.katanamrp.com/reference/updateservice.md): Updates the specified service by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete a service](https://developer.katanamrp.com/reference/deleteservice.md): Deletes a service by id.
- [Create a stock adjustment](https://developer.katanamrp.com/reference/createstockadjustment.md): Creates a stock adjustment object.
- [List all stock adjustments](https://developer.katanamrp.com/reference/findstockadjustments.md): Returns a list of stock adjustments you’ve previously created. The stock adjustments are returned in sorted order, with the most recent stock adjustments appearing first.
- [Update a stock adjustment](https://developer.katanamrp.com/reference/updatestockadjustment.md): Updates the specified stock adjustment by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete a stock adjustment](https://developer.katanamrp.com/reference/deletestockadjustment.md): Deletes a single stock adjustment by id.
- [Create a stock transfer](https://developer.katanamrp.com/reference/createstocktransfer.md): Creates a stock transfer object.
- [List all stock transfers](https://developer.katanamrp.com/reference/findstocktransfers.md): Returns a list of stock transfers you’ve previously created. The stock transfers are returned in sorted order, with the most recent stock transfers appearing first.
- [Update a stock transfer](https://developer.katanamrp.com/reference/updatestocktransfer.md): Updates the specified stock transfer by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete a stock transfer](https://developer.katanamrp.com/reference/deletestocktransfer.md): Deletes a single stock transfer by id.
- [Update stock transfers status](https://developer.katanamrp.com/reference/updatestocktransferstatus.md): Updates the specified stock transfers status.
- [Create a stocktake](https://developer.katanamrp.com/reference/createstocktake.md): Create a new stocktake object.
- [List all stocktakes](https://developer.katanamrp.com/reference/findstocktakes.md): Returns a list of stocktakes you’ve previously created. The stocktakes are returned in sorted order, with the most recent stocktakes appearing first.
- [Update a stocktake](https://developer.katanamrp.com/reference/updatestocktakebyid.md): Updates the specified stocktake by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Status updates can take a long time so 204 is returned. If you need to continue with updates on same entity or its rows, you need to poll if status update has ended (status_update_in_progress) and continue after that.
- [Delete a stocktake](https://developer.katanamrp.com/reference/deletestocktakebyid.md): Deletes a single stocktake by id.
- [Create stocktake rows](https://developer.katanamrp.com/reference/createstocktakerows.md): Add one or many new rows for a stocktake. The endpoint accepts up to 250 stocktake rows.
- [List all stocktake rows](https://developer.katanamrp.com/reference/findstocktakerows.md): Returns a list of stocktake rows you’ve previously created. The stocktake rows are returned in sorted order, with the most recent stocktake rows appearing first.
- [Update a stocktake row](https://developer.katanamrp.com/reference/updatestocktakerowbyid.md): Updates the specified stocktake row by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete a stocktake row](https://developer.katanamrp.com/reference/deletestocktakerowbyid.md): Deletes a stocktake row by id.
- [Create a supplier](https://developer.katanamrp.com/reference/create-supplier.md): Creates a new supplier object.
- [List all suppliers](https://developer.katanamrp.com/reference/list-all-suppliers.md): Returns a list of suppliers you’ve previously created. The suppliers are returned in sorted order, with the most recent suppliers appearing first.
- [Update a supplier](https://developer.katanamrp.com/reference/updatesupplier.md): Updates the specified supplier by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete a supplier](https://developer.katanamrp.com/reference/deletesupplier.md): Deletes a supplier by id.
- [List all supplier addresses](https://developer.katanamrp.com/reference/getsupplieraddresses.md): Returns a list of supplier addresses you’ve previously created. The supplier addresses are returned in sorted order, with the most recent supplier addresses appearing first.
- [Create a supplier address](https://developer.katanamrp.com/reference/createsupplieraddress.md): Add an address to an existing supplier. If the new address is the first one, it is assigned as the default. (A Supplier can have only one address for now)
- [Update a supplier address](https://developer.katanamrp.com/reference/updatesupplieraddress.md): Updates the specified supplier address by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete a supplier address](https://developer.katanamrp.com/reference/deletesupplieraddress.md): Deletes a supplier address by id.
- [Create a tax rate](https://developer.katanamrp.com/reference/create-tax-rate.md): Creates a new tax rate object.
- [List all tax rates](https://developer.katanamrp.com/reference/list-all-tax-rates.md): Returns a list of tax rate you’ve previously created. The tax rate are returned in sorted order, with the most recent tax rate appearing first.
- [List all users](https://developer.katanamrp.com/reference/getallusers.md): Returns a list of users active users in your account.
- [The variant object](https://developer.katanamrp.com/reference/the-variant-object.md)
- [Create a variant](https://developer.katanamrp.com/reference/create-variant.md): Creates a new variant object. Note that you can create variants for both products and materials. In order for Katana to know which one you are creating, you have to specify either product_id or material_id, not both.
- [List all variants](https://developer.katanamrp.com/reference/list-all-variants.md): Returns a list of variants you've previously created. The variants are returned in sorted order, with the most recent variants appearing first.
- [Retrieve a variant](https://developer.katanamrp.com/reference/getvariant.md): Retrieves the details of an existing variant based on ID.
- [Update a variant](https://developer.katanamrp.com/reference/updatevariant.md): Updates the specified variant by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete a variant](https://developer.katanamrp.com/reference/deletevariant.md): Deletes a variant by id.
- [Search variants with advanced filters](https://developer.katanamrp.com/reference/searchvariants.md): > 🚧 **Beta — subject to change.** This endpoint is publicly available, but its request/response shape may evolve before General Availability as we incorporate early feedback. Searches variants using a structured filter body with nested logical operators (`and`, `or`) and per-field comparators. Use this when the flat query parameters on `GET /variants` aren’t expressive enough. Only the fields listed in the request schema may appear in `filter` and `order`; unknown fields return 422. Custom field values are addressable via `custom_fields.` nested paths. The response differs from `GET /variants`: the item reference is a single `item_id` with an `item_type` discriminator (rather than separate `product_id`/`material_id`), and the optional enriched item is returned under `item`. Use the `include` array to opt into `item` enrichment and to widen the result set to `archived` and/or `deleted` variants (both are excluded by default).
- [Link variant default storage bins](https://developer.katanamrp.com/reference/linkvariantdefaultstoragebins.md): Bulk operation for linking variants with the default storage bins. In case the default storage bin doesn't yet exist, it will be created and linked to the variant. This endpoint can also be used for changing existing links of the variants to different storage bins. The endpoint accepts up to 500 variant storage bin objects.
- [Unlink variant default storage bins](https://developer.katanamrp.com/reference/unlinkvariantdefaultstoragebins.md): Bulk operation for unlinking variants from the default storage bins available in a specific location. The endpoint accepts up to 500 variant bin location objects.
- [Create a webhook](https://developer.katanamrp.com/reference/createwebhook.md): Creates a new webhook object.
- [List all webhooks](https://developer.katanamrp.com/reference/getallwebhooks.md): Returns a list of webhooks you’ve previously created. The entries are returned in a sorted order, with the most recent ones appearing first.
- [Retrieve a webhook](https://developer.katanamrp.com/reference/getwebhook.md): Retrieves the details of an existing webhook based on ID
- [Update a webhook](https://developer.katanamrp.com/reference/updatewebhook.md): Updates the specified webhook by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
- [Delete webhook](https://developer.katanamrp.com/reference/deletewebhook.md): Deletes a single webhook by id.
- [Export webhook logs](https://developer.katanamrp.com/reference/export-webhook-logs.md): Use the endpoint to export your webhook logs and troubleshoot any issues. Webhook logs are filtered by the provided parameters and exported into a CSV file. The response contains an URL to the CSV file.
## Pages
- [Setting up OAuth 2.0](https://developer.katanamrp.com/setting-up-oauth.md)
## Changelog
- [New endpoint for changing a sales order's rank](https://developer.katanamrp.com/changelog/new-endpoint-for-changing-a-sales-orders-rank.md)
- [New endpoint for changing a manufacturing order's rank](https://developer.katanamrp.com/changelog/new-endpoint-for-changing-a-manufacturing-orders-rank.md)
- [`reference` field now available on Purchase Order additional cost rows](https://developer.katanamrp.com/changelog/reference-field-now-available-on-purchase-order-additional-cost-rows.md)
- [New .approved webhook events for sales orders, purchase orders, and outsourced purchase orders](https://developer.katanamrp.com/changelog/new-approved-webhook-events-for-sales-orders-purchase-orders-and-outsourced-purchase-orders.md)
- [Unbatched stock is now represented as batch_id: null in Stock Transfer rows](https://developer.katanamrp.com/changelog/unbatched-stock-is-now-represented-as-batch_id-null-in-stock-transfer-rows.md)
- [Purchase Order Row level location now available](https://developer.katanamrp.com/changelog/purchase-order-row-level-location-now-available.md)
- [Unbatched stock is now represented as batch_id: null in Purchase Order rows and Purchase Order recipe rows](https://developer.katanamrp.com/changelog/unbatched-stock-is-now-represented-as-batch_id-null-in-purchase-order-rows-and-purchase-order-recipe-rows.md)
- [Unbatched stock is now represented as batch_id: null in Stock Adjustments](https://developer.katanamrp.com/changelog/unbatched-stock-is-now-represented-as-batch_id-null-in-stock-adjustments.md)
- [Services](https://developer.katanamrp.com/changelog/services.md)
- [Sales Return](https://developer.katanamrp.com/changelog/sales-return.md)