IRS filing season is open. File your IRS for free (early access) →
descodify
← Back to blog
For freelancers

Anexo B IRS 2026: Field Guide for Freelancers in Portugal

By Mikael

If you issue Recibos Verdes in Portugal, you file Anexo B with your Modelo 3 IRS declaration. This is the annex for Categoria B income, business and professional activities.

It's also the annex most freelancers find confusing, because the field labels are compact and the logic isn't obvious from the form itself. This is a plain-language walkthrough of what it actually asks.

The short version first

If you're on the simplified regime with straightforward service income from Portuguese clients, Anexo B is mostly pre-filled. The portal reads your issued invoices from the AT database, calculates the income amounts, and puts them in the right campos for you.

Your job is to review what's there, add anything that isn't (foreign income, certain deductions), and confirm.

Where people get stuck is (a) the foreign income situation and (b) the withholding tax fields. Both are less complicated than they look.

Section 3: Identification

Campo 01, NIF of the declarant. Your NIF. Pre-filled if you're logged in.

Campo 03, Regime. For simplified regime, select 1 (Regime Simplificado). If you opted for Contabilidade Organizada, select 2: but this guide is for simplified regime.

Campo 04, Activity start year. The year you opened your activity on Portal das Finanças. Pre-filled.

Campo 05, Activity category. The CAE or professional code that describes your work. Pre-filled from your registration. Worth checking, if you changed your activity type during 2025, make sure this matches what you actually did.

Section 4: Income from professional and business activities

This is the main event. The portal should pre-fill most of it from your AT-registered invoices.

Campo 401, Gross income from services (services rendered). Your total invoiced amount for services in 2025. Check this against your own records or your Recibos Verdes. If a client paid you late and the invoice crossed into 2026, that invoice belongs in next year's declaration, not this one, income is declared in the year the invoice was issued, not when payment arrived.

Campo 402, Income from business sales. Only relevant if you sold physical goods. Most service freelancers leave this at zero.

Campo 403, Royalties and intellectual property. If you received royalties for software, writing, design assets, or anything IP-related, it goes here. Not common for most freelancers.

Campo 404, Grants and subsidies. Subsidies tied to your professional activity. Not typical for most freelancers.

Campo 405, Other Categoria B income. Catch-all for anything that doesn't fit above.

Foreign income in Anexo B

If your clients are outside Portugal, income from those invoices goes here too, not in Anexo J (which is for some types of foreign income but not self-employment from Recibos Verdes). Your Recibo Verde income from foreign clients is still Categoria B income regardless of where the client is based.

The portal might not pre-fill this correctly if the invoices weren't issued through a certified AT-registered system. If you invoiced foreign clients using your own invoicing software or Descodify, the income should appear. If there are gaps, add the amounts manually.

Section 5: Deductions, simplified regime

Under the simplified regime, you don't deduct actual expenses, a fixed percentage of your income is presumed to be costs. The portal calculates this automatically.

For service income (Campo 401): 25% is considered costs. So if you earned €40,000 in services, €10,000 is presumed costs and €30,000 is your taxable income. This is the simplified regime coefficient at work, you don't deduct actual expenses, the 25% presumed cost is automatic.

Campo 501, Mandatory Social Security contributions. This one you do fill in. Enter your total Social Security contributions paid in 2025. These are deductible. If you were in the first year of activity with the 12-month SS exemption, this is zero. From year two onward, check your Segurança Social Directa statements for the total paid.

Campo 502, Compulsory contributions under other Social Protection schemes. Rarely relevant for standard freelancers.

Section 6: Withholding tax (Retenção na Fonte)

If your Portuguese clients withheld income tax when paying you, those amounts go here.

Campo 601, Tax withheld by the entity that pays you. The total withholding tax retained from your invoices in 2025. Your clients should have given you a withholding tax statement (or you can find the amounts in Portal das Finanças under Consultas > Recibos de Remunerações).

This is tax you've already paid, it comes off what you owe at the end. Important to fill in correctly or you'll overpay.

If you invoiced foreign clients, they generally didn't withhold Portuguese tax. Some countries have their own withholding rules, but that's handled separately (usually in Anexo J if there's a double taxation treaty situation).

Section 7: ATCUD and document reconciliation

From 2023 onward, if your invoices have ATCUD codes, the portal uses those to cross-reference your declared income against what's in the AT database. If there's a mismatch, you'll see a warning.

If you issued invoices through a certified system (Portal das Finanças directly, or AT-certified software like Descodify), your ATCUD codes should already be registered. You don't need to do anything extra here.

What to do if you have NHR status

NHR (or its successor, IFICI) changes how some of your income is taxed, but the declaration process through Anexo B is the same. You still fill in your income in Section 4. The NHR flat rate (20% for qualifying professional income) or IFICI rate applies during the tax calculation phase, not the declaration phase.

If you're an NHR beneficiary, the system should apply the correct rate automatically once it knows your regime status. Confirm this on the simulation screen before submitting, it should show your income taxed at 20% rather than the standard progressive rates.

A note on the simulation before you submit

Before clicking the final submit button, always run the IRS simulation (Simular). This shows your estimated tax liability before you commit. The result you see here will eventually appear on your nota de liquidação, AT's official assessment, issued around July 31. If the simulation number looks wrong, something's missing or misclassified. Common issues:

  • Foreign income not included (add it manually to Campo 401)
  • Withholding tax in Campo 601 is zero when it shouldn't be
  • SS contributions in Campo 501 are missing

The simulation is not a commitment, you can adjust and re-simulate as many times as needed.

Where Descodify helps

If you've been using Descodify to issue invoices, your income is already structured and classified. The IRS filing flow pre-fills your Anexo B values from your invoicing data, so you're reviewing rather than reconstructing.

For Campo 501 (Social Security), the platform tracks your quarterly contributions. For foreign client income, invoices issued through Descodify include the correct VIES validation and AT registration, they should sync automatically.

The IRS filing tool in Descodify is free during early access. If you want to run through your Anexo B values before heading to Portal das Finanças, that's what it's there for.

See also: IRS Filing Hub, all guides, tools, and reference material in one place

Descodify handles invoicing, VAT, and IRS reporting so you can focus on your work.

Try Descodify free

Working for yourself in Portugal - monthly

Invoicing, VAT, Social Security, expenses, and tax, explained simply. One email a month.