Criar produto ou serviço
Criar produto ou serviço
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.
name
type
unit
value
qty
description
sku
metadata
Response
Created
data
Errors
409
Conflict Error
422
Unprocessable Entity Error
