Annual tax declaration: a guide for freelancers in Bulgaria

How to complete and file the annual tax declaration under Art. 50 as a freelancer in Bulgaria: annexes, calculations with real numbers, annual insurance reconciliation, deadlines, and common mistakes.

23 min read | Created on 3/31/2026 | Written by the Effortless Tax team

Taxes

The tax year is over, income is tallied, expenses are recorded. Now comes the moment every freelancer must take one important step: filing the annual tax declaration. If this is your first time facing the Art. 50 form under the Personal Income Tax Act (bg: ЗДДФЛ), it can look confusing. Annexes, tables, income type codes, insurance reconciliation. It's not intuitive, but it's not nearly as complicated as it seems at first glance.

Most online guides explain what the declaration is, but stop right where the real questions begin: which annex do I fill in, what goes on line 6, how is the tax calculated step by step. This article is different. Here we'll walk through the entire process together, from the first line to the "Submit" button.

After reading this article, you'll be able to complete and file your annual tax declaration in under an hour. No accountant, no panic, no guesswork.

What you'll learn

Ready? Let's get started.

Disclaimer

This article is for informational purposes only and does not replace professional advice. If you have questions, reach out to us at support@effortless.tax or consult with an accountant of your choice.

What is the annual tax declaration and who must file it

The annual tax declaration is the document you use once a year to report all your income, social insurance contributions and tax due to the state. Under the Personal Income Tax Act it is governed by Art. 50, which is why you'll see it referred to everywhere as the "Art. 50 declaration under the Personal Income Tax Act". You file it with the National Revenue Agency (bg: НАП) and it covers the entire previous calendar year.

Think of it as the annual financial report for individuals. You gather everything you earned, deduct statutory recognised expenses and insurance contributions, and calculate how much tax you owe. The rate is the same for everyone: 10% on the tax base.

Who is required to file

If you fall into any of the following groups, filing is mandatory:

  • Persons practising a freelance profession (freelancers registered with BULSTAT). If you work as an independent specialist, consultant, designer, developer or any other type of freelancer, you file a declaration.
  • Self-insured persons. Anyone who pays their own insurance contributions declares income under this procedure.
  • Persons receiving income under civil contracts. Even if you are not registered as a freelance profession, if you receive fees under civil contracts, you owe a declaration.
  • Persons with income from rent, abroad or other sources outside an employment contract. Landlords, people with income from interest, dividends or foreign income also file.
  • Holders of shares and participations in foreign companies. Many people don't realise this, but simply holding shares in foreign companies is subject to declaration (Annex 8), even if you haven't sold them and have no realised profit.

In short: if you have income outside your employment contract or hold financial assets such as shares, you almost certainly need to file an annual tax declaration.

Who is not required to file

If your only income is from an employment contract, you are not required to file. Your employer withholds tax every month and submits the information to the National Revenue Agency on your behalf.

There is one important exception. If you want to claim tax reliefs (for example, for children, for young families or for voluntary insurance contributions), you file a declaration voluntarily to get overpaid tax refunded. In this case, the declaration works in your favour.

Why the annual declaration matters so much for freelancers

If you work under an employment contract, your employer handles everything: withholds tax, pays insurance, submits reports to the National Revenue Agency. As a freelancer, that role falls entirely on you.

Think of the annual tax declaration as the year-end close, similar to what companies do. Just as a company closes its books at the end of the year and establishes its actual financial result, you use the declaration to take stock of the entire year.

Specifically, you accomplish two key things:

  1. Annual tax reconciliation. During the year you pay advance tax quarterly, calculated based on your actual income for each quarter. With the declaration, however, you calculate the tax on an annual basis, factoring in all income, expenses and tax reliefs for the full year. If the sum of quarterly payments exceeds the annual tax, the National Revenue Agency refunds the difference. If it falls short, you pay the balance.
  2. Annual insurance reconciliation. The same principle applies to insurance contributions. During the year you pay insurance based on a chosen monthly income, but your actual income may be different. Using Form 2004 (Table 1 and Table 2) in the declaration, you reconcile your contributions against your actual income.

In other words, the declaration is not just another form. It is the moment when your taxes and insurance are recalculated definitively on an annual basis.

Before we dive into the actual completion, let's clarify exactly when you need to file the declaration and what the payment deadlines are.

Deadlines, discounts and penalties

The filing period for the annual tax declaration runs from 10 January to 30 April of the year following the one the income relates to. For income earned in 2025, the declaration must be filed by 30.04.2026 at the latest.

The good news is that if you act earlier, you can save money through the early filing discount.

5% discount for early filing

If you file the declaration electronically by 31 March and pay the tax due by the same date, you receive a 5% discount on the tax payable. The maximum discount is €255.65 (BGN 500). The condition is that you must have no outstanding public debts subject to enforcement at the time of filing.

With tax due of BGN 2,000, the discount saves you BGN 100. With BGN 10,000, you save BGN 500 (the maximum allowed amount).

Three conditions must be met simultaneously: you file the declaration electronically, you pay all tax due by 31 March, and you have no overdue debts in enforcement collection by the National Revenue Agency.

Why early March is the best time to file

By 28 February all employers and income payers are required to submit reports to the National Revenue Agency under Art. 73 of the Personal Income Tax Act for income paid during the year: employment wages, civil contract fees, rent, dividends and more.

From early March this data is available in the National Revenue Agency portal. When you complete your declaration online, you can choose to load pre-filled data and a large portion of the information will populate automatically. To access the portal you need a PIC (free, available from any National Revenue Agency office) or a qualified electronic signature.

