Registry entry

Bulgaria — Application for Issuance of a Driving Licence

The Ministerstvo na vatreshnite raboti's (MVR, Bulgaria's Ministry of Interior) "Заявление за издаване на свидетелство за управление на моторно превозно средство" (Приложение № 2а — Application for Issuance of a Driving Licence), a single-page specimen published unauthenticated on MVR's own "Бланки и образци" (Forms and specimens) static-forms page. Opens Bulgaria's DMV vertical (3 of 6), following the Taxes vertical opened by NRA's Form ОКД-5/Обр. 2001 (GOV-2821) and the Visa vertical opened by MVnR's Type-D national visa application (GOV-2830) — a distinct MVR (Ministry of Interior) source from either of those, and a genuinely fillable specimen unlike this registry's already-confirmed dead end for MVR's vehicle-registration application (system-generated at the counter, per GOV-2830's own VERIFICATION.md). Models the requested service tier, the applicant's national identification number, date/place of birth, name in both Cyrillic and Latin script, family name and other given name(s), address, sex, other nationality and naturalization-decree particulars, contact details, the office where the finished licence should be collected, an optional block for an authorized person (proxy) collecting the finished document on the applicant's behalf, an optional declaration renouncing previously-held driving-licence categories, the identity document (national ID card or, for foreign residents, a residence permit) presented at submission, the submission date, and the applicant's (or submitting proxy's) signature, plus a photograph, a signature specimen, and the form's own printed criminal-liability truthfulness declaration as documents[] entries. Excludes: the "Вх. номер" (incoming/office reference number) and "До" (addressee) office-intake fields, neither of which carries a printed blank/dotted entry line (unlike every other applicant-facing field on the page); the "от МВР" issuing-authority caption, which is static text (MVR is the sole issuing authority, never applicant-supplied); six "Вярно/Невярно" (True/False) checkbox pairs (beside the national-ID number, date of birth, place of birth, Cyrillic name, Latin name, and address fields respectively) that the form's own explanatory text ties to a system-assisted counter workflow in which the applicant's civil-status data is auto-filled from Bulgaria's civil-population and ID-document registries (NBD "Population" and NAIF "НРБЛД") for confirmation against the record on file — a distinct in-person, system-assisted pathway from the plain paper-form completion this schema models, so these six confirmation checkboxes are out of scope rather than modeled as fields; and "Имена на служителя, приел заявлението" / "Подпис на служителя" (the receiving official's name/signature), also office-only. 29 fields, plus 3 documents[] entries. GovSchema is an independent, non-profit standards body and is not affiliated with, endorsed by, or operated by the Government of Bulgaria or the Ministerstvo na vatreshnite raboti.

Registry entry

bg/mvr/zayavlenie-za-izdavane-na-svidetelstvo-za-upravlenie-na-mps

Jurisdiction
Bulgaria · national
Version
1.0.0
Verification
draft

Authoritative source MVR "Заявление за издаване на свидетелство за управление на моторно превозно средство" (Приложение № 2а), published on mvr.bg's own "Бланки и образци" (Forms and specimens) static-forms page

Machine access

Registry catalog
registry/index.jsonone record per schema id

Field reference

29 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

  • serviceType enum required

    The requested processing tier: обикновена (standard), бърза (fast), or ускорена (expedited).

    enum: standard | fast | expedited
  • nationalId string required

    The applicant's EGN (Bulgarian personal number), LNCh (personal number of a foreigner), or LN, printed on the form as a 10-box grid.

    patternclassification: sensitive-pii
  • dateOfBirth date required

    Дата на раждане / Date of birth

    classification: sensitive-pii
  • placeOfBirth string required

    Място на раждане (Населено място, община, област или държава) / Place of birth

    length: 0–150classification: pii
  • namesInCyrillic string required

    Имена на кирилица

    length: 0–200classification: pii
  • namesInLatin string required

    Имена на латиница

    length: 0–200classification: pii
  • familyName string required

    Фамилия / Family name

    length: 0–100classification: pii
  • otherNames string required

    Други имена / Other name/s

    length: 0–150classification: pii
  • address string required

    Адрес (област, община, населено място, бул./ул., номер, вход, етаж, апартамент)

    length: 0–300classification: pii
  • sex enum required

    Пол / Sex

    enum: male | female
  • otherNationality string optional

    Only completed when the applicant holds a nationality in addition to Bulgarian, per the field's "Друго" (Other/additional) label.

    length: 0–100classification: pii
  • citizenshipDecreeNumber string optional

    The number of the presidential decree under which Bulgarian citizenship was granted, where applicable, per the form's own printed "Указ / Decree" field alongside otherNationality.

    length: 0–50
  • phone string optional

    Телефон за връзка / Phone

    length: 0–30classification: pii
  • email string optional

    Per the form's own printed note, an applicant who provides an email address is notified when the finished document is ready and before the document's validity period expires.

    length: 0–254classification: pii
  • placeOfReceiving string required

    Място на връчване / Place of receiving

    length: 0–200
  • authorizedPersonName string optional

    Only completed if the requested document will be collected by an authorized person (proxy) rather than the applicant themselves, per the form's own printed instruction; the form prints no explicit boolean gate tying this block to a specific condition, so it is modeled as unconditionally optional rather than an invented requiredWhen gate.

    length: 0–200classification: pii
  • authorizedPersonNationalId string optional

    The authorized person's (proxy's) EGN. Only completed together with authorizedPersonName.

    patternclassification: sensitive-pii
  • authorizedPersonDocumentType string optional

    The type of identity document the authorized person (proxy) will present, e.g. a Bulgarian ID card or foreign passport. Only completed together with authorizedPersonName.

    length: 0–100
  • authorizationDate date optional

    The date of the proxy authorization, printed alongside the authorized person's document-type field. Only completed together with authorizedPersonName.

  • authorizedPersonDocumentNumber string optional

    The number of the authorized person's (proxy's) identity document. Only completed together with authorizedPersonName.

    length: 0–50
  • authorizedPersonDocumentIssueDate date optional

    The issue date of the authorized person's (proxy's) identity document, issued by MVR. Only completed together with authorizedPersonName.

  • authorizationSignature string optional

    The applicant's name, standing in for a physical signature, authorizing the named person (proxy) to collect the finished document. Only completed together with authorizedPersonName.

    classification: pii
  • categoriesToDecline string optional

    The driving-licence category or categories the applicant is voluntarily renouncing, if any, per the form's own printed "Fill in categories which you would like to decline to" instruction. Only completed when applicable.

    length: 0–200
  • idCardNumber string optional

    The identity document presented at submission by a Bulgarian-citizen applicant (or their proxy). The form prints this and residencePermitNumber as separate lines with no explicit checkbox distinguishing which applies; typically only one of the two is completed, per the submitter's identity-document status.

    length: 0–30classification: sensitive-pii
  • residencePermitNumber string optional

    The residence-permit number presented at submission by a foreign-national applicant (or their proxy) without a Bulgarian ID card. Alternative to idCardNumber.

    length: 0–30classification: sensitive-pii
  • residencePermitIssueDate date optional

    The issue date of the residence permit named in residencePermitNumber, issued by MVR.

  • submissionDate date required

    Дата на подаване

  • applicantSignature string required

    The applicant's (or submitting proxy's) name, standing in for a physical signature, per this registry's established convention for paper-form signature blocks.

    classification: pii
  • submitterName string required

    The printed name of the person appearing in person to submit the application and the accompanying truthfulness declaration — either the applicant or, if designated above, their authorized proxy.

    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: draft
  • verification.method: manual-source-review-v1
  • verification.lastVerifiedAt: 2026-07-14
  • maturity.level: structural-reference

