본문으로 건너뛰기

미지급금(Accounts Payable)이란? 정의, 예시 및 AP vs AR (2026)

게시됨 마지막 업데이트 약 15분Mike ThriftMike Thrift
미지급금(Accounts Payable)이란? 정의, 예시 및 AP vs AR (2026)
이 페이지에서

미지급금(AP)은 이미 받았지만 아직 대금을 지불하지 않은 상품이나 서비스에 대해 사업체가 공급업체에 지불해야 하는 금액입니다. 회계 세계에서 AP는 대차대조표에서 유동부채로 분류되며, 일반적으로 다음 해 이내, 종종 30~60일 내에 지불해야 하는 금액입니다.

이 개념은 발생주의 회계의 핵심으로, 실제로 현금을 지불할 때가 아니라 청구서가 도착하는 즉시 비용과 해당 부채를 기록합니다. 이 가이드에서는 일반 텍스트 회계 도구인 Beancount를 사용하여 전체 AP 워크플로우를 깔끔하고 효율적으로 관리하는 방법을 보여드리겠습니다.


빠른 요약

세부 사항을 살펴보기 전에 필수 사항을 정리하겠습니다:

  • 미지급금(AP) 은 공급업체에 대한 단기 부채를 나타냅니다. 대차대조표의 부채(Liabilities) 섹션에서 찾을 수 있습니다.
  • 발생주의 vs. 현금주의: AP는 장부를 발생주의로 관리할 때만 존재하는 개념입니다. Beancount는 발생주의 워크플로우를 완벽하게 지원하며, 웹 인터페이스인 Fava에서 부채를 올바르게 표시합니다.
  • AP vs. AR: 간단합니다. 지급금(AP)은 내가 갚아야 할 것, 수취채권(AR)은 다른 사람이 나에게 갚아야 할 것입니다.

AP가 Beancount(및 Fava)에서 위치하는 곳

AP 추적을 시작하려면 먼저 원장에 해당 계정을 선언해야 합니다. 일반적인 표준은 다음과 같습니다:

Liabilities:AccountsPayable

주요 공급업체별로 하위 계정을 선택적으로 생성할 수 있습니다 (예: Liabilities:AccountsPayable:ForestPaintSupply).

Fava에서 이 계정은 대차대조표의 Liabilities 아래에 표시됩니다. 클릭하면 잔액을 구성하는 거래 내역으로 드릴다운할 수 있습니다. Liabilities:AccountsPayable 계정이 포함된 Fava의 공개 예제 원장에서도 이 기능을 직접 확인할 수 있습니다.

부호 규칙: Beancount는 부채 잔액을 대변(음수)으로 저장합니다. Liabilities:AccountsPayable의 잔액이 -500.00 USD이면 $500을 갚아야 한다는 뜻입니다. 아래의 미결 항목 보고서는 -SUM(number)으로 부호를 바꿔 각 미지급 인보이스가 양수 미결제 금액으로 표시되도록 합니다. 완전히 결제된 인보이스는 합계가 0이 되어 HAVING으로 제외됩니다.


사용할 Beancount 기본 구성 요소

견고한 AP 워크플로우는 몇 가지 핵심 기능에 의존합니다:

  1. 계정: 주로 Liabilities:AccountsPayable 계정, Assets:Bank:Checking과 같은 현금 계정, 그리고 다양한 비용 계정(예: Expenses:Supplies)을 사용합니다.
  2. 메타데이터: 모든 거래에 키-값 데이터를 첨부할 수 있습니다. AP의 경우 invoice:, due:, terms:, document:와 같은 메타데이터를 사용합니다. Beancount가 해당 폴더에서 파일을 찾을 수 있도록 option "documents"를 폴더로 설정하세요. Fava에서 저널 행에 파일을 끌어다 놓으면 document: 메타데이터 항목이 삽입되고, plugin "fava.plugins.link_documents"를 활성화하면 발견된 Document 지시문과 해당 항목이 연결됩니다.
  3. 태그 및 링크: #tags(예: #ap)를 사용하여 쉽게 필터링하고 ^links(예: ^INV-10455)를 사용하여 청구서와 이후 지불을 프로그래밍 방식으로 연결하세요. 이렇게 하면 저널에서 명확하고 감사 가능한 추적이 생성되지만, 링크만으로는 아래의 미결 인보이스 쿼리에 충분하지 않습니다.
  4. 쿼리(BQL): Beancount의 SQL 유사 쿼리 언어(BQL)를 사용하면 bean-query 명령줄이나 Fava의 "쿼리(Query)" 페이지에서 만기일별로 정렬된 모든 미지급금 목록과 같은 강력한 보고서를 실행할 수 있습니다.

