It's the middle of June. The IES deadline is three weeks away. You open the draft return for one of your larger clients and the total sales figure doesn't match the sum of twelve months of SAF-T billing files. The gap is €4,380. Not enormous, not trivial — the kind of discrepancy that could be a rounding difference, a missing credit note, or a cancelled invoice that never made it out of the system.
Now you need to find it.
This is the moment where every shortcut you took during the year comes back. The NIF you meant to fix in March. The credit note that was processed under the wrong period. The manual adjustment booked straight to the ledger that never produced a corresponding SAF-T entry. IES reconciliation is where all of that surfaces — and where AT, quietly, has already started cross-checking. For the full monthly SAF-T obligations that feed into this, see the SAF-T Portugal guide.
What IES Is, Practically
IES (Informação Empresarial Simplificada) is the annual return that consolidates a company's accounts, tax information, and statistical data into one submission. It is filed once a year, typically by mid-July, and it touches the Autoridade Tributária, the Banco de Portugal, the INE, and the commercial registry in a single filing.
For most accountants, the stressful part of IES is not the filing itself. It is the numbers inside the filing, and whether those numbers agree with what the client already reported through VAT returns and monthly SAF-T files throughout the year.
AT has visibility into all of that data. They have twelve months of your client's SAF-T billing files. They have the client's VAT returns. They have the supplier-side SAF-T files from anyone who sold to your client. When you submit IES, their system is already checking whether the annual totals line up with the monthly totals they have on record.
When they do not line up, you get questions. Sometimes immediately. Sometimes months later.
Where the Mismatches Actually Come From
Reconciliation gaps between IES and SAF-T almost always trace back to one of a small handful of issues. They are not exotic. They are the same mistakes repeated, compounded over twelve months.
1. Credit notes processed in a different period from the original invoice
A sale is invoiced in October. The customer disputes the amount in December. A credit note is issued on 30 December and processed in the January SAF-T by mistake. In the annual IES return, your sales totals shift depending on whether you treat the credit note as a December adjustment or a January reversal. The SAF-T file says one thing. Your general ledger, if the adjustment was booked manually, may say another.
2. Cancelled invoices that remained in the SAF-T sequence
Portuguese invoicing requires sequential numbering. When an invoice is cancelled, it still exists in the SAF-T file — flagged as cancelled. But if your accounting software reports gross sales differently when cancellations are included versus excluded, your internal ledger may not agree with the SAF-T billing totals. Over twelve months, this drifts.
3. Manual journal entries that never produced an invoice
A client pays you in cash. Someone books a journal entry for the revenue. There is no invoice, therefore no SAF-T billing entry. IES will show the revenue; SAF-T will not. This is not always wrong — some situations genuinely require manual adjustments — but each one needs to be documented so you can explain the gap later.
4. VAT rate reclassifications mid-year
A product was sold at 23% VAT in January. In April you realised it should have been 6%. You issued corrections. Unless the corrections are perfectly clean — proper credit notes, proper replacement invoices, proper dates — the VAT subtotals across twelve SAF-T files will not add up cleanly to your IES VAT totals.
5. Currency and rounding drift
This one is quiet. Euros and cents, across thousands of invoices, with different rounding rules applied by different systems, produce small differences. Usually a few euros. Sometimes more. On its own, rarely a problem. Combined with anything else above, it hides more serious issues.
Process invoices in minutes, not hours
Faturiza works with the Google Drive & Sheets you already use.
What AT Cross-Checks Between IES and SAF-T
AT does not publish its exact matching algorithm, but the patterns are consistent across what accountants see in practice. At minimum, the system cross-references:
- Total sales (IES) vs sum of invoice totals across 12 SAF-T files. The first and most visible check.
- VAT due (IES) vs VAT declared across 12 monthly VAT returns vs VAT calculated from SAF-T billing. Three numbers, three places, all expected to agree.
- Customer and supplier NIFs. The annual return includes totals per counterparty for significant amounts. Those totals are compared to what the counterparty reported, via their own SAF-T files.
- Top suppliers and top customers. IES asks for these. If your client's top supplier in IES does not appear prominently in twelve months of SAF-T, the filing gets flagged.
- Inventory and cost of goods sold. Less directly tied to SAF-T, but consistent year-over-year patterns are watched. A sudden jump in inventory with no corresponding purchase invoices raises questions.
The cross-checks that catch people off-guard are usually the counterparty ones. You can reconcile your own numbers internally and still get flagged because a supplier's SAF-T says they sold €18,000 to your client and your records say €16,200.
The Reconciliation Sequence That Actually Works
Trying to reconcile IES against SAF-T by comparing grand totals is where most accountants lose hours. The totals never match on the first pass. The only question is which sub-totals are wrong.
Work down, not across. Here is the sequence that catches most issues quickly:
Step 1. Monthly billing totals, one row per month
Pull the total invoiced amount from each of the twelve SAF-T billing files. Put them in a column. Put the corresponding month-end ledger figure next to it. Gaps larger than a few euros at this level mean a specific month has a specific problem — focus there first.
Step 2. VAT subtotals per month, broken down by rate
For each month, sum the VAT base and the VAT itself, grouped by rate (23%, 13%, 6%, exempt). Compare against the VAT return filed that month. A mismatch here almost always points to reclassifications or unprocessed corrections.
Step 3. Top ten customers and top ten suppliers
Build the annual totals per counterparty from twelve SAF-T files. Check them against the e-fatura portal where possible. If a major customer or supplier has a figure that differs from what e-fatura shows, that is a reconciliation conversation you want to have now, not after IES is submitted. For a detailed workflow on reconciling e-fatura data with client books, including how to triage mismatches without chasing the client three times, see the dedicated guide.
Step 4. Cancelled invoices and credit notes
List every cancelled invoice and every credit note issued during the year. For each, confirm the period attribution. Is the credit note in the same period as the original invoice? If not, is the difference explainable?
Step 5. Manual journal entries without a SAF-T counterpart
Pull every revenue or expense journal entry that does not reference an invoice. There should be few. Each should have documentation. If you cannot explain one, that is where your IES gap lives.
A Practical Year-End Checklist
Use this as a starting structure. Adapt per client.
- Mid-December: Generate a preliminary SAF-T file for January through November. Run your totals now, before the year closes. Find issues while suppliers and clients are still reachable and before they are in year-end mode themselves.
- Early January: Freeze the prior-year billing. Once clients start issuing January invoices, the workflow gets messier. A clear cut-off day matters.
- January-February: Reconcile month-by-month using the sequence above. Fix issues in the source — not in ad-hoc journal entries that will themselves need to be reconciled later.
- March: Pull counterparty-level totals from e-fatura. Compare against your client's SAF-T records. Start conversations with counterparties where the gap is significant.
- April-May: Prepare the IES draft. Every figure should tie back to either the aggregated SAF-T data, the general ledger, or a documented adjustment. No figure should be a mystery.
- June: Review, validate, file.
What to Do Differently Next Year
Most of the pain in IES reconciliation comes from decisions made months earlier that were never properly followed through. A few habits shrink the reconciliation window dramatically:
- Fix errors in the period they occur, not "later". A credit note issued in the right period is a five-minute fix. A credit note issued in the wrong period because you were in a hurry becomes a reconciliation problem in July.
- Document every manual journal entry. If you book revenue or expense without an invoice, leave a note explaining why. Future you will thank present you.
- Reconcile quarterly, not annually. The pain of reconciling three months is manageable. The pain of reconciling twelve months in one sprint is not.
- Keep the original invoice linked to the accounting record. If you need to defend a figure in IES, you want to pull the supporting document in seconds, not days.
IES reconciliation is the exam at the end of the year. The score is set by the work done in the twelve months leading up to it. Clean monthly SAF-T files, validated data, documented adjustments, and early counterparty checks are the difference between a filing that takes an afternoon and a filing that eats two weekends.
If you are managing multiple clients and want to see how Faturiza helps keep invoice data clean and reconciliation-ready throughout the year, see what we have built for accountants. You may also find our SAF-T survival guide useful for the monthly workflow that feeds into the annual return, and the walkthrough on automating multi-client SAF-T submission for the scale problem that makes year-end reconciliation painful in the first place.
Part of our SAF-T & Compliance guide series.
For accountants
Running this kind of workflow for multiple clients?
Faturiza has a multi-client dashboard built for accountants. Each client gets their own folder, email intake, and SAF-T-ready export.
Manuel Monteiro
Founder, Faturiza · LinkedIn
Ready to automate your invoices?
Try Faturiza for free and save hours every week.
Join 500+ businesses saving hours every week