Atualizar produto ou serviço

View as Markdown
Atualiza parcialmente um produto ou serviço. **Autenticação:** Bearer Token da API WBudget. O acesso aos dados respeita as permissões do usuário. Requer permissão de edição do cadastro de produtos. Campos omitidos são preservados, inclusive a unidade ao alterar type. Envie pelo menos um campo documentado. Zero e false são valores válidos. Null remove category, description, tag, sku e pn; em metadata, null preserva o objeto. Name, type, unit, active e campos numéricos não aceitam null. Esta operação altera o cadastro do produto; para editar uma linha de proposta, use PUT /budgets/:id/items/:itemId. ### Parâmetros de caminho | Campo | Tipo | Obrigatório | Descrição | |---|---|---|---| | `id` | integer | Sim | ID do produto ou serviço. | ### Corpo da requisição | Campo | Tipo | Obrigatório | Descrição | |---|---|---|---| | `name` | string | Não | Nome, entre 1 e 150 caracteres. | | `type` | string | Não | product ou service. Padrão product. | | `category` | integer ou null | Não | ID de categoria existente. Null remove a categoria; omitido na criação usa o padrão da conta. | | `value` | number | Não | Preço unitário entre 0 e 99999999.9999. Padrão 0. | | `qty` | number | Não | Quantidade entre 0 e 99999999.9999. Padrão 1; arredondada conforme a unidade. | | `unit` | string | Não | Unidade cadastrada (até 8 caracteres). Na criação: un para produto e hour para serviço. | | `description` | string ou null | Não | Descrição do produto ou serviço. | | `active` | boolean ou integer | Não | true/false ou 1/0. Padrão true. Itens inativos deixam de aparecer em GET /items. | | `cost` | number | Não | Custo não negativo, máximo 99999999.9999. Padrão 0; a consulta respeita as permissões do usuário. | | `tax` | number | Não | Tributo não negativo, máximo 999999.999999. Padrão 0, conforme configuração comercial da conta. | | `sku` | string ou null | Não | Código SKU único, até 45 caracteres. Null ou texto vazio remove o código. | | `pn` | string ou null | Não | Código do fabricante único, até 45 caracteres. Null ou texto vazio remove o código. | | `tag` | string ou null | Não | Etiquetas do item. | | `metadata` | object ou null | Não | Campos personalizados. Chaves enviadas são mescladas; uma chave com null é removida. O objeto omitido ou null preserva os valores atuais. | ### Exemplo de JSON enviado ```json { "value": 175, "active": false, "metadata": { "referencia": "ERP-501", "observacao": null } } ``` ### Resposta HTTP **200**. Os exemplos usam dados fictícios e mostram os campos principais; outros campos podem acompanhar a resposta. Campos sem valor podem ser nulos. Campos principais de `data`: | Campo | Tipo | Descrição | |---|---|---| | `id` | integer | ID do produto ou serviço. | | `name` | string | Nome, entre 1 e 150 caracteres. | | `type` | string | product ou service. Padrão product. | | `category` | integer ou null | ID de categoria existente. Null remove a categoria; omitido na criação usa o padrão da conta. | | `value` | number | Preço unitário entre 0 e 99999999.9999. Padrão 0. | | `qty` | number | Quantidade entre 0 e 99999999.9999. Padrão 1; arredondada conforme a unidade. | | `unit` | string | Unidade cadastrada (até 8 caracteres). Na criação: un para produto e hour para serviço. | | `description` | string ou null | Descrição do produto ou serviço. | | `active` | boolean ou integer | true/false ou 1/0. Padrão true. Itens inativos deixam de aparecer em GET /items. | | `cost` | number | Custo não negativo, máximo 99999999.9999. Padrão 0; a consulta respeita as permissões do usuário. | | `tax` | number | Tributo não negativo, máximo 999999.999999. Padrão 0, conforme configuração comercial da conta. | | `sku` | string ou null | Código SKU único, até 45 caracteres. Null ou texto vazio remove o código. | | `pn` | string ou null | Código do fabricante único, até 45 caracteres. Null ou texto vazio remove o código. | | `tag` | string ou null | Etiquetas do item. | | `metadata` | object ou null | Campos personalizados. Chaves enviadas são mescladas; uma chave com null é removida. O objeto omitido ou null preserva os valores atuais. | | `category_name` | string ou null | Nome da categoria. | | `create_date` | string | Data de criação. | ```json { "data": { "id": 501, "name": "Consultoria", "type": "service", "category": null, "category_name": null, "value": 175, "qty": 1, "unit": "hour", "description": "Consultoria por hora", "active": false, "cost": 0, "tax": 0, "sku": "SERV-501", "pn": null, "tag": "consultoria", "metadata": { "referencia": "ERP-501" }, "create_date": "2026-09-06T10:00:00-03:00" } } ``` ### Erros específicos | HTTP | Código | Situação | |---|---|---| | 404 | `ITEM_NOT_FOUND` | Item not found. | | 422 | `VALIDATION_FAILED` | Invalid field: name. | | 409 | `ITEM_ALREADY_EXISTS` | SKU or part number already exists. | | 400 | `NOTHING_TO_UPDATE` | No supported fields to update. | Consulte a introdução da collection para o formato de erros e a configuração das variáveis.

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Path parameters

idstringRequired

ID do produto ou serviço.

Request

This endpoint expects an object.
valueintegerRequired
activebooleanRequired
metadataobjectRequired

Response

OK
dataobject

Errors

400
Bad Request Error
404
Not Found Error
409
Conflict Error
422
Unprocessable Entity Error