products

POST /api/v1/products

Adds a product to a company

post/api/v1/products

Request

Query parameters

includestring
Example:first_load

Includes child relationships in the response, format is comma separated. Check each model for the list of associated includes

Headers

X-API-TOKENstring required
Example:TOKEN

The API token to be used for authentication

X-Requested-Withstring required
Example:XMLHttpRequest

Used to send the XMLHttpRequest header

Request body

assigned_user_idstring

The hashed ID of the user assigned to this product.

project_idstring

The hashed ID of the project that this product is associated with.

vendor_idstring

The hashed ID of the vendor that this product is associated with.

custom_value1string

Custom value field 1.

custom_value2string

Custom value field 2.

custom_value3string

Custom value field 3.

custom_value4string

Custom value field 4.

product_keystring

The product key.

notesstring

Notes about the product.

costnumber double

The cost of the product.

pricenumber double

The price of the product.

quantitynumber double

The quantity of the product.

tax_name1string

The default tax name associated with this product

tax_rate1number double

The default tax rate for this product

tax_name2string

The default tax name associated with this product

tax_rate2number double

The default tax rate for this product

tax_name3string

The default tax name associated with this product

tax_rate3number double

The default tax rate for this product

in_stock_quantityinteger

The quantity of the product that is currently in stock.

note this field is not mutable without passing an extra query parameter which will allow modification of this value.

The query parameter ?update_in_stock_quantity=true MUST be passed if you wish to update this value manually.

stock_notificationboolean

Indicates whether stock notifications are enabled for this product

stock_notification_thresholdinteger

The minimum quantity threshold for which stock notifications will be triggered

max_quantityinteger

The maximum quantity that can be ordered for this product

product_imagestring uri-reference

The URL of the product image

tax_idstring

The tax category id for this product.'

The following constants are available (default = '1')

PRODUCT_TYPE_PHYSICAL = '1'
PRODUCT_TYPE_SERVICE = '2'
PRODUCT_TYPE_DIGITAL = '3'
PRODUCT_TYPE_SHIPPING = '4'
PRODUCT_TYPE_EXEMPT = '5'
PRODUCT_TYPE_REDUCED_TAX = '6'
PRODUCT_TYPE_OVERRIDE_TAX = '7'
PRODUCT_TYPE_ZERO_RATED = '8'
PRODUCT_TYPE_REVERSE_TAX = '9'
income_account_idstring

The accounting income account identifier this product maps to (used by external accounting integrations such as QuickBooks).

Example request

{
  "assigned_user_id": "pR0j3",
  "project_id": "pR0j3",
  "vendor_id": "pR0j3",
  "custom_value1": "Custom value 1",
  "custom_value2": "Custom value 2",
  "custom_value3": "Custom value 3",
  "custom_value4": "Custom value 4",
  "product_key": "1234",
  "notes": "These are some notes about the product.",
  "cost": 10,
  "price": 20,
  "quantity": 5,
  "tax_name1": "Tax 1",
  "tax_rate1": 10,
  "tax_name2": "Tax 2",
  "tax_rate2": 5,
  "tax_name3": "Tax 3",
  "tax_id": "1",
  "income_account_id": "42"
}

Response

Returns the saved product object

idstring

The hashed product ID.

user_idstring

The hashed ID of the user that created this product.

assigned_user_idstring

The hashed ID of the user assigned to this product.

project_idstring

The hashed ID of the project that this product is associated with.

vendor_idstring

The hashed ID of the vendor that this product is associated with.

custom_value1string

Custom value field 1.

custom_value2string

Custom value field 2.

custom_value3string

Custom value field 3.

custom_value4string

Custom value field 4.

product_keystring

The product key.

notesstring

Notes about the product.

costnumber double

The cost of the product. (Your purchase price for this product)

pricenumber double

The price of the product that you are charging.

quantitynumber double

The quantity of the product. (used as a default)

tax_name1string

The name of tax 1.

tax_rate1number double

The rate of tax 1.

tax_name2string

The name of tax 2.

tax_rate2number double

The rate of tax 2.

tax_name3string

The name of tax 3.

tax_rate3number double

The rate of tax 3.

archived_atinteger

The timestamp when the product was archived.

created_atinteger

The timestamp when the product was created.

updated_atinteger

Timestamp

is_deletedboolean

Boolean flag determining if the product has been deleted

in_stock_quantityinteger

The quantity of the product that is currently in stock

stock_notificationboolean

Indicates whether stock notifications are enabled for this product

stock_notification_thresholdinteger

The minimum quantity threshold for which stock notifications will be triggered

max_quantityinteger

The maximum quantity that can be ordered for this product

product_imagestring uri-reference

The URL of the product image

tax_idstring

The tax category id for this product.'

The following constants are available (default = '1')

PRODUCT_TYPE_PHYSICAL = '1'
PRODUCT_TYPE_SERVICE = '2'
PRODUCT_TYPE_DIGITAL = '3'
PRODUCT_TYPE_SHIPPING = '4'
PRODUCT_TYPE_EXEMPT = '5'
PRODUCT_TYPE_REDUCED_TAX = '6'
PRODUCT_TYPE_OVERRIDE_TAX = '7'
PRODUCT_TYPE_ZERO_RATED = '8'
PRODUCT_TYPE_REVERSE_TAX = '9'
income_account_idstring

The accounting income account identifier this product maps to (used by external accounting integrations such as QuickBooks).

Example response

{
  "id": "eP01N",
  "user_id": "n30m4",
  "assigned_user_id": "pR0j3",
  "project_id": "pR0j3",
  "vendor_id": "pR0j3",
  "custom_value1": "Custom value 1",
  "custom_value2": "Custom value 2",
  "custom_value3": "Custom value 3",
  "custom_value4": "Custom value 4",
  "product_key": "1234",
  "notes": "These are some notes about the product.",
  "cost": 10,
  "price": 20,
  "quantity": 5,
  "tax_name1": "Tax 1",
  "tax_rate1": 10,
  "tax_name2": "Tax 2",
  "tax_rate2": 5,
  "tax_name3": "Tax 3",
  "archived_at": 1647604800,
  "created_at": 1647604800,
  "updated_at": 1647691496,
  "tax_id": "1",
  "income_account_id": "42"
}

Changes

    • info

      added the new optional request property

    • info

      added the optional property to the response with the status

    • breaking

      the request's body type changed from no type to object

    • breaking

      the response's body type changed from no type to object for status

    • breaking

      the response's body type changed from no type to object for status

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status