Balance Sheet B01-DN & Income Statement B02-DN (TT 99)

Build the B01-DN statement of financial position and the B02-DN income statement (TT 99/2025/TT-BTC) from a trial balance, with checks and XLSX export.

Free tool: 20 requests per minute.

Result

Press “Run” to see the result.

Send the trial balance (bảng cân đối số phát sinh) as JSON rows, CSV or an XLSX file: account number, opening debit / credit, period debit / credit turnover and closing debit / credit (column names in English or Vietnamese such as "Nợ cuối kỳ" are recognised). The API maps each balance to the line codes of Mẫu B01-DN under Thông tư 99/2025/TT-BTC (in force for financial years from 1 January 2026, replacing TT 200/2014): debit balances to asset lines, credit balances to liabilities, contra accounts (provisions, depreciation, treasury shares) in brackets, signed equity balances, receivables and payables on both sides shown separately (131 credit → advances from customers 312, 331 debit → prepayments 132). Rows tagged term=long go to the long-term lines; the most specific account wins and parent rows are skipped when their sub-accounts are present.

B02-DN uses the closing turnovers to account 911 (revenue 511, deductions 521, cost of sales 632, financial income and expenses, selling and admin costs, other income and expenses, current and deferred CIT); lines that need detail ledgers (21, 24, 70, 71) come from overrides. Checks: the trial balance is balanced, total assets 280 = total liabilities and equity 440 (opening and closing), profit after tax = change in 4212. Unclosed income-statement balances are added to line 420b with a warning, and unmapped accounts are listed. format=xlsx returns a workbook with the B01, B02, mapping and checks sheets.

Use this in your code

curl -X POST "https://apibox.io.vn/v1/vn-financial-report" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"company":"Công ty TNHH Demo","period_end":"2026-12-31","rows":[{"account":"111","debit":200000000,"closing_debit":200000000},{"account":"131","debit":150000000,"credit":20000000,"closing_debit":150000000,"closing_credit":20000000},{"account":"156","debit":250000000,"closing_debit":250000000},{"account":"331","credit":180000000,"closing_credit":180000000},{"account":"4111","credit":325000000,"closing_credit":325000000},{"account":"4212","credit":75000000,"closing_credit":75000000},{"account":"511","debit":700000000,"credit":700000000},{"account":"632","debit":500000000,"credit":500000000},{"account":"642","debit":101000000,"credit":101000000},{"account":"8211","debit":24000000,"credit":24000000},{"account":"911","debit":700000000,"credit":700000000}]}'

API documentation → Get a free API key

FAQ

Does TT 99/2025 replace TT 200/2014?

Yes, for financial years starting on or after 1 January 2026. The B01-DN gained biological-asset lines (150, 230) and other current assets moved to code 160; the line codes here follow the TT 99 template.

Why are 131 and 331 not netted?

TT 99 requires the sum of debit balances per customer as receivables and the sum of credit balances as advances. Send both closing_debit and closing_credit of the account (summed per counterparty).

Are small-enterprise forms (TT 133) supported?

Not yet: only B01-DN and B02-DN of TT 99 for going-concern enterprises. The cash-flow statement and notes are not produced.