Skip to content

D700 — fiscal registration / fiscal-vector changes

The electronic self-service declaration for subsequent mentions to a taxpayer's fiscal registration — full title "Declarație pentru înregistrarea/modificarea în mediu electronic a mențiunilor ulterioare înregistrării fiscale". This file is a completion guide: what the declaration settles, who files it and when, and how each form section maps onto the section flag and detail attributes the wire carries — followed by the technical wire/DUK layer. ANAF's validator jar (D700Validator.jar) and published instructions are the authority; this guide is a distilled bridge, not a re-implementation of the rules. The instances below were proven hands-on on 2026-07-17 against D700Validator.jar J5.0.3 (2026-04-23; feed directory D700_27) — read the warning-only validation gotcha first: a valid D700 never writes a bare ok.

D700 registers, amends, or removes elements of a taxpayer's fiscal vector (vectorul fiscal) — the set of declared tax obligations ANAF records against a taxpayer: VAT (art. 316/317), employer withholding + social contributions, profit tax vs microenterprise income tax, excise, and other taxes and duties. It carries only the changes; it does not re-file the taxpayer's identity data. It is transmitted exclusively by electronic remote means (via the ANAF portal / SPV), signed with a qualified certificate.

  • Current model: the D700 form and the fiscal-vector obligation types are approved by OPANAF 1699/2021 (M.Of. 1056 și 1056 bis/04.11.2021), as amended — most recently by OPANAF 15/2026 (M.Of. 17/14.01.2026), applicable from the January-2026 emission (form version 0126, updated 11.03.2026). OPANAF 15/2026 added Section F row 12 "Taxa logistică pentru gestionarea fluxurilor de bunuri extracomunitare" (the wire's 702 obligation) across the 010/013/015/016/700 family and a new Section D on form
  • The D700 electronic path itself began with OPANAF 4136/2020 (in force 30 March 2021).
  • Legal basis: art. 341 alin.(1) lit. g) Legea 227/2015 (Codul fiscal) and art. 342 alin.(1) Legea 207/2015 (Codul de procedură fiscală); the declaration-of-mentions obligation itself rests on art. 88 (mentions) and art. 90 (radiere) of the Codul de procedură fiscală.
  • Two operation modesfelD: 2 = declarație de mențiuni (amend the vector) and 3 = declarație de radiere (strike off the taxpayer or a vector element). There is no felD=1 plain first-registration mode in this electronic path — see Special attention & gotchas.

Who files & when

  • Who: a taxpayer already holding a fiscal registration who needs to change its fiscal vector — register or cancel VAT, switch the VAT period, elect micro vs profit tax, register or deregister as an employer, add/remove an excise or other obligation, open a secondary office, move the fiscal domicile, or be struck off. Initial fiscal-vector setup for a newly incorporated company runs through the ONRC one-stop (ghișeul unic) at incorporation, or the 010–070 registration-declaration family for entities outside ONRC's scope; D700 is the electronic path for subsequent mentions. The dec_inreg code states which base registration declaration the taxpayer type maps to — 010 legal persons / associations, 013/015/016 non-residents, 020/030 natural persons (with / without a CNP), 040 public institutions, 070 independent activities / liberal professions.
  • Deadline — event-driven, not periodic. The general rule is 15 days from the date the change occurs (art. 88/90 Codul de procedură fiscală). Specific cases carry their own terms, spelled out in the ANAF instructions (Anexa nr. 10):
  • VAT period switch forced by an intra-EU acquisition (quarterly → monthly): within 5 working days of the end of the month in which the tax became exigible.
  • Profit-tax annual-system option / renunțare (Section C, row 1.4): by 31 January inclusive of the fiscal year; for a modified (non-calendar) fiscal year, within 30 days of the start of that fiscal year.
  • Modified fiscal year (Section C, row 1.5): within 15 days of the start of the modified fiscal year, or by the 25th of the third month from when the old fiscal year would have closed.
  • Monthly-by-option for salary withholding (Section D, row 1.1.2): by 31 January inclusive.
  • For 2026, practitioner guidance flags 31 March 2026 as the practical cutoff for many micro/profit vector mentions.

