# Products

The product catalogue used on invoice lines.

## Endpoints

- [List products](https://developers.numina.app/api/products/list-products.md): `GET /v1/products`
- [Create product](https://developers.numina.app/api/products/create-product.md): `POST /v1/products`
- [Get product](https://developers.numina.app/api/products/get-product.md): `GET /v1/products/{id}`
- [Update product](https://developers.numina.app/api/products/update-product.md): `PUT /v1/products/{id}`
- [Delete product](https://developers.numina.app/api/products/delete-product.md): `DELETE /v1/products/{id}`

## The product object

- `id` (string (uuid), required): Product ID
- `product_number` (string, required, nullable): Product number (varenummer), unique within the company
- `description` (string, required): Product name, copied to the invoice line
- `quantity` (number, required): Default quantity on the invoice line
- `unit` (string, required): Unit: unit, hour, day, kilometer, week, or month One of: `unit`, `hour`, `day`, `kilometer`, `week`, `month`.
- `unit_price` (number, required): Unit price (excl. VAT)
- `sales_account_number` (integer, required, nullable): Account number of the sales revenue account
- `use_account_vat` (boolean, required): True when the VAT comes from the sales account's default VAT code
- `vat_code` (string, required, nullable): VAT code used when use_account_vat is false. Null then means no VAT.

```json
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "product_number": "1001",
  "description": "Consulting hour",
  "quantity": 1,
  "unit": "hour",
  "unit_price": 950,
  "sales_account_number": 1000,
  "use_account_vat": true,
  "vat_code": null
}
```
