Skip to content
Ludy

Invoices in, Ludy drafts the entry. You approve before anything posts.

Ludy Accounting reads e-invoices, checks every number with fixed rules and proposes a journal entry under Circular 133. An entry reaches the books only when a person with the authority approves it with a two-factor code.

Open source under the AGPL. Runs on your own server with docker compose. Ludy Cloud is coming soon.

Gạo Sạch MekongExample data
VAT invoice 00001284Series 1C26TPT, dated 14/10/2026
Seller
Công ty CP Bao Bì Phú Thịnh
Tax code
0312 345 678
Authority code
M1-26-7F3A2-00001284
  • Carton box, 5-ply, 60x40x4025,000,0002,000 pcs x 12,500
  • Packing tape 48mm5,400,000300 rolls x 18,000
Subtotal
30,400,000
VAT 8%
2,432,000
Total
₫32,832,000
Checked by rules5/5 passed
  • Line totals match
  • VAT rate 8% is correct
  • Tax code is valid
  • Has an authority code
  • Not a duplicate
Proposed entry, TT133Proposed
  • Dr 15230,400,000Raw materials
  • Dr 13312,432,000Deductible input VAT
  • Cr 33132,832,000Payables to suppliers
BalancedDebit equals credit

By a learned rule: the same item from this vendor

Enter the two-factor code to post

Four steps from the inbox to the ledger

Ludy does the first three steps and records each one. The last step is always approved by a person with the authority, with a two-factor code.

  1. Receive

    Upload, or forward an email. XML is read directly; PDFs and photos are read by Vy.

    Received
  2. Check

    Fixed rules compare the totals, the VAT, the tax code and duplicates. An error in the totals stops the invoice.

    Passed or held
  3. Propose

    A TT133 entry lands in the inbox of documents to approve, with the reason for the accounts. Nothing is posted yet.

    Proposed, not posted
  4. Approve

    The approver looks, changes an account if needed and enters the two-factor code. Only then does the entry reach the books.

    Posted

What Ludy Accounting does today

Grouped by the job you have, from the moment an invoice arrives to closing the year.

Receive and check documents

Invoices come in by upload or by forwarded email. The checks are fixed rules, not AI, and when something does not add up the invoice stops and waits for a person.

  • E-invoice XML under Decree 254/2026 and Circular 91/2026, and invoices under Decree 123/2020, is read directly from its XML structure, with no AI
  • PDFs and photos are read by an OpenAI-compatible model the person installing Ludy configures. A PDF that holds only a scanned image cannot be read yet
  • Upload single files or a whole ZIP. Forwarding an email to the company’s own invoice address works too, once the installer has connected a mail domain to Ludy
  • The checks cover line totals, the grand total, the VAT table, the invoice date and duplicates. XML invoices are also checked for the digital signature and the tax-authority code. The check digit of the tax code is looked at too
  • A mismatch in the totals blocks approval outright. Other failed checks, or a digital signature that could not be verified, can be approved only after the approver confirms they compared the invoice with the original. A tax code with a wrong check digit or a missing tax-authority code is only a warning
Documents to approveGạo Sạch Mekong
Example data
Documents arrive by
  • UploadXML, PDF, photo or ZIP file
  • Invoice emailForward to the company’s own receiving address
Hợp tác xã Tân Hồng₫148,500,000Rice purchase slip
  • Line totals do not match the goods total
  • Passed: VAT table, tax code, no duplicate
Held, cannot be approved yet

Draft entries and post with control

Ludy proposes a debit and credit entry under Circular 133 and says why it chose the accounts. Until someone with the authority approves it, it is only a proposal.

  • Approving an entry needs a fresh two-factor code, no older than 5 minutes. Every decision lands in a change log that cannot be edited or deleted through the app
  • The account is remembered per vendor and item, with who approved it, when, and the document it came from
  • A line that matches no rule is marked unclassified. Ludy does not post until a person picks the account, and it does not guess quietly
  • When a replacement invoice is approved, the original is voided and its entry reversed. An adjustment invoice is linked to the original
  • A posted ledger cannot be edited or deleted. A mistake is fixed with a reversing entry
