biterp

Notas de compra

Como registrar notas de compra na API de Integrações, vinculá-las a fornecedores e gerar contas a pagar.

Uma nota de compra (/purchase-invoices) registra um documento recebido de um fornecedor. É o espelho, no lado das compras, da nota de venda: tem itens, impostos e pode gerar contas a pagar.

Permissão exigida: purchase-invoices (ações create, read, update, delete).

Conceitos e campos-chave

CampoTipoObrigatórioObservações
supplier_idUUIDSimFornecedor — precisa existir (não há cadastro inline)
supplier_document_numberstringSimNúmero do documento do fornecedor (≤ 60)
product_typeenumSimgoods, service ou mixed
purchase_datedateSim
itemsarraySim1+ itens
reference_codestringNãoAuto-gerado (PINV-…) se omitido
supplier_document_seriesstringNãoSérie do documento
financial_account_idUUIDNão
financial_category_idUUIDNão
operation_typestringNãoPadrão purchase
received_date, due_datedateNão
discount_amountstringNãoDesconto em valor (≥ 0) — decimal numeric(18,6) como string
discount_ratenumberNãoDesconto em percentual (0 a 100) — segue como número
taxesarrayNãoImpostos por item
payablesarrayNãoGera contas a pagar (ver abaixo)
description, notes, metadata, br_data, us_dataNão

Itens da nota de compra

Cada item tem item_description (obrigatório), quantity (string decimal ≥ "0.000001") e unit_price (string decimal ≥ "0"); product_id é opcional (permite lançar itens sem vínculo a um produto do catálogo). Em atualizações, informe id no item para reconciliação.

Unicidade: não pode haver nota de compra ativa com o mesmo fornecedor, série e número de documento — a segunda tentativa é rejeitada.

Gerando contas a pagar

Inclua um array payables[] (amount — decimal como string —, due_date, financial_account_id; opcionais payment_method_id, description). A soma de payables[].amount deve ser exatamente igual ao total líquido da nota (net_payable_total). Se houver mais de um, viram parcelas. Os pagáveis nascem pending, ligados ao supplier_id; consulte-os no recurso /payables (não vêm no corpo da nota).

Criar uma nota de compra (com conta a pagar)

curl -X POST https://api.biterp.ai/purchase-invoices \
  -H "Authorization: Bearer sk_xxx_yyy" \
  -H "Content-Type: application/json" \
  -d '{
    "supplier_id": "1a2b3c4d-5e6f-4708-9a0b-1c2d3e4f5a6b",
    "supplier_document_number": "12345",
    "supplier_document_series": "1",
    "product_type": "goods",
    "purchase_date": "2026-07-06",
    "due_date": "2026-08-05",
    "items": [
      {
        "item_description": "Matéria-prima X",
        "quantity": "100.000000",
        "unit_price": "12.500000"
      }
    ],
    "payables": [
      {
        "amount": "1250.000000",
        "due_date": "2026-08-05",
        "financial_account_id": "9c8b7a6d-5e4f-4321-8b0a-1d2c3e4f5a6b"
      }
    ]
  }'

Status e atualização

A nota nasce em status: draft (estados comerciais: draft, finalized, cancelled). No PATCH, status e reference_code não são editáveis, e você não pode alterar itens, impostos ou descontos quando há contas a pagar ativas vinculadas. DELETE /purchase-invoices/{id} remove notas draft/finalized.

Referência dos endpoints

MétodoEndpointReferência
POST/purchase-invoicesCriar nota de compra
GET/purchase-invoicesListar notas de compra
GET/purchase-invoices/{id}Buscar por ID
PATCH/purchase-invoices/{id}Atualizar
DELETE/purchase-invoices/{id}Remover

Nesta página