Filling guide

The document is a root <D700> element carrying header + identification + one flag per top-level section (Bifa_ABifa_G) as attributes, each flagged section then carrying its own detail attributes; the multi-row parts (the fiscal domicile in Section A, and the Section II identification block) repeat as child <domiciliu> elements. Unlike the flat single-element D300, D700 is mode-driven and section-flagged — you set felD, name the taxpayer, raise exactly the section flags for the vector elements you are touching, and fill only those sections. The full attribute ↔ form-row map (every field's type, length, formula, and error) lives in the structure/validation annex (structura_XML_D700_0126_110326.pdf); this guide distils the identification block, the section map, and the VAT sub-sections.

totalPlata_A is a section counter, not money. It must equal Bifa_A+Bifa_B+Bifa_C+Bifa_D+Bifa_E+Bifa_F+Bifa_G (structure-annex row 8) — the count of raised top-level section flags. With a single section flagged it is 1. At least one section flag must be set or the run fails E_Bife ("Formular D700 fara bife sectiuni").

Required header / identification block

Attribute Form field Notes
an An solicitare year, N(4), ≥ 2022 (the soft page states ≥ 2023)
luna Luna solicitare month, N(2), 1–12
felD I. Felul declarației N(1)2 = mențiuni, 3 = radiere (no 1)
nume_decl / pren_decl / func_decl Nume / Prenume / Funcție declarant required text
totalPlata_A Suma de control section counter = Bifa_A+…+Bifa_G
cif 1. Cod de identificare fiscală N(13); CUI(10) check, or CIF(13) when dec_inreg=020/030
den 2. Denumire C(200), required
dec_inreg 3. Declarația de înregistrare depusă inițial C(3), closed list 010/013/015/016/020/030/040/070

dec_inreg gates which sections may be filled (structure-annex cross-rules), e.g. 013/016 reject Section A.I; 015/030 reject Section A entirely; 030 requires a non-NIF cif. Filing dec_inreg="1" is rejected — "valoarea '1' nu se afla in lista".

The fiscal-vector sections

Each Bifa_X="1" raises a top-level section; the taxpayer fills only the ones it is changing. The section identifies the vector element:

Flag Section Vector element it toggles
Bifa_A A — Domiciliul fiscal register / modify the fiscal domicile (sub-flags Bifa_A1 A.I sediu/loc de desfășurare, Bifa_A2 A.II domiciliu actual, Bifa_A3 A.III noul domiciliu); detail in repeating <domiciliu tip_a="2/3/4">
Bifa_B B — Înregistrarea în scopuri de TVA și vectorul fiscal TVA the whole VAT vector — see the B.I–B.VIII table below
Bifa_C C — Vectorul fiscal pentru impozitele directe datorate profit tax vs micro: Bifa_C1 imp. profit (100), Bifa_C2 imp. micro (120), Bifa_C3 imp. specific (130, abrogat); Bifa_trecePM (0 none / 1 profit→micro / 2 micro→profit); Bifa_nou_infiintata (new taxpayer); Per_1c13 payment period (02 trimestrial / 04 anual / 05 anual cu plăți anticipate / 09 dizolvare)
Bifa_D D — Vectorul fiscal pentru angajatori employer obligations: imp. venituri din salarii, CAS, CASS, CAM (Imp_d 602/412/432/480); detail in repeating <impozite_D>
Bifa_E E — Vectorul fiscal pentru alți plătitori de venit withholding at source: imp. pe venit + contribuții, redevențe (Imp_e 611/451/461/625/473/474); repeating <impozite_E>
Bifa_F F — Vectorul fiscal pentru alte impozite și taxe accize, contrib. sănătate, redevențe miniere/petroliere, imp. monopol energie/gaze, imp. venituri suplimentare gaze, imp. resurse naturale (+CAEN), taxe jocuri de noroc, imp. reprezentanță, imp. suplimentar instituții de credit, imp. construcții, taxa logistică bunuri extracomunitare (row 12, new); repeating <impozite_F>
Bifa_G G — Sedii secundare fără obligație de înregistrare fiscală declare a secondary office (denumire, adresă, CAEN, mod dobândire, stare)

Section B — the VAT fiscal vector (detail)

Bifa_B="1" is required whenever any B sub-flag is set. The eight sub-sections each register one VAT-vector action; several sub-flags exclude each other (the annex's "se exclud reciproc" matrix):

Sub Flag Subsection Key detail attributes
B.I Bifa_B1 Înregistrare în scopuri de TVA ulterior înregistrării (art. 316) Bifa_1b/Bifa1_1b (registration ground: option art. 316(1)(a), or exceeding the exemption plafon plafon_BI = 395 000 lei), data_1b (data depășirii plafonului), CifAf1_1b (cifra de afaceri estimată), Per_1b VAT period 01 lunar / 02 trimestrial / 03 semestrial / 04 anual, d_modif_B1 (change the period)
B.II Bifa_B2 Menținerea/schimbarea perioadei fiscale Bifa_2b, Luna1_2b/An1_2b/Luna2_2b/An2_2b, Per1_2b (01 lună) / Per2_2b (02 trimestru), CifAf_2b
B.III Bifa_B3 Opțiune aplicare/încetare art. 278 (locul prestării serviciilor) Bifa_3b 1.20.1 opțiune / 1.20.2 încetare, Data_3b
B.IV Bifa_B4 Notificare sistemul TVA la încasare Bifa_4b 1.21.1 aplicare / 1.21.2 încetare, CifAf1_4bplafon_BIV = 5 000 000 lei
B.V Bifa_B5 Regim special pentru agricultori Bifa_5b 1.22.1 aplicare / 1.22.2 încetare, cif_5b
B.VI Bifa_B6 Înregistrare/anulare art. 317 (achiziții IC / servicii; agricultori cu livrări IC) Bifa_6b, Bifa_6b_inreg / Bifa_6b_anulare, cif_6b, values val1a_6b
B.VII Bifa_B7 Înregistrare art. 316 alin.(12) (re-înregistrare după anulare) Bifa_7b 1.24–1.28, CifAf_7b, Per_7b (01 lunar / 02 trimestrial)
B.VIII Bifa_B8 Anularea înregistrării TVA și scoaterea din evidență Bifa_8b 1.31–1.36 (ground), CifAf1_8b/CifAf2_8b (art. 310(7) below-threshold), Data_8b

Common scenarios

Each instance below validated warning-only (a PASS — see the DUK quirk) against D700Validator.jar J5.0.3 on 2026-07-17: the err file held only the global A: atentionare, no E:/F: line. All use the synthetic check-digit-valid cif="1234565", felD="2" (mențiuni), dec_inreg="010", and a single raised section flag so totalPlata_A="1".

1 — Minimal (fiscal-domicile modification, Section A). Only the header + Bifa_A/Bifa_A1; a real filing adds the <domiciliu tip_a="2"> child with the address.

<?xml version="1.0" encoding="UTF-8"?>
<D700 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="mfp:anaf:dgti:d700:declaratie:v4 d700.xsd"
  xmlns="mfp:anaf:dgti:d700:declaratie:v4"
  luna="6" an="2026" felD="2"
  nume_decl="Popescu" pren_decl="Ion" func_decl="Administrator"
  totalPlata_A="1"
  cif="1234565" den="EXEMPLU TEST SRL" dec_inreg="010"
  Bifa_A="1" Bifa_A1="1"/>

2 — VAT fiscal-period change (Section B.II), monthly → quarterly. Notifies the period change with the from/to months and periods:

<?xml version="1.0" encoding="UTF-8"?>
<D700 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="mfp:anaf:dgti:d700:declaratie:v4 d700.xsd"
  xmlns="mfp:anaf:dgti:d700:declaratie:v4"
  luna="6" an="2026" felD="2"
  nume_decl="Popescu" pren_decl="Ion" func_decl="Administrator"
  totalPlata_A="1"
  cif="1234565" den="EXEMPLU TEST SRL" dec_inreg="010"
  Bifa_B="1" Bifa_B2="1" Bifa_2b="1"
  Luna1_2b="1" An1_2b="2026" Luna2_2b="1" An2_2b="2027"
  Per1_2b="01" Per2_2b="02"/>

3 — VAT deregistration (Section B.VIII). Cancels the VAT registration and strikes the taxpayer from the VAT register from a stated date:

<?xml version="1.0" encoding="UTF-8"?>
<D700 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="mfp:anaf:dgti:d700:declaratie:v4 d700.xsd"
  xmlns="mfp:anaf:dgti:d700:declaratie:v4"
  luna="6" an="2026" felD="2"
  nume_decl="Popescu" pren_decl="Ion" func_decl="Administrator"
  totalPlata_A="1"
  cif="1234565" den="EXEMPLU TEST SRL" dec_inreg="010"
  Bifa_B="1" Bifa_B8="1" Bifa_8b="1" Data_8b="30.06.2026"/>

Special attention & gotchas

The pitfalls below trace either to direct validator/structure-annex verification (the warning-only behaviour and the three instances above were run against D700Validator.jar J5.0.3; the control-sum, section-flag, dec_inreg, and plafon rules are read from structura_XML_D700_0126_110326.pdf) or to an authoritative source (OPANAF 15/2026 and its Anexa nr. 10 instructions for the legal basis, section semantics, and per-section deadlines; the general 15-day / 5-working-day deadlines are corroborated by both the ANAF instructions and a practitioner source). No uncorroborated practitioner claim is carried.

  • D700 validates WARNING-ONLY — the headline gotcha. A structurally valid D700 makes -v write only an A: atentionare ("Formularul urmeaza sa fie prelucrat la organul fiscal competent") and never a bare ok. anafpy treats a run whose findings are all warnings as ok=True (commit 51f3a11 / the DUK quirk section below). Do not try to force it to ok — relay the notice, do not read it as failure. A blocking E:/F: line still fails.
  • There is no standalone XSD. The soft page ships only the smart PDF, the validator zip, and the structure/validation annex PDF ("Anexa validări", structura_XML_D700_0126_110326.pdf) — the row-by-row authority for attribute names, types, and rules. The wire template lives in the smart PDF's XML-building JavaScript (namespace mfp:anaf:dgti:d700:declaratie:v4, root uppercase <D700>).
  • totalPlata_A is a section counter, not the amount to pay. It equals the count of raised top-level flags Bifa_A+Bifa_B+Bifa_C+Bifa_D+Bifa_E+Bifa_F+Bifa_G (structure-annex row 8 — note all seven flags, Bifa_E included). With one section it is 1; nothing monetary belongs here.
  • At least one section flag is mandatory. With every Bifa_ABifa_G at 0 the run fails E_Bife ("Formular D700 fara bife sectiuni"). D700 exists to carry a change; an empty vector change is not a filing.
  • felD has no first-registration value. Only 2 (mențiuni) and 3 (radiere) are emitted here; initial fiscal-vector registration is done at the ONRC one-stop or via the 010–070 declarations. D700 amends or removes an existing registration.
  • dec_inreg gates the sections you may fill. The taxpayer-type code drives cross-field errors: 013/016 reject Section A.I, 015/030 reject Section A, 030 requires a genuine CIF (cifra1(cif)#9), and felD=3 (radiere) leaves Cap. IV.1/IV.2, VI.1/VI.4/VI.6 and several B sub-sections blank. Match the code to the taxpayer before raising a section.
  • The VAT thresholds are the raised 2025/2026 values — a version-alignment trap. The VAT-exemption plafon plafon_BI is 395 000 lei (raised from 300 000) and the cash-accounting (TVA la încasare) plafon plafon_BIV is 5 000 000 lei (raised from 4 500 000 on 11.03.2026). A cached older value silently poisons the B.I registration-ground and B.IV notification logic — read the plafons from the current structure annex, never from memory.
  • Section B sub-flags exclude each other. The annex carries an explicit "se exclud reciproc" matrix (e.g. B.I and B.VII, B.II and B.VI.1.23.1, B.VII and B.VIII, …). Combining an incompatible pair fails validation; a single VAT-vector action per filing is the safe shape.
  • felD=3 (radiere) is finalised off-line. Per the instructions, striking the fiscal registration completes only after the taxpayer returns the original fiscal-registration certificate to the competent tax office (by post with confirmation, or at the registry) — the electronic filing starts, but does not complete, the removal.
  • Section F row 12 "Taxa logistică" is new in OPANAF 15/2026. The logistics tax for managing extra-community goods flows (the wire's 702) was added by the January-2026 order; a form/validator from before that emission will not carry it.

v4 (live wire; NO standalone XSD)

  • The soft page links no .xsd/.xml schema — it ships only as the soft PDF and the validator zip. The wire format comes from the smart PDF's XML-building JavaScript (D700_XML_0126_110326.pdf). Namespace mfp:anaf:dgti:d700:declaratie:v4 (the PDF comments record the timeline: 2021 v2, 2024 v3, 2025 v4).
  • Root element is uppercase <D700> (not declaratie700).
  • Required header: luna, an, felD (2 = modification, 3 = deregistration; there is no felD for a plain first registration in this emission path), declarant nume_decl/pren_decl/func_decl, totalPlata_A, cif, den, dec_inreg.
  • dec_inreg is a 3-digit registration-declaration code, not a flag: the values the smart PDF branches on are 010, 013, 015, 016, 020, 030, 040, 070 (1 is rejected — "valoarea '1' nu se afla in lista"). 010 = the standard registration declaration.
  • totalPlata_A is the count of checked top-level sections — the sum of all seven flags Bifa_A+Bifa_B+Bifa_C+Bifa_D+Bifa_E+Bifa_F+Bifa_G (rule R14; Bifa_E included — DUK-verified 2026-07-18: Bifa_A+Bifa_E requires totalPlata_A=2, and =1 fails). An earlier transcription of the rule that dropped Bifa_E was wrong. Yet another non-monetary totalPlata_A; with only Bifa_A="1" set it is 1.
  • At least one section must be flagged (rule E_Bife: "Formular D700 fara bife sectiuni"). Sections are Bifa_ABifa_G with nested sub-flags (Bifa_A1, Bifa_B1Bifa_B8, Bifa_C1/Bifa_C2, ...) and many per-section detail attributes — the form encodes the full fiscal vector, so a real filing is far larger than the envelope here.

DUK quirk: D700 never writes a plain "ok" on -v

This is the important operational finding. A structurally valid D700 makes -v write only an atentionare (warning):

A: validari globale
 atentionare regula: ATENTIONARE: Formularul urmeaza sa fie prelucrat
 la organul fiscal competent

Handled since 2026-07-17: anafpy.declaratii.duk._parse_err_file now maps A: (atentionare) and W: lines to severity="warning" and treats a run whose findings are all warnings as ok=True. So DukIntegrator.validate() returns ok=True for a valid D700 with the notice on DukResult.warnings; the declaratie_validate MCP tool returns ok=true with the notice in its warnings list (relay it, do not treat it as failure). -p (render) was always the reliable check — it validates first and writes ok + the PDF — and still is. A blocking error (E:/F:) continues to fail the run, and unrecognized non-ok output (an empty err file from a broken dist) stays a failure — success is never inferred from output DUK didn't clearly mark as clean.

  • Minimal instance that renders (section-A modification, June 2026):
<?xml version="1.0" encoding="UTF-8"?>
<D700 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="mfp:anaf:dgti:d700:declaratie:v4 d700.xsd"
  xmlns="mfp:anaf:dgti:d700:declaratie:v4"
  luna="6" an="2026" felD="2"
  nume_decl="Popescu" pren_decl="Ion" func_decl="Administrator"
  totalPlata_A="1"
  cif="1234565" den="EXEMPLU TEST SRL" dec_inreg="010"
  Bifa_A="1" Bifa_A1="1"/>