Pular para o conteúdo principal

O que é Contas a Pagar? Definição, Exemplos e AP vs AR (2026)

Publicado Última atualização 19 min para lerMike ThriftMike Thrift
O que é Contas a Pagar? Definição, Exemplos e AP vs AR (2026)
Nesta página

Contas a pagar (AP) é o dinheiro que sua empresa deve aos seus fornecedores por bens ou serviços que você já recebeu, mas ainda não pagou. No mundo da contabilidade, AP é classificada como um passivo circulante no seu balanço patrimonial — um valor normalmente devido no próximo ano, e frequentemente em 30 a 60 dias.

Esse conceito é central para a contabilidade de competência, onde você registra a despesa e o passivo correspondente no momento em que a fatura chega, não quando você realmente envia o dinheiro. Este guia mostrará como gerenciar todo o fluxo de trabalho de AP de forma limpa e eficiente usando a ferramenta de contabilidade em texto puro, Beancount.


Resumo Rápido

Antes de entrarmos em detalhes, vamos cobrir o essencial:

  • Contas a Pagar (AP) representa suas dívidas de curto prazo com fornecedores. Você a encontrará na seção Liabilities do seu balanço patrimonial.
  • Competência vs. Caixa: AP é um conceito que só existe se você mantiver seus livros no regime de competência. O Beancount suporta totalmente fluxos de trabalho de competência, e sua interface web, Fava, exibirá seus passivos corretamente.
  • AP vs. AR: É simples: Contas a pagar são o que você deve, enquanto Contas a receber (AR) são o que outros devem a você.

Onde AP Vive no Beancount (e no Fava)

Para começar a rastrear AP, você primeiro precisa declarar uma conta para ela no seu razão. Uma convenção padrão é:

Liabilities:AccountsPayable

Você pode opcionalmente criar subcontas para fornecedores importantes (por exemplo, Liabilities:AccountsPayable:ForestPaintSupply).

No Fava, esta conta aparecerá no seu Balanço Patrimonial sob Liabilities. Você pode clicar nela para detalhar e ver os lançamentos que compõem o saldo. Você pode até ver isso em ação no exemplo de razão público do Fava, que inclui uma conta Liabilities:AccountsPayable.

Convenção de sinal: O Beancount armazena saldos de passivos como créditos (números negativos). Um saldo de -500.00 USD em Liabilities:AccountsPayable significa que você deve $500. O relatório de itens em aberto abaixo inverte o sinal com -SUM(number) para que cada fatura não paga mostre um valor positivo em aberto. Uma fatura totalmente liquidada soma zero e é excluída por HAVING.


Blocos de Construção do Beancount que Você Usará

Um fluxo de trabalho robusto de AP no Beancount depende de alguns recursos principais:

  1. Contas: Você usará principalmente sua conta Liabilities:AccountsPayable, uma conta de caixa como Assets:Bank:Checking, e suas várias contas de despesas (por exemplo, Expenses:Supplies).
  2. Metadados: Você pode anexar dados chave-valor a qualquer transação. Para AP, você usará metadados como invoice:, due:, terms: e document:. Defina option "documents" para uma pasta para que o Beancount possa descobrir arquivos lá; no Fava, arrastar um arquivo para uma linha do diário insere uma entrada de metadados document:, e habilitar plugin "fava.plugins.link_documents" vincula essas entradas às diretivas de Documento descobertas.
  3. Tags & Links: Use #tags (como #ap) para filtragem fácil e ^links (como ^INV-10455) para amarrar programaticamente uma fatura e seu pagamento subsequente. Isso cria uma trilha clara e auditável no diário — mas links sozinhos não são suficientes para a consulta de faturas em aberto abaixo.
  4. Consultas (BQL): A linguagem de consulta estilo SQL do Beancount (BQL) permite que você execute relatórios poderosos, como listar todas as contas a pagar em aberto ordenadas por data de vencimento, diretamente da linha de comando com bean-query ou na página "Query" do Fava.

