# Luminous API Documentation ## Docs - [AP bills aging by vendor](https://docs.joinluminous.com/api-reference/bills-reports/ap-bills-aging-by-vendor.md): Accounts payable bills aging report grouped by vendor with per-bill breakdown and bucket totals. - [Auto-allocate bill](https://docs.joinluminous.com/api-reference/bills/auto-allocate-bill.md): Automatically allocate bill line items. - [Bills allocation inbox](https://docs.joinluminous.com/api-reference/bills/bills-allocation-inbox.md): Returns a list of bills that need allocation attention, such as bills with unallocated amounts or pending cost allocations. - [Bills by purchase order](https://docs.joinluminous.com/api-reference/bills/bills-by-purchase-order.md): Returns all bills associated with a specific purchase order. - [Bills by vendor](https://docs.joinluminous.com/api-reference/bills/bills-by-vendor.md): Returns all bills for a specific vendor (company). - [Bills summary](https://docs.joinluminous.com/api-reference/bills/bills-summary.md): Returns summary and aggregate data for bills, such as totals and counts by status. - [Calculate bill due date](https://docs.joinluminous.com/api-reference/bills/calculate-bill-due-date.md): Calculate the due date for a bill based on the provided payment terms and bill date. - [Check for duplicate bill](https://docs.joinluminous.com/api-reference/bills/check-for-duplicate-bill.md): Check whether a bill already exists based on the provided query parameters. Useful for preventing duplicate bill entry. - [Create a bill](https://docs.joinluminous.com/api-reference/bills/create-a-bill.md): Create a new bill record. - [Create a bill allocation](https://docs.joinluminous.com/api-reference/bills/create-a-bill-allocation.md): Create an allocation for a bill. - [Delete a bill allocation](https://docs.joinluminous.com/api-reference/bills/delete-a-bill-allocation.md): Remove an allocation from a bill. - [Delete a bill attachment](https://docs.joinluminous.com/api-reference/bills/delete-a-bill-attachment.md): Delete an attachment from a bill. - [Delete a bill payment](https://docs.joinluminous.com/api-reference/bills/delete-a-bill-payment.md): Remove a payment from a bill. - [Download a bill attachment](https://docs.joinluminous.com/api-reference/bills/download-a-bill-attachment.md): Download an attachment file from a bill. - [Get AI suggestions for a bill item](https://docs.joinluminous.com/api-reference/bills/get-ai-suggestions-for-a-bill-item.md): Get AI-powered allocation suggestions for a specific bill item. - [Get bill billable lines](https://docs.joinluminous.com/api-reference/bills/get-bill-billable-lines.md): List billable lines for a bill. - [Get bill candidate lines](https://docs.joinluminous.com/api-reference/bills/get-bill-candidate-lines.md): List candidate lines for a bill. - [Get bill variance](https://docs.joinluminous.com/api-reference/bills/get-bill-variance.md): Returns variance data for a bill. - [Get billable lines for a shipment](https://docs.joinluminous.com/api-reference/bills/get-billable-lines-for-a-shipment.md): Returns billable lines for a specific shipment. - [Get eligible lines for a bill item](https://docs.joinluminous.com/api-reference/bills/get-eligible-lines-for-a-bill-item.md): List eligible lines for a specific bill item. - [Hold a bill](https://docs.joinluminous.com/api-reference/bills/hold-a-bill.md): Place a bill on hold, preventing it from being processed for payment. - [List bill allocations](https://docs.joinluminous.com/api-reference/bills/list-bill-allocations.md): List allocations for a bill. - [List bills](https://docs.joinluminous.com/api-reference/bills/list-bills.md): Get a paginated list of bills with optional filtering. - [Parse bill import](https://docs.joinluminous.com/api-reference/bills/parse-bill-import.md): Parse imported bill data from an uploaded file or raw input. Returns structured bill data ready for review and creation. - [Post a bill](https://docs.joinluminous.com/api-reference/bills/post-a-bill.md): Post a bill, marking it as finalized and ready for payment processing. - [Prefill bill from shipments](https://docs.joinluminous.com/api-reference/bills/prefill-bill-from-shipments.md): Get prefilled bill data based on one or more shipments. Use this to auto-populate a new bill from incoming shipment records. - [Prorate allocation for a bill item](https://docs.joinluminous.com/api-reference/bills/prorate-allocation-for-a-bill-item.md): Prorate and allocate a specific bill item across eligible lines. - [Record a bill payment](https://docs.joinluminous.com/api-reference/bills/record-a-bill-payment.md): Record a payment against a bill. - [Reopen a bill](https://docs.joinluminous.com/api-reference/bills/reopen-a-bill.md): Reopen a previously posted or closed bill, returning it to an editable state. - [Resolve bill variance](https://docs.joinluminous.com/api-reference/bills/resolve-bill-variance.md): Resolve variance on a bill. - [Single bill](https://docs.joinluminous.com/api-reference/bills/single-bill.md): Get details of a specific bill by ID. - [Unhold a bill](https://docs.joinluminous.com/api-reference/bills/unhold-a-bill.md): Remove the hold from a bill, allowing it to be processed for payment again. - [Update a bill](https://docs.joinluminous.com/api-reference/bills/update-a-bill.md): Update an existing bill by ID. Send only the fields you want to change. - [Update bill status](https://docs.joinluminous.com/api-reference/bills/update-bill-status.md): Update the status of an existing bill. - [Upload a bill attachment](https://docs.joinluminous.com/api-reference/bills/upload-a-bill-attachment.md): Upload an attachment to a bill. - [Void a bill payment](https://docs.joinluminous.com/api-reference/bills/void-a-bill-payment.md): Void a payment on a bill. - [BOMs](https://docs.joinluminous.com/api-reference/boms/boms.md): Get a paginated list of BOMs (Bills of Materials) with optional filtering. - [Create a BOM](https://docs.joinluminous.com/api-reference/boms/create-a-bom.md): Create a new BOM (Bill of Materials) with items and optional extra costs. - [Delete BOM](https://docs.joinluminous.com/api-reference/boms/delete-bom.md): Delete a BOM by ID - [Single BOM](https://docs.joinluminous.com/api-reference/boms/single-bom.md): Get detailed information about a specific BOM by its ID - [Update a BOM](https://docs.joinluminous.com/api-reference/boms/update-a-bom.md): Update an existing BOM's information. All fields are optional, allowing partial updates. - [Create channel](https://docs.joinluminous.com/api-reference/channels/create-channel.md): Create a channel of any type (`sales_channel`, `fulfillment_channel`, `end_to_end_channel`). New channels are created **unlocked** (`apiLocked: false`). Many fields are conditionally required based on `channelType` and the OMS integrations enabled — see the description on each property. - [Create sales channel (legacy)](https://docs.joinluminous.com/api-reference/channels/create-sales-channel-legacy.md): Backward-compatible endpoint that creates a sales channel without requiring `channelType` in the body. Same underlying flow as `POST /channels` with `channelType=sales_channel`. Prefer `POST /channels` for new integrations. - [Delete channel](https://docs.joinluminous.com/api-reference/channels/delete-channel.md): Soft-delete a channel. Returns **403** when `apiLocked: true`. - [Get channel](https://docs.joinluminous.com/api-reference/channels/get-channel.md): Read full channel detail including loaded mappings, warehouse group, tags, and metafields. Always allowed. - [List channels](https://docs.joinluminous.com/api-reference/channels/list-channels.md): Paginated list of non-deleted channels with optional filters. Always allowed — `apiLocked` does not block reads. - [Lock channel](https://docs.joinluminous.com/api-reference/channels/lock-channel.md): Set `apiLocked: true` on a channel to block subsequent external API mutations (`PUT`, `DELETE`, `POST /channels/{id}/integration-products`). - [Sync channel integration products](https://docs.joinluminous.com/api-reference/channels/sync-channel-integration-products.md): Bulk-create or update channel SKU → Luminous SKU mappings for a sales channel. Up to 500 items per call. Set `delete: true` on an item to remove its mapping. - [Update channel](https://docs.joinluminous.com/api-reference/channels/update-channel.md): Update an existing channel. Validator uses **merge / PATCH semantics** — omitted keys are preserved. `channelType` cannot be changed once set (sending it returns 422). - [Companies](https://docs.joinluminous.com/api-reference/companies/companies.md): Get a paginated list of companies with optional filtering and sorting. - [Company](https://docs.joinluminous.com/api-reference/companies/company.md): Get detailed information for a specific company - [Company Contacts](https://docs.joinluminous.com/api-reference/companies/company-contacts.md): Get a paginated list of contacts associated with a specific company. - [Company Product Price Overrides](https://docs.joinluminous.com/api-reference/companies/company-product-price-overrides.md): Get a list of product-specific price overrides for a particular company. - [Company Products](https://docs.joinluminous.com/api-reference/companies/company-products.md): Get a paginated list of products associated with a specific company. - [Create a company](https://docs.joinluminous.com/api-reference/companies/create-a-company.md): Create a new company with optional tags, custom fields, and shipping addresses - [Delete a company](https://docs.joinluminous.com/api-reference/companies/delete-a-company.md): Delete a company by ID - [Update a company](https://docs.joinluminous.com/api-reference/companies/update-a-company.md): Update an existing company's information - [Consumption report export](https://docs.joinluminous.com/api-reference/consumption/consumption-report-export.md): Export consumption report as CSV or Excel file. - [Consumption report (paginated)](https://docs.joinluminous.com/api-reference/consumption/consumption-report-paginated.md): Aggregated or transactional consumption data. The `group` parameter controls the row shape. - [Contacts](https://docs.joinluminous.com/api-reference/contacts/contacts.md): Get a paginated list of all contacts with optional filtering and sorting. - [Create a contact](https://docs.joinluminous.com/api-reference/contacts/create-a-contact.md): Create a new contact. Requires `first_name` and either `company_id` or `company_ids`. - [Delete a contact](https://docs.joinluminous.com/api-reference/contacts/delete-a-contact.md): Delete a contact by ID. This performs a soft delete by setting the contact status to inactive. - [Set or rotate B2B portal password](https://docs.joinluminous.com/api-reference/contacts/set-or-rotate-b2b-portal-password.md): Sets or rotates the B2B client portal password for a contact. Uses the same backend logic as sending `password` on `POST /contacts/{contactId}`, but accepts only the password field. - [Single contact](https://docs.joinluminous.com/api-reference/contacts/single-contact.md): Get detailed information for a specific contact by ID - [Update a contact](https://docs.joinluminous.com/api-reference/contacts/update-a-contact.md): Update an existing contact's information. **All fields are optional**, allowing partial updates. - [Convert currency](https://docs.joinluminous.com/api-reference/currency/convert-currency.md): Convert an amount between currencies using current exchange rates. - [Create a currency rate](https://docs.joinluminous.com/api-reference/currency/create-a-currency-rate.md): Create a new currency exchange rate. - [Get available currencies](https://docs.joinluminous.com/api-reference/currency/get-available-currencies.md): Returns a list of available currencies. - [Get base currency](https://docs.joinluminous.com/api-reference/currency/get-base-currency.md): Returns the configured base currency. - [List currency rates](https://docs.joinluminous.com/api-reference/currency/list-currency-rates.md): Get a list of currency exchange rates. - [Set base currency](https://docs.joinluminous.com/api-reference/currency/set-base-currency.md): Set the base currency for your account. - [Create a custom field definition](https://docs.joinluminous.com/api-reference/custom-fields/create-a-custom-field-definition.md): Create a new custom field definition. - [Delete a custom field definition](https://docs.joinluminous.com/api-reference/custom-fields/delete-a-custom-field-definition.md): Delete a custom field definition by ID. Fields that are already in use on records cannot be deleted and will return a 422. - [Get a custom field definition](https://docs.joinluminous.com/api-reference/custom-fields/get-a-custom-field-definition.md): Retrieve a single custom field definition by ID. - [Get custom field definitions](https://docs.joinluminous.com/api-reference/custom-fields/get-custom-field-definitions.md): List all custom field definitions (schema). Optionally filter to only the fields applicable to a specific entity type. - [Get custom field values](https://docs.joinluminous.com/api-reference/custom-fields/get-custom-field-values.md): Retrieve all custom field values for a specific record. Supported record types: `sales-orders`,`sales-order-items`,`invoices`,`products` - [Update a custom field definition](https://docs.joinluminous.com/api-reference/custom-fields/update-a-custom-field-definition.md): Update a custom field definition's label, type, options, and linked entity types. `object_types` is required on update — pass an empty array to unlink the field from all entity types. - [Update custom field values](https://docs.joinluminous.com/api-reference/custom-fields/update-custom-field-values.md): Update custom field values for a specific record. Supported record types: `sales-orders`,`sales-order-items`,`invoices`,`products` Values must match the field type (string, number, date, or dropdown). - [Create customer return](https://docs.joinluminous.com/api-reference/customer-returns/create-customer-return.md): Create a new customer return against an existing sales order. Use `transaction_type` to control whether a refund order is generated alongside the return: - [Delete customer return](https://docs.joinluminous.com/api-reference/customer-returns/delete-customer-return.md): Delete a return order. Reverses any inventory effect from a previously received return when applicable. - [List customer returns](https://docs.joinluminous.com/api-reference/customer-returns/list-customer-returns.md): Paginated list of customer return orders. - [Mark return received](https://docs.joinluminous.com/api-reference/customer-returns/mark-return-received.md): Transition a return from `Pending` to `Received`. If `restock` is true on the return, inventory is put back into stock at this point (using each line's `location_id`/`lot_id`, falling back to the originating fulfillment line's warehouse). If `restock` is false, no inventory adjustment is made. - [Single customer return](https://docs.joinluminous.com/api-reference/customer-returns/single-customer-return.md): Retrieve a customer return by ID. - [Update return restock flag](https://docs.joinluminous.com/api-reference/customer-returns/update-return-restock-flag.md): Toggle whether receiving this return will restock inventory. `restock=true` means stock is put back on receive; `restock=false` means it is not (`skip_inventory` internally). - [All warehouse-group forecast rows for a product](https://docs.joinluminous.com/api-reference/forecast/all-warehouse-group-forecast-rows-for-a-product.md): Retrieve all warehouse-group forecast rows for a given product RFQ ID. Requires feature **forecast_materialized_table**. - [Forecast row by materialized row ID](https://docs.joinluminous.com/api-reference/forecast/forecast-row-by-materialized-row-id.md): Retrieve a single forecast row by its materialized table row ID. Requires feature **forecast_materialized_table**. - [Forecast row by product (RFQ) ID](https://docs.joinluminous.com/api-reference/forecast/forecast-row-by-product-rfq-id.md): Retrieve a single forecast row by its product RFQ ID. Requires feature **forecast_materialized_table**. - [Forecast table refresh metadata](https://docs.joinluminous.com/api-reference/forecast/forecast-table-refresh-metadata.md): Returns the last refresh timestamp, total record count, and staleness indicator. Requires feature **forecast_materialized_table**. - [Materialized forecast by warehouse group (paginated)](https://docs.joinluminous.com/api-reference/forecast/materialized-forecast-by-warehouse-group-paginated.md): Warehouse-level materialized forecast data. Same feature gate as /forecast-data. Requires feature **forecast_materialized_table**. - [Materialized forecast export](https://docs.joinluminous.com/api-reference/forecast/materialized-forecast-export.md): Export materialized forecast data as CSV or Excel. Requires feature **forecast_materialized_table**. - [Materialized forecast rows (paginated)](https://docs.joinluminous.com/api-reference/forecast/materialized-forecast-rows-paginated.md): Requires feature **forecast_materialized_table**. Returns **403** if the feature is not enabled. - [Warehouse forecast export](https://docs.joinluminous.com/api-reference/forecast/warehouse-forecast-export.md): Export warehouse-level forecast data as CSV or Excel. Requires feature **forecast_materialized_table**. - [Warehouse forecast refresh metadata](https://docs.joinluminous.com/api-reference/forecast/warehouse-forecast-refresh-metadata.md): Returns the last refresh timestamp, total record count, and staleness indicator for warehouse forecast data. Requires feature **forecast_materialized_table**. - [Warehouse forecast row by ID](https://docs.joinluminous.com/api-reference/forecast/warehouse-forecast-row-by-id.md): Retrieve a single warehouse forecast row by its materialized table row ID. Requires feature **forecast_materialized_table**. - [Create Shipment](https://docs.joinluminous.com/api-reference/fulfillment-orders/create-shipment.md): Create a carrier shipment bound to a specific fulfillment order. The fulfillment order's parent sales order is resolved from the path, so callers do not need to look up the sales order first. - [Fulfillment orders](https://docs.joinluminous.com/api-reference/fulfillment-orders/fulfillment-orders.md): Get a paginated list of fulfillment orders with nested sales order, picklists, and line items. - [Push fulfillment order to OMS](https://docs.joinluminous.com/api-reference/fulfillment-orders/push-fulfillment-order-to-oms.md): Push this fulfillment order to its destination OMS (fulfillment channel). The destination is determined by the fulfillment order's existing channel mapping; no destination is taken from the request body. - [Remove sales order line from fulfillment order](https://docs.joinluminous.com/api-reference/fulfillment-orders/remove-sales-order-line-from-fulfillment-order.md): Detach a sales order line from this fulfillment order. The pivot allocation is removed and FO line quantities are resynced. Fails 422 if the FO has been picked or pushed (use `allow_pushed=true` to override the pushed guard). - [Single fulfillment order](https://docs.joinluminous.com/api-reference/fulfillment-orders/single-fulfillment-order.md): Retrieve details of a specific fulfillment order by its unique ID. - [Unpush fulfillment order from OMS](https://docs.joinluminous.com/api-reference/fulfillment-orders/unpush-fulfillment-order-from-oms.md): Remove this fulfillment order from its destination OMS, when the destination supports unpushing. Optionally enable per-request HTTP debug capture by sending `{ "debug": true }`. - [Get inbound shipment](https://docs.joinluminous.com/api-reference/inbound-shipments/get-inbound-shipment.md): Get a single inbound shipment by ID. - [Inbound shipments](https://docs.joinluminous.com/api-reference/inbound-shipments/inbound-shipments.md): Get a paginated list of inbound shipments with optional filtering. Results are ordered by `updated_at` descending — use `updated_at[gt]` for incremental polling. - [List OMS shipping methods](https://docs.joinluminous.com/api-reference/integration-accounts/list-oms-shipping-methods.md): Live-fetches available shipping methods from the destination OMS for the given integration account. Currently only TrackStar accounts are supported — calling this endpoint against any other app returns `422`. - [Bulk create integration field mappings](https://docs.joinluminous.com/api-reference/integration-field-mappings/bulk-create-integration-field-mappings.md): Create multiple integration field mappings in a single request. - [Bulk delete integration field mappings](https://docs.joinluminous.com/api-reference/integration-field-mappings/bulk-delete-integration-field-mappings.md): Delete multiple integration field mappings by their IDs. - [Create an integration field mapping](https://docs.joinluminous.com/api-reference/integration-field-mappings/create-an-integration-field-mapping.md): Create a new integration field mapping. - [Create mapping and retry fulfillment](https://docs.joinluminous.com/api-reference/integration-field-mappings/create-mapping-and-retry-fulfillment.md): Creates a new field mapping and may retry the fulfillment push for the associated sales order. - [Delete an integration field mapping](https://docs.joinluminous.com/api-reference/integration-field-mappings/delete-an-integration-field-mapping.md): Delete an integration field mapping by ID. - [Get an integration field mapping](https://docs.joinluminous.com/api-reference/integration-field-mappings/get-an-integration-field-mapping.md): Get details of a specific integration field mapping by ID. - [List integration field mappings](https://docs.joinluminous.com/api-reference/integration-field-mappings/list-integration-field-mappings.md): Get a list of integration field mappings with optional filtering. - [List mapping field names](https://docs.joinluminous.com/api-reference/integration-field-mappings/list-mapping-field-names.md): Get a list of distinct field name values. - [List mapping groups](https://docs.joinluminous.com/api-reference/integration-field-mappings/list-mapping-groups.md): Get a list of distinct mapping group values. - [Quick-add field mappings from recent orders](https://docs.joinluminous.com/api-reference/integration-field-mappings/quick-add-field-mappings-from-recent-orders.md): Seeds self-mappings from recent orders. Analyzes recent order data to automatically create field mappings where the Luminous value matches the external value. - [Suggest carrier mapping](https://docs.joinluminous.com/api-reference/integration-field-mappings/suggest-carrier-mapping.md): Fuzzy match a carrier value to Trackstar schema carrier enums. Returns suggested mappings based on the provided carrier value. - [Toggle auto carrier mapping](https://docs.joinluminous.com/api-reference/integration-field-mappings/toggle-auto-carrier-mapping.md): Toggles the auto carrier mapping setting for an integration account. - [Update an integration field mapping](https://docs.joinluminous.com/api-reference/integration-field-mappings/update-an-integration-field-mapping.md): Update an existing integration field mapping by ID. - [Create an integration mapping](https://docs.joinluminous.com/api-reference/integration-mappings/create-an-integration-mapping.md): Create a new integration mapping. - [Delete an integration mapping](https://docs.joinluminous.com/api-reference/integration-mappings/delete-an-integration-mapping.md): Delete an integration mapping by ID. - [Get an integration mapping](https://docs.joinluminous.com/api-reference/integration-mappings/get-an-integration-mapping.md): Get details of a specific integration mapping by ID. - [List integration mappings](https://docs.joinluminous.com/api-reference/integration-mappings/list-integration-mappings.md): Get a paginated list of integration mappings. - [Update an integration mapping](https://docs.joinluminous.com/api-reference/integration-mappings/update-an-integration-mapping.md): Update an existing integration mapping by ID. - [Inventory aging export](https://docs.joinluminous.com/api-reference/inventory-aging/inventory-aging-export.md): Export inventory aging report as CSV or Excel file. - [Inventory aging (paginated)](https://docs.joinluminous.com/api-reference/inventory-aging/inventory-aging-paginated.md): Cost-layer-based aging buckets per product. Use optional `as_of_date` for historical valuation. - [Adjust inventory stock](https://docs.joinluminous.com/api-reference/inventory/adjust-inventory-stock.md): Adjust on-hand stock for any given product in a given location. Either the product `sku` or `product_id` is required to identify the product. - [Inventory stock](https://docs.joinluminous.com/api-reference/inventory/inventory-stock.md): Get a paginated list of inventory stock levels with various filter options. - [Create invoice](https://docs.joinluminous.com/api-reference/invoices/create-invoice.md): Create a new invoice (client purchase order). At least one line item is required. Each item must supply either `product_id` or `sku`. - [Invoices](https://docs.joinluminous.com/api-reference/invoices/invoices.md): Get a paginated list of invoices with optional filtering. - [Single invoice](https://docs.joinluminous.com/api-reference/invoices/single-invoice.md): Get details of a specific invoice by ID - [Render ZPL label](https://docs.joinluminous.com/api-reference/labels/render-zpl-label.md): Render a ZPL label to an image or PDF using the Labelary service. - [Create warehouse](https://docs.joinluminous.com/api-reference/locations/create-warehouse.md): Create a new warehouse (top-level location). - [Create warehouse group](https://docs.joinluminous.com/api-reference/locations/create-warehouse-group.md): Create a new warehouse group with optional warehouse assignments. - [Delete warehouse](https://docs.joinluminous.com/api-reference/locations/delete-warehouse.md): Soft-delete a warehouse by ID. - [Delete warehouse group](https://docs.joinluminous.com/api-reference/locations/delete-warehouse-group.md): Delete a warehouse group by ID. - [Get location by ID](https://docs.joinluminous.com/api-reference/locations/get-location-by-id.md): Retrieve a specific location by its ID - [Get warehouse by ID](https://docs.joinluminous.com/api-reference/locations/get-warehouse-by-id.md): Retrieve a specific warehouse by its ID - [Get warehouse group by ID](https://docs.joinluminous.com/api-reference/locations/get-warehouse-group-by-id.md): Retrieve a specific warehouse group by its ID. - [Locations](https://docs.joinluminous.com/api-reference/locations/locations.md): Get a paginated list of locations with optional filtering. - [Update warehouse](https://docs.joinluminous.com/api-reference/locations/update-warehouse.md): Update an existing warehouse. All fields are optional. - [Update warehouse group](https://docs.joinluminous.com/api-reference/locations/update-warehouse-group.md): Update an existing warehouse group. All fields are optional. - [Warehouse groups](https://docs.joinluminous.com/api-reference/locations/warehouse-groups.md): Get a paginated list of warehouse groups. - [Warehouses](https://docs.joinluminous.com/api-reference/locations/warehouses.md): Get a paginated list of warehouses with optional filtering. - [Get a payment obligation](https://docs.joinluminous.com/api-reference/payment-obligations/get-a-payment-obligation.md): Get a single payment obligation by ID. - [Get payment obligations dashboard](https://docs.joinluminous.com/api-reference/payment-obligations/get-payment-obligations-dashboard.md): Returns dashboard summary data for payment obligations. - [Link a bill to a payment obligation](https://docs.joinluminous.com/api-reference/payment-obligations/link-a-bill-to-a-payment-obligation.md): Link an existing bill to a payment obligation. - [List payment obligations](https://docs.joinluminous.com/api-reference/payment-obligations/list-payment-obligations.md): Get a paginated list of payment obligations. - [Unlink a bill from a payment obligation](https://docs.joinluminous.com/api-reference/payment-obligations/unlink-a-bill-from-a-payment-obligation.md): Remove the link between a bill and a payment obligation. - [Update a payment obligation](https://docs.joinluminous.com/api-reference/payment-obligations/update-a-payment-obligation.md): Update an existing payment obligation. - [Update payment obligation status](https://docs.joinluminous.com/api-reference/payment-obligations/update-payment-obligation-status.md): Update the status of a payment obligation. - [Apply a prepayment](https://docs.joinluminous.com/api-reference/prepayments/apply-a-prepayment.md): Apply a prepayment to a bill or payment obligation. - [Create a prepayment](https://docs.joinluminous.com/api-reference/prepayments/create-a-prepayment.md): Create a new prepayment record. - [List prepayments](https://docs.joinluminous.com/api-reference/prepayments/list-prepayments.md): Get a paginated list of prepayments. - [Reverse a prepayment application](https://docs.joinluminous.com/api-reference/prepayments/reverse-a-prepayment-application.md): Reverse a previously applied prepayment application. - [Price Level](https://docs.joinluminous.com/api-reference/pricing/price-level.md): Get detailed information for a specific price level - [Price Levels](https://docs.joinluminous.com/api-reference/pricing/price-levels.md): Get a paginated list of price levels with optional filtering. - [Price Schedule](https://docs.joinluminous.com/api-reference/pricing/price-schedule.md): Get detailed information for a specific price schedule - [Price Schedules](https://docs.joinluminous.com/api-reference/pricing/price-schedules.md): Get a paginated list of price schedules with optional filtering. - [Add alternate SKU](https://docs.joinluminous.com/api-reference/products/add-alternate-sku.md): Add an alternate SKU to a product. The alternate SKU can be used as an additional identifier for the product (e.g., for lookups during sales order creation). - [All products pricing](https://docs.joinluminous.com/api-reference/products/all-products-pricing.md): Retrieve comprehensive pricing information for products, including base prices, pricing tiers, price levels, and any company-specific pricing overrides. - [All products with company pricing](https://docs.joinluminous.com/api-reference/products/all-products-with-company-pricing.md): Retrieve ALL products in the system with pricing calculated for all active companies or filtered by specific company IDs. Unlike company-specific endpoints, this returns comprehensive pricing information for multiple companies in a single request. - [Attach BOMs to a product](https://docs.joinluminous.com/api-reference/products/attach-boms-to-a-product.md): Associate one or more BOMs with a product by providing an array of BOM IDs. - [Create a product](https://docs.joinluminous.com/api-reference/products/create-a-product.md): Create a new product with optional variants, custom fields, and tags. - [Create or update product](https://docs.joinluminous.com/api-reference/products/create-or-update-product.md): Create a new product or update an existing one by SKU or ID - [Delete product](https://docs.joinluminous.com/api-reference/products/delete-product.md): Delete a product by ID. An error will be thrown if the item is part of a kit or BOM - [Detach BOMs from a product](https://docs.joinluminous.com/api-reference/products/detach-boms-from-a-product.md): Remove one or more BOM associations from a product by providing an array of BOM IDs. - [Export products (cursor pagination)](https://docs.joinluminous.com/api-reference/products/export-products-cursor-pagination.md): Bulk-export active products (`status = 1`) using cursor-based keyset pagination. Designed for bulk catalog syncs and pipelines. - [Products](https://docs.joinluminous.com/api-reference/products/products.md): Get a paginated list of products with optional filtering. - [Single product](https://docs.joinluminous.com/api-reference/products/single-product.md): Get detailed information about a specific product by its ID - [Single product pricing](https://docs.joinluminous.com/api-reference/products/single-product-pricing.md): Retrieve comprehensive pricing information for a specific product, including base price, pricing tiers, price levels, and any company-specific pricing overrides. - [Single product with company pricing](https://docs.joinluminous.com/api-reference/products/single-product-with-company-pricing.md): Retrieve a single product by ID with pricing calculated for all active companies or filtered by specific company IDs. This provides comprehensive pricing information for the product across multiple companies in a single request. - [Update a product](https://docs.joinluminous.com/api-reference/products/update-a-product.md): Update a specific product's information - [Get purchase order shipment](https://docs.joinluminous.com/api-reference/purchase-order-shipments/get-purchase-order-shipment.md): Get a single supplier purchase order shipment by ID. - [Get shipment by purchase order](https://docs.joinluminous.com/api-reference/purchase-order-shipments/get-shipment-by-purchase-order.md): Get a single shipment scoped to a specific purchase order. Returns 404 if the shipment exists but has no line item tied to `{purchaseOrderId}`. - [List shipments for a purchase order](https://docs.joinluminous.com/api-reference/purchase-order-shipments/list-shipments-for-a-purchase-order.md): Get a paginated list of shipments scoped to a specific purchase order. Returns the same shape as `GET /purchase-order-shipments`, filtered to shipments that have at least one line item tied to `{purchaseOrderId}`. - [Purchase order shipments](https://docs.joinluminous.com/api-reference/purchase-order-shipments/purchase-order-shipments.md): Get a paginated list of supplier purchase order shipments with optional filtering. Results are ordered by `updated_at` descending — use `updated_at[gt]` for incremental polling. - [Create a new purchase order](https://docs.joinluminous.com/api-reference/purchase-orders/create-a-new-purchase-order.md): Create a new purchase order with items, payments, and optional metadata. - [Create a payment for a purchase order](https://docs.joinluminous.com/api-reference/purchase-orders/create-a-payment-for-a-purchase-order.md): Create a new payment for a purchase order. The purchase order totals (`total_paid` and `total_due`) are automatically recalculated after the payment is created. - [Create a payment obligation for a purchase order](https://docs.joinluminous.com/api-reference/purchase-orders/create-a-payment-obligation-for-a-purchase-order.md): Create a new payment obligation for a specific purchase order. - [Delete a purchase order](https://docs.joinluminous.com/api-reference/purchase-orders/delete-a-purchase-order.md): Delete a purchase order. All associated stock counts and incoming quantities are automatically adjusted when the order is deleted. - [Delete a purchase order payment](https://docs.joinluminous.com/api-reference/purchase-orders/delete-a-purchase-order-payment.md): Delete a payment from a purchase order. The purchase order totals (`total_paid` and `total_due`) are automatically recalculated after the payment is deleted. - [Generate payment obligations for a purchase order](https://docs.joinluminous.com/api-reference/purchase-orders/generate-payment-obligations-for-a-purchase-order.md): Auto-generate payment obligations from purchase order terms. - [Get billable lines for a purchase order](https://docs.joinluminous.com/api-reference/purchase-orders/get-billable-lines-for-a-purchase-order.md): Returns billable lines for a specific purchase order. - [List payment obligations for a purchase order](https://docs.joinluminous.com/api-reference/purchase-orders/list-payment-obligations-for-a-purchase-order.md): Returns a list of payment obligations for a specific purchase order. - [Purchase order items](https://docs.joinluminous.com/api-reference/purchase-orders/purchase-order-items.md): Get a paginated list of purchase order items with optional filtering. - [Purchase orders](https://docs.joinluminous.com/api-reference/purchase-orders/purchase-orders.md): Get a paginated list of purchase orders with optional filtering. - [Single purchase order](https://docs.joinluminous.com/api-reference/purchase-orders/single-purchase-order.md): Get details of a specific purchase order by ID - [Update a purchase order](https://docs.joinluminous.com/api-reference/purchase-orders/update-a-purchase-order.md): Update an existing purchase order. All fields are optional - only provided fields will be updated. - [Update a purchase order payment](https://docs.joinluminous.com/api-reference/purchase-orders/update-a-purchase-order-payment.md): Update an existing payment for a purchase order. All fields are optional - only provided fields will be updated. The purchase order totals (`total_paid` and `total_due`) are automatically recalculated after the payment is updated. - [Create a receiving report](https://docs.joinluminous.com/api-reference/receiving-reports/create-a-receiving-report.md): Create a new receiving report - [Get billable lines for a receiving report](https://docs.joinluminous.com/api-reference/receiving-reports/get-billable-lines-for-a-receiving-report.md): Returns billable lines for a specific receiving report. - [Receiving reports](https://docs.joinluminous.com/api-reference/receiving-reports/receiving-reports.md): Get a paginated list of receiving reports with optional filtering. - [Single receiving report](https://docs.joinluminous.com/api-reference/receiving-reports/single-receiving-report.md): Get details of a specific receiving report by ID - [Close the Books — invoice sync errors](https://docs.joinluminous.com/api-reference/reports/close-the-books-—-invoice-sync-errors.md): Returns invoice sync errors (e.g. QuickBooks) within the specified date range. Date range must be ≤ 3 months. - [Close the Books — sales summary by channel](https://docs.joinluminous.com/api-reference/reports/close-the-books-—-sales-summary-by-channel.md): Sales summary grouped by channel for the specified date range. Date range must be ≤ 3 months. - [Close the Books — zero-cost line items in range](https://docs.joinluminous.com/api-reference/reports/close-the-books-—-zero-cost-line-items-in-range.md): Returns line items with zero cost within the specified date range. Date range must be ≤ 3 months. - [Close the Books — zero valuation inventory](https://docs.joinluminous.com/api-reference/reports/close-the-books-—-zero-valuation-inventory.md): Returns inventory items with zero valuation. - [Discrepancy dashboard summary](https://docs.joinluminous.com/api-reference/reports/discrepancy-dashboard-summary.md): Summary view of stock discrepancies, optionally filtered by warehouse. - [EDI aggregate summary](https://docs.joinluminous.com/api-reference/reports/edi-aggregate-summary.md): Aggregate summary of EDI documents with counts by status and type. - [EDI documents (paginated)](https://docs.joinluminous.com/api-reference/reports/edi-documents-paginated.md): Paginated list of EDI documents with filtering by type, status, direction, order, date range, and more. - [EDI report CSV export](https://docs.joinluminous.com/api-reference/reports/edi-report-csv-export.md): Export EDI documents as CSV. Same filters as GET /reports/edi. Rows capped at 50,000. Only CSV format is supported. - [Stock / cost-layer discrepancy rows](https://docs.joinluminous.com/api-reference/reports/stock-cost-layer-discrepancy-rows.md): Returns stock and cost-layer discrepancy data, optionally filtered by warehouse. - [Transaction COGS (paginated, read-only)](https://docs.joinluminous.com/api-reference/reports/transaction-cogs-paginated-read-only.md): Transaction-level cost of goods sold data. Supports filtering by date range, product, channel, order number, and cost. - [Update per-line COGS from unit cost](https://docs.joinluminous.com/api-reference/reports/update-per-line-cogs-from-unit-cost.md): Applies `cost_per_unit` to matching sales lines: sets line total cost (quantity × unit cost), updates linked sales item cost layers, and rolls up parent order item costs. This is the same behavior as the admin Transaction COGS SKU-to-period import. - [Create a new sales order](https://docs.joinluminous.com/api-reference/sales-orders/create-a-new-sales-order.md): Create a new sales order with items, addresses, and optional metadata. - [Create a new shipment for a sales order](https://docs.joinluminous.com/api-reference/sales-orders/create-a-new-shipment-for-a-sales-order.md): Create a new shipment record for a specific sales order. Once the shipment is added, the sales order status will automatically be updated to either `shipped` or `partially_shipped`. Also, any shipment costs will be added to the sales order total. - [Create shipment packages](https://docs.joinluminous.com/api-reference/sales-orders/create-shipment-packages.md): Create detailed package and item tracking for a sales order shipment. - [Export sales orders (incremental)](https://docs.joinluminous.com/api-reference/sales-orders/export-sales-orders-incremental.md): Incrementally export active sales orders updated within a given time window, with cursor-based pagination. Designed for real-time syncing and data pipelines. - [Force-push shipment fulfillment to order source](https://docs.joinluminous.com/api-reference/sales-orders/force-push-shipment-fulfillment-to-order-source.md): Push fulfillment for a shipment to the source OMS, explicitly choosing which sales order lines to fulfill (rather than relying on SKU matching). Use this when shipment lines do not match SKUs cleanly — e.g. for custom kits or rebranded items. After the push, `shipment_item_fulfillments` are synced a… - [Get shipments for a sales order](https://docs.joinluminous.com/api-reference/sales-orders/get-shipments-for-a-sales-order.md): Retrieve a paginated list of shipments associated with a specific sales order. - [Sales orders](https://docs.joinluminous.com/api-reference/sales-orders/sales-orders.md): Get a paginated list of sales orders with optional filtering. - [Single sales order](https://docs.joinluminous.com/api-reference/sales-orders/single-sales-order.md): Get details of a specific sales order by ID - [Update a sales order](https://docs.joinluminous.com/api-reference/sales-orders/update-a-sales-order.md): Partially update an existing sales order. All body fields are optional — only send fields you want to change. - [Stock snapshot (JSON, CSV, or Excel)](https://docs.joinluminous.com/api-reference/stock-snapshot/stock-snapshot-json-csv-or-excel.md): Point-in-time stock snapshot with optional product filters. - [Create a supplier](https://docs.joinluminous.com/api-reference/suppliers/create-a-supplier.md): Create a new supplier (factory). - [Delete a supplier](https://docs.joinluminous.com/api-reference/suppliers/delete-a-supplier.md): Delete a supplier by ID. - [Supplier](https://docs.joinluminous.com/api-reference/suppliers/supplier.md): Get detailed information for a specific supplier. - [Suppliers](https://docs.joinluminous.com/api-reference/suppliers/suppliers.md): Get a paginated list of suppliers (factories) that are active and visible to the authenticated user. - [Update a supplier](https://docs.joinluminous.com/api-reference/suppliers/update-a-supplier.md): Update an existing supplier's information. - [Attach tags to a record](https://docs.joinluminous.com/api-reference/tags/attach-tags-to-a-record.md): Attach one or more tags to a specific record. Supported record types: `sales-orders`,`sales-order-items`,`invoices`,`products` - [Detach a tag from a record](https://docs.joinluminous.com/api-reference/tags/detach-a-tag-from-a-record.md): Remove a specific tag from a record. Supported record types: `sales-orders`,`sales-order-items`,`invoices`,`products` - [Get tags for a record](https://docs.joinluminous.com/api-reference/tags/get-tags-for-a-record.md): Retrieve all tags associated with a specific record. Supported record types: `sales-orders`,`sales-order-items`,`invoices`,`products` - [Replace all tags on a record](https://docs.joinluminous.com/api-reference/tags/replace-all-tags-on-a-record.md): Replace all existing tags on a record with a new set of tags. Supported record types: `sales-orders`,`sales-order-items`,`invoices`,`products` - [Create a transfer order](https://docs.joinluminous.com/api-reference/transfer-orders/create-a-transfer-order.md): Create a new transfer order - [Single transfer order](https://docs.joinluminous.com/api-reference/transfer-orders/single-transfer-order.md): Get details of a specific transfer order by ID - [Transfer orders](https://docs.joinluminous.com/api-reference/transfer-orders/transfer-orders.md): Get a paginated list of transfer orders - [Create unit class](https://docs.joinluminous.com/api-reference/unit-classes/create-unit-class.md): Create a new unit class. - [Delete unit class](https://docs.joinluminous.com/api-reference/unit-classes/delete-unit-class.md): Delete a unit class. Will fail if any UOMs or conversion rules still reference it. - [List unit classes](https://docs.joinluminous.com/api-reference/unit-classes/list-unit-classes.md): Paginated list of unit classes (e.g. Length, Weight, Volume). - [Single unit class](https://docs.joinluminous.com/api-reference/unit-classes/single-unit-class.md): Retrieve a unit class by ID. - [Update unit class](https://docs.joinluminous.com/api-reference/unit-classes/update-unit-class.md): Update an existing unit class. - [Create unit conversion rule](https://docs.joinluminous.com/api-reference/unit-conversion-rules/create-unit-conversion-rule.md): Create a new conversion rule. Use `type=SYSTEM` for global per-class rules and `type=SKU` for product-specific overrides — when `type=SKU`, `product_id` is required (and must be omitted for `SYSTEM`). - [Delete unit conversion rule](https://docs.joinluminous.com/api-reference/unit-conversion-rules/delete-unit-conversion-rule.md): Delete a unit conversion rule. - [List unit conversion rules](https://docs.joinluminous.com/api-reference/unit-conversion-rules/list-unit-conversion-rules.md): Paginated list of `SYSTEM` and `SKU` conversion rules. Internal kit-scoped rules are excluded from this endpoint. - [Resolve effective conversion rule](https://docs.joinluminous.com/api-reference/unit-conversion-rules/resolve-effective-conversion-rule.md): Resolve the effective conversion rule for a `(product, base_uom, converted_uom)` triple. SKU-specific rules win over SYSTEM rules. Returns 404 when no matching rule exists. - [Single unit conversion rule](https://docs.joinluminous.com/api-reference/unit-conversion-rules/single-unit-conversion-rule.md): Retrieve a unit conversion rule by ID. - [Update unit conversion rule](https://docs.joinluminous.com/api-reference/unit-conversion-rules/update-unit-conversion-rule.md): Update an existing conversion rule. Same payload shape and rules as create. - [Create unit of measure](https://docs.joinluminous.com/api-reference/units-of-measure/create-unit-of-measure.md): Create a new UOM under an existing unit class. - [Delete unit of measure](https://docs.joinluminous.com/api-reference/units-of-measure/delete-unit-of-measure.md): Delete a UOM. Fails if it is still referenced by a conversion rule or product. - [List units of measure](https://docs.joinluminous.com/api-reference/units-of-measure/list-units-of-measure.md): Paginated list of units of measure. - [Set base UOM for a unit class](https://docs.joinluminous.com/api-reference/units-of-measure/set-base-uom-for-a-unit-class.md): Mark a UOM as the base unit for its parent unit class. The previous base UOM (if any) is unset, and conversion factors continue to be expressed relative to the new base. - [Single unit of measure](https://docs.joinluminous.com/api-reference/units-of-measure/single-unit-of-measure.md): Retrieve a UOM by ID. - [Update unit of measure](https://docs.joinluminous.com/api-reference/units-of-measure/update-unit-of-measure.md): Update an existing UOM. - [Apply a vendor credit](https://docs.joinluminous.com/api-reference/vendor-credits/apply-a-vendor-credit.md): Apply a vendor credit to a bill or payment obligation. - [Cancel a vendor credit](https://docs.joinluminous.com/api-reference/vendor-credits/cancel-a-vendor-credit.md): Cancel an existing vendor credit. - [Create a vendor credit](https://docs.joinluminous.com/api-reference/vendor-credits/create-a-vendor-credit.md): Create a new vendor credit record. - [Delete a vendor credit application](https://docs.joinluminous.com/api-reference/vendor-credits/delete-a-vendor-credit-application.md): Delete a vendor credit application. - [Get a vendor credit](https://docs.joinluminous.com/api-reference/vendor-credits/get-a-vendor-credit.md): Get a single vendor credit by ID. - [Get vendor statement](https://docs.joinluminous.com/api-reference/vendor-credits/get-vendor-statement.md): Returns a vendor statement in JSON or PDF format. - [List vendor credits](https://docs.joinluminous.com/api-reference/vendor-credits/list-vendor-credits.md): Get a paginated list of vendor credits. - [Reverse a vendor credit application](https://docs.joinluminous.com/api-reference/vendor-credits/reverse-a-vendor-credit-application.md): Reverse a previously applied vendor credit application. - [Cancel a vendor return](https://docs.joinluminous.com/api-reference/vendor-returns/cancel-a-vendor-return.md): Cancel an existing vendor return. - [Create a vendor return](https://docs.joinluminous.com/api-reference/vendor-returns/create-a-vendor-return.md): Create a new vendor return record. - [Generate credit for a vendor return](https://docs.joinluminous.com/api-reference/vendor-returns/generate-credit-for-a-vendor-return.md): Generate a vendor credit from a vendor return. - [Get a vendor return](https://docs.joinluminous.com/api-reference/vendor-returns/get-a-vendor-return.md): Get a single vendor return by ID. - [List vendor returns](https://docs.joinluminous.com/api-reference/vendor-returns/list-vendor-returns.md): Get a paginated list of vendor returns. - [Process a vendor return](https://docs.joinluminous.com/api-reference/vendor-returns/process-a-vendor-return.md): Process a vendor return. - [Filters](https://docs.joinluminous.com/filters.md): How filters work when getting data from the Luminous API - [Quickstart](https://docs.joinluminous.com/quickstart.md): Start building awesome stuff with Luminous in under 5 minutes ## OpenAPI Specs - [openapi-spec](https://docs.joinluminous.com/api-reference/openapi-spec.yaml) - [build](https://docs.joinluminous.com/api-reference/build.yaml)