Skip to main content
Pending validationOdoo 20.0Community and Enterprise

How to prepare and submit Form 10 (Modelo 10)

What is it for?​

Form 10 (Modelo 10) is the annual return of income paid to residents and of the withholdings made. fiscaldoo generates it from the supplier invoices with withholding, compares it with the paid payment guides and with the ledger, and prepares the file you submit on the Tax and Customs Authority (AT) Portal.

Submission is done on the Portal: fiscaldoo sends nothing. After submitting, you record the date, the reference and the proof on the form.

When to use it?​

  • At the start of the following year, for the year just ended, before the deadline (the form shows the Filing deadline).
  • To check, during the year, that the withholdings made match what was paid in payment guides.
  • It is not for employment income (category A): that has another screen, Payroll › Declare › Workers Modelo 10, which this article does not describe. (How to pay the month's withholdings explains the difference in the payment guide.) Pending validation by a certified accountant: what each of the two Forms 10 includes in the single submission to the AT.

Where to find it?​

  • Accounting › Declare › Withholding tax › Form 10: the list, with Name, Year, Income of the year, Amount withheld, Filing deadline and State.
  • Accounting › Declare › Withholding tax › What is there to do with the withholdings?: the Form 10 button takes you to the same place.

Before you start​

  • The profile is Fiscal officer: it is the only one with the New button. The Accountant can open the list and the forms, but cannot create or change them.
  • The supplier invoices with withholding are confirmed and paid: Form 10 counts the income paid in the year. In the demo, invoice FTF/2026/00044 (Rui Matos, €138.00) has not been paid yet and so is not included.
  • The year's payment guides are paid (How to pay the month's withholdings): in the example, March, April and June 2026.

How to use it​

  1. In Form 10, click New. Year opens with the previous year (2025); type 2026. The Filing deadline appears automatically: 28/02/2027. Pending validation by a certified accountant: Form 10 filing deadline (CIRS, art. 119.º).
  2. Click Generate. In the Lines tab there is one line per beneficiary, with NIF, Income code, Place, Income, Exempt from withholding and Withheld. In the example: Ana Ferreira, code B, Mainland, €1,500.00 and €345.00; Rui Matos, code B, €800.00 and €184.00. At the top: Income of the year €2,300.00, Amount withheld €529.00, Withheld in the ledger €529.00 and Difference to the ledger €0.00. You can generate again while Form 10 is in draft.
  3. Click Check against payment guides. The Withholdings vs payment guides table compares, by month, the Withheld (ledger) with the Paid in guides. In the example: March €230.00, April €115.00 and June €184.00, total €529.00, all Matches, and the title changes to Matches the guides. A Difference line means that a month has withholding without a paid payment guide, or the other way round.
  4. Click Run checks and open the Checks tab. Each line is OK or Warning, with the message and the documents to fix. In the example: OK for the withholdings that match the guides and for the lines that match the ledger; Warning for Entries still unposted in the period (four deferral drafts of invoice FTF/2026/00045) and for Year closed to changes (the lock date is 31/12/2025, before the end of the period). In the demo a third Warning also appears, Accounts with an unusual balance: account 111 Caixa ends the period with a balance on the unusual side. Resolve the warnings, or confirm that they do not change the return, and run the checks again.
  5. In the Delivery file tab, fill in Tax office (4 digits), NIF of the Certified Accountant and NIF of the declarant / legal representative. Fact of the force majeure (justo impedimento) is only filled in if there is one. In the demo, the code 1111 and made-up tax numbers were used.
  6. Click Confirm. The state changes to Confirmed and Download the file of the AT, Reopen and Mark as submitted appear. If you find a mistake, Reopen returns it to draft. Once Confirmed, the form can no longer be changed: only Reopen returns it to draft.
  7. Click Download the file of the AT. In the example, the file MODELO10_509999999_2026_modelo10-at-2024.txt has 10 lines: the header, one Annex J line per beneficiary (two) and the total of €529.00.
  8. Submit the file on the Tax and Customs Authority Portal. Then, on the form, click Mark as submitted: the state changes to Submitted and there is no longer a Reopen. A Submitted form cannot be changed or deleted, and you cannot create another one for the same year (see “Correcting a Form 10 already submitted”).
  9. Have the Portal's proof at hand: it is registered only once and cannot be changed. Click Register the delivery to the AT. The window says “Nothing is sent from here”. Enter Delivered on (today or a past date), the Reference of the Tax Authority the Portal gave you, attach the Proof and click Register. The window closes and the form stays the same, with one difference: the proof is now in the form's attachments (the paperclip in the history, under Files).