Identidade da fatura (necessária para consultas de faturas em aberto): Cada fatura e cada pagamento que a liquida — total, parcial ou com desconto antecipado — deve carregar os mesmos metadados de transação invoice: e due:, além do mesmo ^link. A consulta agrupa por payee, any_meta('invoice') e any_meta('due'). Se um pagamento omitir essas chaves, seu lançamento de AP cai em um grupo separado (payee, null, null) e uma fatura liquidada ainda parece em aberto. Mantenha (payee, invoice) único entre fornecedores. Campos opcionais apenas da fatura, como terms: e document:, não precisam se repetir nos pagamentos.


Fluxo de Trabalho Principal de AP no Beancount

Gerenciar AP no seu razão envolve duas ou três etapas principais: registrar a fatura, pagá-la e, às vezes, lidar com pagamentos parciais ou descontos.

1) Registre a Fatura do Fornecedor (Isso Cria o Passivo)

Primeiro, você lança a despesa e cria a conta a pagar quando a fatura chega.

; Optionally set your documents folder in your main Beancount file:
option "documents" "documents"
 
2025-08-05 * "Forest Paint Supply" "Paint order INV-10455" ^INV-10455 #ap
  invoice: "INV-10455"
  due: "2025-09-04"
  terms: "2/10, n/30"
  document: "invoices/2025-08-05-forest-paint-INV-10455.pdf"
  Expenses:Supplies:Paint         500.00 USD
  Liabilities:AccountsPayable    -500.00 USD

Este único lançamento realiza duas coisas críticas:

  1. Ele reconhece imediatamente a despesa de $500 no período correto (agosto) — uma vez. Não relance a despesa no pagamento.
  2. Ele credita AP em $500 (-500.00 USD), registrando que você deve esse valor à Forest Paint Supply.

O link ^INV-10455 mais os metadados invoice: / due: formam a identidade da fatura. Cada pagamento posterior desta fatura deve reutilizar todos os três.

2) Pague a Fatura (Isso Quita o Passivo)

Quando você paga a fatura, cria uma transação que move dinheiro da sua conta bancária para quitar o passivo. Copie invoice: e due: da fatura para o pagamento para que ambos os lançamentos compartilhem um grupo de consulta.

a) Pagamento Padrão (Sem Desconto):

2025-09-01 * "Forest Paint Supply" "Payment INV-10455" ^INV-10455
  invoice: "INV-10455"
  due: "2025-09-04"
  Liabilities:AccountsPayable     500.00 USD
  Assets:Bank:Checking           -500.00 USD

Este lançamento reduz seu saldo de AP em $500 e seu saldo de conta corrente no mesmo valor. O passivo desta fatura agora está quitado (a soma de AP do grupo é zero). A despesa permanece na fatura de agosto — o pagamento não toca em Expenses:.

b) Desconto por Pagamento Antecipado (por exemplo, "2/10, n/30") — escolha exatamente um método:

Se os termos forem "2/10, n/30", você pode obter um desconto de 2% se pagar dentro de 10 dias. Para nossa fatura de $500, isso é um desconto de $10. O bloco abaixo mostra duas alternativas mutuamente exclusivas: A Opção 1 está ativa; a Opção 2 está totalmente comentada para que uma colagem não lance ambas. Para usar a Opção 2, comente a Opção 1 e descomente a Opção 2. Nunca deixe ambas ativas — isso quita AP duas vezes e inventa um segundo benefício de $10. Qual conta de receita vs. despesa você usa é uma escolha de política contábil para seus livros; o Beancount não exige uma em vez da outra.

; Pick EXACTLY ONE of the two transactions below for a given invoice.
; Do not paste both into the same ledger — that clears AP twice.
 
; Option 1: Record the discount as other income
2025-08-12 * "Forest Paint Supply" "Early payment discount INV-10455" ^INV-10455
  invoice: "INV-10455"
  due: "2025-09-04"
  Liabilities:AccountsPayable     500.00 USD
  Assets:Bank:Checking           -490.00 USD
  Income:Discounts:Payables       -10.00 USD
 