Example data
Learned rule
VendorItemAccount
Bao Bì Phú Thịnh5-ply cartons152

Approved by Chị Lan at 16:05 on 14/10/2026

Unclassified line
Other service fee1,200,000Pick an account before posting
Replacement invoice
  1. Invoice 00001284Voided, its entry reversed
  2. Invoice 00001301Replaces invoice 00001284

VAT and the tax calendar

Ludy works out VAT from the books, shows what to look at before you file, and reminds you client by client.

  • Input and output VAT by month or by quarter, as the company files
  • An XML file of the 01/GTGT return. Ludy fills the indicators it can compute from the books; the tax office, the signer and some indicators are left for you to finish. Whether HTKK and eTax accept the file is still being checked with a partner accountant
  • Missing numbers in the sales invoice series are shown before you file. Only invoices already in the books count
  • An owner, an admin or a chief accountant marks the return as filed. That is a record in Ludy; Ludy does not file with the tax portal for you
  • A tax calendar for each client and each legal entity: due dates and done marks. The table of due dates has not been confirmed by an accountant yet, and the screen in the app says so
  • Missing purchase invoices: upload the list exported from the tax portal, Ludy compares it with the books and emails the client to ask for them, once the installer has configured a mail server
Example data
Expected input VAT, Q4
2,688,980
  • Bao Bì Phú Thịnh2,432,000
  • EVN176,980
  • Viettel80,000
01/GTGT return, Q4/2026
Export an XML file of the return

Ludy fills the indicators it can compute. The tax office, the signer and some indicators are left for you to finish.

Tax calendarGạo Sạch Mekong
  • Provisional corporate income tax, Q3/2026Due30/10/2026Not marked
  • VAT return, Q3/2026Due02/11/2026Not marked31/10 is a Saturday
  • VAT return, Q2/2026Due31/07/2026Filed

The table of due dates has not been confirmed by an accountant yet.

Sales invoices, gap checkSeries 1C26TGM, year 2026
  1. 00401
  2. 00402
  3. 00403
  4. 00404
  5. 00405
  6. 00406
  7. 00407
  8. 00408
  9. 00409
  10. 00410
  11. 00411
  12. 00412
  13. 00413
  14. 00414
  15. 00415
  16. 00416
  17. 00417
  18. 00418
  19. 00419
  20. 00420

Posted from number 00000401 to 00000420, 2 numbers missing: 00000412 and 00000417

A gap is a sales invoice not yet recorded, or one that was cancelled. Check it before you file the return.

Email asking for missing invoicesDrafted from the tax portal list you upload
Purchase invoices missing for September 2026

The tax portal list shows 2 purchase invoices that are not in the books yet. Please send a copy of these invoices:

  • Công ty CP Bao Bì Phú Thịnh, invoice 00001297₫4,320,000
  • EVN, electricity bill for September₫1,946,780

Books, period locks and exports

The general journal, the ledger and the reports come from one source. At period end you lock the books so nobody posts more; at year end you close and keep the package.

  • The general journal, the ledger, cash vouchers, fixed assets with monthly depreciation, and opening balances imported from Excel
  • Import bank statements from an Excel file or a CSV file, or send them by email; a member confirms the lines before they reach the books. A direct bank connection is not available yet
  • Months lock one at a time, in order. Unlocking starts from the last locked month and needs an owner or a chief accountant, a two-factor code and a written reason
  • At year end: revenue and expenses move to 911, then the result to 4212, as one proposed entry that needs approval with a two-factor code. After it is approved and all 12 months are locked, an owner builds the financial-year archive with the original files of the documents
  • Excel export in the MISA SME import layouts for service purchases, goods purchases, sales, receipts and payments; the vendor and customer codes are left for the accountant to fill in, while item and warehouse codes are set in Settings. Importing into a real MISA is still being checked with a partner accountant
  • The B01-DNN and B02-DNN statements are drafts: their account mapping has not been checked by an accountant. Each legal entity has its own books, document numbers, period locks and returns, on the Circular 133 chart of accounts
  • Search by name, tax code, invoice number or amount, typed without diacritics
