Home Tax & Compliance

Tax & Compliance

Preparing your books for tax season.
By Miguel Abascal
4 articles

How BitBooks Supports Tax Reporting

What BitBooks does for taxes BitBooks is not a tax-filing tool. We don't generate tax returns, calculate tax owed, or file with any tax authority. What we do: - Keep accurate, audit-friendly books that your tax preparer can use - Track Bitcoin transactions in a way that supports capital gains and loss calculations - Track multi-currency activity for businesses operating across borders - Produce financial reports (P&L, Balance Sheet, etc.) that map cleanly to tax forms - Export data in formats your accountant can analyze (Excel, PDF) Your tax preparer (a CPA, tax accountant, or tax software like TurboTax/H&R Block) takes BitBooks data and produces the actual tax return. What your tax preparer typically needs For a standard tax filing, your preparer asks for: | What they want | Where to find it in BitBooks | |---|---| | P&L for the tax year | Reports → Profit & Loss, year-to-date | | Balance Sheet at year-end | Reports → Balance Sheet, as of December 31 | | General Ledger for the year | Reports → General Ledger, full year, exported to Excel | | Trial Balance at year-end | Reports → Trial Balance | | List of contacts with addresses | Admin → Contacts (export) | | Bitcoin transaction history with rates | General Ledger filtered to Bitcoin-related accounts; or transaction-level export | | Realized and unrealized BTC gains | The General Ledger plus FX revaluation entries | | Tax form-specific data (1099 issued, etc.) | Vendor list (kind=Vendor) for 1099 reporting | You'd export each of these and send to the tax preparer. They take it from there. The Bitcoin-specific challenges Bitcoin makes tax reporting more complex than fiat-only books because: - Realized gains and losses on each BTC sale need to be calculated based on cost basis (what you paid for those specific sats) - Cost basis methods (FIFO, LIFO, specific identification, average cost) vary by jurisdiction and choice - Unrealized gains may or may not be taxable in your jurisdiction (US: usually no for individuals, sometimes yes for treasuries; varies elsewhere) - Mining income is taxable as ordinary income at the time of receipt, then capital gains apply when you sell what you mined - Lightning vs on-chain doesn't fundamentally change tax treatment, but tracking Lightning's many small transactions is more involved BitBooks records the data your preparer needs. The actual tax computation still requires their expertise. The data BitBooks provides for crypto taxes When your preparer asks for "Bitcoin tax data," what they typically want: A list of all BTC purchases (acquisitions) For each: date, amount in BTC, amount in USD (cost basis), the wallet it went to. In BitBooks: filter the General Ledger or Transactions to your BTC wallet accounts, money-in side. Export to Excel. A list of all BTC sales (disposals) For each: date, amount in BTC, amount in USD (proceeds), the wallet it came from, the cost basis used. In BitBooks: same as above but money-out side. The cost basis isn't auto-computed in current V2; your preparer matches purchases to sales using their preferred method. A list of mining or earned BTC For each: date, amount in BTC, USD value at receipt time, the wallet it landed in. In BitBooks: filter to your "Sales: Bitcoin" or "Mining Income" account, money-in side. Year-end BTC balance The total BTC in all your wallets on December 31, with USD value. In BitBooks: Balance Sheet as of December 31, look at the BTC asset accounts. Cost basis methods Most jurisdictions let you pick a cost basis method: - FIFO (First In, First Out). The oldest BTC you bought is the first one sold. Common default. - LIFO (Last In, First Out). Newest first. Less common; sometimes disallowed. - Specific identification. Pick which specific lots are sold. Most flexible but most paperwork. - Average cost. All your BTC averages out. Simple but less optimization. BitBooks records all your purchases with their dates and rates. Your preparer (or a specialized crypto tax tool) applies the chosen method. Specialized crypto tax tools For complex Bitcoin tax situations, your preparer may want a tool like CoinLedger, Koinly, or similar to compute the gain/loss schedule. These tools take your transaction list and apply your chosen cost basis method. You'd export your BTC transaction history from BitBooks (Excel from the General Ledger filtered to BTC wallets), import to the tax tool, and let it generate the schedule. This is in addition to BitBooks, not a replacement for it. BitBooks is your books; the tax tool is just for the gains schedule. What changes year over year Each tax year is a separate exercise. The flow each January: 1. Make sure December's books are reconciled and closed 2. Run a year-end FX revaluation if applicable 3. Make any year-end adjustments (depreciation, accruals) 4. Close the year (set Lock Date to December 31) 5. Export the reports your preparer needs 6. Deliver to your preparer 7. After preparer files, file your return The first year is the hardest (figuring out what your preparer wants, learning the export workflow). Subsequent years are routine. Common questions "Will BitBooks file my taxes for me?" No. We're not a tax-filing tool. Use a CPA or tax software for filing. "Will BitBooks tell me how much tax I owe?" No. Tax owed depends on your jurisdiction, deductions, credits, business structure, and many other factors a tax professional handles. "What if my country has weird crypto rules?" BitBooks tracks the data; your tax preparer applies the rules. Whether it's the US (capital gains, like-kind exchange disallowed for crypto), Germany (one-year holding rule), Portugal (no capital gains for individual investors as of 2026), or anywhere else, the underlying transaction data is the same. Your preparer knows the local rules. "Can I get a 'tax report' button in BitBooks?" Not yet. The Reports page produces the data; tax-specific reports (cost-basis schedules, 1099 prep, etc.) are roadmap items. For now, the General Ledger export covers what's needed. Where to go next - Capital Gains Tracking for Bitcoin Holdings for the Bitcoin tax mechanics in more detail - Preparing Your Books for Tax Season for the year-end checklist - Exporting Data for Your Accountant for what to send and how - Tracking Bitcoin Value Changes for FX revaluation that affects year-end values

