I'm going to assume that the two 'problems' you have is that you want to know 'how' to record credit card transactions using beancount, if not, disregard this and use the importers as Martin suggested.
This is how I manage my credit card transactions, statement reconciliation and due dates, may not be the correct way but it works for me. Credit cards are a liability and carry a negative balance.
1) Record opening balance (if you are not importing all of your transaction history)
2026-01-01 * "Discover" "Opening credit card balance"
Liabilities:Discover:Credit -1000.00 USD
Equity:Opening 1000.00 USD
2) Record/import transactions as they happen, positive for expense accounts, negative (increase debt) for liability account
2026-01-05 * "Supermarket" "Groceries"
Expenses:Groceries 50.00 USD
Liabilities:Discover:Credit -50.00 USD ; Increase debt
2026-01-10 * "Amazon" "Supplies and clothes"
Expenses:Clothes 40.00 USD
Expenses:Supplies 30.00 USD
Liabilities:Discover:Credit -70.00 USD ; Increase debt
3) When you receive your statement record interest accrued and run a balance to check against your statement balance
2026-01-15 * "Discover" "Interest"
Expenses:Interest:Discover 30.00 USD
Liabilities:Discover:Credit -30.00 USD ; Increase debt
2026-01-16 balance Liabilities:Discover:Credit -1150.00 USD
4) Record your credit card payment, you can add some meta data or a tag to show for which bill it was for, or the due date
2026-01-20 * "Discover" "Credit card payment for 2026-02" #discover-2026-02
due: 2026-02-15
Liabilities:Discover:Credit 100.00 USD ; Decrease debt
Assets:Bank:Checking -100.00 USD
If you are wanting to track your bills/due dates in a more granular way so that you don't miss a payment or you want to keep track of which payments you've already made, I have a method to do that as well, but this should suffice for basic credit card management and to check your balance.
"Yitzhak Dashevsky" idash...@gmail.com – March 17, 2026 5:21 PM
I use my credit card on a daily basis, and at the end of the month I receive a statement. I have two problems: first, I need to record each transaction to keep track of my expenses; second, I need to record the total outstanding balance along with the payment due date.
Do you have any ideas on how to solve these issues?
--
You received this message because you are subscribed to the Google Groups "Beancount" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beancount+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/beancount/8cd708ce-2d4b-469f-be7a-bc73450a5b3cn%40googlegroups.com.
For bill tracking I use a separate 'Liability:Bills' account for each of my bills, this helps me see due dates and makes sure the expenses for each bill land on the month it is due, not on the day the money left my account. For example I may pay my April electricity bill in March, but the expense will show up for April. My process is as follows:
1) Receive statement or bill: Record bill transaction with due date as the transaction date. Flag as '!' because it is yet unpaid. Tag with '#bill' and a link for that month '^electricity-2026-04'. Increase 'Liability:Bill:Electricity' debt (money owed) and expense the bill to the appropriate expense account 'Expenses:Utilities:Electricity'
2026-04-10 ! "Xcel Energy" "April electricity bill" #bill ^electricity-2026-04
Expenses:Utilities:Electricity 100.00 USD
Liabilities:Bills:Electricity -100.00 USD
2) A query will then show me any outstanding bills I may have with their due date and amount due:
1970-01-01 query "pending-bills" "
SELECT date, account, sum(position) as amount, flag
WHERE account ~ 'Liabilities:Bills' AND flag = '!'
GROUP BY account, flag, date ORDER BY date"
---
date account amount f
---------- ----------------------------- ------- -
2026-04-10 Liabilities:Bills:Electricity -100.00 !
3) Pay the bill: Make a payment to the 'bills' account, (paying money owed). Tag with '#payment', link to bill transaction '^electricity-2026-04', and change the original bill transaction flag to '*' to mark as paid.
2026-03-20 * "Xcel Energy" "April electricity payment" #payment ^electricity-2026-04
Liabilities:Bills:Electricity 100.00 USD
Assets:Bank:Checking -100.00 USD
2026-04-10 * "Xcel Energy" "April electricity bill" #bill ^electricity-2026-04 ; Update original bill flag to '*'
Expenses:Utilities:Electricity 100.00 USD
Liabilities:Bills:Electricity -100.00 USD
4) For credit card payments or loans where you pay more than what is owed you can add a pad directive to balance everything correctly and yet still keep track of the minimum payment due
2026-04-15 ! "Discover" "Discover April bill" #bill ^discover-2026-04
Liabilities:Discover:Credit 50.00 USD ; Minimum payment due
Liabilities:Bills:Discover -50.00 USD
2026-03-20 * "Discover" "Discover April payment" #payment ^discover-2026-04
Liabilities:Bills:Discover 100.00 USD ; Actual amount paid
Assets:Bank:Checking -100.00 USD
2026-04-15 pad Liabilities:Bills:Discover Liabilities:Discover:Credit ; Pad on date of bill due, or if you paid late, on date you made the payment
2026-04-16 balance Liabilities:Bills:Discover 0.00 USD ; Balance on day after the pad directive
"Felipe M." felipe....@gmail.com – March 19, 2026 11:57 AM
To view this discussion visit https://groups.google.com/d/msgid/beancount/3738aa5a-2a2b-4fe5-8484-17d826f0fc31n%40googlegroups.com.
For bill tracking I use a separate 'Liability:Bills' account for each of my bills, this helps me see due dates and makes sure the expenses for each bill land on the month it is due, not on the day the money left my account. For example I may pay my April electricity bill in March, but the expense will show up for April. My process is as follows:
1) Receive statement or bill: Record bill transaction with due date as the transaction date. Flag as '!' because it is yet unpaid. Tag with '#bill' and a link for that month '^electricity-2026-04'. Increase 'Liability:Bill:Electricity' debt (money owed) and expense the bill to the appropriate expense account 'Expenses:Utilities:Electricity'
2026-04-10 ! "Xcel Energy" "April electricity bill" #bill ^electricity-2026-04
Expenses:Utilities:Electricity 100.00 USD
Liabilities:Bills:Electricity -100.00 USD
2) A query will then show me any outstanding bills I may have with their due date and amount due:
1970-01-01 query "pending-bills" "
SELECT date, account, sum(position) as amount, flag
WHERE account ~ 'Liabilities:Bills' AND flag = '!'
GROUP BY account, flag, date ORDER BY date"
---
date account amount f
---------- ----------------------------- ------- -
2026-04-10 Liabilities:Bills:Electricity -100.00 !
3) Pay the bill: Make a payment to the 'bills' account, (paying money owed). Tag with '#payment', link to bill transaction '^electricity-2026-04', and change the original bill transaction flag to '*' to mark as paid.
2026-03-20 * "Xcel Energy" "April electricity payment" #payment ^electricity-2026-04
Liabilities:Bills:Electricity 100.00 USD
Assets:Bank:Checking -100.00 USD
2026-04-10 * "Xcel Energy" "April electricity bill" #bill ^electricity-2026-04 ; Update original bill flag to '*'
Expenses:Utilities:Electricity 100.00 USD
Liabilities:Bills:Electricity -100.00 USD
4) For credit card payments or loans where you pay more than what is owed you can add a pad directive to balance everything correctly and yet still keep track of the minimum payment due
2026-04-15 ! "Discover" "Discover April bill" #bill ^discover-2026-04
Liabilities:Discover:Credit 50.00 USD ; Minimum payment due
Liabilities:Bills:Discover -50.00 USD
2026-03-20 * "Discover" "Discover April payment" #payment ^discover-2026-04
Liabilities:Bills:Discover 100.00 USD ; Actual amount paid
Assets:Bank:Checking -100.00 USD
2026-04-15 pad Liabilities:Bills:Discover Liabilities:Discover:Credit ; Pad on date of bill due, or if you paid late, on date you made the payment
2026-04-16 balance Liabilities:Bills:Discover 0.00 USD ; Balance on day after the pad directive
"Felipe M." felipe....@gmail.com – March 19, 2026 11:57 AM
I do it pretty much the same way as Oscar, but with a twist. In Brazil it's common to buy things in installments and I wanted to track the total I still owe (future installments), the current credit card bill and account for the full value of the expense when the transaction took place rather than spreading it out. This is what I came up with (for purchases with installments only).
To view this discussion visit https://groups.google.com/d/msgid/beancount/3738aa5a-2a2b-4fe5-8484-17d826f0fc31n%40googlegroups.com.