Products

Manage your product catalog for use in invoices and receipts.

Products represent the goods and services you sell. Create products once and reference them in invoices and receipts for consistent pricing and tax handling.

Using products helps maintain consistency across your transactions and simplifies tax code management.

The Product Object

The product object contains all information about a sellable item, including pricing, tax classification, and custom metadata.

Product Object
{
  "id": "prod_abc123",
  "name": "Software License - Annual",
  "sku": "SW-LIC-ANNUAL",
  "description": "Annual software license subscription",
  "unit_price": 299.00,
  "currency": "USD",
  "tax_code": "STD",
  "category": "software",
  "active": true,
  "metadata": {
    "license_type": "annual",
    "seats": 5
  },
  "created_at": "2024-01-01T00:00:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}

Tax Codes

Each product must have a tax code that determines how VAT is calculated. Available tax codes:

CodeRateDescription
STD15%Standard rate VAT for most goods and services
ZER0%Zero-rated items (exports, basic food items)
EXMN/AExempt items (financial services, medical)

Create a Product

Create a new product in your catalog. Products can be used as line items in invoices and receipts.

POST/v1/products
Auth required

Creates a new product in your catalog.

Request Body

namestring required

The product name displayed on invoices and receipts.

Example: Software License - Annual

skustring

Stock keeping unit for inventory tracking.

Example: SW-LIC-ANNUAL

descriptionstring

Detailed product description.

unit_pricenumber required

Default unit price for the product.

Example: 299.00

currencystring default: USD

Three-letter ISO currency code.

tax_codestring required

Tax classification: STD, ZER, or EXM.

Example: STD

categorystring

Product category for organization.

metadataobject

Custom key-value pairs for additional data.

Example Request

JSON
{
  "name": "Software License - Annual",
  "sku": "SW-LIC-ANNUAL",
  "description": "Annual software license subscription",
  "unit_price": 299.00,
  "currency": "USD",
  "tax_code": "STD",
  "category": "software",
  "metadata": {
    "license_type": "annual",
    "seats": 5
  }
}

Response

201Product created successfully
JSON
{
  "id": "prod_abc123",
  "name": "Software License - Annual",
  "sku": "SW-LIC-ANNUAL",
  "description": "Annual software license subscription",
  "unit_price": 299.00,
  "currency": "USD",
  "tax_code": "STD",
  "category": "software",
  "active": true,
  "metadata": {
    "license_type": "annual",
    "seats": 5
  },
  "created_at": "2024-01-01T00:00:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}

List Products

Retrieve a paginated list of products from your catalog.

GET/v1/products
Auth required

Returns a paginated list of products.

Query Parameters

activeboolean

Filter by active status.

categorystring

Filter by product category.

searchstring

Search by name or SKU.

Response

200List of products
JSON
{
  "data": [
    {
      "id": "prod_abc123",
      "name": "Software License - Annual",
      "sku": "SW-LIC-ANNUAL",
      "unit_price": 299.00,
      "active": true
    },
    {
      "id": "prod_def456",
      "name": "Support Package",
      "sku": "SUP-PKG-PREM",
      "unit_price": 99.00,
      "active": true
    }
  ],
  "meta": {
    "current_page": 1,
    "per_page": 20,
    "total": 45
  }
}

Update a Product

Update an existing product. Only the fields you include will be updated.

PATCH/v1/products/{product_id}
Auth required

Updates the specified product.

Path Parameters

product_idstring required

The unique identifier of the product.

Example Request

JSON
{
  "unit_price": 349.00,
  "description": "Annual software license subscription - Premium"
}

Response

200Product updated successfully
JSON
{
  "id": "prod_abc123",
  "name": "Software License - Annual",
  "sku": "SW-LIC-ANNUAL",
  "description": "Annual software license subscription",
  "unit_price": 299.00,
  "currency": "USD",
  "tax_code": "STD",
  "category": "software",
  "active": true,
  "metadata": {
    "license_type": "annual",
    "seats": 5
  },
  "created_at": "2024-01-01T00:00:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}
Updating a product does not affect existing invoices or receipts that reference it.