Expected result​

  • Form 10 is Submitted, with the Income of the year and the Amount withheld you submitted, and the proof of submission is in the form's attachments. The date and the reference are stored in a record that cannot be changed, but today's screen does not show them: keep them in your own files too.
  • Generating, checking and confirming create no journal entries: Form 10 only reads the withholdings in the ledger.
  • When no certified accountant is registered, the form logs in the chatter the warning “Não há hoje nenhum contabilista certificado registado como responsável por …” (no certified accountant is currently registered as responsible for …): register one in Configure › Security and data › Certified accountant.
  • In a company without withholdings (in the demo, Empresa Teste Portugal), Generate gives Income of the year €0.00, with no lines.

Important notes​

  • Form 10 counts payments, not invoices. An invoice with withholding is only included in the year it is paid. Check that the year-end invoices are paid before generating. Pending validation by a certified accountant: the date that determines the income year (CIRS, art. 101.º, n.º 8, and art. 119.º).
  • Turnover percentage. The form may show “The CAE 46900 has no share of the turnover. The file until 2026 is written with it empty.”: fill it in in the company settings, where applicable. Pending validation by a certified accountant: whether this percentage is mandatory in the file.
  • The submission record is unique. The window refuses a second submission of the same Form 10 and a submission date in the future (see “Common problems”). So check the reference and the proof before clicking Register.

Correcting a Form 10 already submitted​

A Submitted Form 10 cannot be reopened, changed or deleted, and you cannot create another one for the same year: fiscaldoo says “A correction is a substitute declaration”, but today it has no screen to prepare it. If you find a mistake after submitting, the substitute return is done with the certified accountant, on the Tax and Customs Authority Portal. Pending validation by a certified accountant: deadline and form of the Form 10 substitute return. Before submitting, always run Check against payment guides and Run checks.

Common problems​

“The file of the Modelo 10 2026 cannot be generated”​

  • Symptom: when you click Download the file of the AT, “Invalid Operation — The file of the Modelo 10 2026 cannot be generated. What happened: O ficheiro do Modelo 10 não é válido: Quadro 1: falta o serviço de finanças (4 caracteres).. How to fix it: correct what is listed (tax office, tax numbers, income codes).” (the Form 10 file is not valid: Table 1: the tax office is missing (4 characters)).
  • What to do: Reopen and fill in the fields of step 5; Confirm again.

“Some required fields are empty” when registering the submission​

  • Symptom: when you click Register without a reference or proof, “Some required fields are empty. Fill in the fields marked in red to be able to save.”
  • What to do: type the Reference of the Tax Authority and attach the Portal's proof.

A line shows Difference when checking against the payment guides​

  • Cause: the month has withholding in the ledger without a payment guide paid for that month, or a payment guide paid for the wrong month.
  • What to do: open the month's payment guide (How to pay the month's withholdings) and check the payment's Guide period. Then run Check against payment guides again.

“The delivery date is in the future”​

  • Symptom: when you click Register, with Delivered on 30/11/2026 (today is 01/11/2026), “Invalid Operation — The delivery date is in the future. What happened: a delivery cannot be registered before it happens. How to fix it: write the date on which you delivered it in the Portal.”
  • What to do: click Close and correct Delivered on.

“The delivery of … is already registered”​

  • Symptom: when registering again, “Invalid Operation — The delivery of “Modelo 10 2026 — Empresa Demonstração, Lda” is already registered. What happened: each delivery is registered once and cannot be changed. How to fix it: nothing to do, the date, reference and proof already registered are kept.”
  • What to do: nothing. The Register the delivery to the AT button stays visible, but the first record is kept.
Versions: Odoo 20.0Community and Enterprisefiscaldoo 20.0 (master f16f4a3e)ID DOC-0105
Was this page helpful?