This is GovSchema Standard Research cycle GOV-2853 (child of GOV-2851, "GovSchema Standard Research"). This schema opens Bulgaria's DMV vertical (3 of 6), following Taxes (two schemas, GOV-2821) and Visa (bg/mvnr/zayavlenie-za-izdavane-na-natsionalna-viza-tip-d, GOV-2830).

Provenance of this candidate

This candidate was pre-scouted, screened, and confirmed genuine during the prior GOV-2837 cycle (which authored Romania's Visa vertical instead and left this Bulgaria DMV candidate as an explicit, well-sourced, ready-to-author backlog item — see CATALOG.md's GOV-2837 correction to GOV-2830's earlier, too-broad "Bulgaria DMV is a dead end" claim). That prior screening established: MVR's "Бланки и образци" (Forms and specimens) static-forms page links this specimen directly and unauthenticated, HTTP 200, application/pdf, 382,212 bytes, a genuine text-layer (non-scanned) static specimen — a different MVR (Ministry of Interior) form from the already-confirmed vehicle-registration dead end (GOV-2830: that page states the application "is generated by MVR's information system" with no independently-fillable blank ever published; this driving-licence specimen, by contrast, is a genuine downloadable blank template).

This cycle independently re-fetched, re-derived, and re-verified all of the above from scratch rather than trusting the prior cycle's numbers.

Source verification (independently re-fetched this cycle)

  • Forms-and-specimens page: https://mvr.bg/dbds/%D0%B4%D0%B5%D0%B9%D0%BD%D0%BE%D1%81%D1%82%D0%B8/%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%BE-%D0%BE%D0%B1%D1%81%D0%BB%D1%83%D0%B6%D0%B2%D0%B0%D0%BD%D0%B5/blanki ("Бланки и образци," under MVR's Дирекция "Български документи за самоличност" / DBDS section) — HTTP 200, fetched fresh this cycle with a browser-like User-Agent. The page lists, among many identity-document specimens, a direct link titled "Заявление за издаване на свидетелство за управление на моторно превозно средство - образец" pointing at this schema's own source.url. (DBDS is the Identity Documents directorate that hosts this static-forms page; MVR's driving-licence issuing authority is the Ministry as a whole, per the form's own footer, so authority.name is kept at the ministry level, consistent with how this registry attributes other nationally-uniform forms hosted on a sub-unit's own page — e.g. ro/dgpci's county-Prefecture-hosted-but-nationally-attributed precedent.)
  • Fetched file: https://mvr.bg/upload/301782/%D0%B7%D0%B0%D1%8F%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5%20%E2%84%96%202a%20%D0%A1%D0%A3%D0%9C%D0%9F%D0%A1.pdf (this schema's source.url).
    • HTTP 200, Content-Type: application/pdf, 382,212 bytes — matches both the prior cycle's own byte count and the response's own Content-Disposition: ...; size=382212 header, byte for byte.
    • sha256: e633ee22c10e650186b69b5c2278a51c02eb8fb7c413fee875c724066cec9576, confirmed byte-identical across two independent fetch methods (curl and wget, both against the live mvr.bg origin — no Wayback fallback was needed this cycle since the live source fetched cleanly).
    • Last-Modified: Tue, 14 Jul 2026 04:03:58 GMT (this response header reflects the fetch time itself, per Cloudflare's cache-control: private handling of this endpoint — not a meaningful document-revision date).
    • 1 page. Confirmed via pdfjs-dist@3 (legacy build, Node.js): doc.numPages === 1. Zero AcroForm Widget annotations (getAnnotations() returns an empty array) — a genuine flat text-layer specimen, not an AcroForm and not a scanned image (every label, checkbox glyph, and dotted blank-line extracts as discrete, positioned text items).
    • The full page was rendered to PNG at 2.5x scale via pdfjs-dist + node-canvas (with standardFontDataUrl supplied) and visually cross-checked, in cropped sections, against the text-layer transcript. This confirmed: the exact reading order and cell boundaries of every field (several labels/blanks are ordered ambiguously by raw y-coordinate alone, e.g. the "Вярно/Невярно" checkbox pairs sit only 1-3pt above their associated blank line in several cells); that "Вх. номер" and "До" carry no printed blank/dotted entry line, unlike every other applicant-facing field (supporting their exclusion); and that the "от МВР" caption completes a fixed sentence ("... issued by MVR") rather than introducing its own blank.

Extraction method

Text-layer extraction via pdfjs-dist@3 (legacy build), reusing this registry's established Node.js + pdfjs-dist render/extract technique. No AcroForm widget correlation applies (zero Widget annotations on this source) — field boundaries were read directly off the printed labels and blank/dotted lines, cross-checked against a full-page render at 2.5x scale (cropped into header/mid/bottom sections for close reading) to resolve reading order and cell groupings that raw y-coordinate sorting alone left ambiguous.

Field derivation, by form section

  • Header. "Вх. номер" (incoming/office reference number) and "До" (addressee) — both excluded (office-intake, no printed blank/dotted entry line, unlike every other field on the page). "Вид на услугата" (service type): three checkboxes — обикновена/бърза/ускорена (standard/fast/ expedited) — modeled as a required enum.
  • Personal-data section. The applicant's national ID number (ЕГН/ЛНЧ/ЛН, printed as a 10-box grid); date of birth; place of birth; full name in Cyrillic script (one line); full name in Latin/Roman transliteration (one line); family name and other/given names (a second, separately-labelled breakdown of the same name data, matching how a Bulgarian driving licence itself prints family name and given name(s) as separate MRZ-style fields — modeled as two additional fields rather than collapsed into the two full-name lines above, since the source prints all four as distinct blanks); address; sex (М/Ж checkboxes, modeled as a required enum); other nationality (for applicants holding a second nationality); a naturalization decree number ("Указ / Decree," for applicants who acquired Bulgarian citizenship by presidential decree); phone; email (the form's own printed note: an applicant who supplies an email is notified when the document is ready and before its validity expires); and the office where the finished licence should be collected ("Място на връчване / Place of receiving"). Six "Вярно/Невярно" (True/False) checkbox pairs are printed adjacent to the national-ID, date-of-birth, place-of-birth, Cyrillic-name, Latin-name, and address fields respectively (re-confirmed by direct count against the rendered page — the prior cycle's own draft undercounted this at five; independently re-verified at six by both the raw text-extraction y positions and the visual render). The form's own explanatory paragraph ties these to a system-assisted, in-person counter workflow — "the application contains automatically filled current civil-status data from NBD 'Population' / via NAIF 'НРБЛД,' as well as a photo and signature from the last-issued Bulgarian personal document" — a different pathway from the plain paper-form completion this schema models (an agent filling in the blank specimen from scratch has no pre-filled registry data on this form to confirm or dispute). These six checkboxes are therefore treated as out of scope for this v1.0.0 rather than modeled as fields[] entries; see "Scoping and modeling judgment calls" below.
  • "Данни за упълномощено лице" (authorized-person/proxy) block. The form's own instruction: "fill in only if the requested identity document(s) will be received by an authorized person." No printed boolean gate ties this block to an explicit condition, so all six of its fields (name, EGN, document type, authorization date, document number, and the applicant's own signature authorizing the proxy) are modeled as unconditionally optional rather than an invented requiredWhen gate, consistent with this registry's established convention for "fill in only if applicable" instructions with no explicit checkbox (e.g. bg/mvnr's guardianDetails precedent).
  • Category-decline declaration. "Декларирам, че се отказвам от придобита/и категория/и за правоуправление на МПС" (I declare that I renounce acquired driving-licence category/ies) — a free-text field for the category code(s) to decline, completed only when applicable.
  • Submission section. The identity document presented at submission — a Bulgarian ID-card number for a citizen applicant, or a residence-permit number plus its issue date for a foreign-national applicant without a Bulgarian ID card (the source prints both as parallel blanks with no explicit toggle distinguishing which applies, so both are modeled as independently optional); the submission date; the applicant's (or submitting proxy's) printed name (preceding the identity-document row, tied to the form's own criminal-liability declaration under Art. 313 of the Penal Code); and the final applicant/proxy signature line.
  • Excluded as office-only. "Имена на служителя, приел заявлението" / "Подпис на служителя" (the name/signature of the employee who received the application) — the form's own final row, consistent with this registry's established office-only-content exclusion convention (e.g. rs/mup, rs/mfa, ro/dgpci).

29 fields[] entries in total, plus 3 documents[] entries: the applicant photograph ("Снимка 3,5/4,5," a 3.5×4.5cm photo box), a signature specimen box (printed in the left margin, aligned with the place-of-birth row — this is a physical signature specimen reproduced on the issued licence itself, distinct from the typed-name applicantSignature/authorizationSignature attestation fields), and the form's own printed criminal-liability truthfulness declaration under Art. 313 of the Penal Code.

Scoping and modeling judgment calls

  • The six "Вярно/Невярно" confirmation checkboxes are out of scope, not modeled as fields. See "Field derivation" above. This is a judgment call, not a certainty: the form's own text does not explicitly label these boxes "for official use only" the way this registry's other office-only columns are labelled (e.g. bg/mvnr's "Попълва се служебно" column, ro/dgpci's "Caseta A"). The disclosure here is deliberately explicit about that ambiguity: the reasoning for exclusion is that these checkboxes presuppose a system-assisted counter workflow (pre-filled civil-registry data to confirm or dispute) that does not arise when independently filling in this blank specimen from scratch with fresh data, not a claim that they are unambiguously staff-only.
  • "Вх. номер" and "До" excluded. Neither carries a printed blank/dotted entry line on the specimen, unlike every other applicant-facing field on the page — supporting treating both as office-intake/routing content rather than applicant-fillable fields, though (as with the confirmation checkboxes above) this is a disclosed judgment call rather than an explicit "office use only" label on the source.
  • Cyrillic/Latin full-name lines modeled alongside separate family-name/other-names fields. The source prints all four as distinct blanks (two combined full-name lines, then a separate family-name/ given-name(s) breakdown) rather than one superseding the other; both are modeled rather than assuming redundancy, since a Bulgarian driving licence itself prints family name and given name(s) separately (mirroring how this registry already separates surname/given-names fields on passport and visa schemas even when a combined name line also exists elsewhere on the same source).
  • Authorized-person (proxy) block fully optional, no invented gate. See "Field derivation" above.
  • idCardNumber/residencePermitNumber both optional, no invented mutual-exclusivity gate. The source prints no checkbox distinguishing which identity-document type applies; modeling one as requiredWhen the other is absent would require gating on field absence, which this registry's own established practice avoids (see the notEquals empty-string/absent-field gotcha already documented for this repo).
  • serviceType/sex modeled as enum, matching this registry's established convention for a small, closed, mutually-exclusive printed checkbox set (e.g. bg/mvnr's travelDocumentType/maritalStatus).
  • No edition axis. A standing application form, not a dated annual filing.
  • process.type is application, matching this registry's convention for first-issuance application forms.