Review the loaded data carefully. Not everything is filled in automatically: income from transactions between individuals, income from abroad and loans given or received need to be entered manually.

In other words, if you wait until early March, you save yourself manual entry and reduce the risk of errors. You still have nearly a full month until 31 March to file the declaration with the 5% discount.

What happens if you're late

Missing the deadline is not the end of the world, but it does result in a fine. Here are the penalties under the Personal Income Tax Act:

ViolationFirst offenceRepeat offence
Failure to file the declaration on time (Art. 80, para. 1)up to €255.65 (BGN 500)up to €511.29 (BGN 1,000)
Incorrect or incomplete data in the declaration (Art. 80, para. 2)up to €511.29 (BGN 1,000)up to €1,022.58 (BGN 2,000)
Failure to issue a document for paid income (Art. 81a)up to €127.82 (BGN 250)up to €255.65 (BGN 500)

How to correct a declaration

Made a mistake? There's a solution.

Before 30 April you can submit correcting declarations an unlimited number of times. Each new declaration replaces the previous one entirely.

After 30 April you have the right to one correcting declaration by 30 September of the same year (Art. 53, para. 2 of the Personal Income Tax Act). This one-time correction is useful if you receive an amended certificate from a client or notice an omission after the deadline.

Important: if you submit a correcting declaration, you lose the right to the 5% discount. If you've already used it, you'll need to pay back the difference.

Key dates at a glance

DateWhat happens
10 JanuaryFiling opens for the previous year
Early MarchPre-filled data becomes available in the National Revenue Agency portal
31 MarchDeadline for the 5% discount (filing + payment)
30 AprilDeadline for filing and paying tax
30 SeptemberDeadline for a one-time correcting declaration

Now that you know when and under what conditions the declaration is filed, let's see what you need to prepare before you start filling it in.

What you need before you start

Completing the annual tax declaration isn't complicated if you've gathered everything you need beforehand. The opposite, however, is frustrating: you sit down in front of the form and start digging through emails, bank statements and folders of documents.

Set aside 30 minutes in advance and prepare everything on the list below. That way the actual completion will go smoothly and quickly.

Income and supporting documents

The first step is to have a complete picture of your income for the year.

Gather all invoices you issued for the period from 1 January to 31 December. If you use an invoicing platform, export the full list. If you issue invoices manually, check that the numbering is continuous and there are no gaps. For more details on this topic, see the complete invoicing guide.

In addition to invoices, you need bank statements confirming received payments. Download them from your online banking for the entire year. They'll help you cross-check amounts and catch any discrepancies.

