Skip to content

Update mutable fields on a product

PATCH
/api/public/v1/products/{product_id}
Code sample: cURL
curl --request PATCH \
--url 'https://api.getzutax.com/api/public/v1/products/086c9f4a-c469-4be6-b3c3-4b022b27e9f6' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <unique-request-key>' \
--data '{
"name": "string",
"description": "string",
"sku": "string",
"item_type": "good"
}'
product_id
required
Product Id
string format: uuid
Media type application/json
ProductUpdateInput

ERP-supplied partial-update payload.

object
name
Any of:
string
<= 500 characters
description
Any of:
string
sku
Any of:
string
<= 200 characters
item_type
Any of:
string
Allowed values: good service
hsn_code
Any of:
string
<= 100 characters
product_category
Any of:
string
<= 255 characters
isic_code
Any of:
string
<= 20 characters
service_category
Any of:
string
<= 255 characters
default_unit_code
Any of:
string
<= 10 characters
default_unit_price_naira
Any of:
number
default_tax_category_code
Any of:
string
<= 64 characters
default_vat_rate
Any of:
number
<= 1
is_active
Any of:
boolean
Examples
Example Sample request

Request payload example

{
"name": "string",
"description": "string",
"sku": "string",
"item_type": "good"
}

Successful Response

Media type application/json
ProductResponse

Stable response shape for public-API product endpoints.

The Product DB model uses default_unit_price (naira-denominated Numeric) and default_tax_rate (percentage stored 0-100, e.g. 7.5). The public-API surface exposes them as default_unit_price_naira and default_vat_rate (0-1 fractional rate) — a model validator rewrites the inbound attributes so ERPs see a consistent shape across all public-API resources.

object
id
required
Id
string format: uuid
external_id
required
Any of:
string
name
required
Name
string
description
Any of:
string
sku
Any of:
string
item_type
required
Item Type
string
Allowed values: good service
hsn_code
Any of:
string
product_category
Any of:
string
isic_code
Any of:
string
service_category
Any of:
string
default_unit_code
required
Default Unit Code
string
default_unit_price_naira
required
Default Unit Price Naira
string
/^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$/
default_tax_category_code
required
Default Tax Category Code
string
default_vat_rate
required
Default Vat Rate
string
/^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$/
is_active
required
Is Active
boolean
Examples
Example Sample response

200 response example

{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"external_id": "string",
"name": "string",
"description": "string",
"sku": "string",
"item_type": "good",
"hsn_code": "string",
"product_category": "string",
"default_unit_code": "string",
"default_unit_price_naira": "100.00",
"default_tax_category_code": "string",
"default_vat_rate": "100.00",
"is_active": true
}

Validation Error

Media type application/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
Examples
Example Sample response

422 response example

{
"detail": [
{
"loc": [],
"msg": "string",
"type": "string"
}
]
}