; Option 2: Reduce the original expense directly
; 2025-08-12 * "Forest Paint Supply" "Early payment discount INV-10455" ^INV-10455
;   invoice: "INV-10455"
;   due: "2025-09-04"
;   Liabilities:AccountsPayable     500.00 USD
;   Assets:Bank:Checking           -490.00 USD
;   Expenses:Supplies:Paint         -10.00 USD

Em qualquer alternativa isolada, você quita o passivo total de $500, reduz seu saldo bancário pelos $490 que realmente pagou e contabiliza o benefício de $10. Substitua a transação de pagamento integral padrão pela alternativa escolhida — não empilhe um pagamento com desconto sobre o pagamento em dinheiro de $500 e não combine este bloco com a seção 2a para a mesma fatura.

3) Lidando com Pagamentos Parciais

Reutilize a mesma identidade invoice: / due: / ^link em cada parcela para que cada pagamento reduza o mesmo grupo de fatura em aberto.

; Invoice for $1,200
2025-08-10 * "Acme Parts" "INV-9001" ^INV-9001
  invoice: "INV-9001"
  due: "2025-09-09"
  Expenses:Parts                 1200.00 USD
  Liabilities:AccountsPayable   -1200.00 USD
 
; First payment of $400
2025-08-20 * "Acme Parts" "Payment INV-9001 (1/3)" ^INV-9001
  invoice: "INV-9001"
  due: "2025-09-09"
  Liabilities:AccountsPayable     400.00 USD
  Assets:Bank:Checking           -400.00 USD
 
; Final payment of $800
2025-09-05 * "Acme Parts" "Payment INV-9001 (final)" ^INV-9001
  invoice: "INV-9001"
  due: "2025-09-09"
  Liabilities:AccountsPayable     800.00 USD
  Assets:Bank:Checking           -800.00 USD

Após o primeiro pagamento, a soma de AP do grupo da fatura é -800.00 USD (você ainda deve $800). Após o pagamento final, é zero. Filtrar o diário por ^INV-9001 ainda mostra o histórico completo.


Consultas Úteis (BQL)

Você pode executar estas consultas na aba "Query" do Fava ou na linha de comando com bean-query (referência BQL). Verificado abaixo com Beancount 3.2.3 e beanquery 0.2.0.

Dica: A função any_meta() procura uma chave de metadados primeiro no lançamento e depois na transação — então valores de invoice: / due: no nível da transação aparecem no conjunto de resultados.

AP em aberto por Fornecedor (Visão de Saldo):

Esta consulta soma o inventário de passivos por fornecedor. Um total credor (negativo) é o que você ainda deve a esse fornecedor.

SELECT payee, COST(SUM(position)) AS amount
WHERE account ~ "^Liabilities:AccountsPayable"
GROUP BY payee
ORDER BY payee;

Faturas em aberto em uma data fixa (relatório de itens em aberto):

Um relatório de itens em aberto responde "o que permanece não pago?". Ele deve (1) cortar em uma data-base explícita para que pagamentos posteriores não possam silenciosamente limpar um snapshot anterior, (2) agrupar pela identidade compartilhada da fatura (payee + invoice: + due:), (3) excluir grupos liquidados (zero) e (4) mostrar um valor positivo em aberto — não um crédito de AP bruto com sinal.

Data do relatório usada em todo o texto abaixo: 2025-09-04.

Razão inicial de AP para download

Baixe accounts-payable-starter.bean — um razão autocontido gerado a partir do bloco completo abaixo (aberturas de contas, caixa inicial fictício, faturas liquidadas / parciais / não pagas, data-base 2025-09-04). Todos os nomes e valores são dados de amostra fictícios. Nenhum PDF de fatura, pasta de documentos ou outro arquivo é necessário para validá-lo ou consultá-lo.

Primeira execução a partir de um diretório temporário limpo (Beancount 3.2.3 / beanquery 0.2.0 fixados):

# Save the download as accounts-payable-starter.bean in this directory, then:
uvx --from beancount==3.2.3 bean-check accounts-payable-starter.bean
 