인보이스 식별(미결 인보이스 쿼리에 필수): 모든 청구서와 이를 결제하는 모든 지불(전체, 부분, 조기 할인)은 동일한 invoice:due: 거래 메타데이터와 동일한 ^link를 가져야 합니다. 쿼리는 payee, any_meta('invoice'), any_meta('due')로 그룹화합니다. 지불에 이러한 키가 없으면 해당 AP 거래 내역은 별도의 (payee, null, null) 그룹에 속하게 되어 결제된 청구서도 여전히 미결로 보입니다. (payee, invoice)를 공급업체별로 고유하게 유지하세요. terms:document:와 같은 선택적 청구서 전용 필드는 지불에 반복할 필요가 없습니다.


Beancount의 핵심 AP 워크플로우

원장에서 AP를 관리하는 작업은 청구서 기록, 지불, 그리고 때로는 부분 지불 또는 할인 처리를 포함한 두세 가지 핵심 단계로 구성됩니다.

1) 공급업체 청구서 기록(부채 생성)

먼저, 인보이스가 도착하면 비용을 계상하고 미지급금을 생성합니다.

; 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

이 단일 항목은 두 가지 중요한 작업을 수행합니다:

  1. $500 비용을 올바른 기간(8월)에 즉시 인식합니다. 지불 시 비용을 다시 게시하지 마세요.
  2. AP를 $500(-500.00 USD) 대변에 기록하여 Forest Paint Supply에 그 금액을 빚지고 있음을 기록합니다.

^INV-10455 링크와 invoice: / due: 메타데이터는 인보이스의 식별자를 형성합니다. 이 청구서의 모든 이후 지불은 세 가지를 모두 재사용해야 합니다.

2) 청구서 지불(부채 상환)

인보이스를 지불할 때 은행 계좌에서 자금을 이동하여 부채를 상환하는 거래를 생성합니다. 청구서에서 invoice:due:를 지불로 복사하여 두 거래 내역이 하나의 쿼리 그룹을 공유하도록 하세요.

a) 표준 지불(할인 없음):

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

이 항목은 AP 잔액을 $500, 당좌 예금 잔액을 같은 금액만큼 줄입니다. 이 인보이스에 대한 부채는 이제 상환되었습니다(그룹의 AP 합계가 0). 비용은 8월 청구서에 남아 있습니다. 지불은 Expenses:를 건드리지 않습니다.

b) 조기 지불 할인(예: "2/10, n/30") — 정확히 한 가지 방법을 선택하세요:

조건이 "2/10, n/30"인 경우 10일 이내에 지불하면 2% 할인을 받을 수 있습니다. $500 인보이스의 경우 $10 할인입니다. 아래 울타리에는 상호 배타적인 두 가지 대안이 표시됩니다: 옵션 1은 활성화되어 있고, 옵션 2는 붙여넣을 때 둘 다 계산되지 않도록 완전히 주석 처리되어 있습니다. 옵션 2를 사용하려면 옵션 1을 주석 처리하고 옵션 2의 주석을 해제하세요. 둘 다 활성화된 상태로 두지 마세요. AP가 두 번 상환되고 두 번째 $10 혜택이 만들어집니다. 수익 계정과 비용 계정 중 무엇을 사용할지는 장부의 회계 정책 선택입니다. Beancount는 하나를 강요하지 않습니다.

; 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