Last updated on May 02, 2026

Capital Gains Tracking for Bitcoin Holdings

What capital gains are When you sell Bitcoin (or any asset) for more than you paid for it, the difference is a capital gain. If for less, it's a capital loss. Most jurisdictions tax capital gains. The amount and rate depend on: - Your jurisdiction (US, Canada, UK, etc., all different) - Your holding period (short-term vs long-term, often 1 year boundary) - Your business structure (individual, sole proprietor, corporation) - The transaction type (sale, exchange, swap) BitBooks records the data your tax preparer needs to compute capital gains. The actual computation is theirs. Realized vs unrealized gains Two flavors: Unrealized You bought BTC at $50,000 each. Today BTC is $80,000. You haven't sold. You have an unrealized gain of $30,000 per BTC. In most jurisdictions, unrealized gains aren't taxable for individuals (you don't owe tax until you actually sell). For some businesses (especially treasuries with mark-to-market accounting requirements), unrealized gains may need to be reported. Realized You sold the BTC. The gain (or loss) is now realized. Tax applies. For tax filings, realized gains are what matters. Unrealized gains are sometimes also reported (depending on jurisdiction and accounting standard) but don't trigger tax. How BitBooks supports gain calculations BitBooks records every Bitcoin acquisition with: - The date - The amount in BTC (or sats) - The cost basis (the USD/CAD/EUR value at acquisition time, computed from the actual transaction or rate) - The wallet that received it - The contact (if any) and memo When you sell, you record the disposal with: - The date - The amount sold - The proceeds (the USD/CAD/EUR value received) Your tax preparer takes the acquisition list and the disposal list, applies your chosen cost basis method, and computes gains. BitBooks doesn't auto-compute gains in the current version. The data is there; the computation is one more step. Cost basis methods When you sell some Bitcoin, which "lot" you're considered to have sold matters for the gain calculation. FIFO (First In, First Out) The oldest BTC you bought is the first one sold. Most common default in many jurisdictions. Example: You bought 0.5 BTC at $50,000 in January, then 0.5 BTC at $70,000 in March. You sell 0.5 BTC in May at $80,000. Under FIFO: the BTC you sold is the January batch (cost basis $50,000). Gain = $80,000 - $50,000 = $30,000. LIFO (Last In, First Out) The newest BTC is sold first. Less common; some jurisdictions disallow. Same example under LIFO: you sold the March batch (cost basis $70,000). Gain = $80,000 - $70,000 = $10,000. Specific identification You manually pick which specific BTC was sold. Maximum flexibility (often used to optimize tax) but maximum paperwork. Average cost All your BTC averages out. In our example: average cost = $60,000 per BTC. Gain = $80,000 - $60,000 = $20,000. Some jurisdictions require a specific method (or restrict choices). Talk to your preparer about which applies. Mining and earned BTC If you mine Bitcoin or earn it as payment for goods/services, the tax treatment is different from buying: - At time of receipt, the USD value of the BTC is ordinary income (not capital gains) - Your cost basis for that BTC is the value at receipt - When you later sell, the difference between sale price and receipt-time value is a capital gain or loss So a freelancer who gets paid 0.01 BTC when BTC is at $80,000: - They have $800 of ordinary income that year - Their cost basis for that 0.01 BTC is $800 - If they later sell at $90,000 per BTC, they have $100 of capital gain on that 0.01 BTC BitBooks records the receipt date, BTC amount, and USD value, which is what's needed. Holding period Many jurisdictions distinguish: - Short-term capital gains (held less than 1 year, taxed at higher ordinary income rates) - Long-term capital gains (held 1+ year, often taxed at lower rates) The holding period clock starts when you acquired the BTC. If you bought February 1, 2025 and sell February 5, 2026, that's just over a year, so usually long-term. BitBooks records acquisition dates with each transaction. Your tax preparer applies the holding-period logic per jurisdiction. What about Lightning? Lightning transactions are still Bitcoin. Same tax treatment: - A Lightning sale (you received sats) is income at the receipt time - A Lightning purchase (you paid sats for something) is a disposal of those sats; if their cost basis differs from the value at the time of payment, you have a small gain or loss For high-volume Lightning operations (a coffee shop with 100 Lightning sales per day), the per-transaction gain/loss tracking can be impractical. Many small businesses simplify by: - Treating Lightning income as ordinary income (which it is) - Not separately tracking the gain/loss when they spend sats (treating the spending as just an expense at the value at spend time, with no gain/loss recognition) This is a simplification, not perfectly correct under strict tax rules. Talk to your preparer. Hard forks, airdrops, and unusual events Tax treatment for these varies wildly by jurisdiction: - Hard forks (Bitcoin Cash from Bitcoin in 2017): some jurisdictions treat as ordinary income at the time, some don't. BitBooks would record the new asset (BCH) as a separate wallet with its own cost basis. - Airdrops: typically ordinary income at receipt - Wrapped BTC, sidechains: tax treatment varies If your business deals with these, talk to a specialist. BitBooks records the data; the rules require specialist help. Common questions "My business has thousands of BTC transactions. How do I do gain calculations?" Use a specialized crypto tax tool (CoinLedger, Koinly, etc.). Export from BitBooks, import to the tool, run the report. The tool computes gains using your chosen method. For low-volume businesses (a few dozen BTC transactions per year), your preparer can do this manually. "Will BitBooks build a capital gains report?" It's on the roadmap. For now, the General Ledger export plus a separate tax tool gets the job done. "What about converting BTC to a stablecoin (USDC, USDT)?" In most jurisdictions, this is a taxable event (you sold BTC and acquired a different asset). The realized gain/loss applies. Record it as a Transfer in BitBooks, then a separate gain/loss entry per Recording a Bitcoin Sale. "What if my jurisdiction doesn't tax crypto capital gains?" A few jurisdictions don't (Portugal as of recent years, some specific exemptions). Your preparer applies local rules. BitBooks data still useful for general bookkeeping even if no specific tax computation is needed. Where to go next - Recording a Bitcoin Sale for the disposal-side accounting - Tracking Bitcoin Value Changes for unrealized gain accounting - Preparing Your Books for Tax Season for the year-end checklist - Exporting Data for Your Accountant for what to send your preparer