uvx --from beanquery==0.2.0 --with beancount==3.2.3 bean-query accounts-payable-starter.bean \
  "SELECT payee, any_meta('invoice') AS invoice, any_meta('due') AS due, -SUM(number) AS outstanding WHERE account ~ '^Liabilities:AccountsPayable' AND date <= 2025-09-04 GROUP BY payee, invoice, due HAVING SUM(number) < 0 ORDER BY due, payee"

bean-check sai com código 0 e sem saída. A consulta retorna as cinco linhas em aberto na tabela esperada abaixo (Forest ausente; Acme em aberto 800.00; soma do em aberto positivo = 1500.00). Regere o download confirmado com yarn generate:ap-starter após editar o bloco; yarn generate:ap-starter --check falha se o artefato estiver desatualizado.

Cole este fixture completo (aberturas + caixa inicial + os três formatos de fatura, além de linhas de vencimento-hoje / vencido / caso-limite para envelhecimento). Alternativas de desconto antecipado para INV-10455 permanecem totalmente comentadas — ative exatamente uma apenas se você substituir o pagamento padrão da Forest; nunca deixe ambas as opções de desconto ativas junto com esse pagamento.

; accounts-payable-starter — complete runnable AP workflow
option "operating_currency" "USD"
 
2025-01-01 open Assets:Bank:Checking USD
2025-01-01 open Equity:Opening-Balances USD
2025-01-01 open Liabilities:AccountsPayable USD
2025-01-01 open Expenses:Supplies:Paint USD
2025-01-01 open Expenses:Parts USD
2025-01-01 open Expenses:Office USD
2025-01-01 open Income:Discounts:Payables USD
 
; Fictional opening cash — enough to cover every payment in this ledger
2025-01-01 * "Opening balance"
  Assets:Bank:Checking           5000.00 USD
  Equity:Opening-Balances       -5000.00 USD
 
; Settled before as-of — must disappear from the open report
2025-08-05 * "Forest Paint Supply" "Paint order INV-10455" ^INV-10455 #ap
  invoice: "INV-10455"
  due: "2025-09-04"
  Expenses:Supplies:Paint         500.00 USD
  Liabilities:AccountsPayable    -500.00 USD
 
2025-09-01 * "Forest Paint Supply" "Payment INV-10455" ^INV-10455
  invoice: "INV-10455"
  due: "2025-09-04"
  Liabilities:AccountsPayable     500.00 USD
  Assets:Bank:Checking           -500.00 USD
 
; Early-payment discount alternatives for INV-10455 — mutually exclusive with
; the standard payment above AND with each other. To take 2/10 instead: delete
; (or comment out) the 2025-09-01 payment, then uncomment EXACTLY ONE option.
; Never leave both options active — that clears AP twice.
;
; Option 1: Record the discount as other income
; 2025-08-12 * "Forest Paint Supply" "Early payment discount INV-10455" ^INV-10455
;   invoice: "INV-10455"
;   due: "2025-09-04"
;   Liabilities:AccountsPayable     500.00 USD
;   Assets:Bank:Checking           -490.00 USD
;   Income:Discounts:Payables       -10.00 USD
;
; Option 2: Reduce the original expense directly
; 2025-08-12 * "Forest Paint Supply" "Early payment discount INV-10455" ^INV-10455
;   invoice: "INV-10455"
;   due: "2025-09-04"
;   Liabilities:AccountsPayable     500.00 USD
;   Assets:Bank:Checking           -490.00 USD
;   Expenses:Supplies:Paint         -10.00 USD
 
; Partial before as-of; final $800 payment is AFTER 2025-09-04
2025-08-10 * "Acme Parts" "INV-9001" ^INV-9001
  invoice: "INV-9001"
  due: "2025-09-09"
  Expenses:Parts                 1200.00 USD
  Liabilities:AccountsPayable   -1200.00 USD
 