Example data
Year end 2025Gạo Sạch Mekong
  1. Close to 911 and 4212Approved with a two-factor code
  2. Lock all 12 monthsLocked
  3. Financial-year archiveBuilt by an owner, with the original files
Export files
  • MISA SME import layoutsService purchases, goods purchases, sales, receipts, paymentsExcel
  • General journal, ledgerFor the period and legal entity chosenExcel
  • 01/GTGT returnXML file of the indicators Ludy can computeXML
  • Fixed assetsAsset register and depreciationExcel

B01-DNN and B02-DNN are drafts.

Coming soon

The two items below have not run against the real tax portal or a real bank, so Ludy does not count them as available.

  • Coming soon

    Pull the invoice list from the tax portal

    Today you upload the Excel file exported from the portal, and Ludy compares it with the books.

  • Coming soon

    A direct bank connection

    Today statements are imported from an Excel file, a CSV file or an email.

What Vy does in Ludy Accounting

Vy is the AI assistant of Ludy. In accounting Vy does the reading; whether a number is right is decided by fixed rules and by people.

Vy does

  • Reads PDF and photo invoices into structured data
  • Puts the result in the inbox of documents to approve, marked as read by AI and needing a person’s check
  • An owner presses "Stop AI", with a two-factor code, to switch off all AI work of the company; new PDF and photo reads wait until it is turned back on

Vy does not

  • Post to the books or approve in place of a person
  • Decide whether an invoice is right: fixed rules do that
  • Pick the account for an unclassified line

Who Ludy Accounting is for

One set of data, three ways to use it.

Solo founders and small businesses

No accounting knowledge needed. Upload a photo of an invoice, or forward the email once the company has an invoice address, look at the vendor and the amount, and approve. Wherever information is missing, Ludy points it out.

Accountants and accounting firms

Approve a month of documents from the keyboard. See many clients in one place, each with its own tax calendar. Invite an outside accountant to work on the legal entities you assign. Export Excel and files in the MISA SME import layouts.

People who self-host

Open source under the AGPL, runs with docker compose, and the data stays on your server. Choose any AI model, including one running on your own machine.

Questions about Ludy Accounting

Can I use it without knowing accounting?

Yes. Ludy drafts the entry and says why it chose those accounts. You look at the vendor, the amount and the checks, and approve. If someone does your books, invite them into the same company or send them the journal and ledger as Excel.

Does Ludy file my tax returns?

No. Ludy exports an XML file of the 01/GTGT return with the indicators it can compute from the books; you finish and file it with the tax authority’s tools. Whether HTKK and eTax accept the file is still being checked with a partner accountant. Marking a return as filed in Ludy is only a record.

Does Ludy issue sales invoices, run payroll or manage stock?

Not yet. Ludy reads and records invoices and shows gaps in the number series, but issuing e-invoices is still done in your invoicing software. There is no payroll, stock card or cash-flow statement yet.

How does data get into MISA?

Ludy exports Excel files in the MISA SME import layouts, with the catalogue columns left for you to fill. Importing into a real MISA is still being checked with a partner accountant, and there is no direct connection to MISA yet.

Where does my data live?

With a self-hosted install, your data stays on your own server and storage. Each company’s data is kept apart. You can export the journal, the ledger and Excel files at any time; all of a company’s data is exported when the organization is closed.

Try Ludy Accounting on your own invoices

Self-host for free with a single docker compose command. If you already have an account, sign in.