어느 대안을 단독으로 사용하든 전체 $500 부채를 상환하고, 실제로 지불한 $490만큼 은행 잔액을 줄이며, $10 혜택을 회계 처리합니다. 선택한 대안으로 표준 전체 지불 거래를 대체하세요. 할인 지불을 $500 현금 지불 위에 쌓지 말고, 같은 인보이스에 대해 이 울타리를 섹션 2a와 결합하지 마세요.

3) 부분 지불 처리

각 할부 지불에 동일한 invoice: / due: / ^link 식별자를 재사용하여 각 지불이 동일한 미결 인보이스 그룹을 줄이도록 하세요.

; 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 합계는 -800.00 USD입니다(아직 $800을 빚지고 있음). 마지막 지불 후에는 0이 됩니다. ^INV-9001로 저널을 필터링하면 전체 이력이 계속 표시됩니다.


유용한 쿼리(BQL)

이 쿼리는 Fava의 "쿼리(Query)" 탭이나 bean-query 명령줄에서 실행할 수 있습니다 (BQL 참조). 아래는 Beancount 3.2.3beanquery 0.2.0에서 검증되었습니다.

팁: any_meta() 함수는 거래 내역에서 먼저 메타데이터 키를 찾은 다음 거래로 폴백하므로, 거래 수준의 invoice: / due: 값도 결과 집합에 나타납니다.

공급업체별 미지급 AP(잔액 보기):

이 쿼리는 공급업체별 부채 재고를 합산합니다. 대변(음수) 합계는 해당 공급업체에 아직 갚아야 할 금액입니다.

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

특정 날짜 기준 미결 인보이스(미결 항목 보고서):

미결 항목 보고서는 "아직 지불되지 않은 금액이 무엇인가?"에 답합니다. (1) 명시적인 기준일에서 잘라내야 하며(이후 지불이 이전 스냅샷을 조용히 지우지 못하도록), (2) 공유 인보이스 식별자(payee + invoice: + due:)로 그룹화하고, (3) 결제된(0) 그룹을 제외하며, (4) 원시 부호 있는 AP 대변이 아닌 양수 미결제 금액을 표시해야 합니다.

아래 모든 곳에서 사용되는 보고 날짜: 2025-09-04.

다운로드 가능한 AP 스타터 원장

accounts-payable-starter.bean을 다운로드하세요 — 아래 전체 울타리에서 생성된 하나의 독립적인 원장입니다(계정 개설, 가상 개시 현금, 결제됨 / 부분 / 미지급 인보이스, 기준일 2025-09-04). 모든 이름과 금액은 가상의 샘플 데이터입니다. 검증하거나 쿼리하는 데 인보이스 PDF, 문서 폴더 또는 기타 파일이 필요하지 않습니다.

깨끗한 임시 디렉토리에서 처음 실행(Beancount 3.2.3 / beanquery 0.2.0 고정):

# 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는 출력 없이 0으로 종료됩니다. 쿼리는 아래 예상 테이블의 5개 미결 행을 반환합니다(Forest 없음, Acme 미결제 800.00, 양수 미결제 합계 = 1500.00). 울타리를 편집한 후 yarn generate:ap-starter로 커밋된 다운로드를 재생성하세요. 아티팩트가 오래된 경우 yarn generate:ap-starter --check가 실패합니다.

이 전체 픽스처를 붙여넣으세요(개설 + 개시 현금 + 세 가지 인보이스 형태, 노화를 위한 만기-오늘 / 연체 / 엣지 케이스 행 포함). INV-10455에 대한 조기 할인 대안은 완전히 주석 처리된 상태로 유지하세요. 표준 Forest 지불을 대체하는 경우에만 정확히 하나를 활성화하세요. 해당 지불과 함께 두 할인 옵션을 모두 활성화하지 마세요.

; 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

미결 항목 쿼리(beanquery 0.2.0은 HAVING SUM(number) < 0을 지원하며, COST(SUM(position)) != 0으로 inventory0과 비교하는 것은 지원하지 않습니다):

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;

2025-09-04 기준 예상 행(거래에서 독립적으로 파생: 청구서 − 기준일 ≤ 지불액, Forest는 0으로 순계산되어 없음):

