Registry entry
Bulgaria — Annual Tax Declaration under Article 50 of the Personal Income Tax Act (Обр. 2001)
The Национална агенция за приходите's (NRA, Bulgaria's National Revenue Agency) "Годишна данъчна декларация по чл. 50 от Закона за данъците върху доходите на физическите лица" (Annual tax declaration under Art. 50 of the Personal Income Tax Act, ZDDFL), internally numbered Образец/Обр. 2001 (Form 2001) — the annual combined income-tax self-assessment return Bulgarian resident and non-resident individuals file, distributed as a free unauthenticated download from NRA's own static document host as part of a ZIP bundle of the current tax year's declaration and its numbered annexes. Adds a second schema to Bulgaria's Taxes vertical (Bulgaria's 51st-jurisdiction opening is carried by the sibling schema bg/nra/deklaratsiya-za-registratsiya-na-samoosiguryavashto-se-litse, authored the same cycle). The source is a Microsoft Word (.doc) template, not an AcroForm PDF — NRA distributes this and its sibling annexes only as editable Word documents (confirmed: no PDF edition of Обр. 2001 could be found on nra.bg or any cross-checked mirror this cycle). Обр. 2001 is the omnibus "root" declaration: every individual taxpayer files this one document, checking off which of 13 numbered Приложения (annexes, each its own separate form covering one income category — employment, sole-trader/business, rental, capital gains, foreign assets, tax reliefs, loans, etc.) accompany it, and (for taxpayers who have any such annexes) copying selected annex totals into this root form's own Част IV (Part IV) tax-computation worksheet. This v1.0.0 models the complete Обр. 2001 root document only — Part I (taxpayer identification), Part II (authorized-proxy/legal-representative identification, gated on the source's own "filed by representative" condition), Part III (the 18-row checklist of which annexes/attachments accompany the declaration), Part IV (the root-level annual tax computation on the total annual tax base, rows/codes 4001-4012 and their 40121/40122/40123/401241-401245 sub-rows for refund vs. offset elections of any overpaid tax), Part V (the cross-border tax-scheme disclosure under DOPK Art. 143ya), and the declaration/signature block. It deliberately excludes, as a disclosed backlog item rather than a silent gap, the field-by-field content of every numbered Приложение (Annex) 1 through 13 and the several companion declarations/references listed in Part III (Обр. 2004 insurable-income references, Обр. 2005/2006 child-tax-relief declarations, the annual activity report) — each is its own separate NRA form and a natural candidate for a future, separately-versioned companion schema, exactly as this registry treats other jurisdictions' annex/schedule forms (e.g. ch/zh's Hilfsblatt series). Обр. 2001в, a structurally similar but distinct variant of this same form for declaring the income of a deceased person (filed by an heir or legatee), is also out of scope for this v1.0.0. GovSchema is an independent, non-profit standards body and is not affiliated with, endorsed by, or operated by the Government of Bulgaria or the Национална агенция за приходите.
Registry entry
bg/nra/godishna-danachna-deklaratsiya-chl-50-zddfl
Machine access
- Schema document
registry/bg/nra/godishna-danachna-deklaratsiya-chl-50-zddfl/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/bg/nra/godishna-danachna-deklaratsiya-chl-50-zddfl/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
86 fields, read from the published schema.json, with names, types, requiredness, and validation as the document states them. The live government form remains the authoritative source.
Fields
-
taxYearstring requiredThe 4-digit tax year this annual declaration covers (the year the declared income was acquired).
pattern -
correctionAfterDeadlineboolean optionalWhether this filing is a one-time correction made after the statutory filing deadline, on the grounds of Art. 53(2) of the Personal Income Tax Act (a taxpayer may correct a previously filed declaration once, by the following September 30, after discovering an error).
-
taxpayerIdstring requiredThe taxpayer's identification number: EGN (Bulgarian personal number), LN (personal number of a foreigner), LNCh (personal number of a foreigner), an NRA-issued service number, or the BULSTAT/EIK of a foreign natural person, per the code selected in taxpayerIdTypeCode.
patternclassification: sensitive-pii -
taxpayerIdTypeCodeenum requiredThe code identifying which kind of number was entered in taxpayerId: 1=EGN, 2=LN, 3=LNCh, 4=NRA-issued service number, 5=EIK of a foreign natural person.
enum: 1 | 2 | 3 | 4 | 5 -
firstNamestring requiredThe taxpayer's given name.
classification: pii -
middleNamestring optionalThe taxpayer's patronymic (father's-name), a standard element of a Bulgarian full name.
classification: pii -
lastNamestring requiredThe taxpayer's family name.
classification: pii -
correspondenceOblaststring optionalThe province (oblast) of the taxpayer's correspondence address. Correspondence-address fields (point 4) are completed only when the correspondence address differs from the taxpayer's permanent address on file with NRA.
classification: pii -
correspondenceObshtinastring optionalThe municipality (obshtina) of the taxpayer's correspondence address. Correspondence-address fields (point 4) are completed only when the correspondence address differs from the taxpayer's permanent address on file with NRA.
classification: pii -
correspondenceSettlementstring optionalThe city/town/village of the taxpayer's correspondence address. Correspondence-address fields (point 4) are completed only when the correspondence address differs from the taxpayer's permanent address on file with NRA.
classification: pii -
correspondencePostalCodestring optionalThe postal code of the taxpayer's correspondence address. Correspondence-address fields (point 4) are completed only when the correspondence address differs from the taxpayer's permanent address on file with NRA.
classification: pii -
correspondenceStreetstring optionalThe street, number, complex, building, entrance, and apartment of the taxpayer's correspondence address. Correspondence-address fields (point 4) are completed only when the correspondence address differs from the taxpayer's permanent address on file with NRA.
classification: pii -
phonestring optionalThe taxpayer's telephone number. Optional per the form's own instructions.
classification: pii -
emailstring optionalThe taxpayer's email address. Optional per the form's own instructions.
classification: pii -
isNonResidentboolean requiredWhether the taxpayer is a foreign person (non-resident) rather than a local (resident) person for Bulgarian tax purposes. The source prints "6. Местно лице" (local/resident) and "7. Чуждестранно лице" (foreign/non-resident) as two adjoining checkboxes for one binary choice; modeled as a single boolean, consistent with this registry's precedent (e.g. ro/anaf's "nonResident").
-
selfInsuredPersonboolean optionalWhether the taxpayer was a self-insured person under the Social Insurance Code (KSO) for all or part of the tax year. Self-insured persons must file this declaration electronically only (see VERIFICATION.md).
-
healthInsuredUnderArt40Para5boolean optionalWhether the taxpayer, not being a self-insured person under point 8, was health-insured under Art. 40(5) of the Health Insurance Act for all or part of the tax year.
-
personSubjectToArt51Para1boolean optionalWhether the declarant is a person who, under Art. 51(1) of the Personal Income Tax Act, must also submit an annual activity report together with this declaration (traders under the Commerce Act, including sole traders, and registered farmers under Art. 29a).
-
foreignAddressCountrystring optionalThe country of the taxpayer's foreign address. Completed only when the taxpayer is a foreign person (isNonResident = true).
classification: pii -
foreignAddressSettlementstring optionalThe city/town of the taxpayer's foreign address.
classification: pii -
foreignAddressStreetstring optionalThe street and number of the taxpayer's foreign address.
classification: pii -
filedByRepresentativeboolean optionalWhether this declaration is filed by an authorized proxy or legal representative rather than directly by the taxpayer, covering any of three conditions the source states as its own gate for completing Part II: (1) the declarant is a foreign natural person and the declaration is filed through a proxy with a permanent address in Bulgaria; (2) the declarant is a minor, a person under 18, or a person placed under judicial disability, and the declaration is filed by their legal representative; or (3) the declaration is filed through a general power-of-attorney holder. The source prints each condition as its own explanatory note tied to an unlabeled checkbox glyph that this cycle's plain-text extraction of the underlying .doc could not individually resolve (symbol-font checkbox glyphs do not survive text extraction) — collapsed into one boolean gating Part II, per the source's own instructions text ("Част ІІ се попълва само ако е отбелязано съответното обстоятелство..."). Disclosed as a known extraction limitation in VERIFICATION.md.
-
representativeIdstring optionalThe identification number of the authorized proxy or legal representative filing on the taxpayer's behalf.
classification: sensitive-pii -
representativeIdTypeCodeenum optionalThe code identifying which kind of number was entered in representativeId: 1=EGN, 2=LN, 3=LNCh, 4=NRA-issued service number, 5=EIK of a foreign natural person.
enum: 1 | 2 | 3 | 4 | 5 -
representativeFirstNamestring optionalThe given name of the authorized proxy or legal representative.
classification: pii -
representativeMiddleNamestring optionalThe patronymic of the authorized proxy or legal representative.
classification: pii -
representativeLastNamestring optionalThe family name of the authorized proxy or legal representative.
classification: pii -
representativeOblaststring optionalThe province (oblast) of the representative's correspondence address, when different from their permanent address.
classification: pii -
representativeObshtinastring optionalThe municipality of the representative's correspondence address.
classification: pii -
representativeSettlementstring optionalThe city/town/village of the representative's correspondence address.
classification: pii -
representativePostalCodestring optionalThe postal code of the representative's correspondence address.
classification: pii -
representativeStreetstring optionalThe street/number/complex/building/entrance/apartment of the representative's correspondence address.
classification: pii -
representativePhonestring optionalThe representative's telephone number. Optional per the form's own instructions.
classification: pii -
representativeEmailstring optionalThe representative's email address. Optional per the form's own instructions.
classification: pii -
hasAnnex1Employmentboolean optionalWhether Приложение № 1 (Annex 1, income from employment relationships) accompanies this declaration.
-
hasAnnex2SoleTraderboolean optionalWhether Приложение № 2 (Annex 2, income from business activity as a sole trader, and income under Art. 29a) accompanies this declaration.
-
hasAnnex3OtherBusinessboolean optionalWhether Приложение № 3 (Annex 3, income from other business activity) accompanies this declaration.
-
hasAnnex4Rentalboolean optionalWhether Приложение № 4 (Annex 4, rental income or other paid use of rights/property) accompanies this declaration.
-
hasAnnex5TransferOfRightsboolean optionalWhether Приложение № 5 (Annex 5, income from transfer of rights or property) accompanies this declaration.
-
hasAnnex6OtherSourcesboolean optionalWhether Приложение № 6 (Annex 6, income from other sources under Art. 35) accompanies this declaration.
-
hasAnnex7PatentTaxboolean optionalWhether Приложение № 7 (Annex 7, income subject to patent tax and/or taxi-transport tax) accompanies this declaration.
-
hasAnnex8ForeignAssetsboolean optionalWhether Приложение № 8 (Annex 8, foreign shares/holdings/permanent establishment/real estate, and final tax on foreign-source dividends/liquidation shares/certain other income) accompanies this declaration.
-
hasAnnex9DoubleTaxationReliefboolean optionalWhether Приложение № 9 (Annex 9, application of double-taxation relief methods for income declared in Annexes 1-6) accompanies this declaration.
-
hasAnnex10TaxReliefsboolean optionalWhether Приложение № 10 (Annex 10, use of tax reliefs) accompanies this declaration.
-
hasAnnex11Loansboolean optionalWhether Приложение № 11 (Annex 11, cash loans given/received) accompanies this declaration.
-
hasAnnex12FinalTaxRecalculationboolean optionalWhether Приложение № 12 (Annex 12, recalculation of final tax on Art. 37 income of foreign natural persons) accompanies this declaration.
-
hasAnnex13ExemptAndFinalTaxIncomeboolean optionalWhether Приложение № 13 (Annex 13, non-taxable income, income taxed with final tax under Art. 38 other than Annex 8's, alternative chapter-VIIa tax, and inherited/bequeathed/gifted property) accompanies this declaration.
-
hasIncomeCertCurrentYearboolean optionalWhether a reference/statement of the final amount of insurable income for the current year (Обр. 2004) accompanies this declaration.
-
hasIncomeCertPastYearsboolean optionalWhether one or more references/statements of the final amount of insurable income for past years (Обр. 2004) accompany this declaration.
-
pastYearsReferenceYearsstring optionalThe year, or years, that the past-years insurable-income reference(s) in row 14.2 relate to.
-
hasChildTaxReliefDeclarationboolean optionalWhether a declaration for the child tax relief under Art. 22c(8) (Обр. 2005) accompanies this declaration.
-
hasDisabledChildTaxReliefDeclarationboolean optionalWhether a declaration for the tax relief for children with disabilities under Art. 22d(7) (Обр. 2006) accompanies this declaration.
-
hasAnnualActivityReportboolean optionalWhether an annual activity report (per Art. 20(4) of the Accounting Act) accompanies this declaration. Required only of persons who conducted business as traders (incl. sole traders) or as registered farmers under Art. 29a; not filed by persons with no accounting-law activity during the tax year.
-
annualActivityReportReferenceNumberstring optionalThe incoming reference number and date under which the annual activity report was filed.
-
otherDocumentsCountinteger optionalThe total count of other documents or copies attached to the declaration under the Personal Income Tax Act (e.g. proof of patent tax paid, proof of foreign tax/social-security contributions paid for double-taxation relief, supplementary-row lists).
range: 0–∞ -
sumOfAnnualTaxBasesArt17number optionalRow 1 (code 4001): the sum of the annual tax bases under Art. 17, aggregated from Annexes 1, 3, 4, 5 and 6 (each out of scope for this v1.0.0 — see VERIFICATION.md).
range: 0–∞classification: financial -
totalTaxReliefDeductionsnumber optionalRow 2 (code 4002): the total amount of tax reliefs the taxpayer is entitled to deduct, taken from Annex 10 (out of scope for this v1.0.0).
range: 0–∞classification: financial -
overallAnnualTaxBasenumber optionalRow 3 (code 4003): the overall annual tax base, row 1 minus row 2. A negative result is entered as zero.
classification: financial -
taxOnOverallAnnualTaxBasenumber optionalRow 4 (code 4004): the tax on the overall annual tax base, row 3 times the 10% flat rate.
range: 0–∞classification: financial -
cashlessPaymentsTaxReliefnumber optionalRow 5 (code 4005): the relief for cashless payments made during the year (1% of row 4, capped at 500 BGN); completed only when Annex 10 Part X is completed (out of scope for this v1.0.0).
range: 0–∞classification: financial -
taxesDeductibleFromOverallTaxnumber optionalRow 6 (code 4006): taxes deductible from the tax on the overall annual tax base, aggregated from Annexes 1, 3, 4, 6, 9 and 12 (each out of scope for this v1.0.0).
range: 0–∞classification: financial -
taxReducedByReliefAndDeductionsnumber optionalRow 7 (code 4007): the tax on the overall annual tax base after subtracting rows 5 and 6. A negative result is entered with a minus sign.
classification: financial -
advanceTaxPaidDuringYearnumber optionalRow 8 (code 4008): advance tax the taxpayer personally paid during the year under Art. 43(6) and 44(3).
range: 0–∞classification: financial -
taxDueForAdditionalPaymentnumber optionalRow 9 (code 4009): tax due for additional payment (positive difference of row 7 minus row 8).
range: 0–∞classification: financial -
earlyElectronicFilingDiscountnumber optionalRow 10 (code 4010): a 5%-of-row-9 discount (capped at 500 BGN), available to taxpayers who file electronically by 31 March of the following year with no enforceable public obligations outstanding.
range: 0–∞classification: financial -
taxDueAfterDiscountnumber optionalRow 11 (code 4011): tax due for additional payment after the discount, rounded to the nearest whole lev.
range: 0–∞classification: financial -
overpaidTaxnumber optionalRow 12 (code 4012): overpaid tax, rounded to the nearest whole lev.
range: 0–∞classification: financial -
refundUnderArt128To130boolean optionalRow 12.1 (code 40121): whether the taxpayer elects to have the overpaid tax on row 12 refunded under Art. 128-130 of the Tax and Social Insurance Procedure Code (DOPK).
-
refundBankNamestring optionalThe bank to which the refund under row 12.1 should be transferred.
classification: financial -
refundBankBicstring optionalThe BIC of the bank to which the refund under row 12.1 should be transferred.
classification: financial -
refundBankIbanstring optionalThe IBAN of the account to which the refund under row 12.1 should be transferred.
classification: financial -
refundAccountHolderEgnstring optionalThe EGN of the holder of the refund account.
classification: sensitive-pii -
refundAccountHolderNamestring optionalThe name of the holder of the refund account.
classification: pii -
offsetOverpaidTaxUnderArt130aboolean optionalRow 12.2 (code 40122): whether the taxpayer elects to use the overpaid tax on row 12 to offset existing or future public obligations under Art. 130a of DOPK, instead of a direct refund.
-
offsetTotalAmountInEurnumber optionalRow 12.3 (code 40123): the total overpaid amount from row 12, converted to euro per the Law on the Introduction of the Euro in the Republic of Bulgaria (ZVERB).
classification: financial -
offsetCentralBudgetTaxesnumber optionalRow 12.4.1 (code 401241): the portion of the overpaid amount (in euro) allocated to central-budget taxes and other revenue.
classification: financial -
offsetSocialSecurityDOOnumber optionalRow 12.4.2 (code 401242): the portion allocated to State Social Insurance (DOO) contributions.
classification: financial -
offsetHealthInsuranceNZOKnumber optionalRow 12.4.3 (code 401243): the portion allocated to National Health Insurance Fund (NZOK) contributions.
classification: financial -
offsetSupplementaryPensionDZPOnumber optionalRow 12.4.4 (code 401244): the portion allocated to supplementary mandatory pension insurance (DZPO) contributions and related penalty interest.
classification: financial -
offsetForcedCollectionPublicReceivablesnumber optionalRow 12.4.5 (code 401245): the portion allocated to publicly-owed receivables under forced collection.
classification: financial -
crossBorderTaxSchemeAppliedboolean optionalWhether the taxpayer applied a cross-border tax scheme, within the meaning of Art. 143ya(4) of DOPK, during the tax year. Completed under Art. 143ya3(7) of DOPK by natural persons, including sole traders, who applied such a scheme.
-
crossBorderSchemeNumber1string optionalThe unique reference number of the first cross-border tax scheme applied during the year.
-
crossBorderSchemeNumber2string optionalThe unique reference number of a second cross-border tax scheme applied during the year, if any. The source prints exactly two numbered rows for this list.
-
declarationDatedate requiredThe date the declaration is signed.
-
taxpayerSignaturestring requiredThe taxpayer's name, standing in for their physical signature, attesting the declaration.
classification: pii -
representativeSignaturestring optionalThe authorized representative's or legal representative's name, standing in for their physical signature, when the declaration is filed on the taxpayer's behalf.
classification: pii
Verification record
This file is the source-review record for this document version, per the manual-source-review-v1 practice.
Current claim
status:draftverification.method:manual-source-review-v1verification.lastVerifiedAt:2026-07-14maturity.level:structural-reference
This is GovSchema Standard Research cycle GOV-2821. This schema adds a second schema to Bulgaria's Taxes vertical.
Duplicate-concurrent-run note, added after this schema was first authored: a separate, independent execution of the same authoring run also produced a schema for GOV-2821 — bg/nra/deklaratsiya-za-registratsiya-na-samoosiguryavashto-se-litse (NRA Form ОКД-5, self-employed-person registration), merged first as PR #466 — before this schema (PR #467) was aware of it. Per this registry's established duplicate-concurrent-run reconciliation practice, the two are kept as separate, non-overlapping schemas rather than one being discarded, since they model genuinely different NRA forms and the registry does not cap one schema per vertical per jurisdiction. #466 carries the "opens Bulgaria (51st jurisdiction)" claim in CATALOG.md; this document is presented as an addition to the Taxes vertical it already opened. See CATALOG.md's Executive Summary for both updates.
Jurisdiction/vertical screening this cycle
The cycle's own primary lead — NRA's "Декларация за регистрация на самоосигуряващо се лице" (self-employed-person registration declaration, Business Formation) — was screened first. The direct nra.bg content page for it (https://nra.bg/wps/portal/nra/documents/insurance/naredba.obshtestveno.osiguryavane.morski.litsa/ee0b7711-f4dc-4d2b-ac21-3e6366c4eedd) is a WebSphere Portal navigation shell with no fillable-document attachment of its own (unlike the Taxes lead below, its underlying wcm/connect content page carries no vp-download-attachments block at all) — a genuine dead end for a first-party fetch, not merely hard to navigate. Third-party mirrors (hamixbg.com, trox-bg.com, tera-bg.com) named in this cycle's briefing were not pursued further once the Taxes lead below turned out to be a first-party, unauthenticated, substantially richer source.
The Taxes lead — NRA's annual individual income tax return, Обр. 2001, "Годишна данъчна декларация по чл. 50 от ЗДДФЛ" — was fetched directly from nra.bg's own document page and found to be a strong, genuine, unauthenticated, first-party source (see below), so it was chosen over further-screening DMV (МВР/КАТ), Visa (МВнР), Passport (МВР), and National ID (МВР) leads. National ID was spot-checked anyway (search-only, no fetch) via МВР's own published process description, which states the application "се попълва и разпечатва на гишето" (is filled in and printed at the counter) with civil-registry data auto-populated by staff — a staff-completed, non-independently-fillable source, consistent with this registry's other MVR/counter-service dead ends; not pursued further. DMV, Visa, and Passport were not independently fetched this cycle once the Taxes lead's strength was confirmed — logged as open, unscreened Bulgaria backlog candidates for a future cycle.
Source verification (independently fetched this cycle)
- Source page:
https://nra.bg/wps/portal/nra/documents/documents_priority/0db5e77f-4b35-419e-85ce-99927af497fb("Годишна данъчна декларация по чл. 50 от ЗДДФЛ") — the WebSphere Portal wrapper page carries no directhrefto the attachment in its rendered HTML (confirmed: no.pdf/.doc/.ziphref present in the fetched page source); the actual download link was found by fetching the underlyingwcm/connectcontent fragment directly:https://nra.bg/wps/wcm/connect/agency/site/documents/documents_priority/0db5e77f-4b35-419e-85ce-99927af497fb, which renders avp-download-attachmentsblock with one attachment link. - Fetched file:
https://nra.bg/wps/wcm/connect/nra.bg25863/cc035cb3-1ede-4600-bd2c-c7d8174b5e1d/Декларация+по+чл.+50+за+2025+г.+всички+приложения.zip?MOD=AJPERES(this schema'ssource.url, with the CACHEID query parameter dropped: independently re-fetched both with and without it and confirmed byte-identical, sosource.urlrecords the shorter, stable form).- HTTP 200,
Content-Type: application/zip, 638,754 bytes. sha256(whole ZIP):f68db65db877e5607a3da2c248f076208064eb5915399c6ba5ccb5622a42ead2.- Page's own "Дата на публикуване" (publication date): Dec 29, 2025.
- The ZIP contains the current declaration (
образец 2001-1.doc), its deceased-person variant (образец 2001в.doc), and 13 numbered annex/ companion-form.doc/.docxfiles, plus a nested ZIP of the insurable- income reference (Обр. 2004). Extracted with Python'szipfilemodule (nounzipbinary available in this sandbox).
- HTTP 200,
- Modeled file:
образец 2001-1.doc(Обр. 2001, the root declaration, distinct fromобразец 2001в.doc— a deceased-person variant this v1.0.0 does not model).sha256:036d08164ba52cc0c1259bdf087663170d21c1dd620bc101c59c3b225294886e.- 303,616 bytes.
Extraction method — no PDF/AcroForm technique applies to this source
NRA distributes Обр. 2001 and every sibling annex only as Microsoft Word .doc/.docx files, not as an AcroForm PDF (independently confirmed: no PDF edition was found on nra.bg itself or on any of several third-party accounting-site mirrors turned up by search, e.g. tita.bg, schetovodnakantoravarna.com — all of which also serve .doc). The pdfjs-dist/render-and-widget-correlation technique this registry uses for scanned/AcroForm PDFs therefore does not apply here; there is no pdftotext, antiword, catdoc, LibreOffice/soffice, or Python python-docx in this sandbox to lean on either. Text was extracted with the npm package word-extractor@1.0.4 (installed standalone in a scratch directory, not committed), which parses the legacy OLE/Compound-File .doc binary format directly:
`` $ node extract.js "образец 2001-1.doc" > obr2001-1.txt ``
A material, disclosed extraction limitation: .doc's printed checkbox glyphs are rendered from a symbol font (e.g. Wingdings), and word-extractor (like every other text-only .doc reader available in this sandbox) does not render symbol-font glyphs — they extract as blank/whitespace, while the surrounding label text survives. This was directly observable for the declaration's own checkbox items (e.g. "6. Местно лице >>", "7. Чуждестранно лице >>" — the >> mark for these two is itself literal cross-reference notation printed in the template, distinct from the actual checkbox glyph which is invisible in extraction) and, more materially, for three explanatory notes describing when Part II (authorized-proxy/legal-representative identification) must be completed — the source text makes clear these are three real, distinct conditions ("деклараторът е чуждестранно физическо лице и декларацията се подава чрез пълномощник с постоянен адрес в страната"; "деклараторът е малолетно, непълнолетно или поставено под запрещение..."; "декларацията се подава от пълномощник"), each presumably tied to its own checkbox glyph somewhere in the header area, but the exact per-condition label/position of each checkbox could not be independently confirmed from plain-text extraction alone, and no PDF/rasterizable edition of this specific .doc could be produced in this sandbox (no LibreOffice/soffice available) to visually cross-check. Modeling decision, disclosed rather than guessed away: collapsed the three conditions into a single boolean, filedByRepresentative, gating Part II's own required fields — see schema.json's own field description for the verbatim disclosure. This is the one place in this schema where the field-level structure is inferred from the instructions text rather than directly read off an unambiguous per-widget position, and it is called out here for a future reviewer with LibreOffice/an equivalent rasterizer available to confirm or refine.
Everything else in the document — every numbered Part I/II/III/IV/V item, every printed footnote, every row code (4001-4012, 40121-401245) — was mapped directly from the extracted text, which preserves the original table-cell tab-separation cleanly enough to reconstruct the row/column structure by inspection (repr()-level inspection of raw lines, not just a visual dump, to confirm tab boundaries where the printed layout was ambiguous).
Field derivation, by form part
- Part I — Данни за данъчно задълженото лице (taxpayer identification). Tax year; a one-time-correction-after-deadline flag (Art. 53(2)); the taxpayer's ID number + a 5-value ID-type code (EGN/LN/LNCh/NRA service number/EIK); name (given/patronymic/family); an optional correspondence address (5 sub-fields, printed as applicable "only when different from the permanent address" already on file); optional phone/email; a resident/ non-resident boolean (the source's own items 6 "Местно лице" and 7 "Чуждестранно лице" collapsed into one boolean, consistent with this registry's
ro/anafnonResidentprecedent); self-insured-person, Art. 40(5)-health-insured, and Art. 51(1)-activity-report-obligated booleans (items 8-10); a foreign address (items 11.1-11.3,requiredWhenisNonResident); and the collapsedfiledByRepresentativeflag (see extraction-limitation note above). - Part II — Данни за упълномощеното лице или законния представител (representative identification). Mirrors Part I's identification block (ID/ID-type/name/address/contact) for the proxy or legal representative; the four core identity fields are
requiredWhenfiledByRepresentative. - Part III — Приложения към декларацията (attachment checklist, 18 rows). Modeled as one boolean per printed row: 13 numbered annexes (Приложения № 1-13, each a full companion NRA form this v1.0.0 does not itself model — see Scoping below), a current-year and a past-years insurable-income-reference flag (row 14.1/14.2, the latter with its own
pastYearsReferenceYearsfree-text field for the year(s) it covers), two child-tax-relief companion-declaration flags (rows 15-16), an annual-activity-report flag with its own reference-number field (row 17,requiredWhenon the flag), and a count of other attached documents (row 18,integer,minimum: 0). - Part IV — Изчисляване на данъка върху общата годишна данъчна основа (root tax computation). The 12 numbered worksheet rows (codes 4001-4012: aggregate annual tax base, total tax reliefs, overall tax base, tax due, cashless-payment relief, deductible taxes, net tax due, advance tax paid, tax due for additional payment, early-e-filing discount, final tax due, overpaid tax); a refund-under-DOPK-Art.128-130 flag (40121) with its own bank-details/account-holder sub-block, each
requiredWhenthat flag; and an offset-under-DOPK-Art.130a flag (40122) with its own EUR-conversion total (40123) and 5-way allocation breakdown (401241-401245, central-budget taxes / DOO pension contributions / NZOK health contributions / DZPO supplementary-pension contributions / forced collection of public receivables), eachrequiredWhenthat second flag. - Part V — Информация за трансгранични данъчни схеми (cross-border tax scheme disclosure, DOPK Art. 143ya3(7)). A boolean flag plus exactly the 2 numbered scheme-reference-number rows the source itself prints (modeled as a bounded pair,
crossBorderSchemeNumber1/2, per this registry's bounded-repeating-group convention — not an unbounded list). - Signature block. Declaration date; the taxpayer's signature (name standing in for a physical signature, per this registry's
ro/anaf/ro/dgpciprecedent); the representative's signature,requiredWhenfiledByRepresentative.
86 fields[] entries in total, plus 1 documents[] entry (the verbatim criminal-liability attestation printed above the signature block: "За деклариране на неверни данни се носи наказателна отговорност по Наказателния кодекс.").
Scoping and modeling judgment calls
- Models the root declaration (Обр. 2001) only — no annex content. Обр. 2001 is an omnibus "root" form: every individual files this one document and checks off which of 13 numbered Приложения (each its own separate NRA form, covering one income category — employment, sole-trader business, rental, capital transfers, foreign assets, tax reliefs, loans, etc.) accompany it. This v1.0.0 models only the root document's own 86 fields (identification, the attachment checklist itself, the root-level tax computation, and the cross-border-scheme/signature blocks) — not the field-by-field content of any annex. This mirrors this registry's existing precedent for other jurisdictions with a root-form-plus-annexes structure (e.g.
ch/zh's Hilfsblatt series,ro/anaf's own Anexa companion forms): each annex is a natural candidate for its own, separately-versioned companion schema in a future cycle, disclosed here rather than silently dropped. образец 2001в(deceased-person variant) is a different document, out of scope. Fetched and diffed againstобразец 2001-1.docthis cycle to confirm it is a structurally distinct form (its own Part I is "Данни за декларатора," with an heir/legatee selector absent from the standard declaration) rather than a mere cosmetic variant — genuinely a separate schema candidate, not this v1.0.0's concern.- Part IV's worksheet rows modeled
required: false, not excluded. Every row 1-12 formula explicitly aggregates figures from one or more of the out-of-scope annexes (e.g. row 1's own printed formula references Annexes 1, 3, 4, 5, 6). Since this v1.0.0 does not model those annexes, a filer with no annexes attached would leave most of Part IV blank/zero; rather than silently drop these rows, they are kept as ordinary optionalnumberfields with the source's own formula quoted indescription, consistent with this registry'sro/anafprecedent of disclosing a printed footnote/formula rather than omitting the row it belongs to. - The three Part-II-triggering conditions collapsed to one boolean. See the Extraction method section above — a disclosed, not invented, gate.
- Resident/non-resident collapsed to one boolean (
isNonResident). The source prints "6. Местно лице" and "7. Чуждестранно лице" as two adjoining checkboxes for what is, on its own terms, a single binary choice; modeled as one boolean per this registry'sro/anafnonResidentprecedent, rather than two independent (and redundant) booleans. - Comb-style/free-text ID fields kept as unconstrained or loosely patterned strings. Unlike Romania's fixed-width CNP/CAEN comb boxes,
taxpayerIdcovers five structurally different identifier types (EGN, LN, LNCh, an NRA service number, or a foreign EIK) selected viataxpayerIdTypeCode, so it is modeled as a loosely bounded alphanumeric string (^[0-9A-Za-z]{1,15}$) rather than a single fixed-digit pattern — a deliberately looser constraint than this registry's usual practice for a single-format national ID, disclosed here rather than silently over-constrained to the EGN's own 10-digit shape. - No
editionaxis used, despite being an annual filing. Consistent with this registry'sro/anaf/jo/istdprecedent for other annual personal-tax returns, the tax year is modeled as an ordinarytaxYearfield rather than a path-leveledition.
Conformance run
No PDF/AcroForm widget-count cross-check applies (see Extraction method). In its place, two hand-authored mock instances were built and checked against schema.json's own required/requiredWhen/validation.pattern/ validation.enum/validation.minimum grammar with a disposable, from-scratch Python checker (not committed, per this registry's own established practice of not committing one-off verification scripts):
standard-resident-filer— a resident individual, non-amending filing, Annex 1 (employment income) attached, self-insured/Art.40(5)/Art.51(1) all false, no representative, no refund/offset election, no cross-border scheme. 47 of 86 fields populated. PASS.nonresident-via-representative-with-refund— a non-resident filer (exercisingforeignAddressCountry/foreignAddressSettlement/foreignAddressStreet), a one-time post-deadline correction, filed through a representative (exercising the full Part II block andrepresentativeSignature), Annex 4 (rental income) and a past-years insurable-income reference attached, an overpaid-tax refund election under Art. 128-130 (exercising the full bank-details/account-holder block), and a cross-border tax scheme disclosure. 58 of 86 fields populated. PASS.
Two mutation-control checks confirmed the checker actually enforces the gates rather than passing vacuously: dropping taxpayerId from the first instance, and dropping refundBankIban from the second (with refundUnderArt128To130 still true), each correctly raised exactly the one expected missing-required-field error.
``` $ node tools/validate.mjs registry/bg/nra/godishna-danachna-deklaratsiya-chl-50-zddfl/1.0.0/schema.json ok registry/bg/nra/godishna-danachna-deklaratsiya-chl-50-zddfl/1.0.0/schema.json 1/1 document(s) passed.
$ node tools/validate-ajv.mjs registry/bg/nra/godishna-danachna-deklaratsiya-chl-50-zddfl/1.0.0/schema.json ok registry/bg/nra/godishna-danachna-deklaratsiya-chl-50-zddfl/1.0.0/schema.json [v0.3] 1/1 document(s) validated against the meta-schema (ajv 2020-12). ```
tools/node_modules did not exist in this worktree at the start of this cycle; npm ci --include=dev installed ajv/ajv-formats cleanly with no wipe. word-extractor/pdfjs-dist were installed in an unrelated scratch directory (/tmp/docparse, outside the repo) rather than inside tools/, so this cycle's own extraction tooling could not collide with tools/'s committed dependency set at all.
tools/govschema-client/registry-index.json was regenerated via npm run build-index inside tools/govschema-client/ — see the diff in this PR for the updated jurisdiction/document counts.
Scope and jurisdiction notes
- Adds a second schema to Bulgaria's Taxes vertical — PR #466 (
bg/nra/deklaratsiya-za-registratsiya-na-samoosiguryavashto-se-litse) opened Bulgaria as the registry's 51st jurisdiction and this vertical, and merged first; see the duplicate-concurrent-run note above. DMV, Business Formation, Visa, Passport, and National ID & Civic Documents are all open, unscreened (Business Formation and National ID were screened and found weak/dead-end this cycle — see above) backlog candidates for Bulgaria — DMV, Visa, and Passport not independently fetched this cycle. jurisdiction.levelisnational— NRA is Bulgaria's national revenue authority.process.typeisfiling, matching the form's own nature as an annual self-assessment declaration.process.languageisbg: the specimen's full text is entirely in Bulgarian; no English-language parallel edition was located or expected for a domestic self-assessment form of this kind.
Re-verification
Per the practice's cadence, nextReviewBy is set to 2027-01-14 (6 months). A future review should prioritize: (1) confirming whether the 2026 tax year has produced a new edition of Обр. 2001 at a new URL (NRA republishes this ZIP bundle annually, per the Ministry of Finance order cadence observed this cycle — Order № ЗМФ-1780/20.12.2024, Държавен вестник issue 109/28.12.2024, approved forms 2001/2021/2031/2051/2010/2013 for the 2025 filing season); (2) whether a future cycle wants to author one or more of the 13 numbered annexes (Приложение № 2, sole-trader business income, is likely the next-most-common after employment income) as companion schemas; (3) re-attempting the three-condition Part-II-trigger checkbox disambiguation with a rasterizer (LibreOffice/soffice) available, rather than plain-text extraction alone; (4) whether Bulgaria's other four unscreened verticals (DMV, Visa, Passport, National ID already screened weak) should be scouted.
View the raw record (VERIFICATION.md)
Version history
-
1.0.0draftlatestthis pagehas verification recordschema.json
Independent and non-affiliated
GovSchema is an independent, open-source project. This reference is not produced, reviewed, or endorsed by Национална агенция за приходите or any government. The authoritative source is always the live government form and its official instructions.