Contas a pagar
Ciclo de vida das contas a pagar — o espelho de contas a receber, com pagamento por alocação de transação de débito, parcelas, vencidas e resumo.
Uma conta a pagar (/payables) é um valor que o tenant deve a um fornecedor, vinculado a uma conta financeira. É o espelho de Contas a receber: mesma máquina de estado, alocação, parcelamento, vencidas e resumo — trocando "receber" por "pagar".
Permissão exigida: payables (ações create, read, update, delete).
Ciclo de vida
Os status são os mesmos das contas a receber: pending, partial, paid, overdue, cancelled. Um pagável nasce em pending e caminha para paid conforme você aloca transações de débito (paga). A diferença relevante frente aos recebíveis é que o overdue é aplicado automaticamente ao recalcular: se restar saldo e o due_date já passou, o status vai para overdue (inclusive ao alterar a data de vencimento via PATCH).
Assim como em recebíveis,
statusé um campo bloqueado noPATCH— mude o estado com as ações (allocate,cancel).
Criar uma conta a pagar
| Campo | Tipo | Obrigatório | Observações |
|---|---|---|---|
supplier_id | UUID | Sim | Fornecedor credor |
financial_account_id | UUID | Sim | Conta financeira (deve estar ativa) |
amount | string | Sim | Valor a pagar (> 0) — decimal numeric(18,6) como string (ex.: "1250.000000") |
issue_date | date | Sim | YYYY-MM-DD |
due_date | date | Sim | YYYY-MM-DD |
payment_method_id | UUID | Não | |
financial_category_id | UUID | Não | |
reference_code | string | Não | Auto-gerado (PAY-…) se omitido; único por tenant |
discount_amount | string | Não | (≥ 0) — decimal como string |
surcharge_amount | string | Não | (≥ 0) — decimal como string |
description / notes | string | Não | |
auto_generate_transaction | boolean | Não | Em conta manual (cash/digital_wallet), gera a transação de débito, aloca e marca como paid |
metadata | object | Não |
Diferente de recebíveis, contas a pagar não têm os campos
origin_type,origin_id,sales_order_idneminvoice_id. O vínculo com o fluxo de compras vem por notas de compra (que geram os pagáveis).
curl -X POST https://api.biterp.ai/payables \
-H "Authorization: Bearer sk_abc123_secretXYZ" \
-H "Content-Type: application/json" \
-d '{
"supplier_id": "1a2b3c4d-5e6f-4708-9a0b-1c2d3e4f5a6b",
"financial_account_id": "1a2b3c4d-5e6f-4708-9a1b-2c3d4e5f6071",
"amount": "1250.000000",
"issue_date": "2026-07-06",
"due_date": "2026-08-05",
"description": "Compra de matéria-prima"
}'Pagar: alocar uma transação
Pagar é alocar uma transação de débito ao pagável. POST /payables/{id}/allocate:
| Campo | Tipo | Obrigatório | Observações |
|---|---|---|---|
financial_transaction_id | UUID | Sim | Transação de débito (amount negativo) |
allocated_amount | string | Sim | Valor a alocar (> 0) — decimal como string |
notes | string | Não |
As regras espelham as de recebíveis: o pagável não pode estar paid/cancelled; a transação deve ser da mesma conta e ser um débito (negativa); allocated_amount respeita o saldo restante do pagável e da transação. Use DELETE /payables/{id}/allocate/{allocationId} para desfazer.
curl -X POST https://api.biterp.ai/payables/{id}/allocate \
-H "Authorization: Bearer sk_abc123_secretXYZ" \
-H "Content-Type: application/json" \
-d '{
"financial_transaction_id": "c2d3e4f5-a6b7-4c8d-9e0f-1a2b3c4d5e6f",
"allocated_amount": "500.000000",
"notes": "Pagamento parcial ao fornecedor"
}'Cancelar
POST /payables/{id}/cancel cancela o pagável. É bloqueado se ele já estiver paid ou cancelled.
Parcelar
POST /payables/installments funciona como em recebíveis (total_amount — decimal como string —, installment_count de 2 a 120, issue_date, first_due_date, supplier_id, financial_account_id), gerando N pagáveis com installment_group_id comum e vencimentos mensais. A sobra de arredondamento vai na última parcela.
Vencidas e resumo
GET /payables/overdue— pagáveis com statuspending/partialedue_dateno passado (paginado).GET /payables/summary— agregado por status (status,total_count,total_amount), mesmo formato do resumo de recebíveis.
Filtros
Campos filtráveis em GET /payables: reference_code, status, amount, due_date, issue_date, supplier_id, financial_account_id, financial_category_id, payment_method_id, installment_group_id, created_at, updated_at. Ver paginação e filtros.
Referência dos endpoints
| Método | Endpoint | Referência |
|---|---|---|
| POST | /payables | Criar |
| GET | /payables | Listar |
| POST | /payables/installments | Criar parcelas |
| GET | /payables/overdue | Listar vencidas |
| GET | /payables/summary | Resumo por status |
| GET | /payables/{id} | Buscar por ID |
| PATCH | /payables/{id} | Atualizar |
| DELETE | /payables/{id} | Remover |
| POST | /payables/{id}/cancel | Cancelar |
| POST | /payables/{id}/allocate | Alocar transação |
| DELETE | /payables/{id}/allocate/{allocationId} | Remover alocação |