payeeinvoicedueoutstanding
No Due CoINV-ND(빈 값)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

양수 미결제 합계 = 1,500.00. Forest의 $500 청구서는 사라졌습니다. Acme는 여전히 $800을 표시합니다($1,200 − $400). 2025-09-05의 $800 지불은 기준일 이후이므로 이 스냅샷을 닫을 수 없습니다.

동일한 기준일에서 AP 부채와 조정:

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

예상: ap_balance = (-1450.00 USD). 독립적으로: 미결제 $1,500에서 아래의 $50 공급업체 크레딧을 빼면 $1,450 부채 → 부채 재고 -1450.00 USD.

기준일을 하루 뒤로 이동(date <= 2025-09-05)하고 미결 항목 쿼리를 다시 실행하면 Acme의 행이 사라지고(최종 지불 포함), ap_balance(-650.00 USD)가 됩니다. 보고 날짜 이후의 지불은 이전 보고서를 다시 쓰지 않습니다.

공급업체 크레딧 / 초과 지불: HAVING SUM(number) < 0은 여전히 갚아야 할 금액만 유지합니다. 초과 지불은 그룹의 AP 합계를 양수로 뒤집습니다. 별도로 나열하세요. 양수 AP 잔액을 "미지급 금액"으로 취급하지 마세요:

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;

예상: 한 행 — Credit Vendor / INV-C1 / 2025-08-20 / credit = 50.00 ($50 초과 지불).

due: 누락: INV-ND는 빈 due로 미결 보고서에 계속 나타납니다. 전용 missing-due 버킷(아래)으로 분류하세요. 절대 조용히 생략하지 마세요.

첨부 PDF가 있는 청구서 나열:

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

Fava에서 AP를 확인할 수 있는 곳

  • 대차대조표: 대차대조표(Balance Sheet)부채(Liabilities)AccountsPayable로 이동하여 총 잔액을 확인하고 거래 세부 정보로 드릴다운하세요.
  • 저널: account:Liabilities:AccountsPayable 또는 ^INV-xxxx와 같은 특정 링크로 저널을 필터링하여 청구서의 전체 수명 주기를 확인하세요.
  • 문서: option "documents"가 설정되면 Beancount는 해당 트리 아래에서 파일을 찾습니다. Fava의 문서 보기 및 link_documents 플러그인(위 참조)은 해당 파일을 document: 메타데이터를 가진 거래와 연결합니다.

AP 노화, 회전율 및 현금 흐름 인식

노화 일정(재현 가능한 내보내기 + 버킷): beanquery 0.2.0은 위의 미결 항목 행을 출력할 수 있지만, due 메타데이터에 대한 기본 제공 노화 버킷 표현식은 제공하지 않습니다. 미결 보고서를 내보낸 다음 동일한 기준일에 대해 결정적으로 버킷을 지정하세요.

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"

CSV 열: payee, invoice, due, outstanding.

기준일 D = 2025-09-04 및 각 행의 due(ISO YYYY-MM-DD)에 대한 버킷 규칙:

조건버킷
due 비어 있음missing-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(표준 라이브러리만 사용):

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"

2025-09-04 기준 미결 행의 예상 노화:

invoiceduedays past duebucketoutstanding
INV-ND(빈 값)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

오늘 만기(due-today)는 "현재(current)"에 포함되지 않습니다: due == as-of는 자체 버킷입니다. 아직 만기 아님(not-yet-due)은 due > as-of를 요구합니다.

  • AP 회전율: 총 공급업체 구매액 ÷ 평균 AP. 관련 지표인 지급 기한(DPO) 은 대략 365 ÷ 회전율입니다.
  • 제때 지불할 수 없는 경우: AP는 단기 부채를 위한 것입니다. 공급업체가 공식적인 장기 상환에 동의하면 AP에서 채무 증서로 재분류하세요. 전환 시 동일한 인보이스 식별자를 유지하여 AP 그룹이 소멸되도록 하세요.
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

