The catalog of services and goods that appear on invoices, bills, and sales receipts. Prices are decimal strings in the company's home currency. Reads need any of reports, money_in, money_out, or accounting; writes need one of the last three.
Inventory
A tracked good carries a read-only quantity_on_hand. Stock moves through bills, sales, and inventory adjustments, never by editing the number, and a good created here starts at zero. Tracking cannot be switched on or off while a product carries stock. Opening stock, variants, bundles, assemblies, serial or lot tracking, and changing a product's type are done in the app; sending any of them returns 422 unsupported_product_feature naming the field.
The Product Object
Field
Type
Description
id
string
Product UUID
object
string
Always 'product'
name
string
Name, unique within the company
sku
string
SKU
barcode
string
Barcode
description
string
Description shown on sales documents
product_type
string
service or good (bundle and assembly are read-only here)
track_inventory
boolean
Whether stock is tracked for this good
sales_price
string
Default sales price as a decimal string (e.g., "49.99")
cost
string
Default purchase cost as a decimal string
currency
string
ISO currency code the prices are in
taxable
boolean
Whether sales tax applies
active
boolean
Inactive products are hidden from pickers but keep their history
quantity_on_hand
string
Current stock as a decimal string (tracked goods only, read-only)
reorder_point
string
Stock level that flags a reorder, decimal string or null
income_account_id
string
Chart account credited on sale
expense_account_id
string
Chart account debited on purchase (COGS for tracked goods)
inventory_account_id
string
Inventory asset account (tracked goods only)
tax_category_id
string
Tax category UUID (if set)
created_at
string
ISO 8601 timestamp
updated_at
string
ISO 8601 timestamp
Endpoints
GET/api/v1/products
List products
Returns a paginated list of products and services, active only unless asked otherwise. Variants, bundles and assemblies are included read-only.
Path & Query Parameters
Parameter
Type
Description
product_type
string
Filter by type (service, good, bundle, assembly)
track_inventory
string
Pass 'true' or 'false' to filter tracked goods
include_inactive
string
Pass 'true' to include inactive products
search
string
Search by name, SKU or description
page
number
Page number (default 1)
per_page
number
Results per page (1-200, default 50)
POST/api/v1/products
Create a product or service
Creates a plain service or good. A tracked good needs cost, an inventory account and an expense account, and starts with zero stock; receive opening stock through a bill or inventory adjustment. Bundles, assemblies, variants and opening quantities are refused with 422 unsupported_product_feature.
Body Parameters
Parameter
Type
Description
namerequired
string
Name, unique within the company
product_type
string
service (default) or good
sku
string
SKU
barcode
string
Barcode, unique within the company
description
string
Description
sales_price
string
Default sales price as a decimal string (e.g., "49.99")
cost
string
Default purchase cost as a decimal string; required for tracked goods
taxable
boolean
Whether sales tax applies (default true)
track_inventory
boolean
Track stock for this good (default false)
income_account_id
string
Chart account credited on sale
expense_account_id
string
Chart account debited on purchase; required for tracked goods
inventory_account_id
string
Inventory asset account; required for tracked goods
tax_category_id
string
Tax category UUID
reorder_point
string
Reorder point as a decimal string
GET/api/v1/products/:id
Retrieve a product
Path & Query Parameters
Parameter
Type
Description
idrequired
string
Product UUID
PATCH/api/v1/products/:id
Update a product
Updates a product's catalog fields. Stock is never edited here. Changing product_type is not supported on the public API (v1 restriction; it is possible in the app until the product has been used).
Path & Query Parameters
Parameter
Type
Description
idrequired
string
Product UUID
Body Parameters
Parameter
Type
Description
name
string
Name
sku
string
SKU
barcode
string
Barcode
description
string
Description
sales_price
string
Default sales price as a decimal string
cost
string
Default purchase cost as a decimal string
taxable
boolean
Whether sales tax applies
track_inventory
boolean
Start or stop tracking stock; refused once the product has been used or carries stock
income_account_id
string
Chart account credited on sale
expense_account_id
string
Chart account debited on purchase
inventory_account_id
string
Inventory asset account
tax_category_id
string
Tax category UUID
reorder_point
string
Reorder point as a decimal string
POST/api/v1/products/:id/deactivate
Deactivate a product
Hides the product from pickers. History and stock are kept.