2025-08-20 * "Acme Parts" "Payment INV-9001 (1/3)" ^INV-9001
  invoice: "INV-9001"
  due: "2025-09-09"
  Liabilities:AccountsPayable     400.00 USD
  Assets:Bank:Checking           -400.00 USD
 
2025-09-05 * "Acme Parts" "Payment INV-9001 (final)" ^INV-9001
  invoice: "INV-9001"
  due: "2025-09-09"
  Liabilities:AccountsPayable     800.00 USD
  Assets:Bank:Checking           -800.00 USD
 
; Unpaid — not yet due as of 2025-09-04
2025-08-15 * "Bright Office Co" "INV-220" ^INV-220
  invoice: "INV-220"
  due: "2025-09-14"
  Expenses:Office                 300.00 USD
  Liabilities:AccountsPayable    -300.00 USD
 
; Unpaid — due today (as-of == due)
2025-08-20 * "Helix Industries" "INV-440" ^INV-440
  invoice: "INV-440"
  due: "2025-09-04"
  Expenses:Parts                  200.00 USD
  Liabilities:AccountsPayable    -200.00 USD
 
; Unpaid — 30 days overdue as of 2025-09-04
2025-07-06 * "Metro Hardware" "INV-77" ^INV-77
  invoice: "INV-77"
  due: "2025-08-05"
  Expenses:Parts                  150.00 USD
  Liabilities:AccountsPayable    -150.00 USD
 
; Overpayment — credit balance (not an amount due; see edge cases)
2025-08-01 * "Credit Vendor" "INV-C1" ^INV-C1
  invoice: "INV-C1"
  due: "2025-08-20"
  Expenses:Parts                  100.00 USD
  Liabilities:AccountsPayable    -100.00 USD
 
2025-08-18 * "Credit Vendor" "Overpay INV-C1" ^INV-C1
  invoice: "INV-C1"
  due: "2025-08-20"
  Liabilities:AccountsPayable     150.00 USD
  Assets:Bank:Checking           -150.00 USD
 
; Missing due metadata — still open; age into a separate bucket, do not drop
2025-08-12 * "No Due Co" "INV-ND" ^INV-ND
  invoice: "INV-ND"
  Expenses:Office                  50.00 USD
  Liabilities:AccountsPayable     -50.00 USD

Consulta de itens em aberto (beanquery 0.2.0 suporta HAVING SUM(number) < 0; ele não suporta comparar um inventory com 0 usando COST(SUM(position)) != 0):

SELECT payee,
       any_meta('invoice') AS invoice,
       any_meta('due')     AS due,
       -SUM(number)        AS outstanding
WHERE account ~ "^Liabilities:AccountsPayable"
  AND date <= 2025-09-04
GROUP BY payee, invoice, due
HAVING SUM(number) < 0
ORDER BY due, payee;

Linhas esperadas em 2025-09-04 (derivadas independentemente das transações: fatura − pagamentos datados ≤ data-base; Forest liquida para 0 e está ausente):

payeeinvoicedueoutstanding
No Due CoINV-ND(vazio)50.00
Metro HardwareINV-772025-08-05150.00
Helix IndustriesINV-4402025-09-04200.00
Acme PartsINV-90012025-09-09800.00
Bright Office CoINV-2202025-09-14300.00

Soma do em aberto positivo = 1.500,00. A fatura de $500 da Forest desapareceu. A Acme ainda mostra $800 ($1.200 − $400); o pagamento de $800 em 2025-09-05 é após a data-base, portanto não pode fechar este snapshot.

Concilie com o passivo de AP no mesmo corte:

SELECT COST(SUM(position)) AS ap_balance
WHERE account ~ "^Liabilities:AccountsPayable"
  AND date <= 2025-09-04;

Esperado: ap_balance = (-1450.00 USD). Independentemente: em aberto de $1.500 menos o crédito de fornecedor de $50 (abaixo) = $1.450 devidos → inventário de passivo -1450.00 USD.

