Pular para o conteúdo principal

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:

ParametroTipoObrigatorioDescricao
pagenumberNaoPagina atual (default: 1)
limitnumberNaoItens por pagina (default: 20, max: 100)
statusstringNaoFiltro por status: DRAFT, PENDING_APPROVAL, APPROVED, REJECTED, CANCELLED
supplierIdstringNaoFiltro por fornecedor (personId)
projectIdstringNaoFiltro 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:

CampoTipoObrigatorioDescricao
titlestringSimTitulo da ordem de compra (max: 255)
supplierIdstringSimID do fornecedor (personId)
projectIdstringNaoID do projeto vinculado
descriptionstringNaoDescricao detalhada
expectedDeliveryDatestringNaoData 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"
}
Nota

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):

CampoTipoDescricao
titlestringNovo titulo
supplierIdstringNovo fornecedor
projectIdstringNovo projeto vinculado
descriptionstringNova descricao
expectedDeliveryDatestringNova 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:

ParametroTipoObrigatorioDescricao
pagenumberNaoPagina atual (default: 1)
limitnumberNaoItens por pagina (default: 20, max: 100)
purchaseOrderIdstringNaoFiltro 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:

CampoTipoObrigatorioDescricao
purchaseOrderIdstringSimID da ordem de compra
descriptionstringSimDescricao do item
quantitynumberSimQuantidade
unitPricenumberSimPreco 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"
}
Nota

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)

ValorDescricao
DRAFTRascunho — ordem em elaboracao
PENDING_APPROVALAguardando aprovacao
APPROVEDAprovada
REJECTEDRejeitada
CANCELLEDCancelada