katana_public_api_client.models¶
katana_public_api_client.models
¶
Contains all the data models used in inputs/outputs
Classes¶
AdditionalCost
¶
Additional cost types that can be applied to purchase orders and manufacturing orders (e.g., shipping, taxes, duties)
Example:
{'id': 1, 'name': 'Shipping Cost', 'created_at': '2020-10-23T10:37:05.085Z', 'updated_at':
'2020-10-23T10:37:05.085Z', 'deleted_at': None}
AdditionalCostListResponse
¶
Response containing a list of additional cost types for purchase orders and manufacturing orders
Example
{'data': [{'id': 1, 'name': 'Shipping Cost', 'created_at': '2020-10-23T10:37:05.085Z', 'updated_at': '2020-10-23T10:37:05.085Z', 'deleted_at': None}, {'id': 2, 'name': 'Import Duty', 'created_at': '2020-10-23T10:37:05.085Z', 'updated_at': '2020-10-23T10:37:05.085Z', 'deleted_at': None}]}
AdditionalPropertiesValidationError
¶
Ajv additionalProperties keyword: an object includes a property
not permitted by the schema. info.additionalProperty names the
offending key.
AdditionalPropertiesValidationErrorInfo
¶
Keyword-specific metadata for additionalProperties
ArchivableDeletableEntity
¶
Common fields for entities that can be both archived and deleted
Example
{'id': 12345, 'created_at': '2020-10-23T10:37:05.085Z', 'updated_at': '2020-10-23T10:37:05.085Z', 'archived_at': None, 'deleted_at': None}
ArchivableEntity
¶
Common fields for entities that can be archived
Example
{'id': 12345, 'created_at': '2020-10-23T10:37:05.085Z', 'updated_at': '2020-10-23T10:37:05.085Z', 'archived_at': None}
AssignedOperator
¶
Simplified operator reference used in manufacturing operation assignments
Example
{'operator_id': 1, 'name': 'Pack', 'deleted_at': None}
BaseEntity
¶
Base entity with unique identifier
Example
{'id': 12345}
BaseValidationError
¶
Common fields shared by every validation error detail. Maps to the
non-keyword-specific portion of an Ajv ErrorObject.
Batch
¶
Core batch business properties
Example
{'batch_number': 'BAT-2024-001', 'expiration_date': '2025-10-23T10:37:05.085Z', 'batch_created_date': '2024-01-15T08:00:00.000Z', 'variant_id': 1001, 'batch_barcode': '0317'}
BatchCreateBomRowsRequest
¶
Request payload for creating multiple BOM rows in a single operation
Example
{'data': [{'product_item_id': 3001, 'product_variant_id': 2001, 'ingredient_variant_id': 2002, 'quantity': 2.5, 'notes': 'Primary component'}, {'product_item_id': 3001, 'product_variant_id': 2001, 'ingredient_variant_id': 2003, 'quantity': 1.0, 'notes': 'Secondary component'}]}
BatchResponse
¶
Complete batch record with system metadata for inventory tracking and traceability
Example
{'id': 1109, 'batch_number': 'BAT-2024-001', 'expiration_date': '2025-10-23T10:37:05.085Z', 'batch_created_date': '2024-01-15T08:00:00.000Z', 'created_at': '2024-01-15T08:00:00.000Z', 'updated_at': '2024-01-15T08:00:00.000Z', 'variant_id': 1001, 'batch_barcode': '0317'}
BatchStock
¶
Batch inventory record showing current stock levels for a specific batch at a specific location
Example
{'batch_id': 1109, 'batch_number': 'BAT-2024-001', 'batch_created_date': '2024-01-15T08:00:00.000Z', 'expiration_date': '2025-10-23T10:37:05.085Z', 'location_id': 1, 'variant_id': 1001, 'quantity_in_stock': '25.00000', 'batch_barcode': '0317'}
BatchStockListResponse
¶
List of batch stock records showing current inventory levels for tracked batches across all locations
Example
{'data': [{'batch_id': 1109, 'batch_number': 'BAT-2024-001', 'batch_created_date': '2024-01-15T08:00:00.000Z', 'expiration_date': '2025-10-23T10:37:05.085Z', 'location_id': 1, 'variant_id': 1001, 'quantity_in_stock': '25.00000', 'batch_barcode': '0317'}, {'batch_id': 1110, 'batch_number': 'BAT-2024-002', 'batch_created_date': '2024-01-16T09:30:00.000Z', 'expiration_date': '2025-11-15T10:37:05.085Z', 'location_id': 1, 'variant_id': 1002, 'quantity_in_stock': '50.00000', 'batch_barcode': '0318'}]}
BatchStockUpdate
¶
Request payload for updating batch properties and tracking information
Example
{'batch_number': 'BAT-2024-001-UPDATED', 'expiration_date': '2025-12-31T23:59:59.000Z', 'batch_barcode': '0317-V2'}
BatchTransaction
¶
Represents a quantity transaction for a specific batch in manufacturing, sales, or inventory operations
Example
{'batch_id': 1109, 'quantity': 25.0}
BatchTransactionRequest
¶
Batch allocation transaction for tracking inventory lots
BomRow
¶
Bill of Materials row defining ingredient requirements for product manufacturing
Example
{'id': 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee', 'product_item_id': 1, 'product_variant_id': 1, 'ingredient_variant_id': 1, 'quantity': 2, 'notes': 'some notes', 'rank': 10000, 'created_at': '2021-04-05T12:00:00.000Z', 'updated_at': '2021-04-05T12:00:00.000Z'}
BomRowListResponse
¶
Response containing a list of BOM rows
Example
{'data': [{'id': '501a1234-5678-90ab-cdef-1234567890ab', 'product_variant_id': 2001, 'product_item_id': 3001, 'ingredient_variant_id': 2002, 'quantity': 2.5, 'notes': 'Handle with care - fragile component', 'created_at': '2023-10-15T14:30:00Z', 'updated_at': '2023-10-16T09:15:00Z'}, {'id': '502b1234-5678-90ab-cdef-1234567890ab', 'product_variant_id': 2001, 'product_item_id': 3001, 'ingredient_variant_id': 2003, 'quantity': 1.0, 'notes': 'Standard component', 'created_at': '2023-10-15T14:31:00Z', 'updated_at': '2023-10-15T14:31:00Z'}]}
ClearDemandForecastRequest
¶
Request payload for clearing planned demand forecast periods for a variant in a location
Example
{'variant_id': 1, 'location_id': 1, 'periods': [{'period_start': '2024-01-01T00:00:00.000Z', 'period_end': '2024-01-06T23:59:59.999Z'}]}
CodedErrorResponse
¶
Error response with an additional application-specific error code for detailed error handling
ConstValidationError
¶
Ajv const keyword: the value must equal the schema's constant.
info.allowedValue is the required value (any JSON type).
ConstValidationErrorInfo
¶
Keyword-specific metadata for const
CreateBomRowRequest
¶
Request payload for creating a new BOM row
Example
{'product_item_id': 3001, 'product_variant_id': 2001, 'ingredient_variant_id': 2002, 'quantity': 2.5, 'notes': 'Handle with care - fragile component'}
CreateCustomFieldDefinitionRequest
¶
Request payload for creating a new custom field definition.
Example
{'label': 'Channel', 'field_type': 'shortText', 'entity_type': 'SalesOrder', 'source': 'your-integration', 'description': 'Customer-facing sales channel classification'}
CreateCustomerAddressRequest
¶
Request payload for creating a new customer address with complete contact and location information
Example
{'customer_id': 2003, 'entity_type': 'shipping', 'first_name': 'Maria', 'last_name': 'Garcia', 'company': 'Cafe Central', 'phone': '+1-555-0127', 'line_1': '789 Main Street', 'line_2': 'Unit 5', 'city': 'San Francisco', 'state': 'CA', 'zip': '94102', 'country': 'US'}
CreateCustomerRequest
¶
Request payload for creating a new customer with contact and business information
Example
{'name': 'Gourmet Bistro Group', 'first_name': 'Elena', 'last_name': 'Rodriguez', 'company': 'Gourmet Bistro Group Inc', 'email': 'procurement@gourmetbistro.com', 'phone': '+1-555-0125', 'comment': 'Premium restaurant chain - priority orders', 'currency': 'USD', 'reference_id': 'GBG-2024-003', 'category': 'Fine Dining', 'discount_rate': 7.5}
CreateDemandForecastRequest
¶
Request payload for adding planned demand forecast periods for a variant in a location
Example
{'variant_id': 1, 'location_id': 1, 'periods': [{'period_start': '2024-01-01T00:00:00.000Z', 'period_end': '2024-01-06T23:59:59.999Z', 'committed': '25'}]}
CreateInventoryReorderPointRequest
¶
Request payload for creating a new inventory reorder point
CreateManufacturingOrderOperationRowRequest
¶
Request payload for creating a new manufacturing order operation row to track production operation time and operator assignments
Example:
{'manufacturing_order_id': 1001, 'operation_id': 201, 'type': 'process', 'operation_name': 'Assembly',
'resource_id': 501, 'resource_name': 'Workstation A', 'planned_time_parameter': 1.0, 'planned_time_per_unit':
15.0, 'cost_parameter': 1.0, 'cost_per_hour': 50.0, 'status': 'NOT_STARTED'}
CreateManufacturingOrderProductionRequest
¶
Request payload for creating a production run within a manufacturing order, recording actual production activities and material consumption.
Example:
{'manufacturing_order_id': 3001, 'completed_quantity': 25, 'completed_date': '2024-01-20T14:30:00Z', 'is_final':
False, 'ingredients': [{'id': 4001, 'location_id': 1, 'variant_id': 3101, 'manufacturing_order_id': 3001,
'manufacturing_order_recipe_row_id': 3201, 'production_id': 3501, 'quantity': 50.0, 'production_date':
'2024-01-20T14:30:00Z', 'cost': 125.0}], 'operations': [{'id': 3801, 'manufacturing_order_id': 3001,
'operation_id': 401, 'time': 15.0}]}
CreateManufacturingOrderRecipeRowRequest
¶
Request payload for creating a new manufacturing order recipe row to track ingredient requirements and consumption
Example
{'manufacturing_order_id': 1001, 'variant_id': 2002, 'notes': 'Use fresh ingredients from cold storage', 'planned_quantity_per_unit': 0.25, 'total_actual_quantity': 5.0, 'batch_transactions': [{'batch_id': 301, 'quantity': 3.0}, {'batch_id': 302, 'quantity': 2.0}]}
CreateManufacturingOrderRequest
¶
Request payload for creating a new manufacturing order to initiate production of products or components.
Example
{'variant_id': 2101, 'planned_quantity': 50, 'location_id': 1, 'order_no': 'MO-2024-001', 'order_created_date': '2024-01-15T08:00:00Z', 'production_deadline_date': '2024-01-25T17:00:00Z', 'additional_info': 'Priority order for new product launch'}
CreateMaterialRequest
¶
Request payload for creating a new raw material with variants and specifications
Example
{'name': 'Stainless Steel Sheet 304', 'uom': 'm²', 'category_name': 'Raw Materials', 'default_supplier_id': 1501, 'additional_info': 'Food-grade stainless steel, 1.5mm thickness', 'batch_tracked': True, 'is_sellable': False, 'purchase_uom': 'sheet', 'purchase_uom_conversion_rate': 2.0, 'configs': [{'id': 1, 'name': 'Grade', 'values': ['304', '316'], 'material_id': 1}, {'id': 2, 'name': 'Thickness', 'values': ['1.5mm', '2.0mm', '3.0mm'], 'material_id': 1}], 'variants': [{'sku': 'STEEL-304-1.5MM', 'sales_price': 65.0, 'purchase_price': 45.0, 'lead_time': 5, 'minimum_order_quantity': 1, 'config_attributes': [{'config_name': 'Grade', 'config_value': '304'}, {'config_name': 'Thickness', 'config_value': '1.5mm'}]}]}
CreateOutsourcedPurchaseOrderRecipeRowRequest
¶
Request payload for creating a new outsourced purchase order recipe row
CreatePriceListCustomerRequest
¶
Request payload for assigning customers to a price list for custom pricing
Example
{'price_list_id': 1002, 'price_list_customers': [{'customer_id': 2002}]}
CreatePriceListRequest
¶
Request payload for creating a new price list with market-specific pricing configurations
Example
{'name': 'Premium Customer Pricing'}
CreatePriceListRowRequest
¶
Request payload for adding product variants with specific pricing to a price list
Example
{'price_list_id': 1001, 'price_list_rows': [{'variant_id': 201, 'adjustment_method': 'fixed', 'amount': 249.99}]}
CreateProductOperationRowItem
¶
A single product operation row item in a bulk create request
CreateProductOperationRowsRequest
¶
Request payload for creating product operation rows in bulk
CreateProductRequest
¶
Request payload for creating a new finished product with variants, configurations, and manufacturing specifications
Example:
{'name': 'Professional Kitchen Knife Set', 'uom': 'set', 'category_name': 'Kitchen Equipment', 'is_sellable':
True, 'is_producible': True, 'is_purchasable': False, 'is_auto_assembly': False, 'additional_info': 'High-
quality steel construction with ergonomic handles', 'batch_tracked': False, 'serial_tracked': True,
'operations_in_sequence': True, 'configs': [{'name': 'Piece Count', 'values': ['6-piece', '8-piece',
'12-piece']}, {'name': 'Handle Material', 'values': ['Steel', 'Wooden', 'Composite']}], 'variants': [{'sku':
'KNF-PRO-8PC-STL', 'sales_price': 299.99, 'purchase_price': 150.0, 'supplier_item_codes': ['KNF-8PC-STEEL-001'],
'lead_time': 14, 'minimum_order_quantity': 1, 'config_attributes': [{'config_name': 'Piece Count',
'config_value': '8-piece'}, {'config_name': 'Handle Material', 'config_value': 'Steel'}]}]}
CreatePurchaseOrderAdditionalCostRowRequest
¶
Request payload for adding additional costs (shipping, duties, handling fees) to a purchase order
Example
{'additional_cost_id': 1, 'group_id': 1, 'tax_rate_id': 1, 'price': 125.0, 'distribution_method': 'BY_VALUE'}
CreatePurchaseOrderRequest
¶
Request payload for creating a new purchase order to procure materials or products from suppliers
Example
{'order_no': 'PO-2024-0156', 'entity_type': 'regular', 'supplier_id': 4001, 'currency': 'USD', 'status': 'NOT_RECEIVED', 'order_created_date': '2024-01-15T09:30:00Z', 'location_id': 1, 'additional_info': "Rush order - needed for Valentine's Day production run", 'purchase_order_rows': [{'quantity': 250, 'price_per_unit': 2.85, 'variant_id': 501, 'tax_rate_id': 1, 'purchase_uom': 'kg', 'purchase_uom_conversion_rate': 1.0, 'arrival_date': '2024-08-20T14:45:00Z'}, {'quantity': 100, 'price_per_unit': 12.5, 'variant_id': 502, 'tax_rate_id': 1, 'purchase_uom': 'pieces', 'purchase_uom_conversion_rate': 1.0, 'arrival_date': '2024-08-20T14:45:00Z'}]}
Attributes:
-
supplier_id(int) –Unique identifier of the supplier providing the materials or services
-
location_id(int) –Primary location where the purchased items will be received and stored
-
purchase_order_rows(list[PurchaseOrderRowRequest]) –List of line items being ordered, including quantities and pricing
-
order_no(str | Unset) –Unique purchase order number for tracking and reference. Optional — Katana auto-generates a sequential
PO-Nvalue when omitted. -
entity_type(PurchaseOrderEntityType | Unset) –Type of purchase order - regular for materials or outsourced for subcontracted work
-
currency(str | Unset) –Active ISO 4217 currency code (e.g. USD, EUR).
-
status(CreatePurchaseOrderInitialStatus | Unset) –Initial status when creating a purchase order
-
order_created_date(datetime | Unset) –Date when the purchase order was created
-
additional_info(str | Unset) –Optional notes or special instructions for the supplier
-
expected_arrival_date(datetime | Unset) –Expected date when the purchase order items will arrive
-
tracking_location_id(int | Unset) –Location ID for tracking outsourced orders
CreatePurchaseOrderRowRequest
¶
Request payload for adding a new line item to an existing purchase order
Example
{'purchase_order_id': 156, 'quantity': 50, 'variant_id': 503, 'tax_rate_id': 1, 'price_per_unit': 8.75, 'purchase_uom_conversion_rate': 1.0, 'purchase_uom': 'pieces', 'arrival_date': '2024-02-15T10:00:00Z'}
CreateRecipesRequest
¶
Request payload for creating recipe rows (deprecated in favor of BOM rows)
Example
{'keep_current_rows': True, 'rows': [{'ingredient_variant_id': 1001, 'product_variant_id': 2001, 'quantity': 2.5, 'notes': 'Primary ingredient'}]}
CreateSalesOrderAddressRequest
¶
Request payload for creating a new sales order address
Example
{'sales_order_id': 2001, 'entity_type': 'shipping', 'first_name': 'John', 'last_name': 'Johnson', 'company': "Johnson's Restaurant", 'line_1': '123 Main Street', 'city': 'Portland', 'state': 'OR', 'zip': '97201', 'country': 'US', 'phone': '+1-555-0123'}
Attributes:
-
sales_order_id(int) –ID of the sales order this address belongs to
-
entity_type(AddressEntityType) –Address type - billing for invoicing, shipping for delivery
-
first_name(str | Unset) –First name for the address contact
-
last_name(str | Unset) –Last name for the address contact
-
company(str | Unset) –Company name for the address
-
line_1(str | Unset) –Primary address line
-
line_2(str | Unset) –Secondary address line
-
city(str | Unset) –City name
-
state(str | Unset) –State or province
-
zip_(str | Unset) –Postal code
-
country(str | Unset) –Country code
-
phone(str | Unset) –Contact phone number
CreateSalesOrderFulfillmentRequest
¶
Request payload for creating a new sales order fulfillment
CreateSalesOrderRequest
¶
Request payload for creating a new sales order with customer information, order lines, and delivery details
Example
{'order_no': 'SO-2024-002', 'customer_id': 1501, 'sales_order_rows': [{'quantity': 3, 'variant_id': 2101, 'tax_rate_id': 301, 'location_id': 1, 'price_per_unit': 599.99, 'total_discount': 50.0, 'attributes': [{'key': 'engrave_text', 'value': 'Professional Kitchen'}, {'key': 'rush_order', 'value': 'true'}]}], 'tracking_number': None, 'tracking_number_url': None, 'addresses': [{'entity_type': 'billing', 'first_name': 'David', 'last_name': 'Wilson', 'company': "Wilson's Catering", 'line_1': '456 Commerce Ave', 'city': 'Seattle', 'state': 'WA', 'zip': '98101', 'country': 'US'}, {'entity_type': 'shipping', 'first_name': 'David', 'last_name': 'Wilson', 'company': "Wilson's Catering", 'line_1': '789 Industrial Blvd', 'city': 'Seattle', 'state': 'WA', 'zip': '98102', 'country': 'US'}], 'order_created_date': '2024-01-16T09:00:00Z', 'delivery_date': '2024-01-23T15:00:00Z', 'currency': 'USD', 'location_id': 1, 'status': 'PENDING', 'additional_info': 'Customer prefers morning delivery', 'customer_ref': 'WC-ORDER-2024-003', 'ecommerce_order_type': 'wholesale', 'ecommerce_store_name': 'B2B Portal', 'ecommerce_order_id': 'B2B-7891-2024'}
Attributes:
-
customer_id(int) –ID of the customer placing the order
-
sales_order_rows(list[CreateSalesOrderRequestSalesOrderRowsItem]) –List of products and quantities being ordered
-
order_no(str | Unset) –Unique order number for tracking and reference. Optional — Katana auto-generates a sequential
SO-Nvalue when omitted. -
tracking_number(None | str | Unset) –Shipping tracking number if already known
-
tracking_number_url(None | str | Unset) –URL for tracking shipment status
-
addresses(list[CreateSalesOrderRequestAddressesItem] | Unset) –Billing and shipping addresses for the order. Inline-create shape —
sales_order_idis implicit (set by the parent sales-order create) and server-assigned fields (id/sales_order_id) are rejected by the live API on this endpoint. For the standalone create endpoint (POST /sales_order_addresses) seeCreateSalesOrderAddressRequest. -
order_created_date(datetime | None | Unset) –Date when the order was originally created (defaults to current time)
-
delivery_date(datetime | None | Unset) –Requested delivery date
-
currency(None | str | Unset) –Currency code for the order (defaults to company base currency)
-
location_id(int | Unset) –Primary fulfillment location for the order
-
status(CreateSalesOrderStatus | Unset) –Initial status when creating a sales order
-
additional_info(None | str | Unset) –Additional notes or instructions for the order
-
customer_ref(None | str | Unset) –Customer's internal reference number
-
ecommerce_order_type(None | str | Unset) –Type of ecommerce order if applicable
-
ecommerce_store_name(None | str | Unset) –Name of the ecommerce store if order originated from online
-
ecommerce_order_id(None | str | Unset) –Original order ID from the ecommerce platform
-
custom_fields(CreateSalesOrderRequestCustomFieldsType0 | None | Unset) –Custom field values for the sales order, keyed by the definition
id(UUID) — theidreturned byGET /custom_field_definitions, not the field label. Each value matches the definition'sfield_type: string forshortText/url, number fornumber, boolean forboolean, aYYYY-MM-DDstring fordate, or the integer choiceidforsingleSelect. Example (keys are definition UUIDs):{"0c8f1d6e-…": "EMEA", "7a21b4c2-…": 2}— ashortTextvalue and asingleSelectchoiceid. Keys are tenant-specific, so the schema declaresadditionalProperties: truerather than enumerating them.
CreateSalesOrderRequestCustomFieldsType0
¶
Custom field values for the sales order, keyed by the
definition id (UUID) — the id returned by
GET /custom_field_definitions, not the field label. Each
value matches the definition's field_type: string for
shortText / url, number for number, boolean for
boolean, a YYYY-MM-DD string for date, or the
integer choice id for singleSelect. Example (keys are
definition UUIDs): {"0c8f1d6e-…": "EMEA", "7a21b4c2-…": 2}
— a shortText value and a singleSelect choice id.
Keys are tenant-specific, so the schema declares
additionalProperties: true rather than enumerating them.
CreateSalesOrderRequestSalesOrderRowsItemCustomFieldsType0
¶
Row-level custom field values, keyed by the
definition id (UUID) — the id returned by
GET /custom_field_definitions, not the field label.
Each value matches the definition's field_type:
string for shortText / url, number for
number, boolean for boolean, a YYYY-MM-DD
string for date, or the integer choice id for
singleSelect. Keys are tenant-specific, so the schema
declares additionalProperties: true rather than
enumerating them.
CreateSalesOrderRowRequest
¶
Request payload for creating a new sales order row (line item)
Example
{'sales_order_id': 2001, 'variant_id': 2101, 'quantity': 2, 'price_per_unit': 599.99, 'tax_rate_id': 301, 'location_id': 1}
CreateSalesOrderRowRequestCustomFieldsType0
¶
Row-level custom field values, keyed by the
definition id (UUID) — the id returned by
GET /custom_field_definitions, not the field label. Each
value matches the definition's field_type: string for
shortText / url, number for number, boolean for
boolean, a YYYY-MM-DD string for date, or the
integer choice id for singleSelect. Keys are
tenant-specific, so the schema declares
additionalProperties: true rather than enumerating them.
CreateSalesOrderShippingFeeRequest
¶
Request payload for adding a shipping fee to an existing sales order
Example
{'sales_order_id': 2001, 'amount': '25.99', 'description': 'Express Shipping - Next Day Delivery', 'tax_rate_id': 301}
CreateSalesReturnRequest
¶
Request payload for creating a new sales return to process customer product returns and refunds
Example
{'sales_order_id': 2001, 'order_created_date': '2023-10-10T10:00:00Z', 'return_location_id': 1, 'order_no': 'SR-2023-001', 'additional_info': 'Customer reported damaged items during shipping'}
CreateSalesReturnRowRequest
¶
Request payload for creating a new sales return row with product and quantity information
CreateSerialNumberFailedItem
¶
Single per-string failure block on a CreateSerialNumbersResponse.
Carries the input serial_number string and a reason code so
the caller can react without inspecting status code or response
body shape.
CreateSerialNumbersRequest
¶
Request payload for creating serial numbers for a resource
CreateSerialNumbersResponse
¶
Response from POST /serial_numbers. The endpoint can partial-
fail: any string the API rejects (DUPLICATE on the mint path,
MISSING on the transfer path) lands in failed while the rest
succeed. The call still returns 200 in the partial-failure case.
Example:
{'successful': [{'id': 886853, 'transaction_id': '0f054aa0-1234-5678-9abc-def012345678', 'serial_number':
'KNF001234567', 'resource_type': 'ManufacturingOrder', 'resource_id': 16920710, 'transaction_date':
'2024-01-15T08:00:00.000Z', 'quantity_change': 0}], 'failed': [{'serial_number': 'KNF001234568', 'reason':
'DUPLICATE'}]}
CreateServiceRequest
¶
Request payload for creating a new service with variants and specifications
Example
{'name': 'Assembly Service', 'uom': 'hours', 'category_name': 'Manufacturing Services', 'additional_info': 'Professional product assembly service', 'is_sellable': True, 'custom_field_collection_id': 1, 'variants': [{'sku': 'ASSM-001', 'sales_price': 75.0, 'default_cost': 50.0, 'custom_fields': [{'field_name': 'Skill Level', 'field_value': 'Expert'}]}]}
CreateServiceVariantRequest
¶
Request payload for creating a service variant with pricing and custom fields
Example
{'sku': 'ASSM-001', 'sales_price': 75.0, 'default_cost': 50.0, 'custom_fields': [{'field_name': 'Skill Level', 'field_value': 'Expert'}]}
CreateStockAdjustmentRequest
¶
Request payload for creating a new stock adjustment to correct inventory levels
Example
{'stock_adjustment_number': 'SA-2024-003', 'stock_adjustment_date': '2024-01-17T14:30:00.000Z', 'location_id': 1, 'reason': 'Cycle count correction', 'additional_info': 'Q1 2024 physical inventory', 'stock_adjustment_rows': [{'variant_id': 501, 'quantity': 100, 'cost_per_unit': 123.45}, {'variant_id': 502, 'quantity': -25}]}
CreateStockTransferRequest
¶
Request payload for creating a new stock transfer
CreateStocktakeRequest
¶
Request payload for creating a new stocktake to perform physical inventory counting
Example
{'stocktake_number': 'STK-2024-003', 'location_id': 1, 'reason': 'Quarterly inventory count', 'additional_info': 'Annual audit'}
CreateStocktakeRowRequest
¶
Request payload for creating stocktake rows for counting specific variants
Example
{'stocktake_id': 4001, 'stocktake_rows': [{'variant_id': 3001, 'counted_quantity': 147.0, 'notes': 'Initial count'}]}
CreateSupplierAddressRequest
¶
Request payload for creating a new address for an existing supplier
Example
{'supplier_id': 4001, 'line_1': '856 Distribution Center Dr', 'line_2': None, 'city': 'Milwaukee', 'state': 'WI', 'zip': '53218', 'country': 'US'}
CreateSupplierRequest
¶
Request payload for creating a new supplier with contact information and addresses
Example
{'name': 'Premium Kitchen Supplies Ltd', 'currency': 'USD', 'email': 'orders@premiumkitchen.com', 'phone': '+1-555-0134', 'comment': 'Primary supplier for kitchen equipment and utensils', 'addresses': [{'line_1': '1250 Industrial Blvd', 'line_2': 'Suite 200', 'city': 'Chicago', 'state': 'IL', 'zip': '60601', 'country': 'US'}]}
CreateTaxRateRequest
¶
Request payload for creating a new tax rate to be applied to sales and purchase orders for financial compliance
Example
{'name': 'VAT 20%', 'rate': 20.0}
CreateVariantRequest
¶
Request payload for creating a new product or material variant with specific SKU and configuration attributes.
Parent reference: specify exactly one of product_id or
material_id, never both — variants are scoped to a single parent
item.
Example:
{'sku': 'KNF-PRO-12PC-WD', 'sales_price': 399.99, 'purchase_price': 200.0, 'product_id': 101, 'material_id':
None, 'supplier_item_codes': ['SUP-KNF-12PC-002'], 'internal_barcode': 'INT-KNF-002', 'registered_barcode':
'789123456790', 'lead_time': 10, 'minimum_order_quantity': 1, 'config_attributes': [{'config_name': 'Piece
Count', 'config_value': '12-piece'}, {'config_name': 'Handle Material', 'config_value': 'Wood'}],
'custom_fields': [{'field_name': 'Warranty Period', 'field_value': '5 years'}, {'field_name': 'Care
Instructions', 'field_value': 'Hand wash only'}]}
CreateWebhookRequest
¶
Request payload for creating a new webhook subscription to receive real-time event notifications
Example
{'url': 'https://api.customer.com/webhooks/katana', 'enabled': True, 'subscribed_events': ['sales_order.created', 'sales_order.delivered', 'current_inventory.product_out_of_stock', 'manufacturing_order.done'], 'description': 'ERP integration webhook for inventory and order sync'}
CustomField
¶
Individual custom field definition with validation rules and configuration options
Example
{'id': 10, 'name': 'quality_grade', 'field_type': 'select', 'label': 'Quality Grade', 'required': True, 'options': ['A', 'B', 'C']}
CustomFieldChoice
¶
A single singleSelect choice as it appears on read and update.
The integer id is what gets stored on the entity; label is
the human-readable text resolved client-side.
Example:
{'id': 1, 'label': 'Online'}
CustomFieldChoiceCreate
¶
A single singleSelect choice as supplied on
POST /custom_field_definitions. Send only the label — the
server assigns the integer id and returns it in the response.
Example:
{'label': 'Online'}
CustomFieldDefinition
¶
A partner-defined custom field that callers register once via
POST /custom_field_definitions and then attach values for on a
sales order (or sales order row) through that resource's
custom_fields property, keyed by this definition's id
(UUID).
Scope today: entity_type is limited to SalesOrder /
SalesOrderRow (see CustomFieldEntityType). A factory may
hold at most 50 definitions. field_type, entity_type,
and source are immutable after creation; only label,
description, and options may be updated.
Example:
{'id': '0c8f1d6e-3c2a-4f5b-9d77-12ab34cd56ef', 'label': 'Channel', 'field_type': 'shortText', 'entity_type':
'SalesOrder', 'source': 'your-integration', 'description': 'Customer-facing sales channel classification',
'options': None, 'created_at': '2026-05-14T10:00:00Z', 'updated_at': '2026-05-14T10:00:00Z', 'deleted_at': None}
CustomFieldDefinitionListResponse
¶
List of custom field definitions
Example
{'data': [{'id': '0c8f1d6e-3c2a-4f5b-9d77-12ab34cd56ef', 'label': 'Channel', 'field_type': 'shortText', 'entity_type': 'SalesOrder', 'source': 'your-integration', 'description': 'Customer-facing sales channel classification', 'options': None, 'created_at': '2026-05-14T10:00:00Z', 'updated_at': '2026-05-14T10:00:00Z', 'deleted_at': None}]}
CustomFieldOptions
¶
Choice configuration for a singleSelect custom field definition,
as returned on read and supplied on update.
Example:
{'choices': [{'id': 1, 'label': 'Online'}, {'id': 2, 'label': 'Retail'}, {'id': 3, 'label': 'Wholesale'}]}
CustomFieldOptionsCreate
¶
Choice configuration supplied when creating a singleSelect
custom field definition. Each choice carries only a label; the
server assigns each one an integer id.
Example:
{'choices': [{'label': 'Online'}, {'label': 'Retail'}, {'label': 'Wholesale'}]}
CustomFieldValue
¶
A single custom field value in the legacy {field_name,
field_value} shape used by Variant / Product / Material / Service
resources. These fields are configured via the
/custom_fields_collections surface and attached as an array
of name/value pairs.
This is distinct from — and must not be unified with — the newer
sales-order custom-fields surface, where custom_fields is a
dict keyed by custom field definition id (UUID) registered
through /custom_field_definitions (see CustomFieldDefinition
and the custom_fields property on SalesOrder /
SalesOrderRow). The two surfaces coexist intentionally; Katana
has not migrated items/variants to the dict shape.
Example:
{'field_name': 'quality_grade', 'field_value': 'A'}
CustomFieldsCollection
¶
Collection of custom field definitions that can be applied to specific business objects for extended data capture
Example
{'id': 5, 'name': 'Product Quality Specifications', 'resource_type': 'product', 'custom_fields': [{'id': 10, 'name': 'quality_grade', 'field_type': 'select', 'label': 'Quality Grade', 'required': True, 'options': ['A', 'B', 'C']}, {'id': 11, 'name': 'certification_date', 'field_type': 'date', 'label': 'Certification Date', 'required': False}], 'created_at': '2024-01-08T10:00:00Z', 'updated_at': '2024-01-12T15:30:00Z'}
CustomFieldsCollectionListResponse
¶
List of custom field collections configured for extending business object data capture
Example
{'data': [{'id': 5, 'name': 'Product Quality Specifications', 'resource_type': 'product', 'custom_fields': [{'id': 10, 'name': 'quality_grade', 'field_type': 'select', 'label': 'Quality Grade', 'required': True, 'options': ['A', 'B', 'C']}, {'id': 11, 'name': 'certification_date', 'field_type': 'date', 'label': 'Certification Date', 'required': False}], 'created_at': '2024-01-08T10:00:00Z', 'updated_at': '2024-01-12T15:30:00Z'}, {'id': 6, 'name': 'Customer Account Details', 'resource_type': 'customer', 'custom_fields': [{'id': 12, 'name': 'credit_limit', 'field_type': 'number', 'label': 'Credit Limit', 'required': True}, {'id': 13, 'name': 'payment_terms', 'field_type': 'select', 'label': 'Payment Terms', 'required': True, 'options': ['Net 30', 'Net 60', 'COD']}], 'created_at': '2024-01-10T11:00:00Z', 'updated_at': '2024-01-14T09:15:00Z'}]}
Customer
¶
Customer entity representing individuals or companies that purchase products or services
Example
{'id': 2001, 'name': 'Kitchen Pro Restaurants', 'first_name': 'Sarah', 'last_name': 'Johnson', 'company': 'Kitchen Pro Restaurants Ltd', 'email': 'orders@kitchenpro.com', 'phone': '+1-555-0123', 'comment': 'Preferred customer - high volume orders', 'currency': 'USD', 'reference_id': 'KPR-2024-001', 'category': 'Restaurant Chain', 'discount_rate': 5.0, 'default_billing_id': 3001, 'default_shipping_id': 3002, 'created_at': '2024-01-10T09:00:00Z', 'updated_at': '2024-01-15T14:30:00Z', 'deleted_at': None}
CustomerAddress
¶
Customer address for billing and shipping purposes with complete contact information
Example
{'id': 3001, 'customer_id': 2001, 'entity_type': 'billing', 'default': True, 'first_name': 'Sarah', 'last_name': 'Johnson', 'company': 'Kitchen Pro Restaurants Ltd', 'phone': '+1-555-0123', 'line_1': '123 Restaurant Row', 'line_2': 'Suite 200', 'city': 'Chicago', 'state': 'IL', 'zip': '60601', 'country': 'US', 'created_at': '2024-01-10T09:15:00Z', 'updated_at': '2024-01-10T09:15:00Z'}
CustomerAddressListResponse
¶
Response containing a list of customer addresses with complete contact information
Example
{'data': [{'id': 3001, 'customer_id': 2001, 'entity_type': 'billing', 'default': True, 'first_name': 'Sarah', 'last_name': 'Johnson', 'company': 'Kitchen Pro Restaurants Ltd', 'phone': '+1-555-0123', 'line_1': '123 Restaurant Row', 'line_2': 'Suite 200', 'city': 'Chicago', 'state': 'IL', 'zip': '60601', 'country': 'US', 'created_at': '2024-01-10T09:15:00Z', 'updated_at': '2024-01-10T09:15:00Z'}, {'id': 3002, 'customer_id': 2001, 'entity_type': 'shipping', 'default': True, 'first_name': 'David', 'last_name': 'Kim', 'company': 'Kitchen Pro Restaurants Ltd', 'phone': '+1-555-0126', 'line_1': '456 Delivery Avenue', 'line_2': 'Loading Dock B', 'city': 'Chicago', 'state': 'IL', 'zip': '60602', 'country': 'US', 'created_at': '2024-01-10T09:20:00Z', 'updated_at': '2024-01-10T09:20:00Z'}]}
CustomerListResponse
¶
Response containing a list of customers with pagination metadata
Example
{'data': [{'id': 2001, 'name': 'Kitchen Pro Restaurants', 'first_name': 'Sarah', 'last_name': 'Johnson', 'company': 'Kitchen Pro Restaurants Ltd', 'email': 'orders@kitchenpro.com', 'phone': '+1-555-0123', 'comment': 'Preferred customer - high volume orders', 'currency': 'USD', 'reference_id': 'KPR-2024-001', 'category': 'Restaurant Chain', 'discount_rate': 5.0, 'default_billing_id': 3001, 'default_shipping_id': 3002, 'created_at': '2024-01-10T09:00:00Z', 'updated_at': '2024-01-15T14:30:00Z', 'deleted_at': None}, {'id': 2002, 'name': "Baker's Choice Bakery", 'first_name': 'Michael', 'last_name': 'Chen', 'company': "Baker's Choice Bakery", 'email': 'mike@bakerschoice.com', 'phone': '+1-555-0124', 'comment': 'Weekly wholesale orders', 'currency': 'USD', 'reference_id': 'BC-2024-002', 'category': 'Bakery', 'discount_rate': 3.0, 'default_billing_id': 3003, 'default_shipping_id': 3004, 'created_at': '2024-01-12T10:30:00Z', 'updated_at': '2024-01-18T16:45:00Z', 'deleted_at': None}]}
Attributes:
DeletableEntity
¶
Common fields for entities that can be deleted
Example
{'id': 12345, 'created_at': '2020-10-23T10:37:05.085Z', 'updated_at': '2020-10-23T10:37:05.085Z', 'deleted_at': None}
DeleteSerialNumbersRequest
¶
Request payload for deleting serial numbers from a resource. The
delete is scoped to a single resource (resource_type +
resource_id) and a list of serial-number IDs.
Example:
{'resource_type': 'ManufacturingOrder', 'resource_id': 3001, 'ids': [1001, 1002]}
DemandForecastPeriod
¶
A single demand forecast period with stock and demand quantities
Example
{'period_start': '2024-01-01T00:00:00.000Z', 'period_end': '2024-01-06T23:59:59.999Z', 'in_stock': '125', 'expected': '50', 'committed': '25'}
DemandForecastResponse
¶
Demand forecast for a variant in a specific location with period breakdowns
Example
{'variant_id': 1, 'location_id': 1, 'in_stock': '100', 'periods': [{'period_start': '2024-01-01T00:00:00.000Z', 'period_end': '2024-01-06T23:59:59.999Z', 'in_stock': '125', 'expected': '50', 'committed': '25'}]}
DependenciesValidationError
¶
Ajv dependencies / dependentRequired keyword: presence of one
property requires others. info carries the offending property,
the missing dependent, and the full dependency list.
DependenciesValidationErrorInfo
¶
Keyword-specific metadata for dependencies
DetailedErrorResponse
¶
Enhanced error response containing detailed validation error information for complex request failures
EnumValidationError
¶
Ajv enum keyword: the value is not in the allowed set.
info.allowedValues is the schema's enum list.
EnumValidationErrorInfo
¶
Keyword-specific metadata for enum
ErrorResponse
¶
Base error message schema
ExclusiveMaximumValidationError
¶
Ajv exclusiveMaximum keyword: the value must be strictly less than
info.limit.
ExclusiveMaximumValidationErrorInfo
¶
Keyword-specific metadata for exclusiveMaximum
ExclusiveMinimumValidationError
¶
Ajv exclusiveMinimum keyword: the value must be strictly greater
than info.limit.
ExclusiveMinimumValidationErrorInfo
¶
Keyword-specific metadata for exclusiveMinimum
Factory
¶
Factory configuration object (singleton resource without ID)
Example
{'legal_address': {'line_1': 'Peetri 7', 'line_2': 'Apartment 1', 'city': 'Tallinn', 'state': 'State', 'zip': '10411', 'country': 'Estonia'}, 'legal_name': 'Legal name', 'display_name': 'Display name', 'base_currency_code': 'USD', 'default_so_delivery_time': '2021-10-13T15:31:48.490Z', 'default_po_lead_time': '2021-10-13T15:31:48.490Z', 'default_manufacturing_location_id': 1, 'default_purchases_location_id': 1, 'default_sales_location_id': 1, 'inventory_closing_date': '2022-01-28T23:59:59.000Z'}
FactoryLegalAddress
¶
Legal address information
FormatValidationError
¶
Ajv format keyword (e.g. email, date-time, uri). The
expected format name lives in info.format.
FormatValidationErrorInfo
¶
Keyword-specific metadata for format
GenericValidationError
¶
Permissive fallback for any Ajv keyword we haven't yet typed. The
code field is unconstrained (just string), so any wire value
validates here when none of the typed variants match.
BaseValidationError fields (path, code, message) are
guaranteed; any keyword-specific info lives in
additional_properties.
Listed last in ValidationErrorDetail.oneOf so deserializers try
the typed variants first and only land here for unknown keywords.
Inventory
¶
Represents the current inventory state for a specific product variant at a location. Includes stock levels, commitments, expectations, and financial information.
Example:
{'variant_id': 3001, 'location_id': 1, 'safety_stock_level': '25.0', 'reorder_point': '25.0', 'average_cost':
'15.50', 'value_in_stock': '2325.00', 'quantity_in_stock': '150.0', 'quantity_committed': '25.0',
'quantity_expected': '50.0', 'quantity_missing_or_excess': '0.0', 'quantity_potential': '175.0'}
InventoryItem
¶
Base schema for products and materials with common inventory management features including tracking, supplier relationships, and variant configurations
InventoryListResponse
¶
List of current inventory levels showing stock quantities for all variants across all locations
Example
{'data': [{'id': 1001, 'variant_id': 3001, 'location_id': 1, 'quantity_on_hand': 150.0, 'quantity_allocated': 25.0, 'quantity_available': 125.0, 'safety_stock_level': '25.0', 'reorder_point': '25.0', 'average_cost': '25.5', 'value_in_stock': '3825.0', 'quantity_in_stock': '150.0', 'quantity_committed': '25.0', 'quantity_expected': '50.0', 'quantity_missing_or_excess': '0.0', 'quantity_potential': '175.0', 'total_value': 3825.0, 'created_at': '2024-01-15T08:00:00.000Z', 'updated_at': '2024-01-15T12:30:00.000Z'}, {'id': 1002, 'variant_id': 3002, 'location_id': 1, 'quantity_on_hand': 75.0, 'quantity_allocated': 10.0, 'quantity_available': 65.0, 'safety_stock_level': '30.0', 'reorder_point': '30.0', 'average_cost': '45.0', 'value_in_stock': '3375.0', 'quantity_in_stock': '75.0', 'quantity_committed': '10.0', 'quantity_expected': '25.0', 'quantity_missing_or_excess': '0.0', 'quantity_potential': '90.0', 'total_value': 3375.0, 'created_at': '2024-01-15T08:00:00.000Z', 'updated_at': '2024-01-15T14:15:00.000Z'}]}
InventoryMovement
¶
Record of inventory quantity changes caused by transactions like sales, purchases, manufacturing, or adjustments
Example
{'id': 12345, 'variant_id': 3001, 'location_id': 1, 'resource_type': 'PurchaseOrderRow', 'resource_id': 5001, 'caused_by_order_no': 'PO-2024-001', 'caused_by_resource_id': 5001, 'movement_date': '2024-01-15T10:30:00.000Z', 'quantity_change': 100.0, 'balance_after': 500.0, 'value_per_unit': 25.5, 'value_in_stock_after': 12750.0, 'average_cost_after': 25.5, 'rank': 1, 'created_at': '2024-01-15T10:30:00.000Z', 'updated_at': '2024-01-15T10:30:00.000Z'}
InventoryMovementListResponse
¶
A list of inventory movement records tracking stock changes, transfers, and adjustments across locations.
Example
{'data': [{'id': 5001, 'variant_id': 2002, 'location_id': 1, 'resource_type': 'PurchaseOrderRow', 'resource_id': 1001, 'caused_by_order_no': 'PO-2024-001', 'caused_by_resource_id': 1001, 'movement_type': 'TRANSFER_IN', 'movement_date': '2023-10-15T14:30:00Z', 'quantity': 10.0, 'quantity_change': 10.0, 'balance_after': 100.0, 'cost_per_unit': 12.5, 'value_per_unit': 12.5, 'total_cost': 125.0, 'value_in_stock_after': 1250.0, 'average_cost_after': 12.5, 'reference_id': 1001, 'notes': 'Received from supplier shipment', 'created_at': '2023-10-15T14:30:00Z', 'updated_at': '2023-10-15T14:30:00Z'}]}
InventoryReorderPoint
¶
Configuration that defines the minimum inventory level that triggers automatic reordering for a specific variant at a location
InventoryReorderPointResponse
¶
Complete inventory reorder point configuration including metadata and creation/update timestamps
InventorySafetyStockLevel
¶
Safety stock level configuration to maintain minimum inventory buffers and prevent stockouts
Example
{'location_id': 1, 'variant_id': 3001, 'value': 25.0}
InventorySafetyStockLevelResponse
¶
Complete safety stock level configuration with metadata including timestamps and deletion status
Example
{'id': 1001, 'variant_id': 1, 'location_id': 1, 'value': 10, 'created_at': '2020-10-23T10:37:05.085Z', 'updated_at': '2020-10-23T10:37:05.085Z', 'deleted_at': None}
ItemConfig
¶
Configuration option for products and materials that defines variant attributes
Example
{'id': 201, 'name': 'Type', 'values': ['Standard', 'Double-bladed'], 'product_id': 1, 'material_id': None}
Location
¶
Manufacturing location or warehouse facility where inventory is managed and operations are performed
Example
{'id': 1, 'name': 'Main location', 'legal_name': 'Amazon', 'address_id': 1, 'address': {'id': 1, 'city': 'New York', 'country': 'US', 'line_1': '10 East 20th Example St', 'line_2': '', 'state': 'New York', 'zip': '10000'}, 'is_primary': True, 'sales_allowed': True, 'purchase_allowed': True, 'manufacturing_allowed': True, 'created_at': '2020-10-23T10:37:05.085Z', 'updated_at': '2020-10-23T10:37:05.085Z', 'deleted_at': None}
LocationAddress
¶
Physical address information for manufacturing locations and warehouse facilities
Example
{'id': 5001, 'city': 'Austin', 'country': 'US', 'line_1': '1500 Industrial Blvd', 'line_2': 'Building A', 'state': 'TX', 'zip': '78745'}
LocationListResponse
¶
Response containing a list of locations
MakeToOrderManufacturingOrderRequest
¶
Request to create a manufacturing order directly from a sales order row, linking production to customer demand for make-to-order manufacturing.
Example:
{'sales_order_row_id': 2501, 'create_subassemblies': True}
ManufacturingOrder
¶
Represents a manufacturing order for producing products, tracking production status, costs, and timeline from creation to completion.
Example:
{'id': 3001, 'status': 'IN_PROGRESS', 'order_no': 'MO-2024-001', 'variant_id': 2101, 'planned_quantity': 50,
'actual_quantity': 35, 'location_id': 1, 'order_created_date': '2024-01-15T08:00:00Z',
'production_deadline_date': '2024-01-25T17:00:00Z', 'additional_info': 'Priority order for new product launch',
'is_linked_to_sales_order': True, 'ingredient_availability': 'IN_STOCK', 'total_cost': 12500.0,
'total_actual_time': 140.5, 'total_planned_time': 200.0, 'sales_order_id': 2001, 'sales_order_row_id': 2501,
'sales_order_delivery_deadline': '2024-01-30T12:00:00Z', 'material_cost': 8750.0, 'subassemblies_cost': 2250.0,
'operations_cost': 1500.0, 'serial_numbers': [{'id': 1, 'transaction_id': 'MO-2024-001-001', 'serial_number':
'PKS-001-240115', 'resource_type': 'ManufacturingOrder', 'resource_id': 3001, 'transaction_date':
'2024-01-15T08:00:00Z', 'quantity_change': 1}, {'id': 2, 'transaction_id': 'MO-2024-001-002', 'serial_number':
'PKS-002-240115', 'resource_type': 'ManufacturingOrder', 'resource_id': 3001, 'transaction_date':
'2024-01-15T08:00:00Z', 'quantity_change': 1}, {'id': 3, 'transaction_id': 'MO-2024-001-003', 'serial_number':
'PKS-003-240115', 'resource_type': 'ManufacturingOrder', 'resource_id': 3001, 'transaction_date':
'2024-01-15T08:00:00Z', 'quantity_change': 1}], 'created_at': '2024-01-15T08:00:00Z', 'updated_at':
'2024-01-20T14:30:00Z', 'deleted_at': None}
ManufacturingOrderListResponse
¶
Response containing a list of manufacturing orders with pagination support for retrieving production data.
Example
{'data': [{'id': 3001, 'status': 'IN_PROGRESS', 'order_no': 'MO-2024-001', 'variant_id': 2101, 'planned_quantity': 50, 'actual_quantity': 35, 'location_id': 1, 'order_created_date': '2024-01-15T08:00:00Z', 'production_deadline_date': '2024-01-25T17:00:00Z', 'additional_info': 'Priority order for new product launch', 'is_linked_to_sales_order': True, 'ingredient_availability': 'IN_STOCK', 'total_cost': 12500.0, 'total_actual_time': 140.5, 'total_planned_time': 200.0, 'sales_order_id': 2001, 'sales_order_row_id': 2501, 'sales_order_delivery_deadline': '2024-01-30T12:00:00Z', 'material_cost': 8750.0, 'subassemblies_cost': 2250.0, 'operations_cost': 1500.0, 'serial_numbers': [{'id': 1, 'transaction_id': 'MO-2024-001-001', 'serial_number': 'PKS-001-240115', 'resource_type': 'ManufacturingOrder', 'resource_id': 3001, 'transaction_date': '2024-01-15T08:00:00Z', 'quantity_change': 1}, {'id': 2, 'transaction_id': 'MO-2024-001-002', 'serial_number': 'PKS-002-240115', 'resource_type': 'ManufacturingOrder', 'resource_id': 3001, 'transaction_date': '2024-01-15T08:00:00Z', 'quantity_change': 1}, {'id': 3, 'transaction_id': 'MO-2024-001-003', 'serial_number': 'PKS-003-240115', 'resource_type': 'ManufacturingOrder', 'resource_id': 3001, 'transaction_date': '2024-01-15T08:00:00Z', 'quantity_change': 1}], 'created_at': '2024-01-15T08:00:00Z', 'updated_at': '2024-01-20T14:30:00Z', 'deleted_at': None}]}
ManufacturingOrderOperationProduction
¶
Record of actual work performed on a specific operation during manufacturing order production
ManufacturingOrderOperationRow
¶
Represents an individual operation step within a manufacturing order, tracking production operations, operator assignments, time, and costs.
Example:
{'id': 3801, 'status': 'IN_PROGRESS', 'type': 'process', 'rank': 1, 'manufacturing_order_id': 3001,
'operation_id': 401, 'operation_name': 'Cut Steel Sheets', 'resource_id': 501, 'resource_name': 'Laser Cutting
Machine', 'assigned_operators': [{'id': 101, 'operator_id': 101, 'name': 'John Smith', 'working_area':
'Production Floor A', 'resource_id': 501}], 'completed_by_operators': [], 'active_operator_id': 101,
'planned_time_per_unit': '15.0', 'planned_time_parameter': '1.0', 'total_actual_time': '12.5',
'planned_cost_per_unit': '45.0', 'total_actual_cost': '37.5', 'cost_per_hour': 180.0, 'cost_parameter': 1.0,
'group_boundary': 0, 'is_status_actionable': True, 'completed_at': None, 'created_at': '2024-01-15T08:00:00Z',
'updated_at': '2024-01-20T14:30:00Z', 'deleted_at': None}
ManufacturingOrderOperationRowListResponse
¶
Response containing a list of manufacturing order operation rows with time tracking and operator assignments
Example
{'data': [{'id': 1501, 'manufacturing_order_id': 1001, 'operation_id': 201, 'time': 45.5, 'total_actual_time': '52.3', 'completed_by_operators': [{'operator_id': 101, 'name': 'John Smith', 'deleted_at': None}], 'created_at': '2023-10-15T09:00:00Z', 'updated_at': '2023-10-15T10:30:00Z'}]}
ManufacturingOrderProduction
¶
Represents a completed production run within a manufacturing order, tracking actual quantities produced and resources consumed during manufacturing.
Example:
{'id': 3501, 'manufacturing_order_id': 3001, 'quantity': 25, 'production_date': '2024-01-20T14:30:00Z',
'ingredients': [{'id': 4001, 'location_id': 1, 'variant_id': 3101, 'manufacturing_order_id': 3001,
'manufacturing_order_recipe_row_id': 3201, 'production_id': 3501, 'quantity': 50.0, 'production_date':
'2024-01-20T14:30:00Z', 'cost': 125.0, 'created_at': '2024-01-20T14:30:00Z', 'updated_at':
'2024-01-20T14:30:00Z', 'deleted_at': None}], 'operations': [{'id': 3801, 'manufacturing_order_id': 3001,
'operation_id': 401, 'operation_name': 'Cut Steel Sheets', 'time': 15.0, 'cost': 45.0, 'created_at':
'2024-01-20T14:30:00Z', 'updated_at': '2024-01-20T14:30:00Z', 'deleted_at': None}], 'serial_numbers': [{'id': 1,
'transaction_id': 'PROD-3501-001', 'serial_number': 'PKS-001-240120', 'resource_type': 'Production',
'resource_id': 3501, 'transaction_date': '2024-01-20T14:30:00Z', 'quantity_change': 1}, {'id': 2,
'transaction_id': 'PROD-3501-002', 'serial_number': 'PKS-002-240120', 'resource_type': 'Production',
'resource_id': 3501, 'transaction_date': '2024-01-20T14:30:00Z', 'quantity_change': 1}], 'created_at':
'2024-01-20T14:30:00Z', 'updated_at': '2024-01-20T14:30:00Z', 'deleted_at': None}
ManufacturingOrderProductionIngredient
¶
Record of actual ingredient consumption during manufacturing order production, tracking quantities and costs
ManufacturingOrderProductionIngredientResponse
¶
Response containing ingredient consumption data for a manufacturing order production batch
Example
{'id': 4001, 'location_id': 1, 'variant_id': 2002, 'manufacturing_order_id': 1001, 'manufacturing_order_recipe_row_id': 1501, 'production_id': 2001, 'quantity': 2.5, 'production_date': '2023-10-15T10:30:00Z', 'cost': 12.5}
ManufacturingOrderProductionListResponse
¶
Response containing a list of production runs for manufacturing orders with pagination support for tracking production history.
Example:
{'data': [{'id': 3501, 'manufacturing_order_id': 3001, 'quantity': 25, 'production_date':
'2024-01-20T14:30:00Z', 'ingredients': [{'id': 4001, 'location_id': 1, 'variant_id': 3101,
'manufacturing_order_id': 3001, 'manufacturing_order_recipe_row_id': 3201, 'production_id': 3501, 'quantity':
50.0, 'production_date': '2024-01-20T14:30:00Z', 'cost': 125.0, 'created_at': '2024-01-20T14:30:00Z',
'updated_at': '2024-01-20T14:30:00Z', 'deleted_at': None}], 'operations': [{'id': 3801,
'manufacturing_order_id': 3001, 'operation_id': 401, 'operation_name': 'Cut Steel Sheets', 'time': 15.0, 'cost':
45.0, 'created_at': '2024-01-20T14:30:00Z', 'updated_at': '2024-01-20T14:30:00Z', 'deleted_at': None}],
'serial_numbers': [{'id': 1, 'transaction_id': 'PROD-3501-001', 'serial_number': 'PKS-001-240120',
'resource_type': 'Production', 'resource_id': 3501, 'transaction_date': '2024-01-20T14:30:00Z',
'quantity_change': 1}, {'id': 2, 'transaction_id': 'PROD-3501-002', 'serial_number': 'PKS-002-240120',
'resource_type': 'Production', 'resource_id': 3501, 'transaction_date': '2024-01-20T14:30:00Z',
'quantity_change': 1}], 'created_at': '2024-01-20T14:30:00Z', 'updated_at': '2024-01-20T14:30:00Z',
'deleted_at': None}]}
ManufacturingOrderRecipeRow
¶
Represents an ingredient or component required for a manufacturing order, tracking planned and actual quantities used in production.
Example:
{'id': 4001, 'manufacturing_order_id': 3001, 'variant_id': 3201, 'notes': 'Use only grade 304 material',
'planned_quantity_per_unit': '2.5000000000', 'total_actual_quantity': '125.0000000000',
'ingredient_availability': 'IN_STOCK', 'batch_transactions': [{'batch_id': 1201, 'quantity': 125.0}], 'cost':
'437.5000000000', 'created_at': '2024-01-15T08:00:00Z', 'updated_at': '2024-01-20T14:30:00Z', 'deleted_at':
None}
ManufacturingOrderRecipeRowListResponse
¶
Response containing a list of recipe rows (ingredients) for manufacturing orders with pagination support.
Example
{'data': [{'id': 4001, 'manufacturing_order_id': 3001, 'variant_id': 3201, 'notes': 'Use only grade 304 material', 'planned_quantity_per_unit': '2.5000000000', 'total_actual_quantity': '125.0000000000', 'ingredient_availability': 'IN_STOCK', 'batch_transactions': [{'batch_id': 1201, 'quantity': 125.0}], 'cost': '437.5000000000', 'created_at': '2024-01-15T08:00:00Z', 'updated_at': '2024-01-20T14:30:00Z', 'deleted_at': None}]}
Material
¶
Represents raw materials and components used in manufacturing, including inventory tracking, supplier information, and batch management.
Example:
{'id': 3201, 'name': 'Stainless Steel Sheet 304', 'uom': 'm²', 'category_name': 'Raw Materials',
'default_supplier_id': 1501, 'additional_info': 'Food-grade stainless steel, 1.5mm thickness', 'batch_tracked':
True, 'is_sellable': False, 'type': 'material', 'purchase_uom': 'sheet', 'purchase_uom_conversion_rate': 2.0,
'variants': [{'id': 5001, 'sku': 'STEEL-304-1.5MM', 'sales_price': None, 'purchase_price': 45.0, 'type':
'material', 'lead_time': 5, 'minimum_order_quantity': 1, 'config_attributes': [{'config_name': 'Grade',
'config_value': '304'}, {'config_name': 'Thickness', 'config_value': '1.5mm'}], 'created_at':
'2024-01-10T10:00:00Z', 'updated_at': '2024-01-15T14:30:00Z'}], 'configs': [{'id': 101, 'name': 'Grade',
'values': ['304', '316']}, {'id': 102, 'name': 'Thickness', 'values': ['1.5mm', '2.0mm', '3.0mm']}],
'custom_field_collection_id': 201, 'supplier': None, 'created_at': '2024-01-10T10:00:00Z', 'updated_at':
'2024-01-15T14:30:00Z', 'archived_at': None}
MaterialConfig
¶
Configuration option for a material that defines variant attributes
Example
{'id': 101, 'name': 'Grade', 'values': ['Premium', 'Standard', 'Economy'], 'material_id': 1}
MaterialListResponse
¶
Response containing a list of materials with pagination support for inventory and procurement management.
Example
{'data': [{'id': 3201, 'name': 'Stainless Steel Sheet 304', 'uom': 'm²', 'category_name': 'Raw Materials', 'default_supplier_id': 1501, 'additional_info': 'Food-grade stainless steel, 1.5mm thickness', 'batch_tracked': True, 'is_sellable': False, 'type': 'material', 'purchase_uom': 'sheet', 'purchase_uom_conversion_rate': 2.0, 'variants': [{'id': 5001, 'sku': 'STEEL-304-1.5MM', 'sales_price': None, 'purchase_price': 45.0, 'type': 'material', 'lead_time': 5, 'minimum_order_quantity': 1, 'config_attributes': [{'config_name': 'Grade', 'config_value': '304'}, {'config_name': 'Thickness', 'config_value': '1.5mm'}], 'created_at': '2024-01-10T10:00:00Z', 'updated_at': '2024-01-15T14:30:00Z'}, {'id': 5002, 'sku': 'STEEL-316-1.5MM', 'sales_price': None, 'purchase_price': 52.0, 'type': 'material', 'lead_time': 7, 'minimum_order_quantity': 1, 'config_attributes': [{'config_name': 'Grade', 'config_value': '316'}, {'config_name': 'Thickness', 'config_value': '1.5mm'}], 'created_at': '2024-01-10T10:00:00Z', 'updated_at': '2024-01-15T14:30:00Z'}], 'configs': [{'id': 101, 'name': 'Grade', 'values': ['304', '316']}, {'id': 102, 'name': 'Thickness', 'values': ['1.5mm', '2.0mm']}], 'custom_field_collection_id': 201, 'supplier': None, 'created_at': '2024-01-10T10:00:00Z', 'updated_at': '2024-01-15T14:30:00Z', 'archived_at': None}]}
MaxItemsValidationError
¶
Ajv maxItems keyword: the array exceeds its maximum length.
MaxItemsValidationErrorInfo
¶
Keyword-specific metadata for maxItems
MaxLengthValidationError
¶
Ajv maxLength keyword: the string exceeds its maximum length.
The limit lives in info.limit (not as a sibling of code).
MaxLengthValidationErrorInfo
¶
Keyword-specific metadata for maxLength
MaximumValidationError
¶
Ajv maximum keyword: the value exceeds its inclusive upper bound.
MaximumValidationErrorInfo
¶
Keyword-specific metadata for maximum
MinItemsValidationError
¶
Ajv minItems keyword: the array is shorter than the schema's
minimum length.
MinItemsValidationErrorInfo
¶
Keyword-specific metadata for minItems
MinLengthValidationError
¶
Ajv minLength keyword: the string is shorter than the schema's
minimum length. Parallel to MaxLengthValidationError — the limit
lives in info.limit.
MinLengthValidationErrorInfo
¶
Keyword-specific metadata for minLength
MinimumValidationError
¶
Ajv minimum keyword: the value is below its inclusive lower bound.
MinimumValidationErrorInfo
¶
Keyword-specific metadata for minimum
MultipleOfValidationError
¶
Ajv multipleOf keyword: the value is not a multiple of
info.multipleOf.
MultipleOfValidationErrorInfo
¶
Keyword-specific metadata for multipleOf
NegativeStock
¶
Record of a variant with negative inventory levels indicating oversold or under-received stock requiring immediate attention
Example:
{'variant_id': 3001, 'location_id': 1, 'latest_negative_stock_date': '2024-01-15T16:30:00.000Z', 'name':
'Professional Kitchen Knife Set - 8-Piece - Steel Handles', 'sku': 'KNF-PRO-8PC-STL', 'category': 'Kitchen
Equipment', 'quantity_on_hand': -15.0, 'quantity_allocated': 25.0}
NegativeStockListResponse
¶
List of inventory records showing variants with negative stock levels that require immediate attention
Example
{'data': [{'variant_id': 3001, 'location_id': 1, 'latest_negative_stock_date': '2024-01-15T16:30:00.000Z', 'quantity_on_hand': -15.0, 'quantity_allocated': 25.0}, {'variant_id': 3003, 'location_id': 2, 'latest_negative_stock_date': '2024-01-16T09:45:00.000Z', 'quantity_on_hand': -5.0, 'quantity_allocated': 10.0}]}
OneOfValidationError
¶
Ajv oneOf keyword: the value matched zero or multiple branches of
the schema's oneOf. info.passingSchemas is the array of
matched branch indices when more than one matched, or null when
none matched.
OneOfValidationErrorInfo
¶
Keyword-specific metadata for oneOf
Operator
¶
Manufacturing operator or worker assigned to specific production operations and work areas
OperatorListResponse
¶
Response containing a list of operators
OutsourcedPurchaseOrder
¶
Outsourced purchase order for subcontracted manufacturing
OutsourcedPurchaseOrderRecipeRow
¶
Recipe ingredient row for outsourced purchase orders defining material requirements and availability
OutsourcedPurchaseOrderRecipeRowListResponse
¶
Response containing a list of outsourced purchase order recipe rows for externally manufactured products
Example
{'data': [{'id': 6001, 'material_id': 1, 'purchase_order_id': 1001, 'purchase_order_row_id': 1001, 'variant_id': 2002, 'ingredient_variant_id': 2002, 'planned_quantity_per_unit': 2.5, 'ingredient_availability': 'IN_STOCK', 'ingredient_expected_date': '2023-10-15T08:00:00Z', 'notes': 'Supplier will handle assembly'}]}
PatternValidationError
¶
Ajv pattern keyword: the string does not match the schema's
regex. The pattern lives in info.pattern.
PatternValidationErrorInfo
¶
Keyword-specific metadata for pattern
PriceList
¶
Customer-specific pricing configuration for flexible pricing management across different market segments
Example
{'id': 1, 'name': 'Wholesale price list', 'is_active': False, 'created_at': '2020-10-23T10:37:05.085Z', 'updated_at': '2020-10-23T10:37:05.085Z'}
PriceListCustomer
¶
Association between a customer and a price list for custom pricing management
Example
{'id': 4001, 'price_list_id': 1001, 'customer_id': 2001, 'created_at': '2024-01-15T10:00:00Z', 'updated_at': '2024-01-15T10:00:00Z'}
PriceListCustomerListResponse
¶
Response containing a list of price list customer assignments
Example
{'data': [{'id': 4001, 'price_list_id': 1001, 'customer_id': 2001, 'created_at': '2024-01-15T10:00:00Z', 'updated_at': '2024-01-15T10:00:00Z'}, {'id': 4002, 'price_list_id': 1002, 'customer_id': 2002, 'created_at': '2024-01-16T11:30:00Z', 'updated_at': '2024-01-16T11:30:00Z'}]}
PriceListListResponse
¶
Response containing a paginated list of price lists configured for customer-specific and market-specific pricing management
Example:
{'data': [{'id': 1001, 'name': 'Premium Customer Pricing', 'currency': 'USD', 'is_default': False,
'markup_percentage': 25.0, 'start_date': '2024-01-01T00:00:00Z', 'end_date': '2024-12-31T23:59:59Z',
'created_at': '2024-01-01T10:00:00Z', 'updated_at': '2024-01-15T14:30:00Z', 'deleted_at': None}, {'id': 1002,
'name': 'Wholesale Rates', 'currency': 'USD', 'is_default': True, 'markup_percentage': 15.0, 'start_date': None,
'end_date': None, 'created_at': '2024-01-01T10:05:00Z', 'updated_at': '2024-01-01T10:05:00Z', 'deleted_at':
None}]}
PriceListRow
¶
Individual product variant pricing entry within a price list for customer-specific or market-specific pricing management
Example:
{'id': 5001, 'price_list_id': 1001, 'variant_id': 201, 'adjustment_method': 'fixed', 'amount': 249.99,
'created_at': '2024-01-15T10:00:00Z', 'updated_at': '2024-01-15T10:00:00Z'}
PriceListRowListResponse
¶
Response containing a paginated list of price list rows showing variant-specific pricing within price lists
Example
{'data': [{'id': 5001, 'price_list_id': 1001, 'variant_id': 201, 'adjustment_method': 'fixed', 'amount': 249.99, 'price': 249.99, 'currency': 'USD', 'created_at': '2024-01-15T10:00:00Z', 'updated_at': '2024-01-15T10:00:00Z'}, {'id': 5002, 'price_list_id': 1001, 'variant_id': 202, 'adjustment_method': 'percentage', 'amount': 10.0, 'price': 69.99, 'currency': 'USD', 'created_at': '2024-01-15T10:05:00Z', 'updated_at': '2024-01-15T10:05:00Z'}]}
Product
¶
A finished good or component that can be sold, manufactured, or purchased, with support for variants and configurations
Example:
{'id': 1, 'name': 'Standard-hilt lightsaber', 'uom': 'pcs', 'category_name': 'lightsaber', 'is_sellable': True,
'is_producible': True, 'is_purchasable': True, 'is_auto_assembly': True, 'default_supplier_id': 1,
'additional_info': 'additional info', 'batch_tracked': True, 'serial_tracked': False, 'operations_in_sequence':
False, 'type': 'product', 'purchase_uom': 'pcs', 'purchase_uom_conversion_rate': 1, 'lead_time': 1,
'minimum_order_quantity': 3, 'custom_field_collection_id': 1, 'created_at': '2020-10-23T10:37:05.085Z',
'updated_at': '2020-10-23T10:37:05.085Z', 'archived_at': None, 'variants': [{'id': 1, 'sku': 'EM',
'sales_price': 40, 'purchase_price': 0, 'type': 'product', 'created_at': '2020-10-23T10:37:05.085Z',
'updated_at': '2020-10-23T10:37:05.085Z', 'lead_time': 1, 'minimum_order_quantity': 3, 'config_attributes':
[{'config_name': 'Type', 'config_value': 'Standard'}], 'internal_barcode': 'internalcode', 'registered_barcode':
'registeredcode', 'supplier_item_codes': ['code'], 'custom_fields': [{'field_name': 'Power level',
'field_value': 'Strong'}]}], 'configs': [{'id': 1, 'name': 'Type', 'values': ['Standard', 'Double-bladed'],
'product_id': 1}], 'supplier': None}
ProductListResponse
¶
Response containing a paginated list of products with their variants and configurations
Example
{'data': [{'id': 101, 'name': 'Professional Kitchen Knife Set', 'uom': 'set', 'category_name': 'Kitchenware', 'is_sellable': True, 'is_producible': True, 'is_purchasable': False, 'type': 'product', 'variants': [{'id': 301, 'sku': 'KNF-PRO-8PC', 'name': '8-Piece Professional Set', 'sales_price': 299.99}]}, {'id': 102, 'name': 'Stainless Steel Mixing Bowls', 'uom': 'set', 'category_name': 'Kitchenware', 'is_sellable': True, 'is_producible': False, 'is_purchasable': True, 'type': 'product', 'variants': [{'id': 302, 'sku': 'BOWL- SS-5PC', 'name': '5-Piece Mixing Bowl Set', 'sales_price': 79.99}]}]}
ProductOperationRerank
¶
Response confirming the success of a product operation reordering request
Example
{'message': 'Product operation successfully reordered', 'success': True}
ProductOperationRerankRequest
¶
Request payload for reordering product operations within a manufacturing workflow to optimize production sequence
Example
{'rank_product_operation_id': 501, 'preceding_product_operation_id': 499, 'should_group': True}
ProductOperationRow
¶
Operation step assigned to a product's manufacturing process
ProductOperationRowListResponse
¶
Response containing a list of product operation rows
PurchaseOrderAccountingMetadata
¶
Accounting integration metadata linking purchase orders to external accounting systems for bill processing and financial record synchronization
Example:
{'id': 156, 'purchase_order_id': 8001, 'received_items_group_id': 2001, 'integration_type': 'quickBooks',
'bill_id': 'BILL-2024-001', 'created_at': '2024-01-15T11:30:00Z'}
PurchaseOrderAccountingMetadataListResponse
¶
Response containing a paginated list of purchase order accounting metadata for financial system integration and bill processing
Example:
{'data': [{'id': 156, 'purchase_order_id': 8001, 'received_items_group_id': 2001, 'integration_type':
'quickBooks', 'bill_id': 'BILL-2024-001', 'created_at': '2024-01-15T11:30:00Z'}, {'id': 157,
'purchase_order_id': 8002, 'received_items_group_id': 2002, 'integration_type': 'xero', 'bill_id':
'BILL-2024-002', 'created_at': '2024-01-15T12:00:00Z'}]}
PurchaseOrderAdditionalCostRow
¶
Additional cost line item within a purchase order, representing charges like shipping, duties, or handling fees
Example
{'id': 201, 'additional_cost_id': 1, 'group_id': 1, 'name': 'International Shipping', 'distribution_method': 'BY_VALUE', 'tax_rate_id': 1, 'tax_rate': 8.5, 'price': 125.0, 'price_in_base': 125.0, 'currency': 'USD', 'currency_conversion_rate': 1.0, 'currency_conversion_rate_fix_date': '2024-01-28T09:15:00Z', 'created_at': '2024-01-28T09:15:00Z', 'updated_at': '2024-01-28T09:15:00Z', 'deleted_at': None}
PurchaseOrderAdditionalCostRowListResponse
¶
Response containing a list of additional cost line items for purchase orders with pagination support
Example
{'data': [{'id': 201, 'additional_cost_id': 1, 'group_id': 1, 'name': 'International Shipping', 'distribution_method': 'BY_VALUE', 'tax_rate_id': 1, 'tax_rate': 8.5, 'price': 125.0, 'price_in_base': 125.0, 'currency': 'USD', 'created_at': '2024-01-28T09:15:00Z', 'updated_at': '2024-01-28T09:15:00Z', 'deleted_at': None}, {'id': 202, 'additional_cost_id': 2, 'group_id': 1, 'name': 'Import Duty', 'distribution_method': 'BY_VALUE', 'tax_rate_id': 1, 'tax_rate': 8.5, 'price': 85.0, 'price_in_base': 85.0, 'currency': 'USD', 'created_at': '2024-01-28T09:15:00Z', 'updated_at': '2024-01-28T09:15:00Z', 'deleted_at': None}]}
PurchaseOrderBase
¶
Base properties shared by all purchase order types
PurchaseOrderListResponse
¶
Response containing a list of purchase orders with pagination support for procurement management
Example
{'data': [{'id': 156, 'status': 'NOT_RECEIVED', 'order_no': 'PO-2024-0156', 'entity_type': 'regular', 'supplier_id': 4001, 'currency': 'USD', 'expected_arrival_date': '2024-02-15T00:00:00Z', 'order_created_date': '2024-01-28T00:00:00Z', 'total': 1962.5, 'total_in_base_currency': 1962.5, 'billing_status': 'NOT_BILLED', 'tracking_location_id': None, 'created_at': '2024-01-28T09:15:00Z', 'updated_at': '2024-01-28T09:15:00Z', 'deleted_at': None}, {'id': 158, 'status': 'PARTIALLY_RECEIVED', 'order_no': 'PO-2024-0158', 'entity_type': 'outsourced', 'supplier_id': 4003, 'currency': 'USD', 'expected_arrival_date': '2024-02-20T00:00:00Z', 'order_created_date': '2024-01-30T00:00:00Z', 'total': 2450.0, 'total_in_base_currency': 2450.0, 'billing_status': 'PARTIALLY_BILLED', 'tracking_location_id': 2, 'ingredient_availability': 'EXPECTED', 'ingredient_expected_date': '2024-02-18T10:00:00Z', 'created_at': '2024-01-30T11:20:00Z', 'updated_at': '2024-01-30T11:20:00Z', 'deleted_at': None}]}
PurchaseOrderReceiveRow
¶
Row-level data for receiving items against a purchase order, including quantity and batch details
PurchaseOrderRow
¶
Individual line item within a purchase order, representing a specific product with quantities, pricing, and delivery details
Example:
{'id': 501, 'quantity': 250, 'variant_id': 501, 'tax_rate_id': 1, 'price_per_unit': 2.85,
'price_per_unit_in_base_currency': 2.85, 'purchase_uom_conversion_rate': 1.0, 'purchase_uom': 'kg', 'currency':
'USD', 'conversion_rate': 1.0, 'total': 712.5, 'total_in_base_currency': 712.5, 'conversion_date':
'2024-01-28T09:15:00Z', 'received_date': '2024-02-15T14:30:00Z', 'arrival_date': '2024-02-15T10:00:00Z',
'purchase_order_id': 156, 'landed_cost': 735.5, 'group_id': 1, 'created_at': '2024-01-28T09:15:00Z',
'updated_at': '2024-02-15T14:30:00Z', 'deleted_at': None, 'batch_transactions': [{'quantity': 150, 'batch_id':
1001}, {'quantity': 100, 'batch_id': 1002}]}
PurchaseOrderRowListResponse
¶
Response containing a list of purchase order line items with pagination support for detailed order management
Example
{'data': [{'id': 501, 'quantity': 250, 'variant_id': 501, 'tax_rate_id': 1, 'price_per_unit': 2.85, 'price_per_unit_in_base_currency': 2.85, 'purchase_uom': 'kg', 'currency': 'USD', 'total': 712.5, 'total_in_base_currency': 712.5, 'purchase_order_id': 156, 'created_at': '2024-01-28T09:15:00Z', 'updated_at': '2024-02-15T14:30:00Z', 'deleted_at': None}, {'id': 502, 'quantity': 100, 'variant_id': 502, 'tax_rate_id': 1, 'price_per_unit': 12.5, 'price_per_unit_in_base_currency': 12.5, 'purchase_uom': 'pieces', 'currency': 'USD', 'total': 1250.0, 'total_in_base_currency': 1250.0, 'purchase_order_id': 156, 'created_at': '2024-01-28T09:15:00Z', 'updated_at': '2024-02-15T14:30:00Z', 'deleted_at': None}]}
PurchaseOrderRowRequest
¶
Request payload for creating a line item within a purchase order
Example
{'quantity': 250, 'price_per_unit': 2.85, 'variant_id': 501, 'tax_rate_id': 1, 'purchase_uom': 'kg', 'purchase_uom_conversion_rate': 1.0, 'arrival_date': '2024-08-20T14:45:00Z'}
Recipe
¶
Recipe row representing ingredient requirements for product manufacturing (deprecated in favor of BOM rows)
Example
{'id': 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee', 'recipe_row_id': 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee', 'product_item_id': 1, 'product_variant_id': 1, 'ingredient_variant_id': 1, 'quantity': 2, 'notes': 'some notes', 'rank': 10000, 'created_at': '2021-04-05T12:00:00.000Z', 'updated_at': '2021-04-05T12:00:00.000Z'}
RecipeListResponse
¶
Response containing a list of recipe rows
Example
{'data': [{'id': 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee', 'recipe_row_id': 'aaaaaaaa-bbbb-cccc-dddd- eeeeeeeeeeee', 'product_item_id': 1, 'product_variant_id': 1, 'ingredient_variant_id': 1, 'quantity': 2, 'notes': 'some notes', 'rank': 10000, 'created_at': '2021-04-05T12:00:00.000Z', 'updated_at': '2021-04-05T12:00:00.000Z'}]}
RegularPurchaseOrder
¶
Regular purchase order for standard procurement from suppliers
RequiredValidationError
¶
Ajv required keyword: an object is missing a required property.
info.missingProperty names the missing field.
RequiredValidationErrorInfo
¶
Keyword-specific metadata for required
ReturnableItem
¶
An item from a sales order that is eligible for return
SalesOrder
¶
Sales order representing a customer's request to purchase products with delivery and payment terms
Example
{'id': 2001, 'customer_id': 1501, 'order_no': 'SO-2024-001', 'source': 'Shopify', 'order_created_date': '2024-01-15T10:00:00Z', 'delivery_date': '2024-01-22T14:00:00Z', 'picked_date': None, 'location_id': 1, 'status': 'PACKED', 'currency': 'USD', 'conversion_rate': 1.0, 'conversion_date': '2024-01-15T10:00:00Z', 'invoicing_status': 'invoiced', 'total': 1250.0, 'total_in_base_currency': 1250.0, 'additional_info': 'Customer requested expedited delivery', 'customer_ref': 'CUST-REF-2024-001', 'sales_order_rows': [{'id': 2501, 'quantity': 2, 'variant_id': 2101, 'tax_rate_id': 301, 'location_id': 1, 'product_availability': 'IN_STOCK', 'product_expected_date': None, 'price_per_unit': '599.9900000000', 'price_per_unit_in_base_currency': 599.99, 'total': 1199.98, 'total_in_base_currency': 1199.98, 'cogs_value': '400.0000000000', 'created_at': '2024-01-15T10:00:00Z', 'updated_at': '2024-01-15T10:00:00Z'}], 'ecommerce_order_type': 'standard', 'ecommerce_store_name': 'Kitchen Pro Store', 'ecommerce_order_id': 'SHOP-5678-2024', 'product_availability': 'IN_STOCK', 'product_expected_date': None, 'ingredient_availability': 'IN_STOCK', 'ingredient_expected_date': None, 'production_status': 'NOT_APPLICABLE', 'tracking_number': 'UPS1234567890', 'tracking_number_url': 'https://www.ups.com/track?track=UPS1234567890', 'billing_address_id': 1201, 'shipping_address_id': 1202, 'addresses': [{'id': 1201, 'sales_order_id': 2001, 'entity_type': 'billing', 'first_name': 'Sarah', 'last_name': 'Johnson', 'company': "Johnson's Restaurant", 'address_line_1': '123 Main Street', 'city': 'Portland', 'state': 'OR', 'zip': '97201', 'country': 'US'}], 'created_at': '2024-01-15T10:00:00Z', 'updated_at': '2024-01-20T16:30:00Z'}
Attributes:
-
id(int) –Unique identifier
-
customer_id(int) –Unique identifier of the customer placing the order
-
order_no(str) –Unique order number for tracking and reference purposes
-
location_id(int) –Unique identifier of the fulfillment location for this order
-
status(SalesOrderStatus) –Fulfillment status of a sales order.
PENDINGis the initial status assigned to newly-created sales orders before they progress toNOT_SHIPPED. ThePARTIALLY_*states are server-computed; clients should not attempt to set them. -
created_at(datetime | Unset) –Timestamp when the entity was first created
-
updated_at(datetime | Unset) –Timestamp when the entity was last updated
-
deleted_at(datetime | None | Unset) –Nullable deletion timestamp
-
source(None | str | Unset) –Source system or channel where the order originated (e.g., Shopify, manual entry)
-
order_created_date(datetime | Unset) –Date and time when the sales order was created in the system
-
delivery_date(datetime | None | Unset) –Requested or promised delivery date for the order
-
picked_date(datetime | None | Unset) –Date when items were picked from inventory for shipment
-
currency(str | Unset) –Currency code for the order pricing (ISO 4217 format)
-
conversion_rate(float | None | Unset) –Exchange rate used to convert order currency to base company currency
-
conversion_date(datetime | None | Unset) –Date when the currency conversion rate was applied
-
invoicing_status(None | SalesOrderInvoicingStatus | Unset) –Order-level invoicing status, rolled up from the underlying fulfillment-level statuses. Uses camelCase wire values (
notInvoiced/partiallyInvoiced/invoiced) — not the SCREAMING_SNAKE_CASE values used bySalesOrderFulfillment.invoice_status.nullwhen the order has no fulfillments yet. -
total(float | Unset) –Total order amount in the order currency
-
total_in_base_currency(float | Unset) –Total order amount converted to the company's base currency
-
additional_info(None | str | Unset) –Additional notes or instructions for the sales order
-
customer_ref(None | str | Unset) –Customer's reference number or purchase order number
-
sales_order_rows(list[SalesOrderRow] | Unset) –Line items included in the sales order with product details and quantities
-
ecommerce_order_type(None | str | Unset) –Type of ecommerce order when imported from external platforms
-
ecommerce_store_name(None | str | Unset) –Name of the ecommerce store when order originated from external platforms
-
ecommerce_order_id(None | str | Unset) –Original order ID from the external ecommerce platform
-
product_availability(None | ProductAvailability | Unset) – -
product_expected_date(datetime | None | Unset) –Expected date when products will be available for fulfillment
-
ingredient_availability(IngredientAvailability | None | Unset) – -
ingredient_expected_date(datetime | None | Unset) –Expected date when ingredients will be available for production
-
production_status(None | SalesOrderProductionStatus | Unset) –Current status of production for items in this order
-
tracking_number(None | str | Unset) –Shipping carrier tracking number for package tracking
-
tracking_number_url(None | str | Unset) –URL link to track the shipment on carrier website
-
billing_address_id(int | None | Unset) –Reference to the customer address used for billing
-
shipping_address_id(int | None | Unset) –Reference to the customer address used for shipping
-
linked_manufacturing_order_id(int | None | Unset) –ID of the linked manufacturing order if this sales order has associated production
-
shipping_fee(None | SalesOrderShippingFee | Unset) –Shipping fee details for this sales order
-
addresses(list[SalesOrderAddress] | Unset) –Complete address information for billing and shipping
-
custom_fields(None | SalesOrderCustomFieldsType0 | Unset) –Custom field values for the sales order, keyed by the definition
id(UUID) — theidreturned byGET /custom_field_definitions, not the field label. Each value matches the definition'sfield_type: string forshortText/url, number fornumber, boolean forboolean, aYYYY-MM-DDstring fordate, or the integer choiceidforsingleSelect. Example (keys are definition UUIDs):{"0c8f1d6e-…": "EMEA", "7a21b4c2-…": 2}— ashortTextvalue and asingleSelectchoiceid.nullwhen no values are set. Values for soft-deleted definitions are stripped from read responses. Keys are tenant-specific, so the schema declaresadditionalProperties: truerather than enumerating them.
SalesOrderAccountingMetadata
¶
Accounting integration metadata linking sales orders to external accounting systems and invoice records
Example
{'id': 2901, 'sales_order_id': 2001, 'fulfillment_id': 2701, 'invoice_id': 'INV-2024-001', 'integration_type': 'xero', 'created_at': '2024-01-20T17:00:00Z'}
SalesOrderAccountingMetadataListResponse
¶
Response containing a list of accounting metadata records linking sales orders to external accounting systems
Example
{'data': [{'id': 2901, 'sales_order_id': 2001, 'fulfillment_id': 2701, 'invoice_id': 'INV-2024-001', 'integration_type': 'xero', 'created_at': '2024-01-20T17:00:00Z'}]}
SalesOrderAddress
¶
Billing or shipping address associated with a sales order, containing complete contact and location information
Example
{'id': 1201, 'sales_order_id': 2001, 'entity_type': 'shipping', 'first_name': 'Sarah', 'last_name': 'Johnson', 'company': "Johnson's Restaurant", 'phone': '+1-503-555-0123', 'line_1': '123 Main Street', 'line_2': 'Suite 4B', 'city': 'Portland', 'state': 'OR', 'zip': '97201', 'country': 'US', 'created_at': '2024-01-15T10:00:00Z', 'updated_at': '2024-01-15T10:00:00Z'}
Attributes:
-
id(int) –Unique identifier
-
sales_order_id(int) –ID of the sales order this address belongs to
-
entity_type(AddressEntityType) –Address type - billing for invoicing, shipping for delivery
-
created_at(datetime | Unset) –Timestamp when the entity was first created
-
updated_at(datetime | Unset) –Timestamp when the entity was last updated
-
deleted_at(datetime | None | Unset) –Nullable deletion timestamp
-
first_name(None | str | Unset) –First name of the contact person
-
last_name(None | str | Unset) –Last name of the contact person
-
company(None | str | Unset) –Company name for business deliveries
-
phone(None | str | Unset) –Contact phone number for delivery coordination
-
line_1(None | str | Unset) –Primary address line (street address)
-
line_2(None | str | Unset) –Secondary address line (apartment, suite, etc.)
-
city(None | str | Unset) –City name
-
state(None | str | Unset) –State or province
-
zip_(None | str | Unset) –Postal or ZIP code
-
country(None | str | Unset) –Country code (e.g., US, CA, GB)
SalesOrderAddressListResponse
¶
Response containing a list of billing and shipping addresses associated with sales orders
Example
{'data': [{'id': 1201, 'sales_order_id': 2001, 'entity_type': 'billing', 'first_name': 'Sarah', 'last_name': 'Johnson', 'company': "Johnson's Restaurant", 'phone': '+1-503-555-0123', 'line_1': '123 Main Street', 'line_2': 'Suite 4B', 'city': 'Portland', 'state': 'OR', 'zip': '97201', 'country': 'US', 'created_at': '2024-01-15T10:00:00Z', 'updated_at': '2024-01-15T10:00:00Z'}]}
Attributes:
-
data(list[SalesOrderAddress] | Unset) –Array of sales order addresses with complete contact and location information
SalesOrderCustomFieldsType0
¶
Custom field values for the sales order, keyed by the
definition id (UUID) — the id returned by
GET /custom_field_definitions, not the field label.
Each value matches the definition's field_type: string
for shortText / url, number for number, boolean
for boolean, a YYYY-MM-DD string for date, or
the integer choice id for singleSelect. Example
(keys are definition UUIDs):
{"0c8f1d6e-…": "EMEA", "7a21b4c2-…": 2} — a
shortText value and a singleSelect choice id.
null when no values are set. Values for soft-deleted
definitions are stripped from read responses. Keys are
tenant-specific, so the schema declares
additionalProperties: true rather than enumerating
them.
SalesOrderFulfillment
¶
Shipping and delivery record for a sales order, tracking the physical fulfillment process including picking, packing, and shipment tracking
Example:
{'id': 1, 'sales_order_id': 1, 'picked_date': '2020-10-23T10:37:05.085Z', 'status': 'DELIVERED',
'invoice_status': 'NOT_INVOICED', 'conversion_rate': 2, 'conversion_date': '2020-10-23T10:37:05.085Z',
'tracking_number': '12345678', 'tracking_url': 'https://tracking-number-url', 'tracking_carrier': 'UPS',
'tracking_method': 'ground', 'packer_id': 1, 'sales_order_fulfillment_rows': [{'sales_order_row_id': 1,
'quantity': 2, 'batch_transactions': [{'batch_id': 1, 'quantity': 2}], 'serial_numbers': [1]}], 'created_at':
'2020-10-23T10:37:05.085Z', 'updated_at': '2020-10-23T10:37:05.085Z'}
SalesOrderFulfillmentListResponse
¶
Response containing a list of fulfillment records showing shipping and delivery status for sales orders
Example
{'data': [{'id': 1, 'sales_order_id': 1, 'picked_date': '2020-10-23T10:37:05.085Z', 'status': 'DELIVERED', 'invoice_status': 'NOT_INVOICED', 'conversion_rate': 2, 'conversion_date': '2020-10-23T10:37:05.085Z', 'tracking_number': '12345678', 'tracking_url': 'https://tracking-number-url', 'tracking_carrier': 'UPS', 'tracking_method': 'ground', 'packer_id': 1, 'sales_order_fulfillment_rows': [{'sales_order_row_id': 1, 'quantity': 2, 'batch_transactions': [{'batch_id': 1, 'quantity': 2}], 'serial_numbers': [1]}], 'created_at': '2020-10-23T10:37:05.085Z', 'updated_at': '2020-10-23T10:37:05.085Z'}]}
SalesOrderFulfillmentRowRequest
¶
A fulfillment row item specifying which order row and quantity to fulfill
SalesOrderListResponse
¶
Response containing a list of sales orders with pagination support for retrieving customer order data
Example
{'data': [{'id': 2001, 'customer_id': 1501, 'order_no': 'SO-2024-001', 'source': 'Shopify', 'order_created_date': '2024-01-15T10:00:00Z', 'delivery_date': '2024-01-22T14:00:00Z', 'picked_date': None, 'location_id': 1, 'status': 'PACKED', 'currency': 'USD', 'conversion_rate': 1.0, 'conversion_date': '2024-01-15T10:00:00Z', 'invoicing_status': 'invoiced', 'total': 1250.0, 'total_in_base_currency': 1250.0, 'additional_info': 'Customer requested expedited delivery', 'customer_ref': 'CUST-REF-2024-001', 'ecommerce_order_type': 'standard', 'ecommerce_store_name': 'Kitchen Pro Store', 'ecommerce_order_id': 'SHOP-5678-2024', 'product_availability': 'IN_STOCK', 'ingredient_availability': 'IN_STOCK', 'production_status': 'NOT_APPLICABLE', 'tracking_number': 'UPS1234567890', 'billing_address_id': 1201, 'shipping_address_id': 1202, 'created_at': '2024-01-15T10:00:00Z', 'updated_at': '2024-01-20T16:30:00Z'}]}
SalesOrderRow
¶
Individual line item within a sales order representing a specific product variant, quantity, pricing, and delivery details
Example:
{'id': 2501, 'quantity': 2, 'variant_id': 2101, 'tax_rate_id': 301, 'location_id': 1, 'product_availability':
'IN_STOCK', 'product_expected_date': None, 'price_per_unit': '599.9900000000',
'price_per_unit_in_base_currency': 599.99, 'total': 1199.98, 'total_in_base_currency': 1199.98, 'cogs_value':
'400.0000000000', 'attributes': [{'key': 'engrave_text', 'value': "Johnson's Kitchen"}, {'key': 'gift_wrap',
'value': 'true'}], 'batch_transactions': [{'batch_id': 1801, 'quantity': 2.0}], 'serial_numbers': [10001,
10002], 'linked_manufacturing_order_id': None, 'conversion_rate': 1.0, 'conversion_date':
'2024-01-15T10:00:00Z', 'created_at': '2024-01-15T10:00:00Z', 'updated_at': '2024-01-15T10:00:00Z'}
Attributes:
id (int): Unique identifier for the sales order row
quantity (float): Ordered quantity of the product variant
variant_id (int): ID of the product variant being ordered
created_at (datetime.datetime | Unset): Timestamp when the entity was first created
updated_at (datetime.datetime | Unset): Timestamp when the entity was last updated
deleted_at (datetime.datetime | None | Unset): Nullable deletion timestamp
sales_order_id (int | Unset): ID of the sales order this row belongs to
tax_rate_id (int | None | Unset): ID of the tax rate applied to this line item
tax_rate (float | None | Unset): Tax rate percentage applied to this line item
location_id (int | None | Unset): Location where the product should be picked from
product_availability (None | ProductAvailability | Unset): Current availability status of the product for this
order row
product_expected_date (datetime.datetime | None | Unset): Expected date when the product will be available if
not currently in stock
price_per_unit (str | Unset): Selling price per unit in the order currency
price_per_unit_in_base_currency (float | Unset): Selling price per unit converted to the base company currency
total (float | Unset): Total line amount (quantity * price_per_unit) in order currency
total_in_base_currency (float | Unset): Total line amount converted to the base company currency
total_discount (None | str | Unset): Discount amount applied to this line item
cogs_value (None | str | Unset): Cost of goods sold value for this line item, null when not yet computed
attributes (list[SalesOrderRowAttributesItem] | Unset): Custom attributes associated with this sales order row
batch_transactions (list[SalesOrderRowBatchTransactionsItem] | Unset): Batch allocations for this order row when
using batch tracking
serial_numbers (list[int] | Unset): Serial numbers allocated to this order row for serialized products
serial_number_transactions (list[SalesOrderRowSerialNumberTransactionsItem] | Unset): Audit trail of serial-
number actions on this row. Each entry records
whether a serial number was added (``quantity: 1``) or removed
(``quantity: 0``). Use this for incremental updates; ``serial_numbers``
reflects the resulting current state.
linked_manufacturing_order_id (int | None | Unset): ID of the manufacturing order linked to this sales order row
for make-to-order items
conversion_rate (float | None | Unset): Currency conversion rate used for this row
conversion_date (datetime.datetime | None | Unset): Date when the currency conversion rate was applied
custom_fields (None | SalesOrderRowCustomFieldsType0 | Unset): Row-level custom field values, keyed by the
definition ``id`` (UUID) — the ``id`` returned by
``GET /custom_field_definitions``, not the field label.
Each value matches the definition's ``field_type``: string
for ``shortText`` / ``url``, number for ``number``, boolean
for ``boolean``, a ``YYYY-MM-DD`` string for ``date``, or
the integer choice ``id`` for ``singleSelect``. ``null``
when no values are set on the row. Values for soft-deleted
definitions are stripped from read responses. Keys are
tenant-specific, so the schema declares
``additionalProperties: true`` rather than enumerating
them.
SalesOrderRowCustomFieldsType0
¶
Row-level custom field values, keyed by the
definition id (UUID) — the id returned by
GET /custom_field_definitions, not the field label.
Each value matches the definition's field_type: string
for shortText / url, number for number, boolean
for boolean, a YYYY-MM-DD string for date, or
the integer choice id for singleSelect. null
when no values are set on the row. Values for soft-deleted
definitions are stripped from read responses. Keys are
tenant-specific, so the schema declares
additionalProperties: true rather than enumerating
them.
SalesOrderRowListResponse
¶
Response containing a list of sales order rows with pagination support for retrieving order line items
Example
{'data': [{'id': 2501, 'quantity': 2, 'variant_id': 2101, 'tax_rate_id': 301, 'location_id': 1, 'product_availability': 'IN_STOCK', 'product_expected_date': None, 'price_per_unit': '599.9900000000', 'price_per_unit_in_base_currency': 599.99, 'total': 1199.98, 'total_in_base_currency': 1199.98, 'cogs_value': '400.0000000000', 'attributes': [{'key': 'engrave_text', 'value': "Johnson's Kitchen"}], 'batch_transactions': [{'batch_id': 1801, 'quantity': 2.0}], 'serial_numbers': [10001, 10002], 'linked_manufacturing_order_id': None, 'conversion_rate': 1.0, 'conversion_date': '2024-01-15T10:00:00Z', 'created_at': '2024-01-15T10:00:00Z', 'updated_at': '2024-01-15T10:00:00Z'}]}
Attributes:
-
data(list[SalesOrderRow] | Unset) –Array of sales order row line items with pricing and product details
SalesOrderRowSearchFilter
¶
Filter envelope for POST /sales_order_rows/search.
SalesOrderRowSearchRequest
¶
Structured filter body for POST /sales_order_rows/search.
Returns the same paginated {"data": [...]} shape as
GET /sales_order_rows plus an X-Pagination header. Beta —
request/response shape may evolve before GA.
Example:
{'filter': {'where': {'and': [{'sales_order_id': {'inq': [12345, 12346, 12347]}}, {'quantity': {'gt': 0}},
{'product_availability': 'IN_STOCK'}]}, 'order': ['delivery_date ASC', 'id ASC'], 'limit': 100, 'page': 1}}
Attributes:
filter_ (SalesOrderRowSearchFilter | Unset): Filter envelope for ``POST /sales_order_rows/search``.
SalesOrderRowSearchWhere
¶
where clause for POST /sales_order_rows/search. Only the
fields listed here may appear; unknown fields are rejected with
422. Custom field values are addressable via additional
custom_fields.<uuid> keys (snake_case), where <uuid> is the
custom field definition id. Compose with and / or (max
nesting depth 2).
SalesOrderSearchFilter
¶
Filter envelope for POST /sales_orders/search.
SalesOrderSearchRequest
¶
Structured filter body for POST /sales_orders/search. Returns
the same paginated {"data": [...]} shape as
GET /sales_orders plus an X-Pagination header. Beta —
request/response shape may evolve before GA.
Example:
{'filter': {'where': {'and': [{'status': {'inq': ['NOT_SHIPPED', 'PACKED']}}, {'created_at': {'gte':
'2026-01-01T00:00:00.000Z'}}, {'custom_fields.0c8f1d6e-3c2a-4f5b-9d77-12ab34cd56ef': 2}]}, 'order': ['created_at
DESC', 'id DESC'], 'limit': 50, 'page': 1}}
Attributes:
filter_ (SalesOrderSearchFilter | Unset): Filter envelope for ``POST /sales_orders/search``.
SalesOrderSearchWhere
¶
where clause for POST /sales_orders/search. Only the fields
listed here may appear; unknown fields are rejected with 422.
Custom field values are addressable via additional
custom_fields.<uuid> keys (snake_case, matching the
request/response body), where <uuid> is the custom field
definition id — its value is a bare value or a SearchComparator
like any other predicate (for singleSelect the value is the
integer choice id). Compose with and / or (max nesting
depth 2).
SalesOrderShippingFee
¶
Shipping fee record associated with a sales order, tracking shipping costs and applicable taxes
Example
{'id': 2801, 'sales_order_id': 2001, 'amount': '25.99', 'tax_rate_id': 301, 'description': 'UPS Ground Shipping'}
SalesOrderShippingFeeListResponse
¶
Response containing a list of shipping fees associated with sales orders
Example
{'data': [{'id': 2801, 'sales_order_id': 2001, 'amount': '25.99', 'tax_rate_id': 301, 'description': 'UPS Ground Shipping'}]}
SalesReturn
¶
Sales return record representing customer product returns with refund processing and inventory adjustments
Example
{'id': 3001, 'customer_id': 1001, 'sales_order_id': 2001, 'order_no': 'SR-2023-001', 'return_location_id': 1, 'status': 'RETURNED_ALL', 'currency': 'USD', 'return_date': '2023-10-15T14:30:00Z', 'order_created_date': '2023-10-10T10:00:00Z', 'additional_info': 'Customer reported damaged items during shipping', 'refund_status': 'REFUNDED', 'sales_return_rows': [{'id': 3501, 'sales_return_id': 3001, 'variant_id': 2002, 'quantity': '2.0', 'return_reason_id': 1, 'notes': 'Packaging was damaged', 'unit_price': 25.0, 'total_price': 50.0, 'created_at': '2023-10-15T14:00:00Z', 'updated_at': '2023-10-15T15:00:00Z'}], 'created_at': '2023-10-15T14:00:00Z', 'updated_at': '2023-10-15T15:00:00Z', 'deleted_at': None}
SalesReturnListResponse
¶
Response containing a list of sales returns with customer refund and return processing information
Example
{'data': [{'id': 3001, 'customer_id': 1001, 'sales_order_id': 2001, 'order_no': 'SR-2023-001', 'return_location_id': 1, 'status': 'RETURNED_ALL', 'currency': 'USD', 'return_date': '2023-10-15T14:30:00Z', 'order_created_date': '2023-10-10T10:00:00Z', 'additional_info': 'Customer reported damaged items', 'refund_status': 'REFUNDED'}]}
SalesReturnReason
¶
A reason for returning items from a sales order
SalesReturnRow
¶
Individual line item within a sales return specifying returned product, quantity, and refund details
SalesReturnRowListResponse
¶
Response containing a list of sales return row items with product return details and quantities
Example
{'data': [{'id': 3501, 'sales_return_id': 3001, 'variant_id': 2002, 'quantity': '2.0', 'return_reason_id': 1, 'notes': 'Packaging was damaged', 'unit_price': 25.0, 'total_price': 50.0}]}
SearchComparator
¶
Operator object for a search where predicate. Supply this only
when you need something other than equality — for equality, pass a
bare SearchScalarValue instead. Only the operators listed below
are accepted; the server rejects any other key with 422.
SerialNumber
¶
Individual serial number record for tracking specific units of serialized inventory items through transactions.
Transfer side-effects: when a serial number is moved between
resources (e.g. from a ManufacturingOrder to a SalesOrderRow via
POST /serial_numbers), the immediate response may report
transaction_id equal to the literal string undefined and
resource_id: null for the moved record. The subsequent
GET /serial_numbers resolves the correct resource_id —
re-fetch via GET to confirm the landing state.
SerialNumberListResponse
¶
List of serial number records for tracking individual units and enabling full product traceability
Example
{'data': [{'id': 5001, 'serial_number': 'KNF001234567', 'variant_id': 3001, 'location_id': 1, 'status': 'IN_STOCK', 'created_at': '2024-01-15T08:00:00.000Z', 'updated_at': '2024-01-15T08:00:00.000Z'}, {'id': 5002, 'serial_number': 'KNF001234568', 'variant_id': 3001, 'location_id': 1, 'status': 'SOLD', 'created_at': '2024-01-15T08:30:00.000Z', 'updated_at': '2024-01-16T14:20:00.000Z'}]}
SerialNumberStock
¶
Current stock status and transaction history of individual serialized inventory items
SerialNumberStockListResponse
¶
Response containing a list of serial number stock items
Service
¶
External service that can be used as part of manufacturing operations or business processes
Example
{'id': 1, 'name': 'Service name', 'uom': 'pcs', 'category_name': 'Service', 'is_sellable': True, 'type': 'service', 'custom_field_collection_id': 1, 'additional_info': 'additional info', 'created_at': '2020-10-23T10:37:05.085Z', 'updated_at': '2020-10-23T10:37:05.085Z', 'deleted_at': None, 'archived_at': '2020-10-20T10:37:05.085Z', 'variants': [{'id': 1, 'sku': 'S-2486', 'sales_price': None, 'default_cost': None, 'service_id': 1, 'type': 'service', 'created_at': '2020-10-23T10:37:05.085Z', 'updated_at': '2020-10-23T10:37:05.085Z', 'deleted_at': None, 'custom_fields': [{'field_name': 'Power level', 'field_value': 'Strong'}]}]}
ServiceListResponse
¶
Response containing a list of services available for purchase orders and operations
Example
{'data': [{'id': 401, 'name': 'Assembly Service', 'uom': 'hours', 'category_name': 'Manufacturing Services', 'is_sellable': True, 'type': 'service', 'additional_info': 'Professional product assembly service', 'custom_field_collection_id': 1, 'variants': [{'id': 4001, 'sku': 'ASSM-001', 'sales_price': 75.0, 'default_cost': 50.0, 'service_id': 401, 'type': 'service', 'custom_fields': [{'field_name': 'Skill Level', 'field_value': 'Expert'}], 'created_at': '2023-10-01T09:00:00Z', 'updated_at': '2023-10-01T09:00:00Z', 'deleted_at': None}], 'created_at': '2023-10-01T09:00:00Z', 'updated_at': '2023-10-01T09:00:00Z', 'archived_at': None, 'deleted_at': None}]}
ServiceVariant
¶
Service variant with unique pricing and configuration for external services
Example
{'id': 4001, 'sku': 'ASSM-001', 'sales_price': 75.0, 'default_cost': 50.0, 'service_id': 401, 'type': 'service', 'custom_fields': [{'field_name': 'Skill Level', 'field_value': 'Expert'}, {'field_name': 'Duration', 'field_value': '2 hours'}], 'created_at': '2024-01-15T08:00:00.000Z', 'updated_at': '2024-08-20T14:45:00.000Z', 'deleted_at': None}
StockAdjustment
¶
Manual inventory adjustment record for correcting stock discrepancies and maintaining accurate inventory levels
Example
{'id': 1, 'stock_adjustment_number': 'SA-1', 'stock_adjustment_date': '2021-10-06T11:47:13.846Z', 'location_id': 1, 'reason': 'adjustment reason', 'additional_info': 'adjustment additional info', 'stock_adjustment_rows': [{'id': 1, 'variant_id': 1, 'quantity': 100, 'cost_per_unit': 123.45, 'batch_transactions': [{'batch_id': 1, 'quantity': 50}, {'batch_id': 2, 'quantity': 50}]}, {'id': 2, 'variant_id': 2, 'quantity': 150, 'cost_per_unit': 234.56, 'batch_transactions': [{'batch_id': 3, 'quantity': 150}]}], 'created_at': '2021-10-06T11:47:13.846Z', 'updated_at': '2021-10-06T11:47:13.846Z', 'deleted_at': None}
StockAdjustmentBatchTransaction
¶
Batch-specific transaction for tracking stock adjustments. Each
entry pairs a quantity with the batch it applies to; batch_id
is nullable because some adjustments target unbatched stock (e.g.
an aggregate correction to a non-batch-tracked variant) — Katana
returns batch_id: null in that case.
Example:
{'batch_id': 1001, 'quantity': 50}
StockAdjustmentListResponse
¶
List of stock adjustment records showing all manual inventory corrections and their current status
Example
{'data': [{'id': 1, 'stock_adjustment_number': 'SA-1', 'stock_adjustment_date': '2021-10-06T11:47:13.846Z', 'location_id': 1, 'reason': 'adjustment reason', 'additional_info': 'adjustment additional info', 'stock_adjustment_rows': [{'id': 1, 'variant_id': 1, 'quantity': 100, 'cost_per_unit': 123.45, 'batch_transactions': [{'batch_id': 1, 'quantity': 50}, {'batch_id': 2, 'quantity': 50}]}, {'id': 2, 'variant_id': 2, 'quantity': 150, 'cost_per_unit': 234.56, 'batch_transactions': [{'batch_id': 3, 'quantity': 150}]}], 'created_at': '2021-10-06T11:47:13.846Z', 'updated_at': '2021-10-06T11:47:13.846Z', 'deleted_at': None}]}
StockAdjustmentRow
¶
Individual line item in a stock adjustment showing specific variant and quantity changes
Example
{'id': 3001, 'variant_id': 501, 'quantity': 100, 'cost_per_unit': 123.45, 'batch_transactions': [{'batch_id': 1001, 'quantity': 50}, {'batch_id': 1002, 'quantity': 50}]}
StockTransfer
¶
Inventory transfer record for moving stock between different warehouse locations or facilities
Example
{'id': 1, 'stock_transfer_number': 'ST-1', 'source_location_id': 1, 'target_location_id': 2, 'transfer_date': '2021-10-06T11:47:13.846Z', 'order_created_date': '2021-10-01T11:47:13.846Z', 'expected_arrival_date': '2021-10-20T11:47:13.846Z', 'additional_info': 'transfer additional info', 'stock_transfer_rows': [{'id': 1, 'variant_id': 1, 'quantity': 100, 'cost_per_unit': 123.45, 'batch_transactions': [{'batch_id': 1, 'quantity': 50}, {'batch_id': 2, 'quantity': 50}], 'deleted_at': None}, {'id': 2, 'variant_id': 2, 'quantity': 150, 'cost_per_unit': 234.56, 'batch_transactions': [{'batch_id': 3, 'quantity': 150}], 'deleted_at': None}], 'created_at': '2021-10-06T11:47:13.846Z', 'updated_at': '2021-10-06T11:47:13.846Z', 'deleted_at': None}
StockTransferListResponse
¶
List of stock transfer records showing all inventory movements between locations and their transfer status
Example
{'data': [{'id': 1, 'stock_transfer_number': 'ST-1', 'source_location_id': 1, 'target_location_id': 2, 'transfer_date': '2021-10-06T11:47:13.846Z', 'order_created_date': '2021-10-01T11:47:13.846Z', 'expected_arrival_date': '2021-10-20T11:47:13.846Z', 'additional_info': 'transfer additional info', 'created_at': '2021-10-06T11:47:13.846Z', 'updated_at': '2021-10-06T11:47:13.846Z', 'deleted_at': None}]}
StockTransferRow
¶
Line item in a stock transfer showing the product variant and quantity being moved
StockTransferRowRequest
¶
A stock transfer row item specifying which variant and quantity to transfer
Stocktake
¶
Physical inventory count process for reconciling actual stock levels with system records
StocktakeListResponse
¶
List of stocktake records showing all physical inventory count sessions and their completion status
Example
{'data': [{'id': 4001, 'stocktake_number': 'STK-2024-001', 'reference_no': 'STK-2024-001', 'location_id': 1, 'status': 'COMPLETED', 'count_date': '2024-01-15T09:00:00.000Z', 'notes': 'Monthly physical inventory count', 'created_at': '2024-01-15T09:00:00.000Z', 'updated_at': '2024-01-15T17:30:00.000Z'}, {'id': 4002, 'stocktake_number': 'STK-2024-002', 'reference_no': 'STK-2024-002', 'location_id': 2, 'status': 'IN_PROGRESS', 'count_date': '2024-01-16T10:00:00.000Z', 'notes': 'Spot check for high-value items', 'created_at': '2024-01-16T10:00:00.000Z', 'updated_at': '2024-01-16T12:00:00.000Z'}]}
StocktakeRow
¶
Individual item record within a stocktake showing system vs actual quantities and variance
StocktakeRowListResponse
¶
List of individual stocktake row records showing counted quantities for each variant in a stocktake session
Example
{'data': [{'id': 4101, 'stocktake_id': 4001, 'variant_id': 3001, 'expected_quantity': 150.0, 'counted_quantity': 147.0, 'variance': -3.0, 'notes': 'Minor count difference noted', 'created_at': '2024-01-15T09:30:00.000Z', 'updated_at': '2024-01-15T09:30:00.000Z'}, {'id': 4102, 'stocktake_id': 4001, 'variant_id': 3002, 'expected_quantity': 75.0, 'counted_quantity': 75.0, 'variance': 0.0, 'notes': 'Count matches expected', 'created_at': '2024-01-15T10:15:00.000Z', 'updated_at': '2024-01-15T10:15:00.000Z'}]}
StorageBin
¶
Core storage bin business properties
Example
{'bin_name': 'Bin-2', 'location_id': 12346}
StorageBinResponse
¶
Complete storage bin record with location details and system metadata for warehouse organization
Example
{'id': 12345, 'name': 'Bin-2', 'bin_name': 'Bin-2', 'location_id': 12346, 'created_at': '2020-10-23T10:37:05.085Z', 'updated_at': '2020-10-23T10:37:05.085Z', 'deleted_at': None}
StorageBinUpdate
¶
Storage bin fields for update operations
Example
{'bin_name': 'A-01-SHELF-2'}
Supplier
¶
Supplier company or individual providing materials, products, or services for procurement operations
Example
{'id': 4001, 'name': 'Premium Kitchen Supplies Ltd', 'email': 'orders@premiumkitchen.com', 'phone': '+1-555-0134', 'currency': 'USD', 'comment': 'Primary supplier for kitchen equipment and utensils. Reliable delivery times.', 'default_address_id': 4001, 'created_at': '2023-06-15T08:30:00Z', 'updated_at': '2024-01-15T14:20:00Z', 'deleted_at': None, 'addresses': [{'id': 4001, 'company': 'Premium Kitchen Supplies Ltd', 'street': '1250 Industrial Blvd', 'street2': 'Suite 200', 'city': 'Chicago', 'state': 'IL', 'zip': '60601', 'country': 'US', 'created_at': '2023-06-15T08:30:00Z', 'updated_at': '2023-06-15T08:30:00Z', 'deleted_at': None}]}
SupplierAddress
¶
Physical address information for a supplier, used for shipping, billing, and correspondence
Example
{'id': 4001, 'supplier_id': 4001, 'line_1': '1250 Industrial Blvd', 'line_2': 'Suite 200', 'city': 'Chicago', 'state': 'IL', 'zip': '60601', 'country': 'US', 'created_at': '2023-06-15T08:30:00Z', 'updated_at': '2023-06-15T08:30:00Z', 'deleted_at': None}
SupplierAddressListResponse
¶
Response containing a list of supplier addresses with pagination support for address management
Example
{'data': [{'id': 4001, 'supplier_id': 4001, 'line_1': '1250 Industrial Blvd', 'line_2': 'Suite 200', 'city': 'Chicago', 'state': 'IL', 'zip': '60601', 'country': 'US', 'created_at': '2023-06-15T08:30:00Z', 'updated_at': '2023-06-15T08:30:00Z', 'deleted_at': None}, {'id': 4002, 'supplier_id': 4001, 'line_1': '856 Distribution Center Dr', 'line_2': None, 'city': 'Milwaukee', 'state': 'WI', 'zip': '53218', 'country': 'US', 'created_at': '2023-06-15T08:30:00Z', 'updated_at': '2023-06-15T08:30:00Z', 'deleted_at': None}]}
SupplierAddressRequest
¶
Request payload for creating or specifying a supplier address
Example
{'line_1': '1250 Industrial Blvd', 'line_2': 'Suite 200', 'city': 'Chicago', 'state': 'IL', 'zip': '60601', 'country': 'US'}
SupplierListResponse
¶
Response containing a list of suppliers with pagination support for supplier management
Example
{'data': [{'id': 4001, 'name': 'Premium Kitchen Supplies Ltd', 'email': 'orders@premiumkitchen.com', 'phone': '+1-555-0134', 'currency': 'USD', 'comment': 'Primary supplier for kitchen equipment and utensils', 'default_address_id': 4001, 'created_at': '2023-06-15T08:30:00Z', 'updated_at': '2024-01-15T14:20:00Z', 'deleted_at': None}, {'id': 4002, 'name': 'Industrial Food Systems', 'email': 'procurement@indufood.com', 'phone': '+1-555-0276', 'currency': 'USD', 'comment': 'Specialized in commercial kitchen appliances', 'default_address_id': 4002, 'created_at': '2023-08-22T10:15:00Z', 'updated_at': '2023-12-10T16:30:00Z', 'deleted_at': None}]}
TaxRate
¶
Tax rate configuration for applying taxes to sales and purchase transactions based on jurisdiction and business requirements
Example:
{'id': 301, 'name': 'VAT 20%', 'rate': 20.0, 'is_default_sales': True, 'is_default_purchases': False,
'display_name': 'VAT (20.0%)', 'created_at': '2024-01-15T09:30:00Z', 'updated_at': '2024-01-15T09:30:00Z'}
TaxRateListResponse
¶
Response containing a paginated list of tax rates configured for the organization's sales and purchase tax compliance
Example:
{'data': [{'id': 301, 'name': 'VAT 20%', 'rate': 20.0, 'is_default_sales': True, 'is_default_purchases': False,
'display_name': 'VAT (20.0%)', 'created_at': '2024-01-15T09:30:00Z', 'updated_at': '2024-01-15T09:30:00Z'},
{'id': 302, 'name': 'VAT 5%', 'rate': 5.0, 'is_default_sales': False, 'is_default_purchases': True,
'display_name': 'VAT (5.0%)', 'created_at': '2024-01-15T09:35:00Z', 'updated_at': '2024-01-15T09:35:00Z'}]}
TypeValidationError
¶
Ajv type keyword: the value's type does not match the schema's
type. info.type names the expected type.
TypeValidationErrorInfo
¶
Keyword-specific metadata for type
UnassignedBatchTransaction
¶
A batch transaction not yet assigned to a sales return row
UnassignedBatchTransactionListResponse
¶
Response containing a list of unassigned batch transactions
UniqueItemsValidationError
¶
Ajv uniqueItems keyword: the array contains duplicate items.
info.i and info.j are the indices of the duplicate pair.
UniqueItemsValidationErrorInfo
¶
Keyword-specific metadata for uniqueItems
UnlinkManufacturingOrderRequest
¶
Request to unlink a manufacturing order from its associated sales order row, removing the direct connection while preserving both orders.
Example:
{'sales_order_row_id': 2501}
UnlinkVariantBinLocationRequest
¶
Request to remove a variant's default storage bin assignment for a specific location
Example
{'location_id': 1, 'variant_id': 3001}
UpdatableEntity
¶
Common fields for entities that can be updated
Example
{'id': 12345, 'created_at': '2020-10-23T10:37:05.085Z', 'updated_at': '2020-10-23T10:37:05.085Z'}
UpdateBomRowRequest
¶
Request payload for updating an existing BOM row. Only provided fields will be updated.
Example
{'quantity': 3.0, 'notes': 'Updated quantity based on new specifications'}
UpdateCustomFieldDefinitionRequest
¶
Request payload for updating an existing custom field definition.
Only label, description, and options may be updated;
field_type, entity_type, and source are immutable.
Example:
{'label': 'Quality Grade (revised)', 'description': 'Updated customer-facing quality classification'}
UpdateCustomerAddressRequest
¶
Request payload for updating an existing customer address
UpdateCustomerRequest
¶
Request payload for updating an existing customer with contact and business information
Example
{'name': 'Gourmet Bistro Group', 'first_name': 'Elena', 'last_name': 'Rodriguez', 'company': 'Gourmet Bistro Group Inc', 'email': 'procurement@gourmetbistro.com', 'phone': '+1-555-0125', 'comment': 'Premium restaurant chain - priority orders', 'currency': 'USD', 'reference_id': 'GBG-2024-003', 'category': 'Fine Dining', 'discount_rate': 7.5, 'default_shipping_id': 2}
UpdateManufacturingOrderOperationRowRequest
¶
Request payload for updating a manufacturing order operation row with actual completion data
Example
{'manufacturing_order_id': 1001, 'operation_name': 'Assembly', 'total_actual_time': 52.3, 'status': 'COMPLETED', 'completed_by_operators': [{'id': 101, 'operator_name': 'John Smith', 'created_at': '2024-01-15T08:00:00.000Z', 'updated_at': '2024-01-15T08:00:00.000Z', 'deleted_at': None}]}
UpdateManufacturingOrderProductionIngredientRequest
¶
Request payload for updating ingredient consumption data in a manufacturing order production batch
Example
{'batch_transactions': [{'batch_id': 123, 'quantity': 3.2}]}
UpdateManufacturingOrderProductionRequest
¶
Request payload for updating an existing production run within a manufacturing order.
Example
{'production_date': '2024-01-21T16:00:00Z'}
UpdateManufacturingOrderRecipeRowRequest
¶
Request payload for updating a manufacturing order recipe row with actual consumption data and revised requirements
Example
{'variant_id': 2002, 'notes': 'Used organic ingredients as requested by customer', 'planned_quantity_per_unit': 0.3, 'total_actual_quantity': 6.2, 'batch_transactions': [{'batch_id': 301, 'quantity': 3.5}, {'batch_id': 302, 'quantity': 2.7}]}
UpdateManufacturingOrderRequest
¶
Request payload for updating an existing manufacturing order's properties and production parameters.
Example
{'planned_quantity': 75, 'additional_info': 'Increased quantity due to additional customer demand', 'production_deadline_date': '2024-01-30T17:00:00Z'}
UpdateMaterialRequest
¶
Request payload for updating an existing raw material's properties and specifications
Example
{'name': 'Stainless Steel Sheet 304 - Updated', 'uom': 'm²', 'category_name': 'Premium Raw Materials', 'default_supplier_id': 1502, 'additional_info': 'Food-grade stainless steel, 1.5mm thickness - Updated specifications', 'batch_tracked': True, 'is_sellable': False, 'is_archived': False, 'purchase_uom': 'sheet', 'purchase_uom_conversion_rate': 2.0, 'configs': [{'id': 101, 'name': 'Grade', 'values': ['304', '316', '430']}, {'name': 'Finish', 'values': ['Brushed', 'Mirror', 'Matte']}], 'custom_field_collection_id': 201}
UpdateOutsourcedPurchaseOrderRecipeRowRequest
¶
Request payload for updating an outsourced purchase order recipe row
UpdatePriceListCustomerRequest
¶
Request payload for updating an existing price list customer assignment
Example
{'customer_id': 2003}
UpdatePriceListRequest
¶
Request payload for updating an existing price list
Example
{'name': 'Premium Customer Pricing - Updated', 'is_active': True}
UpdatePriceListRowRequest
¶
Request payload for updating an existing price list row
Example
{'variant_id': 67890, 'adjustment_method': 'fixed', 'amount': 259.99}
UpdateProductOperationRowRequest
¶
Request payload for updating a product operation row
UpdateProductRequest
¶
Request payload for updating an existing finished product's properties, configurations, and manufacturing specifications
Example:
{'name': 'Professional Kitchen Knife Set', 'uom': 'set', 'category_name': 'Premium Kitchenware', 'is_sellable':
True, 'is_producible': True, 'is_purchasable': False, 'is_auto_assembly': False, 'is_archived': False,
'default_supplier_id': 1501, 'additional_info': 'High-carbon stainless steel with ergonomic handles, dishwasher
safe', 'batch_tracked': False, 'serial_tracked': True, 'operations_in_sequence': True, 'purchase_uom': 'set',
'purchase_uom_conversion_rate': 1.0, 'custom_field_collection_id': 5, 'configs': [{'name': 'Piece Count',
'values': ['6-piece', '8-piece', '12-piece']}, {'name': 'Handle Material', 'values': ['Wood', 'Steel',
'Composite']}]}
UpdatePurchaseOrderAdditionalCostRowRequest
¶
Request payload for updating an existing additional cost line item on a purchase order
Example
{'additional_cost_id': 1, 'tax_rate_id': 1, 'price': 150.0, 'distribution_method': 'BY_VALUE'}
UpdatePurchaseOrderRequest
¶
Request payload for updating an existing purchase order's details, status, and line items
Example
{'order_no': 'PO-2024-0156-REVISED', 'expected_arrival_date': '2024-02-20T00:00:00Z', 'status': 'PARTIALLY_RECEIVED', 'additional_info': 'Delivery delayed due to weather - updated schedule'}
UpdatePurchaseOrderRowRequest
¶
Request payload for updating an existing purchase order line item's details and status
Example
{'quantity': 275, 'price_per_unit': 2.95, 'purchase_uom': 'kg', 'received_date': '2024-02-15T14:30:00Z', 'arrival_date': '2024-02-15T10:00:00Z'}
UpdateRecipeRowRequest
¶
Request payload for updating a recipe row
UpdateSalesOrderAddressRequest
¶
Request payload for updating an existing sales order address
Example
{'line_1': '456 Oak Avenue', 'phone': '+1-555-0456'}
UpdateSalesOrderFulfillmentRequest
¶
Request payload for updating a sales order fulfillment
UpdateSalesOrderRequest
¶
Request payload for updating a sales order
UpdateSalesOrderRequestCustomFieldsType0
¶
Custom field values for the sales order, keyed by the
definition id (UUID) — the id returned by
GET /custom_field_definitions, not the field label. Each
value matches the definition's field_type: string for
shortText / url, number for number, boolean for
boolean, a YYYY-MM-DD string for date, or the
integer choice id for singleSelect.
On PATCH the object is merged with the existing values,
not replaced:
- omit the
custom_fieldskey — existing values unchanged; {"<id>": value}— that key is set / overwritten, all other keys kept;null— all custom field values on the order are cleared.
Keys are tenant-specific, so the schema declares
additionalProperties: true rather than enumerating them.
UpdateSalesOrderRowRequest
¶
Request payload for updating an existing sales order row
Example
{'quantity': 3, 'price_per_unit': 549.99}
UpdateSalesOrderRowRequestCustomFieldsType0
¶
Row-level custom field values, keyed by the
definition id (UUID) — the id returned by
GET /custom_field_definitions, not the field label. Each
value matches the definition's field_type: string for
shortText / url, number for number, boolean for
boolean, a YYYY-MM-DD string for date, or the
integer choice id for singleSelect.
On PATCH the object is merged with the existing values,
not replaced:
- omit the
custom_fieldskey — existing values unchanged; {"<id>": value}— that key is set / overwritten, all other keys kept;null— all custom field values on the row are cleared.
Keys are tenant-specific, so the schema declares
additionalProperties: true rather than enumerating them.
UpdateSalesOrderShippingFeeRequest
¶
Request payload for updating a sales order shipping fee
UpdateSalesReturnRequest
¶
Request payload for updating an existing sales return
Example
{'status': 'RETURNED_ALL', 'return_date': '2023-10-12T10:00:00Z', 'order_no': 'SR-2023-001', 'return_location_id': 1, 'additional_info': 'Customer reported damaged items during shipping'}
UpdateSalesReturnRowRequest
¶
Request payload for updating a sales return row
UpdateServiceRequest
¶
Request payload for updating an existing service's properties and specifications
Example
{'name': 'Updated Assembly Service', 'uom': 'hours', 'category_name': 'Professional Services', 'is_sellable': True, 'is_archived': False, 'sales_price': 85.0, 'default_cost': 55.0, 'sku': 'ASSM-001-UPD', 'additional_info': 'Updated professional product assembly service', 'custom_field_collection_id': 1}
UpdateStockAdjustmentRequest
¶
Request payload for updating an existing stock adjustment
Example
{'stock_adjustment_number': 'SA-2024-003', 'stock_adjustment_date': '2024-01-17T14:30:00.000Z', 'location_id': 1, 'reason': 'Cycle count correction', 'additional_info': 'Cycle count correction - updated with final counts'}
UpdateStockTransferRequest
¶
Request payload for updating a stock transfer
UpdateStockTransferStatusRequest
¶
Request payload for updating a stock transfer status
UpdateStocktakeRequest
¶
Request payload for updating an existing stocktake
Example
{'stocktake_number': 'STK-2024-003', 'location_id': 1, 'reason': 'Quarterly inventory count - updated', 'status': 'IN_PROGRESS'}
UpdateStocktakeRowRequest
¶
Request payload for updating an existing stocktake row
Example
{'variant_id': 3001, 'batch_id': 501, 'counted_quantity': 148.0, 'notes': 'Recount confirmed minor variance'}
UpdateSupplierAddressRequest
¶
Request payload for updating an existing supplier address
Example
{'line_1': '1250 Industrial Blvd', 'line_2': 'Suite 300', 'city': 'Chicago', 'state': 'IL', 'zip': '60601', 'country': 'US'}
UpdateSupplierRequest
¶
Request payload for updating an existing supplier's contact information and details
Example
{'name': 'Premium Kitchen Supplies Ltd', 'email': 'orders@premiumkitchen.com', 'phone': '+1-555-0134', 'currency': 'USD', 'comment': 'Primary supplier for kitchen equipment and utensils. Excellent customer service.'}
UpdateVariantRequest
¶
Request payload for updating product variant details including pricing, configuration, and inventory information.
Note: product_id and material_id are not present here — a variant's parent
is set at create time and cannot be reassigned via PATCH.
Example:
{'sku': 'KNF-PRO-8PC-UPD', 'sales_price': 319.99, 'purchase_price': 160.0, 'supplier_item_codes': ['SUP-
KNF-8PC-002'], 'internal_barcode': 'INT-KNF-002', 'registered_barcode': '789123456790', 'lead_time': 5,
'minimum_order_quantity': 1, 'config_attributes': [{'config_name': 'Piece Count', 'config_value': '8-piece'},
{'config_name': 'Handle Material', 'config_value': 'Premium Steel'}], 'custom_fields': [{'field_name': 'Warranty
Period', 'field_value': '7 years'}]}
UpdateWebhookRequest
¶
Request payload for updating an existing webhook subscription configuration
Example
{'url': 'https://api.customer.com/webhooks/katana-v2', 'enabled': True, 'subscribed_events': ['sales_order.created', 'sales_order.updated', 'sales_order.delivered', 'current_inventory.product_updated', 'manufacturing_order.done', 'purchase_order.received'], 'description': 'Updated ERP integration webhook with expanded event coverage'}
User
¶
System user account with authentication credentials and role-based permissions
Example
{'id': 42, 'firstName': 'Sarah', 'lastName': 'Johnson', 'email': 'sarah.johnson@company.com', 'role': 'production_manager', 'status': 'active', 'last_login_at': '2024-01-15T14:30:00Z', 'created_at': '2024-01-10T09:00:00Z', 'updated_at': '2024-01-15T14:30:00Z'}
UserInfo
¶
Information about the currently authenticated user
Example
{'id': 42, 'firstName': 'Jane', 'lastName': 'Doe', 'email': 'jane.doe@example.com'}
UserListResponse
¶
List of system users with their account information and role assignments
Example
{'data': [{'id': 42, 'firstName': 'Sarah', 'lastName': 'Johnson', 'email': 'sarah.johnson@company.com', 'role': 'production_manager', 'status': 'active', 'last_login_at': '2024-01-15T14:30:00Z', 'created_at': '2024-01-10T09:00:00Z', 'updated_at': '2024-01-15T14:30:00Z'}, {'id': 43, 'firstName': 'Mike', 'lastName': 'Chen', 'email': 'mike.chen@company.com', 'role': 'inventory_coordinator', 'status': 'active', 'last_login_at': '2024-01-15T10:15:00Z', 'created_at': '2024-01-08T11:00:00Z', 'updated_at': '2024-01-15T10:15:00Z'}]}
Variant
¶
Specific SKU of a product or material with unique pricing, configuration, and inventory tracking
Example
{'id': 3001, 'sku': 'KNF-PRO-8PC-STL', 'sales_price': 299.99, 'product_id': 101, 'material_id': None, 'purchase_price': 150.0, 'type': 'product', 'internal_barcode': 'INT-KNF-001', 'registered_barcode': '789123456789', 'supplier_item_codes': ['SUP-KNF-8PC-001'], 'lead_time': 7, 'minimum_order_quantity': 1, 'custom_fields': [{'field_name': 'Warranty Period', 'field_value': '5 years'}], 'config_attributes': [{'config_name': 'Piece Count', 'config_value': '8-piece'}, {'config_name': 'Handle Material', 'config_value': 'Steel'}], 'abc_classification': 'A', 'created_at': '2024-01-15T08:00:00.000Z', 'updated_at': '2024-08-20T14:45:00.000Z', 'deleted_at': None}
VariantDefaultStorageBinLink
¶
Link defining the default storage bin assignment for a specific variant to optimize warehouse picking and storage
Example
{'location_id': 1, 'variant_id': 3001, 'bin_name': 'A-01-SHELF-1'}
VariantDefaultStorageBinLinkResponse
¶
Complete variant storage bin link record with system metadata for warehouse configuration management
Example
{'id': 501, 'bin_name': 'A-01-SHELF-1', 'variant_id': 3001, 'storage_bin_id': 12345, 'created_at': '2024-01-15T08:00:00.000Z', 'updated_at': '2024-01-15T08:00:00.000Z', 'deleted_at': None}
VariantListResponse
¶
Response containing a paginated list of variants with their configuration attributes and parent product details
Example
{'data': [{'id': 3001, 'sku': 'KNF-PRO-8PC-STL', 'sales_price': 299.99, 'type': 'product', 'config_attributes': [{'config_name': 'Piece Count', 'config_value': '8-piece'}, {'config_name': 'Handle Material', 'config_value': 'Steel'}]}, {'id': 3002, 'sku': 'KNF-PRO-12PC-WD', 'sales_price': 399.99, 'type': 'product', 'config_attributes': [{'config_name': 'Piece Count', 'config_value': '12-piece'}, {'config_name': 'Handle Material', 'config_value': 'Wood'}]}, {'id': 5001, 'sku': 'STEEL-304-1.5MM', 'sales_price': 65.0, 'purchase_price': 45.0, 'type': 'material', 'lead_time': 5, 'minimum_order_quantity': 1, 'config_attributes': [{'config_name': 'Grade', 'config_value': '304'}, {'config_name': 'Thickness', 'config_value': '1.5mm'}]}, {'id': 5003, 'sku': 'ALU-6061-2.0MM', 'sales_price': 55.0, 'purchase_price': 38.5, 'type': 'material', 'lead_time': 3, 'minimum_order_quantity': 2, 'config_attributes': [{'config_name': 'Alloy', 'config_value': '6061'}, {'config_name': 'Thickness', 'config_value': '2.0mm'}]}]}
VariantResponse
¶
Response containing a variant with its configuration attributes and related product or material details
Example
{'id': 3001, 'sku': 'KNF-PRO-8PC-STL', 'sales_price': 299.99, 'purchase_price': 150.0, 'product_id': 101, 'material_id': None, 'type': 'product', 'internal_barcode': 'INT-KNF-001', 'registered_barcode': '789123456789', 'supplier_item_codes': ['SUP-KNF-8PC-001'], 'lead_time': 7, 'minimum_order_quantity': 1, 'config_attributes': [{'config_name': 'Piece Count', 'config_value': '8-piece'}, {'config_name': 'Handle Material', 'config_value': 'Steel'}], 'custom_fields': [{'field_name': 'Warranty Period', 'field_value': '5 years'}], 'product_or_material': {'id': 101, 'name': 'Professional Kitchen Knife Set', 'uom': 'set', 'category_name': 'Kitchenware', 'is_sellable': True, 'is_producible': True, 'is_purchasable': False, 'type': 'product', 'created_at': '2024-01-15T08:00:00.000Z', 'updated_at': '2024-08-20T14:45:00.000Z', 'archived_at': None}, 'created_at': '2024-01-15T08:00:00.000Z', 'updated_at': '2024-08-20T14:45:00.000Z', 'deleted_at': None}
Webhook
¶
Webhook subscription configuration for real-time event notifications to external systems
Example
{'id': 1, 'url': 'https://api.customer.com/webhooks/katana', 'token': '46aec160c0efe1d6', 'enabled': True, 'description': 'ERP integration webhook for inventory sync', 'subscribed_events': ['sales_order.created', 'sales_order.updated', 'manufacturing_order.done', 'purchase_order.received'], 'created_at': '2024-01-10T09:00:00Z', 'updated_at': '2024-01-15T11:30:00Z'}
WebhookEventPayload
¶
Webhook event payload structure sent to registered webhook endpoints. Contains information about the event and the affected resource.
Example:
{'resource_type': 'sales_order', 'action': 'sales_order.delivered', 'webhook_id': 123, 'object': {'id': '12345',
'status': 'DELIVERED', 'href': 'https://api.katanamrp.com/v1/sales_orders/12345'}}
WebhookEventPayloadObject
¶
The object affected by this event. Contains id, status and href to retrieve the resource.
Notes: - href property doesn't apply to deleted events (e.g., sales_order.deleted, product_recipe_row.deleted) - status field appears in examples but is not documented in official Katana API docs
WebhookListResponse
¶
List of webhook subscriptions configured for event notifications
Example
{'data': [{'id': 1, 'url': 'https://api.customer.com/webhooks/katana', 'token': '46aec160c0efe1d6', 'enabled': True, 'description': 'ERP integration webhook for inventory sync', 'subscribed_events': ['sales_order.created', 'sales_order.updated', 'current_inventory.product_updated'], 'created_at': '2024-01-10T09:00:00Z', 'updated_at': '2024-01-15T11:30:00Z'}, {'id': 2, 'url': 'https://reporting.company.com/katana-events', 'token': '73f82127d57a2cea', 'enabled': False, 'description': 'Business intelligence reporting', 'subscribed_events': ['manufacturing_order.done', 'purchase_order.received'], 'created_at': '2024-01-12T14:00:00Z', 'updated_at': '2024-01-14T16:45:00Z'}]}
WebhookLogsExport
¶
Webhook log export result containing downloadable data for debugging and monitoring webhook delivery
Example
{'url': 'https://katana-exports.s3.amazonaws.com/webhook-logs-2024-01-15.csv?expires=1705392000'}
WebhookLogsExportRequest
¶
Request parameters for exporting webhook delivery logs for analysis and debugging
Example
{'webhook_id': 1, 'event': 'sales_order.created', 'status_code': 200, 'delivered': True, 'created_at_min': '2024-01-10T00:00:00Z', 'created_at_max': '2024-01-15T23:59:59Z'}