Products API
Catálogo de produtos e serviços - opcional, podes sempre enviar itens ad-hoc directamente na factura.
Criar Produto
POST
/v1/organisations/:orgId/productsRequest Body
JSON
{
"name": "MacBook Pro M3",
"code": "PROD-001",
"description": "14 polegadas, 512GB",
"unitPrice": 250000000,
"taxRate": 14,
"type": "product",
"unitOfMeasure": "UN",
"trackStock": true
}| name | string | Obrigatório |
| code | string? | Código interno - deve ser único na organização |
| description | string? | |
| unitPrice | integer | Em kwanzas × 100 |
| taxRate | 0 | 5 | 14 | Default 14 |
| taxExemptionCode | string (3)? | Obrigatório quando taxRate = 0 |
| type | 'product' | 'service'? | Default 'product'. Um serviço nunca tem stock (trackStock é ignorado) |
| unitOfMeasure | string? | Default 'UN' |
| trackStock | boolean? | Activa controlo de stock - bloqueia venda sem quantidade disponível |
Resposta (201 Created)
JSON
{
"id": "d4e5f6a7-...",
"orgId": "779b90ce-...",
"code": "PROD-001",
"name": "MacBook Pro M3",
"description": "14 polegadas, 512GB",
"unitOfMeasure": "UN",
"unitPrice": 250000000,
"taxRate": 14,
"taxExemptionCode": null,
"type": "product",
"active": true,
"trackStock": true,
"stockQuantity": 0,
"createdAt": "2026-05-12T10:00:00.000Z",
"updatedAt": "2026-05-12T10:00:00.000Z"
}Listar Catálogo
GET
/v1/organisations/:orgId/productsDevolve um array simples, sem paginação:
JSON
[
{ "id": "d4e5f6a7-...", "code": "PROD-001", "name": "MacBook Pro M3", "unitPrice": 250000000, "taxRate": 14 },
{ "id": "e5f6a7b8-...", "code": "PROD-002", "name": "iPhone 16", "unitPrice": 180000000, "taxRate": 14 }
]Actualizar / Remover
PATCH
/v1/organisations/:orgId/products/:idActualiza campos (mesma forma do corpo de criação)DELETE
/v1/organisations/:orgId/products/:idRemove o produtoErros comuns
| 409 | product_code_exists | Já existe um produto com este code nesta organização |