If you receive cash payments (for example, for services to individuals where you don't always issue an invoice), keep records of every payment with the date, amount and description of the service. This will save you headaches in the event of an audit.

Finally, calculate your total income for the year, grouped by activity type. In Annex 3, income is split by category because each has a different rate of statutory recognised expenses. If, for example, during the year you received both fees from a freelance profession and royalties, you need to enter them separately. Paid insurance contributions and advance tax are entered in the corresponding fields within the annex.

As a self-insured person, you pay advance insurance contributions every month. Now is the time to verify that all 12 payments were made correctly.

The easiest way is to log into the National Revenue Agency portal and run an insurable income report. There you'll see what has been submitted on your behalf month by month. If you also work under an employment contract, the same report will show the insurable income submitted by your employer. If you notice a gap, it's better to correct it before filing the declaration.

This report is particularly useful when calculating the final insurable income (Form 2004), where Table 1 and Table 2 perform the annual insurance reconciliation. If you're unsure what insurance contributions you owe and how they're calculated, check the insurance contributions guide.

Investments, shares and financial platforms

If you hold shares, ETFs or invest through platforms such as P2P lending, prepare your statements in advance. You'll need:

  • Reports from your broker or investment platform for the full year. Most platforms provide an annual statement or tax report summarising transactions, dividends and realised gains or losses.
  • A summary of dividends received, if you hold shares that pay dividends. Dividends are taxed with a final tax and are declared in Annex 8.
  • Statements from P2P platforms for interest received during the year. Most platforms generate an annual report you can download from your profile.

Even if you haven't sold any shares and have no realised profit, simply holding financial assets may be subject to declaration. Gather all documents so you have a clear picture when filling in the form.

Documents for tax reliefs

If you're entitled to tax reliefs, prepare the supporting documents in advance. Here are the most common ones:

  • Children: prepare the personal details of your child/children and the other parent (personal ID number, names), and agree in advance who will claim the relief.
  • Life insurance: a document from the insurer for contributions made during the year.
  • Voluntary pension insurance: a document from the pension fund for personal contributions made during the year.
  • Mortgage for young families: a bank certificate for interest paid, if you meet the conditions.
  • Donations: documents certifying donations made to organisations registered for public benefit.

Not everyone claims reliefs and that's perfectly normal. If none of the above applies to you, simply skip this section.

Gathering documents is the first step, but it's not enough. For many items in the declaration (especially financial assets and insurance reconciliation) you'll need to do additional calculations. We'll explain these in the relevant sections below. For now, let's look at the structure of the declaration and which annexes apply to you as a person practising a freelance profession.

Structure of the declaration: which annexes you fill in

When you open the annual tax declaration under Art. 50 of the Personal Income Tax Act for the first time, it can be intimidating. A main section, annexes 1 through 13, tables, supplementary declarations. It looks like you need to fill in an entire book.

In practice, most freelancers complete only 2-3 parts of the whole package. The remaining annexes are for income from rent, dividends, foreign sources and other situations that may not apply to you at all. Let's look at what awaits you.

Declarant data (personal details)

Every declaration starts with the main section. Here you fill in:

  • Personal details - full name, personal ID number, permanent address
  • Contact information - phone, email
  • General taxpayer information - whether you're a tax resident, whether you're a self-insured person

If you file electronically (and as a self-insured person you're required to), most personal details load automatically from the National Revenue Agency system.

Annex 3: income from other economic activity

This is the most important annex for you as a freelancer. Here you declare all your income from a freelance profession for the year and calculate your tax base.

The actual completion is surprisingly simple. At its core, it comes down to four steps:

  1. You total your gross income for the year by codes, according to income type
  2. The system automatically applies statutory recognised expenses based on the chosen code and calculates your taxable income
  3. You enter the insurance contributions paid during the year, which are deducted from taxable income
  4. If the annual insurance reconciliation results in additional contributions due, you include those as well, so they can be deducted from taxable income

The result is the annual tax base on which the 10% tax is charged. We'll cover the most common codes and walk through everything step by step with real numbers in the next section.

Form 2004: annual insurance reconciliation

Form 2004 is not a separate annex but is part of the declaration itself. It is mandatory for every self-insured person and contains two tables:

  • Table 1 - annual reconciliation of State Social Insurance (bg: ДОО) and Supplementary Compulsory Pension Insurance (bg: ДЗПО)
  • Table 2 - annual reconciliation of Health Insurance contributions

In these tables you compare the insurable income on which you paid advance contributions during the year with your actual insurable income. If the actual income is higher, you'll need to pay the difference. We cover these in detail in the annual insurance reconciliation section.

Annex 10: tax reliefs

You complete Annex 10 only if you're claiming tax reliefs. If you don't have children, don't make donations and don't have voluntary insurance, simply skip it.

The most common reliefs for freelancers are:

  • Child relief (Art. 22v of the Personal Income Tax Act) - BGN 6,000 per year for one child, BGN 12,000 for two children, BGN 18,000 for three or more
  • Personal voluntary insurance contributions - up to 10% of the tax base
  • Donations - up to 5% of the tax base (up to 15% for certain recipients)
  • Relief for persons with reduced working capacity - BGN 7,920 at 50%+ disability

Each relief reduces your tax base, which directly reduces the tax you owe.

Declaration Form 6

Declaration Form 6 is not part of the Art. 50 declaration but is filed alongside it. It summarises the total insurance contributions due for the year, including the result of the reconciliation.

The filing deadline is the same: by 30 April. If you forget to file it, your annual insurance record remains incomplete, which can lead to problems with your insurance rights.

The other annexes: when you need them

Most freelancers don't fill in anything beyond what's described above. Here's a brief overview of the remaining annexes, so you know which applies when.

Annex 1: income from employment. You complete this if, in addition to freelancing, you also work under an employment contract. The data is submitted by your employer to the National Revenue Agency, and when you load pre-filled data in the portal, the information is already populated. Your task is simply to review and confirm it.

Annex 4: income from rent or other provision of property. If you rent out a residence, office or other property, the income is declared here. Statutory recognised expenses for rental income are 10% of gross income. For property in joint marital ownership, the income is split equally between both spouses.

Annex 5: income from transfer of rights or property. Capital gains from the sale of real estate, vehicles, financial assets and other property are declared here. The taxable income is the positive difference between the sale price and the purchase price. There are numerous exemptions: for example, sale of a residence if held for more than 3 years, sale of a vehicle after more than 1 year from acquisition, or sale of other movable property (except financial assets).

Annex 6: income from other sources. This covers income that doesn't fit into any other annex: interest (including from loans between individuals and interest embedded in leasing instalments), compensation for lost benefits, production dividends from cooperatives and others. There are no statutory recognised expenses here, the full amount is taxable.

Annex 8: foreign assets and income with final tax from abroad. One of the most underestimated annexes. You complete it if, as of 31 December, you hold shares or participations in foreign companies, real estate abroad, or have received dividends from a foreign source. If you invest through platforms like Interactive Brokers or Trading 212, you declare your held shares here every year, even if you haven't sold anything.

Annex 11: loans given and received. You declare this if you've given or received private cash loans above certain thresholds: over BGN 10,000 during the year or outstanding balances exceeding BGN 40,000 for the current and previous 5 years. Bank loans are not included. The penalty for non-declaration is 10% of the undeclared amounts.

Annex 13: non-taxable income and property from inheritance or donation. This is the only entirely voluntary annex. You complete it optionally to document non-taxable income (insurance payouts, winnings from state lotteries), income with final tax (dividends from a Bulgarian company, deposit interest) or property received through inheritance and donation. It's useful for proving the origin of funds in future audits.

Most freelancers only fill in: Annex 3 + Form 2004 + Declaration Form 6. Everything else is only needed in specific circumstances.

Now that you know which parts of the declaration apply to you, let's move to the most important one. In the next section, we'll complete Annex 3 step by step with a real example.

How to complete Annex 3: step by step

Annex 3 is the most important part of the declaration. Here you declare your income from a freelance profession and arrive at the tax base on which the tax is charged. The main goal is to reduce taxable income by the insurance contributions paid during the year and those due from the reconciliation, to arrive at the amount on which you owe tax. In practice, you fill in just a few lines, and the National Revenue Agency system calculates the rest automatically.

Step 1: Total your gross income by codes

First, determine the code (or codes) for your activity. The code determines what percentage of statutory recognised expenses will be applied automatically.

CodeIncome typeStatutory recognised expenses
306Freelance profession (developers, consultants, designers, accountants, translators, etc.)25%
3061Freelance profession as a lawyer40%
304Royalties and licence fees (works of science, culture, art, performing artists)40%
307Fees under non-employment relationships (civil contracts)25%
305Practice of a craft (not subject to patent tax)40%

Most freelancer income falls under code 306. If you work independently and issue invoices in your own name, this is your code. If you receive fees under a civil contract from a contracting party, the code is 307.

You may have income under more than one code. For example, if you're a developer (code 306) but during the year you also received a royalty payment (code 304), you total the income separately for each code.

Step 2: Line 1 - Enter gross income for each code

On Line 1, you enter the total income amount against the corresponding code. This includes everything: payments on invoices, transfers from clients, cash payments.

For code 306, you don't need to list each client separately. You enter only the total amount. If your total income for the year is BGN 36,000, that exact figure goes on Line 1.

If the income payer is a company or a self-insured person, some of the data may already be pre-loaded into your declaration. Review it carefully and if there are missing amounts, add them.

After entering the amounts, the system automatically calculates statutory recognised expenses (Line 3) and taxable income (Line 4). If you're unsure what expense rate applies to you, read the detailed article on statutory recognised expenses.

Step 3: Line 7 - Advance insurance contributions

These are the insurance contributions you paid in advance every month during the year and declared with Declaration Form 1. Enter the total amount of advance contributions for State Social Insurance (including General Disease & Maternity Fund, if you chose to insure for it), Supplementary Compulsory Pension Insurance and Health Insurance. Compare the amount with your payment documents or with the Obligations and Payments Report (No. 417) from the National Revenue Agency portal.

Step 4: Line 8 - Final insurance contributions

These are the additional insurance contributions due, calculated based on your actual insurable income through the annual reconciliation (Form 2004). Here you enter the amount from that reconciliation. To get it, you first need to complete Form 2004 (Table 1 and Table 2), which compares your advance contributions with your actual insurable income. We cover the calculation in detail in the annual insurance reconciliation section.

After entering both lines with insurance contributions, the system calculates the tax base and tax due (10%) automatically.

Quick example with specific numbers

Designer, code 306, insured at the minimum insurable income, with General Disease & Maternity:

Completed Annex 3, Part II with example data for a designer with code 306 and gross income of BGN 36,000

Gross income of BGN 36,000 is entered on Line 1 against code 306. The system automatically calculates statutory recognised expenses of BGN 9,000 (25%) and taxable income of BGN 27,000. Line 7 shows advance insurance contributions of BGN 3,910.08, and Line 8 shows final contributions from the reconciliation: BGN 4,541.00. The tax base (Line 10) is BGN 18,548.92, and the tax due (10%) is BGN 1,854.89.

Useful tips for completion

  • Pre-filled declaration. When you log into the National Revenue Agency portal, the system may have already loaded some of your data. Review it carefully, as sometimes amounts are missing or inaccurate.
  • Verify your insurance contributions. Compare the amounts in the declaration with bank statements for your insurance payments. A discrepancy of even a few leva can lead to a correction from the National Revenue Agency.

The example above is simplified to show the logic. In the How the annual tax is calculated section, we'll do a full calculation with exact insurance and tax figures, so you can see the complete picture from start to finish.

Annual insurance reconciliation

Throughout the year, you pay insurance contributions based on the advance insurable income you chose. Most self-insured persons choose the minimum insurable income. For 2025, the minimum insurable income is BGN 933 for January-March and BGN 1,077 for April-December. But your actual income may be quite different.

The annual insurance reconciliation is the mechanism through which the state verifies what you paid during the year against what you actually owe based on your real income. If you earned more than your advance insurable income, you'll pay the difference.

The reconciliation is done through Form 2004 in the annual tax declaration, which contains Table 1 (for State Social Insurance and Supplementary Compulsory Pension Insurance) and Table 2 (for Health Insurance). The main purpose of both tables is to calculate whether you owe additional insurance contributions for the year and how much. Let's understand how each one works.

For a full overview of insurance contributions and their rates, see Insurance contributions for self-insured persons.

How the tables work

Both tables have identical structure. Each contains 7 columns and 13 rows (one per month, plus a total). The idea is simple: for each month, the system compares the income on which you paid insurance with your actual income.

In the tables you'll encounter five key columns. Here's what each one means:

Insurable income from employment (col. 3) - the insurable income on which an employer or contracting party insures you. Most commonly this is income from an employment contract, but the column also includes management and control contracts and other relationships under Art. 4, para. 1 of the Social Security Code (bg: КСО). If you only work as a freelancer without such contracts, this is 0. You can find the exact amount from an insurable income report in the National Revenue Agency portal.

Advance insurable income (col. 4) - the insurable income on which you paid advance contributions as a self-insured person. This is the value you submitted with Declaration Form 1.

Actual income (col. 5) - your actual monthly taxable income from activity as a self-insured person. Calculated by dividing the annual taxable income from Annex 3 by the number of active months.

Total insurable income (col. 6) - the insurable income on which you actually paid contributions. Equal to col. 3 + col. 4.

Required insurable income (col. 7) - the insurable income on which you should have been paying. Equal to col. 3 + col. 5, but no more than the maximum insurable income (BGN 3,750 for January-March, BGN 4,130 for April-December 2025).

On row 13 (Total), the values from all months are summed. The difference shows whether you owe additional contributions:

Income for additional payment = col. 7 (should have paid) - col. 6 (actually paid)

If the difference is positive, you owe additional insurance contributions. If negative, you have overpaid contributions you can request back (unless your actual income is below the minimum insurable income).

Rates for final contributions

The following contributions are charged on the annual difference from each table:

Table 1 (State Social Insurance and Supplementary Compulsory Pension Insurance):

  • Pension Fund - 14.8% (for those born after 31.12.1959)
  • General Disease & Maternity Fund - 3.5% (if you chose to insure for it)
  • Supplementary Compulsory Pension Insurance in a universal pension fund - 5% (only for those born after 31.12.1959)

Table 2 (Health Insurance):

  • Health Insurance - 8%

Important details about the reconciliation

  • What is an "active month"? A month is active if you had at least one day of practised activity. A month counts as inactive only if throughout the entire month you did not perform activity due to suspension, sick leave or maternity. If, for example, you started your activity on 15 May, May counts as an active month, regardless that you only worked half of it.
  • Calculations are done month by month. If you weren't self-insured the entire year, the tables cover only the active months.
  • Additional contributions reduce the tax base. They are an expense deducted when calculating the tax due for the year, entered in Annex 3, Part II on Line 8.
  • Refunds are possible too. If you paid insurance on a higher amount than your actual income, the difference is refunded. But if your actual income is below the minimum insurable income, you don't receive a refund, because minimum contributions are always due.

Reconciliation examples

It's easiest to understand with specific numbers. Here are four examples covering the most common scenarios.

Example 1: Designer, freelance only

Profile: Designer, born after 1959, works only as a freelancer, insured at the minimum insurable income, with General Disease & Maternity.

  • Annual taxable income (from Annex 3): BGN 27,000
  • Active months: 12
  • Actual monthly income (col. 5): 27,000 / 12 = BGN 2,250

Table 1 (State Social Insurance and Supplementary Compulsory Pension Insurance):

Since there is no employment contract, the insurable income from employment (col. 3) is 0 for every month. The advance insurable income (col. 4) differs between the two periods: BGN 933 (January-March) and BGN 1,077 (April-December).

Completed Table 1 from Form 2004 for a freelancer with code 306 and gross income of BGN 36,000

The annual difference between required and paid insurable income is BGN 14,508 (27,000 - 12,492). Final contributions charged on this difference: BGN 2,147.18 for State Social Insurance, BGN 507.78 for General Disease & Maternity and BGN 725.40 for Supplementary Compulsory Pension Insurance.

Table 2 (Health Insurance):

Table 2 is identical in this case, because there is no employment contract and no sick leave.

Completed Table 2 from Form 2004 for a freelancer on freelance practice only

On the same difference of BGN 14,508, the Health Insurance contribution is also charged: BGN 1,160.64 (8%).

Total final insurance contributions: 2,147.18 + 507.78 + 725.40 + 1,160.64 = BGN 4,541.00

This amount is due by 30 April of the following year, after filing Declaration Form 6.

Example 2: Consultant with employment contract and freelance practice

Profile: Consultant, born after 1959, works under an employment contract (January-June) and as a freelancer (all year), insured at the minimum insurable income as a self-insured person, with General Disease & Maternity.

  • Insurable income from employer: BGN 2,500/month (January-June)
  • Annual taxable income from freelance practice (from Annex 3): BGN 18,000
  • Active months as self-insured: 12
  • Actual monthly income (col. 5): 18,000 / 12 = BGN 1,500

Table 1 (State Social Insurance and Supplementary Compulsory Pension Insurance):

During January-June, the insurable income from employment (col. 3) is BGN 2,500. The required insurable income (col. 7) is capped at the maximum insurable income, which differs between the two periods: BGN 3,750 (January-March) and BGN 4,130 (April-December).

Completed Table 1 from Form 2004 for a consultant with employment contract and freelance practice

The annual difference is BGN 4,758 (32,250 - 27,492). Final contributions: BGN 704.18 for State Social Insurance, BGN 166.53 for General Disease & Maternity and BGN 237.90 for Supplementary Compulsory Pension Insurance.

Notice how the cap works in practice: during January-March, the maximum insurable income is BGN 3,750, so the required insurable income is limited, even though the actual sum (2,500 + 1,500 = 4,000) is higher. From April-June, the cap is BGN 4,130 and doesn't apply.

Table 2 (Health Insurance):

The structure is analogous to Table 1.

Completed Table 2 from Form 2004 for a consultant with employment contract and freelance practice

On the same difference of BGN 4,758, the Health Insurance contribution is also charged: BGN 380.64 (8%).

Total final insurance contributions: 704.18 + 166.53 + 237.90 + 380.64 = BGN 1,489.25

Example 3: Accountant on freelance practice with sick leave

Profile: Accountant, born after 1959, works as a freelancer, insured at the minimum insurable income, with General Disease & Maternity. In August, they are on sick leave for 2 weeks (11 working days out of 21).

  • Annual taxable income (from Annex 3): BGN 24,000
  • Active months: 12 (August counts because there are days worked)
  • Actual monthly income (col. 5): 24,000 / 12 = BGN 2,000

For partial sick leave, the monthly insurable income is split proportionally between working days and sick days. For August (minimum insurable income = BGN 1,077):

  • Working days (10 out of 21): BGN 512.86 - full contributions (State Social Insurance, Supplementary Compulsory Pension Insurance, Health Insurance, General Disease & Maternity)
  • Sick days (11 out of 21): BGN 564.14 - Health Insurance only (4.8%)

Table 1 (State Social Insurance and Supplementary Compulsory Pension Insurance):

In Table 1, for August only the working portion of the insurable income (BGN 512.86) is entered as the advance insurable income (col. 4). No State Social Insurance or Supplementary Compulsory Pension Insurance contributions are due for sick days.

Completed Table 1 from Form 2004 for an accountant on freelance practice with sick leave

The annual difference is BGN 12,072.14 (24,000 - 11,927.86). Final contributions: BGN 1,786.68 for State Social Insurance, BGN 422.52 for General Disease & Maternity and BGN 603.61 for Supplementary Compulsory Pension Insurance.

Table 2 (Health Insurance):

Here comes the key difference. No State Social Insurance or Supplementary Compulsory Pension Insurance contributions are due for sick days, but Health Insurance is always due. For sick days, the Health Insurance contribution is 4.8% of the proportional share of the minimum insurable income.

Important: col. 3 in Table 2 is not just for employment income. It also includes other health insurance income that doesn't come from self-insurance. In the case of sick leave, the insurable income for sick days goes here. For August:

  • col. 3 = BGN 564.14 (insurable income for sick days, on which Health Insurance at 4.8% is due)
  • col. 4 = BGN 512.86 (advance insurable income for working days)

Completed Table 2 from Form 2004 for an accountant on freelance practice with sick leave

The annual difference for Health Insurance is BGN 12,072.14 (24,564.14 - 12,492). The Health Insurance contribution is BGN 965.77 (8%).

Compare the two tables for August:

  • Table 1: col. 3 = 0, col. 4 = BGN 512.86 (working days only), col. 6 = BGN 512.86, col. 7 = BGN 2,000
  • Table 2: col. 3 = BGN 564.14 (sick days), col. 4 = BGN 512.86 (working days), col. 6 = BGN 1,077, col. 7 = BGN 2,564.14

In Table 1, sick days don't appear at all, because State Social Insurance and Supplementary Compulsory Pension Insurance are not due for them. In Table 2, sick days go into col. 3, which increases both the total insurable income (col. 6) and the required insurable income (col. 7).

Total final insurance contributions: 1,786.68 + 422.52 + 603.61 + 965.77 = BGN 3,778.58

Example 4: Translator who started mid-year

Profile: Translator, born after 1959, registers as a freelance profession on 14 July, insured at the minimum insurable income, with General Disease & Maternity. July has 23 working days, of which they worked 14 (second half of the month).

  • Annual taxable income (from Annex 3): BGN 15,000
  • Active months: 6 (July-December; July counts because there are days worked)
  • Actual monthly income (col. 5): 15,000 / 6 = BGN 2,500

For July, advance contributions are paid proportionally to days worked:

  • Advance income for July: 1,077 x 14/23 = BGN 655.57

Table 1 (State Social Insurance and Supplementary Compulsory Pension Insurance):

January-June are empty because there was no registered activity. The reconciliation covers only July-December.

Completed Table 1 from Form 2004 for a translator who started activity mid-year

The annual difference is BGN 8,959.43 (15,000 - 6,040.57). Final contributions: BGN 1,326.00 for State Social Insurance, BGN 313.58 for General Disease & Maternity and BGN 447.97 for Supplementary Compulsory Pension Insurance.

Table 2 (Health Insurance):

In this case, Table 2 is identical to Table 1, because there is no sick leave and no employment contract.

Completed Table 2 from Form 2004 for a translator who started activity mid-year

On the same difference of BGN 8,959.43, the Health Insurance contribution is also charged: BGN 716.75 (8%).

The key point here: actual income (col. 5) is divided by 6 active months, not 12. This means a higher monthly insurable income (BGN 2,500) and a correspondingly larger difference to pay. The months before registration (January-June) are completely empty in both tables.

Total final insurance contributions: 1,326.00 + 313.58 + 447.97 + 716.75 = BGN 2,804.30

How the annual tax is calculated: full example

The formulas and percentages from the previous sections may seem abstract. So here you'll bring it all together: from gross annual income to the final amount due.

The formula

The entire annual tax boils down to a single formula:

Annual tax = (Gross income - Statutory recognised expenses - Insurance contributions) x 10%

Each step reduces the amount on which you pay tax. First you deduct statutory recognised expenses (25% for most freelancers), then insurance contributions. You only pay tax on the remainder, called the tax base.

Let's see how it works with real numbers for 2025.

Example 1: Designer, insured at the minimum

Profile: Designer, born after 1959, insured at the minimum insurable income, with General Disease & Maternity.

Gross annual income: BGN 36,000 (BGN 3,000 per month)

Step 1: Statutory recognised expenses

36,000 x 25% = BGN 9,000

Step 2: Advance insurance contributions (Line 7)

During the year you paid advance insurance contributions on the minimum insurable income. Since the minimum changed in April, monthly contributions differ between the two periods:

ContributionRateJan-Mar (on BGN 933)Apr-Dec (on BGN 1,077)
State Social Insurance (pension)14.8%BGN 138.08BGN 159.40
Supplementary Compulsory Pension Insurance5%BGN 46.65BGN 53.85
Health Insurance8%BGN 74.64BGN 86.16
General Disease & Maternity3.5%BGN 32.66BGN 37.70
Monthly total31.3%BGN 292.03BGN 337.11
Advance contributions (Line 7): 292.03 x 3 + 337.11 x 9 = BGN 3,910.08

Step 3: Annual insurance reconciliation (Line 8)

Your actual monthly insurable income, however, is higher:

Taxable income / 12 = 27,000 / 12 = BGN 2,250/month

Since BGN 2,250 exceeds the minimum insurable income for both periods, Form 2004 calculates the difference in contributions. We cover the calculation in detail in the annual insurance reconciliation section.

Final contributions (Line 8): BGN 4,541.00

These BGN 4,541.00 are paid after filing Declaration Form 6.

Step 4: Tax base and tax

Gross income:                                BGN 36,000.00
- Statutory recognised expenses (25%):      - BGN  9,000.00
- Advance contributions (Line 7):           - BGN  3,910.08
- Final contributions (Line 8):             - BGN  4,541.00
                                             ─────────────
Tax base:                                    BGN 18,548.92

Annual tax (10%):                            BGN  1,854.89

Step 5: Deducting advance tax

During the year you paid advance tax for the first three quarters. Advance tax is calculated based on advance contributions (on the minimum insurable income), not final ones. Since the minimum insurable income differs for Q1 and Q2-Q3, the advance tax for each quarter also differs:

Q1 (Jan-Mar): (9,000 - 2,250 - 876.09) x 10% = BGN 587.39
Q2 (Apr-Jun): (9,000 - 2,250 - 1,011.33) x 10% = BGN 573.87
Q3 (Jul-Sep): (9,000 - 2,250 - 1,011.33) x 10% = BGN 573.87
Advance tax paid (Q1-Q3): 587.39 + 573.87 + 573.87 = BGN 1,735.13
Annual tax:                                  BGN  1,854.89
- Advance tax paid (Q1-Q3):                - BGN  1,735.13
                                             ─────────────
Tax to pay with the declaration:             BGN    119.76

With the declaration you pay BGN 119.76 in tax and BGN 4,541.00 in insurance from the reconciliation.

Example 2: Consultant with income above the maximum insurable income

Profile: Consultant, born after 1959, high income, with General Disease & Maternity.

Gross annual income: BGN 72,000 (BGN 6,000 per month)

The actual monthly insurable income after statutory recognised expenses is 6,000 x 75% = BGN 4,500, but contributions are capped at: BGN 3,750/month (January-March) and BGN 4,130/month (April-December).

If during the year you paid contributions on the minimum insurable income (as most freelancers do):

Advance contributions (Line 7): 292.03 x 3 + 337.11 x 9 = BGN 3,910.08
Final contributions (Line 8):
  Jan-Mar: (3,750 - 933) x 31.3% x 3  =  BGN 2,645.16
  Apr-Dec: (4,130 - 1,077) x 31.3% x 9 = BGN 8,600.30
  Total:                                   BGN 11,245.46
Total contributions:                       BGN 15,155.54

Annual calculation:

Gross income:                                BGN 72,000.00
- Statutory recognised expenses (25%):      - BGN 18,000.00
- Advance contributions (Line 7):           - BGN  3,910.08
- Final contributions (Line 8):             - BGN 11,245.46
                                             ─────────────
Tax base:                                    BGN 38,844.46

Annual tax (10%):                            BGN  3,884.45

At higher incomes, the insurance cap works in your favour. Contributions stop growing once the maximum insurable income is reached, but the tax base continues to grow. This is why the overall tax burden as a percentage of gross income decreases at higher incomes.

Important for this scenario: If during the year you paid contributions on a lower income than your actual one (for example, on the minimum insurable income), you'll owe reconciliation contributions. How exactly the reconciliation works is covered in the annual insurance reconciliation section.

Tax reliefs

Tax reliefs reduce your tax base, meaning you pay tax on a smaller amount. To use them, you need a positive tax base. If your tax base is zero (for example, with very low income), there's nothing for the reliefs to apply to.

Reliefs are declared in separate annexes to the annual declaration. The most commonly used by freelancers is the child relief (Annex 10).

Child relief

If you have children, you can reduce your tax base through Annex 10. The relief is deducted directly from the annual tax base:

Number of childrenTax base reductionActual tax saving
1 childBGN 6,000/yearBGN 600
2 childrenBGN 12,000/yearBGN 1,200
3+ childrenBGN 18,000/yearBGN 1,800

Let's see how it affects Example 1. The designer with a tax base of BGN 18,548.92 has one child:

Tax base:                                    BGN 18,548.92
- Child relief for 1 child:                - BGN  6,000.00
                                             ─────────────
Reduced tax base:                            BGN 12,548.92

Annual tax (10%):                            BGN  1,254.89

Without the relief, the tax is BGN 1,854.89. With the relief, it's BGN 1,254.89. The difference is exactly BGN 600 in your pocket.

What happens after the calculation

When you complete the declaration, the result is one of two things:

  1. Advance tax paid is less than the annual tax. You pay the difference by 30 April. This is the most common scenario, especially because of the fourth quarter, for which no advance tax is paid.

  2. Advance tax paid is more than the annual tax. You have overpaid tax. You can request a refund or offset it against future liabilities.

The formula is simple, but the numbers that go into it depend on your insurable income, specifically the difference between advance contributions and actual income. For more details on gross-to-net calculations, see From gross to net for freelance professions.

Now that you know what to expect in the declaration, let's see how to practically file it online through the National Revenue Agency portal.

How to file the declaration online

The declaration is filed online through the National Revenue Agency portal (portal.nra.bg) using a PIC (personal identification code) or a qualified electronic signature. For the annual declaration, a PIC is perfectly sufficient. It's free and you can get it from any National Revenue Agency office with your ID card in minutes. A qualified electronic signature is needed for more specific operations like filing VAT declarations.

The portal offers a pre-filled declaration (available from early March) that automatically loads data from some income payers. Review it carefully and fill in anything missing. As a self-insured person, you'll definitely need to enter data in Annex 3 and Form 2004 yourself. After completing and checking everything, you submit the declaration and separately Declaration Form 6 (for insurance contributions due) through the same portal.

Only electronic filing by 31 March qualifies you for the 5% discount on tax due.

Payment is made after filing the declaration. The easiest option is by debit or credit card through the National Revenue Agency's virtual POS terminal in the portal itself. You can also pay by bank transfer or in person at a National Revenue Agency office. The payment deadline is 30 April. To use the 5% discount, file and pay by 31 March.

Even with a perfectly completed declaration, there are mistakes that come up every year. Let's look at the most common ones and how to avoid them.

Most common mistakes and how to avoid them

Even experienced freelancers make mistakes on the annual declaration. The good news is that most of them are easily avoided if you know where to pay attention. Here are the six most common problems and how to handle each one.

1. Not informing your client of your self-insured status

If you sign a contract with a company without notifying them in writing that you're a self-insured person, the company is required under Art. 43, para. 1 of the Personal Income Tax Act to withhold advance tax and insurance contributions from your fees. The problem is that you're already paying insurance as a self-insured person. The result is duplicate insurance contributions, making proper annual reconciliation impossible. Correcting this requires the company to submit new data to the National Revenue Agency, adjust the withheld amounts and refund the overpayment. This takes time and creates unnecessary complications for both sides.

How to avoid it: Submit a written declaration under Art. 43, para. 5 of the Personal Income Tax Act to your client, stating that you are a self-insured person under Art. 5, para. 2 of the Social Security Code. The declaration is free-form (there's no official National Revenue Agency template), but it must include your name, personal ID number, BULSTAT number and an explicit statement of your status. In practice, you can include this clause directly in the contract. This way, the company won't withhold tax and insurance from your fees.

2. Forgotten tax reliefs

Many freelancers don't know they can claim a child tax relief directly through the annual declaration. Skipping Annex 10 can cost you real savings: BGN 600 for one child and BGN 1,200 for two children.

How to avoid it: Before filing, always open Annex 10 and check whether you qualify for any of the reliefs.

3. Errors in Form 2004

The insurance reconciliation tables have their pitfalls. The most common problems are entering the wrong advance insurable income and failing to mark months without activity.

How to avoid it: Compare the data row by row with your monthly payment orders. In the National Revenue Agency portal, you can see what contributions are recorded for each month.

4. Missing the 5% discount deadline

Filing on 15 April instead of by 31 March means losing the 5% discount, which can be worth up to BGN 500. That difference is your bonus for filing on time.

How to avoid it: Set a reminder for mid-March. That gives you a two-week buffer for any corrections before the deadline.

5. Forgetting Declaration Form 6

Filing the Art. 50 declaration is only half the task. If you forget Declaration Form 6, your insurable income won't be properly reconciled and you may receive a notice from the National Revenue Agency.

How to avoid it: File both declarations on the same day. That way you can't forget one of them.

6. Blindly accepting the pre-filled declaration

From March, the National Revenue Agency loads data into your declaration automatically. This is convenient, but it's not error-free. Income from foreign clients typically doesn't appear, and some Bulgarian payers may not have submitted their reports on time.

How to avoid it: Always compare the amounts filled in by the National Revenue Agency with your own records: invoices issued, bank statements and payment documents. You know your income better than the system or your accountant.

Conclusion

The annual tax declaration only looks complicated at first glance. Once you understand the structure and the formula behind it, completing it rarely takes more than an hour. The key is preparation: gather your documents ahead of time, know your numbers and follow the steps one by one.

What we covered

  • The Art. 50 declaration is your annual report to the National Revenue Agency covering all income and insurance contributions.
  • The main annex for freelancers is Annex 3 with code 306 (income from practising a freelance profession).
  • The tax formula is simple: Income - Statutory recognised expenses (25%) - Insurance contributions = tax base x 10%.
  • Annual insurance reconciliation is a mandatory step (Form 2004 within the declaration).
  • File by 31 March to get the 5% discount on tax due (maximum BGN 500).

You now have everything you need to file your declaration independently. Thousands of freelancers do it every year without an accountant. You can too.

Frequently asked questions

As a freelancer, you are a self-insured person and electronic filing is mandatory. You cannot file on paper.

If you receive income only under civil contracts and are not a self-insured person, you can file on paper at a National Revenue Agency office or by post with return receipt. Still, electronic filing is more convenient and is the only way to qualify for the 5% discount.

Before 30 April, you can submit a correcting declaration as many times as needed. Simply file a new declaration that replaces the previous one.

After 30 April, you have the right to one correcting declaration by 30 September of the same year (Art. 53, para. 2 of the Personal Income Tax Act). Keep in mind that correcting declarations after the deadline mean you lose the 5% discount, if you used it.

If you are registered as a self-insured person and practised activity during the year, yes, you file a declaration even with zero income. Form 2004 and Declaration Form 6 are also mandatory, as they reflect your insurance contributions.

If you submitted a declaration to suspend your activity and did not work during the entire year, filing is not required.

Yes, absolutely. The child tax relief is not reserved only for employees. You fill in Annex 10, Part VI of the annual declaration.

The relief reduces your tax base by BGN 6,000 for one child (saving you BGN 600 in tax) and by BGN 12,000 for two children (saving you BGN 1,200 in tax).

From March every year, the National Revenue Agency loads income data into your declaration. The information comes from employers and companies that paid you and submitted reports.

It's convenient, but you shouldn't rely on it completely. Income from foreign clients, some civil contracts and delayed reports may be missing. Always compare the pre-filled data with your invoices and bank statements before confirming the submission.

Try Effortless Tax free for 1 month

Save time and money and focus on what you do best.

Sign up for free

Read More

Practical tax tips for freelancers. Learn everything you need to know about taxes and save money.

Annual tax declaration: a guide for freelancers in Bulgaria