Ordens de Compra
Gerencie ordens de compra e seus itens vinculados a fornecedores.
Listar Ordens de Compra
GET /external/v1/purchase-orders
Retorna uma lista paginada de ordens de compra.
Query Parameters:
| Parametro | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
page | number | Nao | Pagina atual (default: 1) |
limit | number | Nao | Itens por pagina (default: 20, max: 100) |
status | string | Nao | Filtro por status: DRAFT, PENDING_APPROVAL, APPROVED, REJECTED, CANCELLED |
supplierId | string | Nao | Filtro por fornecedor (personId) |
projectId | string | Nao | Filtro por projeto |
Exemplo de requisicao:
curl -X GET "https://api.tesselys.com.br/external/v1/purchase-orders?page=1&limit=10&status=APPROVED" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}"
Resposta (200):
{
"data": [
{
"id": "clx7m3k8f0001po9xhwvz2q4t",
"code": "OC-1015",
"title": "Compra de materiais eletricos - Fase 2",
"supplierId": "clx2n4p6r8t0a2c4e6g8i0k2m",
"supplierName": "Eletro Distribuidora Ltda",
"projectId": "clx5j1h9g7e3c1a0y8w6u4s2q",
"status": "APPROVED",
"totalAmount": 34750.00,
"expectedDeliveryDate": "2026-04-20T00:00:00.000Z",
"createdAt": "2026-03-10T09:30:00.000Z"
}
],
"meta": {
"total": 42,
"page": 1,
"limit": 10,
"totalPages": 5
}
}
Buscar Ordem de Compra por ID
GET /external/v1/purchase-orders/:id
Exemplo de requisicao:
curl -X GET "https://api.tesselys.com.br/external/v1/purchase-orders/clx7m3k8f0001po9xhwvz2q4t" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}"
Resposta (200):
{
"id": "clx7m3k8f0001po9xhwvz2q4t",
"code": "OC-1015",
"title": "Compra de materiais eletricos - Fase 2",
"supplierId": "clx2n4p6r8t0a2c4e6g8i0k2m",
"supplierName": "Eletro Distribuidora Ltda",
"projectId": "clx5j1h9g7e3c1a0y8w6u4s2q",
"status": "APPROVED",
"totalAmount": 34750.00,
"description": "Materiais para instalacao eletrica da segunda fase do projeto.",
"expectedDeliveryDate": "2026-04-20T00:00:00.000Z",
"createdAt": "2026-03-10T09:30:00.000Z"
}
Criar Ordem de Compra
POST /external/v1/purchase-orders
Body:
| Campo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
title | string | Sim | Titulo da ordem de compra (max: 255) |
supplierId | string | Sim | ID do fornecedor (personId) |
projectId | string | Nao | ID do projeto vinculado |
description | string | Nao | Descricao detalhada |
expectedDeliveryDate | string | Nao | Data prevista de entrega (ISO 8601) |
Exemplo de requisicao:
curl -X POST "https://api.tesselys.com.br/external/v1/purchase-orders" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}" \
-H "Content-Type: application/json" \
-d '{
"title": "Compra de equipamentos de TI",
"supplierId": "clx2n4p6r8t0a2c4e6g8i0k2m",
"projectId": "clx5j1h9g7e3c1a0y8w6u4s2q",
"description": "Notebooks e monitores para nova equipe de desenvolvimento.",
"expectedDeliveryDate": "2026-05-15"
}'
Resposta (201):
{
"id": "clx8p4l9g1002qo0yixwz3r5u",
"code": "OC-1016",
"title": "Compra de equipamentos de TI",
"supplierId": "clx2n4p6r8t0a2c4e6g8i0k2m",
"supplierName": "Eletro Distribuidora Ltda",
"projectId": "clx5j1h9g7e3c1a0y8w6u4s2q",
"status": "DRAFT",
"totalAmount": 0,
"description": "Notebooks e monitores para nova equipe de desenvolvimento.",
"expectedDeliveryDate": "2026-05-15T00:00:00.000Z",
"createdAt": "2026-03-26T10:00:00.000Z"
}
A ordem de compra e criada com status DRAFT. O campo code e gerado automaticamente pelo sistema. O totalAmount e calculado a partir dos itens vinculados.
Atualizar Ordem de Compra
PUT /external/v1/purchase-orders/:id
Atualiza os dados de uma ordem de compra existente. Envie apenas os campos que deseja alterar.
Body (campos opcionais):
| Campo | Tipo | Descricao |
|---|---|---|
title | string | Novo titulo |
supplierId | string | Novo fornecedor |
projectId | string | Novo projeto vinculado |
description | string | Nova descricao |
expectedDeliveryDate | string | Nova data prevista de entrega (ISO 8601) |
Exemplo de requisicao:
curl -X PUT "https://api.tesselys.com.br/external/v1/purchase-orders/clx8p4l9g1002qo0yixwz3r5u" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}" \
-H "Content-Type: application/json" \
-d '{
"title": "Compra de equipamentos de TI - Urgente",
"expectedDeliveryDate": "2026-04-30"
}'
Resposta (200):
{
"id": "clx8p4l9g1002qo0yixwz3r5u",
"code": "OC-1016",
"title": "Compra de equipamentos de TI - Urgente",
"supplierId": "clx2n4p6r8t0a2c4e6g8i0k2m",
"supplierName": "Eletro Distribuidora Ltda",
"projectId": "clx5j1h9g7e3c1a0y8w6u4s2q",
"status": "DRAFT",
"totalAmount": 0,
"description": "Notebooks e monitores para nova equipe de desenvolvimento.",
"expectedDeliveryDate": "2026-04-30T00:00:00.000Z",
"createdAt": "2026-03-26T10:00:00.000Z"
}
Itens de Ordem de Compra
Listar Itens de Ordem de Compra
GET /external/v1/purchase-order-items
Retorna uma lista paginada de itens vinculados a ordens de compra.
Query Parameters:
| Parametro | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
page | number | Nao | Pagina atual (default: 1) |
limit | number | Nao | Itens por pagina (default: 20, max: 100) |
purchaseOrderId | string | Nao | Filtro por ordem de compra |
Exemplo de requisicao:
curl -X GET "https://api.tesselys.com.br/external/v1/purchase-order-items?purchaseOrderId=clx7m3k8f0001po9xhwvz2q4t&page=1&limit=10" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}"
Resposta (200):
{
"data": [
{
"id": "clx9q5m0h2003ro1zjyxa4s6v",
"purchaseOrderId": "clx7m3k8f0001po9xhwvz2q4t",
"description": "Cabo eletrico 2.5mm - Rolo 100m",
"quantity": 15,
"unitPrice": 185.00,
"totalPrice": 2775.00,
"createdAt": "2026-03-10T09:45:00.000Z"
},
{
"id": "clx9r6n1i3004so2akzwb5t7w",
"purchaseOrderId": "clx7m3k8f0001po9xhwvz2q4t",
"description": "Disjuntor bipolar 32A",
"quantity": 40,
"unitPrice": 42.50,
"totalPrice": 1700.00,
"createdAt": "2026-03-10T09:50:00.000Z"
}
],
"meta": {
"total": 8,
"page": 1,
"limit": 10,
"totalPages": 1
}
}
Buscar Item de Ordem de Compra por ID
GET /external/v1/purchase-order-items/:id
Exemplo de requisicao:
curl -X GET "https://api.tesselys.com.br/external/v1/purchase-order-items/clx9q5m0h2003ro1zjyxa4s6v" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}"
Resposta (200):
{
"id": "clx9q5m0h2003ro1zjyxa4s6v",
"purchaseOrderId": "clx7m3k8f0001po9xhwvz2q4t",
"description": "Cabo eletrico 2.5mm - Rolo 100m",
"quantity": 15,
"unitPrice": 185.00,
"totalPrice": 2775.00,
"createdAt": "2026-03-10T09:45:00.000Z"
}
Criar Item de Ordem de Compra
POST /external/v1/purchase-order-items
Body:
| Campo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
purchaseOrderId | string | Sim | ID da ordem de compra |
description | string | Sim | Descricao do item |
quantity | number | Sim | Quantidade |
unitPrice | number | Sim | Preco unitario |
Exemplo de requisicao:
curl -X POST "https://api.tesselys.com.br/external/v1/purchase-order-items" \
-H "Authorization: Bearer {accessToken}" \
-H "x-company-token: {companyToken}" \
-H "Content-Type: application/json" \
-d '{
"purchaseOrderId": "clx7m3k8f0001po9xhwvz2q4t",
"description": "Tomada dupla 20A com placa",
"quantity": 60,
"unitPrice": 28.90
}'
Resposta (201):
{
"id": "clx0s7o2j4005tp3blaxc6u8x",
"purchaseOrderId": "clx7m3k8f0001po9xhwvz2q4t",
"description": "Tomada dupla 20A com placa",
"quantity": 60,
"unitPrice": 28.90,
"totalPrice": 1734.00,
"createdAt": "2026-03-26T11:00:00.000Z"
}
O campo totalPrice e calculado automaticamente (quantity * unitPrice). Ao adicionar ou remover itens, o totalAmount da ordem de compra e recalculado.
Valores de Enum
status (Ordem de Compra)
| Valor | Descricao |
|---|---|
DRAFT | Rascunho — ordem em elaboracao |
PENDING_APPROVAL | Aguardando aprovacao |
APPROVED | Aprovada |
REJECTED | Rejeitada |
CANCELLED | Cancelada |