Criar produto ou serviço

View as Markdown
Cria um produto ou serviço no cadastro. **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. Envie um objeto JSON; name é obrigatório. Os demais campos seguem os padrões indicados. Erros de validação ou conflito não criam o item. ### Corpo da requisição | Campo | Tipo | Obrigatório | Descrição | |---|---|---|---| | `name` | string | Sim | 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 { "name": "Consultoria", "type": "service", "unit": "hour", "value": 150, "qty": 1, "description": "Consultoria por hora", "sku": "SERV-501", "metadata": { "referencia": "ERP-501" } } ``` ### Resposta HTTP **201**. 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": 150, "qty": 1, "unit": "hour", "description": "Consultoria por hora", "active": true, "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 | |---|---|---| | 422 | `VALIDATION_FAILED` | Invalid field: name. | | 409 | `ITEM_ALREADY_EXISTS` | SKU or part number already exists. | 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.

Request

This endpoint expects an object.
namestringRequired
typestringRequired
unitstringRequired
valueintegerRequired
qtyintegerRequired
descriptionstringRequired
skustringRequired
metadataobjectRequired

Response

Created
dataobject

Errors

409
Conflict Error
422
Unprocessable Entity Error