Mova a data-base um dia para frente (date <= 2025-09-05) e re-execute a consulta de itens em aberto: a linha da Acme desaparece (pagamento final incluído), e ap_balance torna-se (-650.00 USD). Um pagamento após a data do relatório nunca reescreve o relatório anterior.

Créditos de fornecedor / pagamentos a maior: HAVING SUM(number) < 0 mantém apenas valores que você ainda deve. Um pagamento a maior inverte a soma de AP do grupo para positivo. Liste esses separadamente — não trate um saldo de AP positivo como "valor devido":

SELECT payee,
       any_meta('invoice') AS invoice,
       any_meta('due')     AS due,
       SUM(number)         AS credit
WHERE account ~ "^Liabilities:AccountsPayable"
  AND date <= 2025-09-04
GROUP BY payee, invoice, due
HAVING SUM(number) > 0
ORDER BY payee;

Esperado: uma linha — Credit Vendor / INV-C1 / 2025-08-20 / credit = 50.00 (você pagou a maior em $50).

due: ausente: INV-ND ainda aparece no relatório em aberto com um vencimento vazio. Envelheça-o em um balde dedicado missing-due (abaixo); nunca o omita silenciosamente.

Listar Faturas com PDFs Anexados:

SELECT date, payee, any_meta('invoice') AS invoice, any_meta('document') AS file
WHERE account ~ "^Liabilities:AccountsPayable"
ORDER BY date DESC;

Onde Ver AP no Fava

  • Balanço Patrimonial: Navegue até Balance SheetLiabilitiesAccountsPayable para ver o saldo total e detalhar os detalhes da transação.
  • Diário: Filtre o diário por account:Liabilities:AccountsPayable ou um link específico como ^INV-xxxx para ver o ciclo de vida completo de uma fatura.
  • Documentos: Com option "documents" definido, o Beancount descobre arquivos sob essa árvore. As visualizações de Documentos do Fava e o plugin link_documents (veja acima) conectam esses arquivos às transações que carregam metadados document:.

Envelhecimento de AP, Giro e Consciência de Fluxo de Caixa

Cronograma de envelhecimento (exportação reproduzível + baldes): beanquery 0.2.0 pode emitir as linhas de itens em aberto acima, mas não fornece uma expressão de balde de envelhecimento integrada sobre metadados due. Exporte o relatório em aberto e depois agrupe em baldes deterministicamente contra a mesma data-base.

bean-query -f csv -o open-ap.csv accounts-payable-starter.bean \
  "SELECT payee, any_meta('invoice') AS invoice, any_meta('due') AS due, -SUM(number) AS outstanding WHERE account ~ '^Liabilities:AccountsPayable' AND date <= 2025-09-04 GROUP BY payee, invoice, due HAVING SUM(number) < 0 ORDER BY due, payee"

Colunas do CSV: payee, invoice, due, outstanding.

Regra de balde para data-base D = 2025-09-04 e cada due da linha (ISO YYYY-MM-DD):

CondiçãoBalde
due vaziomissing-due
due > Dnot-yet-due
due == Ddue-today
1 ≤ (D − due) ≤ 301-30-overdue
31 ≤ (D − due) ≤ 6031-60-overdue
(D − due) ≥ 6161+-overdue

Python compacto (apenas stdlib) que implementa essa tabela:

from datetime import date
 
AS_OF = date(2025, 9, 4)
# Apply bucket() to each CSV row's due column (ISO YYYY-MM-DD or empty).
 
def bucket(due: str | None) -> str:
    if not due:
        return "missing-due"
    days = (AS_OF - date.fromisoformat(due)).days
    if days < 0:
        return "not-yet-due"
    if days == 0:
        return "due-today"
    if days <= 30:
        return "1-30-overdue"
    if days <= 60:
        return "31-60-overdue"
    return "61+-overdue"

Envelhecimento esperado para as linhas em aberto em 2025-09-04:

invoiceduedias vencidobaldeoutstanding
INV-ND(vazio)missing-due50.00
INV-772025-08-05301-30-overdue150.00
INV-4402025-09-040due-today200.00
INV-90012025-09-09−5not-yet-due800.00
INV-2202025-09-14−10not-yet-due300.00