Conformance run

No PDF/AcroForm widget-count cross-check applies (zero fillable Widget annotations on this source — confirmed above). In its place, two hand-authored mock instances were built and checked against schema.json's own required/requiredWhen/validation.enum/validation.maxLength/ validation.pattern grammar with a disposable, from-scratch Python checker (not committed, per this registry's established practice of not committing one-off verification scripts):

  • single-applicant-basic — a Bulgarian-citizen applicant, standard service tier, no proxy, no category declines, no second nationality. 17 of 29 fields populated. PASS.
  • proxy-collection-with-declines — the same applicant additionally exercising the full authorized-person (proxy) block, declining two categories (C1, C1E), and declaring a second nationality plus a naturalization-decree number. 27 of 29 fields populated. PASS.

Three mutation-control checks confirmed the checker actually enforces the grammar rather than passing vacuously: dropping nationalId from the first instance (unconditionally required — correctly flagged missing); setting sex to an out-of-enum value (correctly flagged as an enum violation); and dropping submissionDate (unconditionally required — correctly flagged missing). Each mutation raised exactly its one expected error.

``` $ node tools/validate.mjs registry/bg/mvr/zayavlenie-za-izdavane-na-svidetelstvo-za-upravlenie-na-mps/1.0.0/schema.json ok registry/bg/mvr/zayavlenie-za-izdavane-na-svidetelstvo-za-upravlenie-na-mps/1.0.0/schema.json 1/1 document(s) passed.

$ node tools/validate-ajv.mjs registry/bg/mvr/zayavlenie-za-izdavane-na-svidetelstvo-za-upravlenie-na-mps/1.0.0/schema.json ok registry/bg/mvr/zayavlenie-za-izdavane-na-svidetelstvo-za-upravlenie-na-mps/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. pdfjs-dist/canvas were reused from a pre-existing scratch installation at /tmp/pdfscratch (outside the repo, left over from a prior cycle's own verification work), so this cycle's own extraction tooling never touched tools/'s committed dependency set.

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.

Recovery note

A prior agent session's worktree for this same issue (GOV-2853) was found to already contain a substantially-complete draft of this exact schema — same source URL, same field structure, same 29/3 field/document counts — that had never been committed (an infra-crash artifact, per this repo's own established EnterWorktree/crash-recovery precedent). That draft was used as the starting point for this cycle's schema.json rather than re-authored from a blank slate, but every sourcing claim in it was independently re-verified from scratch this cycle (fresh fetch via two methods, fresh sha256, fresh pdfjs-dist extraction and page render), and one genuine defect was found and fixed in the process: the draft's own description undercounted the "Вярно/Невярно" checkbox pairs at five where a direct re-count (both from raw text-extraction y-positions and the rendered page) confirms six.

Scope and jurisdiction notes

  • Opens Bulgaria's DMV vertical (3 of 6): Taxes (two schemas, GOV-2821), Visa (GOV-2830), DMV (this schema). Passport and National ID & Civic Documents remain open, unscreened Bulgaria backlog (National ID was spot-checked weak for the ID-card application specifically in GOV-2821; Passport is unscreened).
  • jurisdiction.level is national — MVR is Bulgaria's national Ministry of Interior and sole driving-licence-issuing authority.
  • process.type is application, matching this registry's convention for first-issuance application forms.
  • process.language is bg: the modeled edition is the bilingual Bulgarian/English specimen (English appears throughout as a secondary in-line gloss on most labels, but the form itself is not published as a separate English-language edition).

Re-verification

Per the practice's cadence, nextReviewBy is set to 2027-01-14 (6 months). A future review should prioritize: (1) confirming the source PDF has not been superseded by a newer edition (this specimen's own numbering, "Приложение № 2а," suggests it is one annex among several in MVR's underlying regulation — a future review could confirm whether that regulation has been amended); (2) whether Bulgaria's Passport vertical has a genuine, unauthenticated, first-party source (unscreened this cycle); and (3) re-attempting a targeted, browser-rendered fetch of the Registry Agency's Business-Formation template portal (portal.registryagency.bg, confirmed JavaScript-gated in GOV-2830) now that a driving-licence-specific False lead has been resolved.

View the raw record (VERIFICATION.md)

Version history

  • 1.0.0 draft latest this page has verification record schema.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.