Products
Update product
Update a product's details, or archive it.
POST/v1/products/{product_id}
Parameters
| Parameter | Description |
|---|---|
| product_idstring · pathrequired | Id of the product, which starts prod_. |
| activebooleanoptional | false archives the product: its prices cannot be used for new checkouts or plan changes, and no new price can be created under it. Existing subscriptions keep renewing. true restores it. |
| allow_promotion_codesbooleanoptional | Whether a buyer may enter a coupon code at checkout for this product's prices. |
| default_price_idstring | nulloptional | An active price of this product, offered by the billing portal on its interval. null clears it. At most 64 characters. |
| descriptionstring | nulloptional | Longer description of the product. null clears it. At most 2048 characters. |
| marketing_featuresarray of string | nulloptional | Feature lines listed in the billing portal's plan picker. Replaces the list whole; null clears it. |
| metadataobjectoptional | Replaces the stored metadata whole. Send {} to empty it. At most 50 keys. |
| namestringoptional | The product's name, shown to customers. At most 255 characters. |
Returns
Returns a ProductResponse object.
Errors
| Status | Cause |
|---|---|
| 400 | The request was refused (type: invalid_request_error): a required parameter is missing (parameter_missing), one failed validation (parameter_invalid) or is not one the operation takes (parameter_unknown), and param names it. |
| 401 | No credential, or one that does not authenticate. |
| 402 | The account is suspended (tenant_suspended), or the payment provider refused a charge or refund the call made (type: payment_error, code: payment_refused). |
| 403 | Authenticated, but not allowed: missing scope (insufficient_scope), a key of the wrong mode (mode_mismatch), or a refused origin. Needs the products:write scope. |
| 404 | No such object in this account and mode. |
| 409 | Conflicts with the object's current state (state_conflict, or a more specific code), or an operation still in flight (operation_pending). |
| 413 | The request body is larger than the API accepts. |
| 429 | Rate limited. Retry-After says when to try again. |
| 500 | Something failed on BillKit's side (type: api_error). Retry with the same Idempotency-Key. |
| 502 | The payment provider failed or did not answer. |
| 503 | Temporarily unable to serve. reason says whether the request was attempted. |
Other products operations
- List products GET /v1/products
- Create product POST /v1/products
- Get product GET /v1/products/{product_id}
BillKit