Last updated on May 02, 2026

Preparing Your Books for Tax Season

When tax season starts For most jurisdictions, tax season runs early in the new year: - US individuals: January through April 15 (with extensions to October) - US C-corps: January through April 15 (with options for fiscal year) - US S-corps and partnerships: January through March 15 - Canadian individuals: January through April 30 - UK self-assessment: January 31 deadline for the previous tax year Whatever your deadline, the books prep happens in the weeks before. Don't wait until April. The pre-tax checklist Before sending anything to your tax preparer: 1. All wallets reconciled through year-end Every wallet (Bitcoin and fiat) should be reconciled through December 31. See Reconciling a Bitcoin Wallet and Reconciling a Fiat Bank Account. If a wallet isn't reconciled, your numbers may be wrong by whatever the unmatched difference is. 2. All Drafts reviewed and posted (or deleted) Filter Transactions and Journal Entries to status = Draft, dates in the tax year. There should be zero leftover Drafts. Either post them (if real) or delete (if not). 3. Trial Balance is balanced Run Reports → Trial Balance for the full year. Debits should equal credits. If off, investigate before sending data to your preparer. 4. All adjustments entered Common year-end adjustments: - Depreciation for owned assets - Accrued expenses (vendor invoices for December work that arrive in January) - Prepaid expenses amortization (annual subscriptions paid upfront, recognize the prior year's portion) - Inventory adjustment (if you hold inventory: count, value, adjust to physical) - FX revaluation for Bitcoin and any non-functional foreign currency These are usually entered in Advanced Mode (Journal Entries). Talk to your preparer about which apply to you. 5. FX revaluation (if applicable) If you hold Bitcoin or foreign currency at year-end, run an FX revaluation as of December 31 to mark to current market value. See Tracking Bitcoin Value Changes. This generates the unrealized gain/loss entries that your preparer will need for tax calculations under your jurisdiction. 6. Payroll reconciled to your payroll provider If you use a separate payroll system (Gusto, etc.), make sure your BitBooks payroll entries match the payroll provider's year-end summary. They should agree on total wages, taxes, etc. 7. Year-end Balance Sheet looks reasonable Run Reports → Balance Sheet as of December 31. Skim: - Are wallet balances right? (You just reconciled, so they should be.) - Is Accounts Receivable reasonable (you actually expect those amounts to be collected)? - Are accruals captured? - Is equity tracking with what you expect (capital + accumulated profits, less draws)? If anything is off, fix before exporting. 8. Year-end P&L looks reasonable Run Reports → Profit & Loss for the year. Skim: - Total revenue matches what you expect - Major expense categories match your records - Net profit is in line with your sense of the year If something looks weird, drill into the relevant account using the General Ledger. 9. Close the year Once all of the above is done: set the Journal Lock Date to December 31. The year is now closed. No accidental future changes. What to export Your preparer typically wants: | Report | Period | Format | |---|---|---| | Profit & Loss | Full year | PDF and Excel | | Balance Sheet | As of Dec 31 | PDF | | Trial Balance | Full year (or as of Dec 31) | PDF | | General Ledger | Full year | Excel | | Cash Flow Statement | Full year | PDF | | Activity Log | Full year | Excel (large file) | | Contact list | Current state | Excel | Export each. Send to your preparer. For Bitcoin tax specifically, also export: - All BTC purchases during the year with cost basis (filter GL to BTC wallet money-in) - All BTC sales during the year with proceeds (filter GL to BTC wallet money-out) - All BTC mining/earned income during the year (filter to relevant income accounts) - Year-end BTC balance (per wallet, in BTC and in USD/your-currency) See Capital Gains Tracking for Bitcoin Holdings for the Bitcoin-specific exports. When the preparer comes back with questions Common questions: - "Why is this account so high/low?" Drill in via the General Ledger and answer based on what you see. - "Did you mean to post this to that account?" Probably yes; if not, post a correcting entry. - "Can you provide the receipt for this $X expense?" Look for the attachment on the transaction; if not there, find it in your records and add to BitBooks. - "Where's the documentation for this Bitcoin gain calculation?" Send the BTC purchase and sale data; let them compute. Generally, your preparer's questions narrow down which transactions need clarification. Most are quick to answer; some require digging. After filing Once the preparer files: - Save the filed return in your records (and consider attaching to a journal entry in BitBooks for reference) - Pay any tax owed through your bank or the tax authority's system. Record the payment in BitBooks as an expense (Tax Expense, money out from your bank). - Don't reopen the closed year unless absolutely necessary. The filed return assumes specific numbers; changing them retroactively means amending the return. Common questions "Can my preparer log into BitBooks directly?" Yes. Invite them with the Accountant role. They can run reports, post adjusting journal entries, etc. Many preparers prefer this over receiving exports. "What if I find an error AFTER filing?" Talk to your preparer about whether to amend the return or correct it in the next year. For small errors, current-period correction is often acceptable. For material errors, an amended return may be needed. "How long do I keep the data?" Keep accounting records for as long as your jurisdiction requires (typically 5-7 years for general business; longer for some specifics). BitBooks keeps your data indefinitely; the question is whether you also keep external copies. Best practice: export and archive yearly. Where to go next - How BitBooks Supports Tax Reporting for the broader picture - Capital Gains Tracking for Bitcoin Holdings for Bitcoin-specific tax mechanics - Exporting Data for Your Accountant for the export workflow - Period Close for closing the year - Tracking Bitcoin Value Changes for year-end FX revaluation

Last updated on May 02, 2026

Exporting Data for Your Accountant

Two ways to share data with your accountant You can either: 1. Invite them to BitBooks as a user with the Accountant role, so they can log in and work directly 2. Export reports and send the files Most accountants prefer (1) once they've used BitBooks once. The first-time accountant might want (2). Both work. Option 1: invite them as a user The clean approach for ongoing relationships. 1. Admin → Users → Invite User 2. Email: their email address 3. Role: Accountant 4. Send invite They get a magic link, sign in, and have full books access. They can run any report, post adjusting journal entries, even close periods. You don't have to export anything. They access the live data. For external CPAs who do your monthly close, this is the standard setup. Option 2: export reports and send When the accountant doesn't want to log in (one-time tax filing, doesn't want another credential, etc.). The standard package For tax filing or a compliance review, send: - Profit & Loss for the year PDF - Balance Sheet as of year-end PDF - Trial Balance as of year-end PDF - General Ledger for the year Excel - Cash Flow Statement for the year PDF - Contact list: Excel - Activity log for the year Excel (sometimes requested) For each: Reports page, run the report, click Export, pick PDF or Excel, save the file. Reports page with the Export menu open showing PDF and Excel options Save them all in a folder named "BitBooks tax export 2026" (or similar) and send via your usual file-sharing mechanism (email, Drive link, Dropbox, secure file transfer). Bitcoin-specific package If your business has Bitcoin activity, also export: - All BTC transactions for the year as Excel. Filter the General Ledger to Bitcoin-related accounts (each BTC wallet's account) and export. - Bitcoin acquisitions (BTC purchases, mining income, sales received in BTC) with USD cost basis at acquisition - Bitcoin disposals (BTC sales, BTC payments to vendors) with USD value at disposal These let your preparer or a specialized crypto tax tool compute capital gains. Multi-currency package If you operate in multiple currencies: - Reports in functional currency (your books' main currency) - Reports in reporting currency (if you have one set, e.g., for stakeholders in a different country) - Currency rate history (the rates BitBooks used during the year, available in the General Ledger detail) Naming conventions Make exports easy to identify. A useful pattern: [Org name] - [Report] - [Period].xlsx Examples: Acme Coffee - P&L - 2026.pdf Acme Coffee - General Ledger - 2026.xlsx Acme Coffee - Balance Sheet - 2026-12-31.pdf Your accountant doesn't have to guess what each file is. What to do if the export looks wrong If a report on screen looks fine but the export shows different numbers: 1. Re-run the report (sometimes a stale cache) 2. Confirm filters and date range match what's on screen 3. Try a different format (PDF vs Excel) 4. If still wrong, contact support before sending the wrong data This is rare but possible. Don't send numbers you don't trust. Sending securely Financial data is sensitive. Some recommendations: - Don't email PDFs unencrypted if the data is sensitive and the email isn't end-to-end encrypted. Use a file-share with link expiration instead (Drive, Dropbox). - For very sensitive data (e.g., for a potential investor's diligence), consider a secure data room (DataRoomX, ShareFile, etc.). - For day-to-day with a trusted accountant, email or shared Drive folder is normally fine. After sending Keep your own copy of what you sent. If the accountant comes back with questions ("the P&L shows $X for Software, what's that?"), you'll want to look at the same file they're looking at. Save in a "Tax 2026" folder on your computer plus a cloud backup. Common questions "My accountant uses QuickBooks. Can I export in a QuickBooks-compatible format?" Not directly. The Excel exports are generic; your accountant can manipulate them to fit their workflow. Some accountants will rebuild a QuickBooks file from the data; that's their work, not BitBooks' export. "Can I schedule recurring exports (e.g., monthly P&L emailed to the accountant)?" Not yet. Roadmap. For now, manual export at month-end. "My accountant wants a 'general journal' export, not a 'general ledger.' What's the difference?" A General Journal is chronological (every entry by date). A General Ledger is by-account (every entry under its account). BitBooks' General Ledger export can be sorted by date in Excel to approximate the journal view. If your accountant insists on a specific format, sort the Excel before sending. "What about a Form 1099 for vendors?" The data needed for 1099s (vendor payments, vendor names, addresses, EINs) is in your books. BitBooks doesn't auto-generate 1099 forms today. Your tax software (or your preparer) generates them from the vendor list and payment data. Roadmap: 1099 export. Where to go next - How BitBooks Supports Tax Reporting for the overall picture - Preparing Your Books for Tax Season for the year-end checklist - Capital Gains Tracking for Bitcoin Holdings for Bitcoin tax data - Exporting Reports to PDF and Excel for the export mechanics

Last updated on May 03, 2026