Vencendo hoje não é dobrado em "atual": due == data-base é seu próprio balde. Não vencido requer due > data-base.

  • Índice de Giro de AP: Total de Compras de Fornecedores ÷ AP Médio. Uma métrica relacionada, Dias de Contas a Pagar em Aberto (DPO), é aproximadamente 365 ÷ Índice de Giro.
  • Se Você Não Puder Pagar em Dia: AP é destinada a dívidas de curto prazo. Se um fornecedor concordar com um reembolso formal de longo prazo, reclassifique fora de AP para uma nota a pagar — mantenha a mesma identidade de fatura na conversão para que o grupo de AP seja quitado.
2025-10-01 * "Helix Industries" "Convert overdue AP to 12-month note" ^INV-1110
  invoice: "INV-1110"
  due: "2025-09-15"
  Liabilities:AccountsPayable    2000.00 USD
  Liabilities:NotesPayable      -2000.00 USD

Melhores Práticas para AP em um Razão de Texto Puro

  • Vá sem Papel: Armazene PDFs de faturas sob sua árvore de documentos e anexe-os com a chave de metadados document: (e upload do Fava / link_documents quando você usar Fava).
  • Reutilize a Identidade da Fatura nos Pagamentos: Coloque os mesmos invoice:, due: e ^link na fatura e em cada pagamento que a liquida.
  • Relate Contra uma Data-Base: Corte consultas de itens em aberto e de envelhecimento com date <= YYYY-MM-DD para que um pagamento posterior não possa reescrever um snapshot anterior; envelheça com a mesma D.
  • Mantenha os Metadados Organizados: Usar consistentemente invoice:, due: e terms: melhora a pesquisa, consultas e revisões financeiras.
  • Competência até o Fim: Se você quiser relatórios úteis de AP, comprometa-se a manter seus livros no regime de competência. Beancount e Fava lidam com saldos de competência no Balanço Patrimonial sem plugins especiais.

Inicializador Copiar-Colar: Fatura de Fornecedor + Pagamento

Para o fluxo de trabalho completo de itens em aberto (liquidado + parcial + não pago, data-base, envelhecimento), prefira o AP inicializador para download acima. O par mínimo de fatura+pagamento abaixo ainda mostra identidade em ambas as pernas — abra as contas primeiro (ou inclua essas aberturas no seu razão principal). Metadados opcionais document: são omitidos aqui para que nada fora do razão seja necessário.

option "operating_currency" "USD"
 
2025-01-01 open Assets:Bank:Checking USD
2025-01-01 open Liabilities:AccountsPayable USD
2025-01-01 open Expenses:Supplies:Paint USD
 
; ---- Bill ----
2025-08-05 * "Forest Paint Supply" "Paint order INV-10455" ^INV-10455 #ap
  invoice: "INV-10455"
  due: "2025-09-04"
  Expenses:Supplies:Paint         500.00 USD
  Liabilities:AccountsPayable    -500.00 USD
 
; ---- Payment (no discount) ----
2025-09-01 * "Forest Paint Supply" "Payment INV-10455" ^INV-10455
  invoice: "INV-10455"
  due: "2025-09-04"
  Liabilities:AccountsPayable     500.00 USD
  Assets:Bank:Checking           -500.00 USD

Com Beancount 3.2.3 e beanquery 0.2.0, carregar este inicializador não produz erros, a conta de AP liquida para zero, e a consulta de fatura+vencimento retorna um único grupo (Forest Paint Supply, INV-10455, 2025-09-04) cujo valor está vazio (liquidado) — não uma linha de fatura mais uma linha de pagamento órfã (…, null, null).


Este guia é para fins educacionais e não constitui aconselhamento fiscal, jurídico ou financeiro.

Referências & Leitura Adicional:

Partilhar este artigo

Fonte: https://beancount.io/pt/blog/2025/08/20/what-is-accounts-payable

Publicado: 20 de agosto de 2025

Última atualização: 15 de setembro de 2026