일반 텍스트 원장에서 AP를 위한 모범 사례

  • 종이 없는 운영: 인보이스 PDF를 문서 트리에 저장하고 document: 메타데이터 키로 첨부하세요(Fava 사용 시 Fava 업로드 / link_documents).
  • 지불에 인보이스 식별자 재사용: 청구서와 이를 결제하는 모든 지불에 동일한 invoice:, due:, ^link를 넣으세요.
  • 기준일 기준 보고: date <= YYYY-MM-DD로 미결 항목 및 노화 쿼리를 잘라 이후 지불이 이전 스냅샷을 다시 쓰지 못하게 하고, 동일한 D로 노화하세요.
  • 메타데이터 정리 유지: invoice:, due:, terms:를 일관되게 사용하면 검색, 쿼리 및 재무 검토가 개선됩니다.
  • 끝까지 발생주의: 유용한 AP 보고를 원한다면 장부를 발생주의 기준으로 유지하기로 결정하세요. Beancount와 Fava는 특별한 플러그인 없이 대차대조표에서 발생주의 잔액을 처리합니다.

복사-붙여넣기 스타터: 공급업체 청구서 + 지불

전체 미결 항목 워크플로우(결제됨 + 부분 + 미지급, 기준일, 노화)의 경우 위의 다운로드 가능한 AP 스타터를 선호하세요. 아래의 최소 청구서+지불 쌍은 두 다리 모두에서 식별자를 보여줍니다. 먼저 계정을 개설하거나(또는 기본 원장에 이러한 개설을 포함), 선택적 document: 메타데이터는 원장 외부의 어떤 것도 요구하지 않도록 여기에서 생략됩니다.

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

Beancount 3.2.3 및 beanquery 0.2.0으로 이 스타터를 로드하면 오류가 발생하지 않고, AP 계정은 0으로 순계산되며, invoice+due 쿼리는 금액이 비어 있는(결제됨) 단일 그룹 (Forest Paint Supply, INV-10455, 2025-09-04)을 반환합니다. 청구된 행과 고아 (…, null, null) 지불 행이 아닙니다.


이 가이드는 교육 목적으로 제공되며 세금, 법률 또는 재정 조언을 구성하지 않습니다.

참조 및 추가 자료:

이 글 공유하기

출처: https://beancount.io/ko/blog/2025/08/20/what-is-accounts-payable

게시됨: 2025년 8월 20일

마지막 업데이트: 2026년 9월 15일

약 13분

연말 마감 분개: 수익·비용 계정을 영(0)으로 만들고 이익을 이익잉여금으로 이월하는 방법

수익, 비용, 배당 계정을 손익 요약을 통해 이익잉여금으로 마감합니다. 4단계와 더불어 마감 후 시산표로 영(0)을 검증합니다.

accounting
accounting-basics
약 14분

Meta 2026년 2분기 실적: 매출 28% 성장했지만, AI 시대 첫 이익 감소

Meta Platforms의 2026년 2분기 매출은 28% 증가한 608억 달러였지만 순이익은 14% 감소한 158억 달러를 기록했습니다.…

financial-reporting
financial-management
약 14분

Robinhood의 2026년 2분기 실적: 기록적인 분기, 최초의 부채, 그리고 숨겨진 일회성 이익

Robinhood의 2026년 2분기 매출은 32% 증가한 사상 최대 13억 1천만 달러, 순이익은 48% 증가한 5억 7천 3백만 달러를…

financial-reporting
financial-management
약 13분

메타 2026년 1분기 실적: 모든 수치를 상회했지만 주가는 7% 하락

메타 플랫폼의 2026년 1분기 매출은 33% 증가한 563억 달러, 순이익은 61% 증가한 268억 달러를 기록했지만, 메타가 2026년…

financial-reporting
financial-management
약 13분

로빈후드 2026년 1분기 실적: 예측 시장이 암호화폐를 추월했지만, 주가는 여전히 하락

로빈후드의 2026년 1분기 매출은 15% 성장한 10억 7천만 달러로 시장 예상치를 밑돌았습니다. 암호화폐 수익이 47% 급감한 반면,…

financial-reporting
financial-management