Skip to main content
Adds a product. It needs a SKU and a name at least; money is in minor units. A product on sale is queued for the account’s WhatsApp catalogue, and the change is recorded in the product’s history under the key’s name (as “API · Shopify sync”). Webhooks get product.changed.
Needs the catalogue.products:write scope.

Body

Give it a picture afterwards with POST /v1/catalogue/products/{product_id}/image.

Request

Response

201 Created — the product. price_minor and sale_price_minor are in minor units — paise for INR, so 249900 is ₹2,499.00. whatsapp.state is where the product stands with the account’s WhatsApp catalogue: not_synced (not on WhatsApp — off sale, or no catalogue connected), pending (queued to sync), synced, or error (the sync failed; whatsapp.error says why). has_image says whether it has a picture.

Errors

Every refusal is {"error": {"code", "message", "field"}}; field is there when one input is at fault. Any request can also be refused for its key, its account or its rate (key_required, invalid_key, account_suspended, plan_excludes_api, address_not_allowed, rate_limited); see the overview.