Registry entry

North Macedonia VAT Return (Обр. ДДВ-04)

The Public Revenue Office's (Управа за јавни приходи, УЈП) periodic VAT return, Обр. ДДВ-04 (Даночна пријава на данокот на додадена вредност) — the recurring return VAT-registered taxpayers, and certain unregistered tax debtors under чл.32 of the VAT Law (ЗДДВ), file to declare output VAT on supplies made and input VAT deductible on supplies/imports received for a given tax period. Opens North Macedonia as the registry's 54th jurisdiction, via the Taxes vertical. The source is a genuine, unauthenticated, first-party AcroForm PDF distributed directly from the Public Revenue Office's own document host (ujp.gov.mk), confirmed via both a raw byte scan and independent pdfjs-dist field extraction. This v1.0.0 models the return's full output-VAT computation (§ПРОМЕТ НА ДОБРА И УСЛУГИ, fields 01-20: general/reduced-rate supplies, exports, exempt supplies, reverse-charge supplies performed and received, and the output-VAT total), the full input-VAT computation (§ВЛЕЗНИ ИСПОЛНУВАЊА СО ПРАВО НА ОДБИВКА, fields 21-32: ordinary input supplies, reverse-charge input supplies, imports, the deductible-input-tax total, other adjustments, the net tax due/credit result, and the credit-assignment option), the return's header identification and tax-period fields, the correction (Исправка) flag and its companion tax-period reference, the two attachment-report flags for reverse-charge supply/receipt reporting obligations under чл.41-б, and the preparer/signatory identification block. It also models the return's one-time, first-tax-period-only pre-registration input-VAT schedule (ДДВ содржан во залихи на добра наменети за натамошна продажба пред регистрација за целите на ДДВ) as a bounded repeating group capped at 5 of the paper form's own 21 numbered invoice rows (see VERIFICATION.md for the disclosed cap rationale). The underlying AcroForm field tree contains 181 named nodes, but only 161 of them are terminal (leaf) fields with an actual fillable widget; the remaining 20 are non-terminal field-tree parent/organizational nodes with no widget of their own (see VERIFICATION.md 'Field inventory' for the reconciliation). GovSchema is an independent, non-profit standards body and is not affiliated with, endorsed by, or operated by the Government of North Macedonia or the Public Revenue Office.

Registry entry

mk/ujp/danochna-prijava-na-danokot-na-dodadena-vrednost

Jurisdiction
North Macedonia · national
Version
1.0.0
Verification
draft

Authoritative source Обр. ДДВ-04 — Даночна пријава на данокот на додадена вредност (VAT Return), Службен весник на РСМ бр.79/22

Machine access

Registry catalog
registry/index.jsonone record per schema id

Field reference

81 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

  • taxIdentificationPrefix string

    The first, narrow box of the return's Tax Identification Number field. Per the form's own instructional note, taxpayers registered for VAT purposes enter the designation 'MK' here; taxpayers filing only as an unregistered tax debtor under чл.32 точки 3 и 4 ЗДДВ may leave it blank.

    length: 0–2
  • taxIdentificationNumber string required

    The taxpayer's tax identification number (the wide box of the header's Tax Identification Number field), identifying who is filing this VAT return.

    classification: sensitive-pii
  • businessNameAndAddress string required

    The taxpayer's short business name and the address of its actual registered seat, used for contact purposes.

    classification: pii
  • phone string

    Contact phone number.

    classification: pii
  • email string

    Contact email address.

    classification: pii
  • taxPeriodFrom date required

    Start date of the tax period this VAT return covers.

  • taxPeriodTo date required

    End date of the tax period this VAT return covers.

  • submissionDeadline date

    The statutory deadline for submitting this return — 25 days after the end of the relevant tax period, per the form's own instructions ('ДДВ-пријавата се поднесува во рок од 25 дена по истекот на соодветниот даночен период').

  • isCorrection boolean

    Whether this filing is a correction (исправка) of a previously submitted VAT return for the same tax period, replacing it with fully restated amounts rather than reporting only the differences.

  • correctedTaxPeriod string

    The tax period being corrected, required by the form's own instructions when isCorrection is marked ('означете го полето ... и наведете го даночниот период за кој се врши исправката').

  • outputGeneralRateBase number

    Поле 01 — total taxable supply of goods and services (excluding VAT) taxed at the general (standard) VAT rate.

    range: 0–∞classification: financial
  • outputGeneralRateVat number

    Поле 02 — VAT attributable to the taxable supply of goods and services at the general (standard) rate.

    range: 0–∞classification: financial
  • outputReducedRate10Base number

    Поле 03 — total taxable supply of goods and services (excluding VAT) taxed at the preferential 10% VAT rate.

    range: 0–∞classification: financial
  • outputReducedRate10Vat number

    Поле 04 — VAT attributable to the taxable supply of goods and services at the preferential 10% rate.

    range: 0–∞classification: financial
  • outputReducedRate5Base number

    Поле 05 — total taxable supply of goods and services (excluding VAT) taxed at the preferential 5% VAT rate.

    range: 0–∞classification: financial
  • outputReducedRate5Vat number

    Поле 06 — VAT attributable to the taxable supply of goods and services at the preferential 5% rate.

    range: 0–∞classification: financial
  • exportsBase number

    Поле 07 — value of exports (zero-rated, no separate VAT amount box).

    range: 0–∞classification: financial
  • exemptWithCreditBase number

    Поле 08 — value of supply exempt from tax, with the right to deduct prior (input) tax.

    range: 0–∞classification: financial
  • exemptWithoutCreditBase number

    Поле 09 — value of supply exempt from tax, without the right to deduct prior (input) tax.

    range: 0–∞classification: financial
  • nonResidentNonTaxableSupplyBase number

    Поле 10 — value of supply performed towards taxpayers without a seat in the country that is not subject to VAT taxation in the country under чл.2 и 14 ЗДДВ. Filled in by the party performing the supply.

    range: 0–∞classification: financial
  • domesticReverseChargeSupplyPerformedBase number

    Поле 11 — value of domestic supply for which the tax is calculated by the recipient (reverse-charge transfer of the tax obligation under чл.32-а). Filled in by the party performing the supply, who additionally must submit the 'Report on supplies performed' as an attachment (see attachmentReportSuppliesPerformed).

    range: 0–∞classification: financial
  • receivedNonResidentSupplyGeneralRateBase number

    Поле 12 — value of supply received from taxpayers without a seat in the country, taxed at the general rate, for which the tax is calculated by the recipient under чл.32 точка 4 и 5 ЗДДВ. Filled in by the recipient of the supply.

    range: 0–∞classification: financial
  • receivedNonResidentSupplyGeneralRateVat number

    Поле 13 — VAT calculated by the recipient on supply received from taxpayers without a seat in the country, at the general rate, under чл.32 точка 4 и 5 ЗДДВ.

    range: 0–∞classification: financial
  • receivedNonResidentSupplyReducedRateBase number

    Поле 14 — value of supply received from taxpayers without a seat in the country, taxed at a preferential rate, for which the tax is calculated by the recipient under чл.32 точка 4 и 5 ЗДДВ.

    range: 0–∞classification: financial
  • receivedNonResidentSupplyReducedRateVat number

    Поле 15 — VAT calculated by the recipient on supply received from taxpayers without a seat in the country, at a preferential rate, under чл.32 точка 4 и 5 ЗДДВ.

    range: 0–∞classification: financial
  • domesticReverseChargeReceivedGeneralRateBase number

    Поле 16 — value of domestic supply received, taxed at the general rate, for which the tax is calculated by the recipient under чл.32-а ЗДДВ. Filled in by the recipient of the supply.

    range: 0–∞classification: financial
  • domesticReverseChargeReceivedGeneralRateVat number

    Поле 17 — VAT calculated by the recipient on domestic supply received at the general rate, under чл.32-а ЗДДВ.

    range: 0–∞classification: financial
  • domesticReverseChargeReceivedReducedRateBase number

    Поле 18 — value of domestic supply received, taxed at a preferential rate, for which the tax is calculated by the recipient under чл.32-а ЗДДВ.

    range: 0–∞classification: financial
  • domesticReverseChargeReceivedReducedRateVat number

    Поле 19 — VAT calculated by the recipient on domestic supply received at a preferential rate, under чл.32-а ЗДДВ.

    range: 0–∞classification: financial
  • totalOutputVat number

    Поле 20 — total output VAT: the sum of outputGeneralRateVat, outputReducedRate10Vat, outputReducedRate5Vat, receivedNonResidentSupplyGeneralRateVat, receivedNonResidentSupplyReducedRateVat, domesticReverseChargeReceivedGeneralRateVat, and domesticReverseChargeReceivedReducedRateVat. This schema captures the value as declared and does not itself enforce the arithmetic relationship.

    range: 0–∞classification: financial
  • inputSupplyBase number

    Поле 21 — value of ordinary input supply with the right to deduct prior (input) tax, excluding VAT (excludes reverse-charge input supply reported in fields 23/25 and imports reported in field 27).

    range: 0–∞classification: financial
  • inputSupplyVat number

    Поле 22 — amount of prior (input) tax for deduction on ordinary input supply, excluding input tax calculated by the recipient (fields 24/26) and tax calculated on import (field 28).

    range: 0–∞classification: financial
  • inputReverseChargeReceivedGeneralBase number

    Поле 23 — value of input supply, excluding VAT, with the right to deduct prior tax, for which the tax is calculated by the recipient of the supply under чл.32 точка 4 и 5 ЗДДВ.

    range: 0–∞classification: financial
  • inputReverseChargeReceivedGeneralVat number

    Поле 24 — amount of prior tax for deduction, calculated by the recipient of the supply under чл.32 точка 4 и 5 ЗДДВ.

    range: 0–∞classification: financial
  • inputReverseChargeDomesticBase number

    Поле 25 — value of domestic input supply, excluding VAT, with the right to deduct prior tax, for which the tax is calculated by the recipient under чл.32-а ЗДДВ. The recipient additionally must submit the 'Report on supplies received' as an attachment (see attachmentReportSuppliesReceived).

    range: 0–∞classification: financial
  • inputReverseChargeDomesticVat number

    Поле 26 — amount of prior tax for deduction, calculated by the recipient of domestic supply under чл.32-а ЗДДВ.

    range: 0–∞classification: financial
  • importsBase number

    Поле 27 — value of imports performed with the right to deduct prior tax, excluding VAT.

    range: 0–∞classification: financial
  • importsVat number

    Поле 28 — amount of VAT paid on import that may be deducted as prior tax.

    range: 0–∞classification: financial
  • totalDeductibleInputTax number

    Поле 29 — total deductible prior (input) tax: the sum of inputSupplyVat, inputReverseChargeReceivedGeneralVat, inputReverseChargeDomesticVat, and importsVat. This schema captures the value as declared and does not itself enforce the arithmetic relationship.

    range: 0–∞classification: financial
  • otherTaxesAndAdjustments number

    Поле 30 — other tax amounts due under чл.55 став 1 и 2 and prior taxes under чл.37 that are deducted or paid, tax amounts due or claimed because of a change in the tax rate or contract cancellation, and (once, in the taxpayer's first VAT return only) the VAT contained in stock of goods intended for further resale before VAT registration — entered here with a '-' sign per the form's instructions. Each such amount requires a supporting attachment per the form's instructions.

    classification: financial
  • refundRequested boolean

    Whether the taxpayer requests payment (refund) of a VAT credit shown in taxDueOrCredit, rather than carrying it forward as an advance credit for the next tax period.

  • taxDueOrCredit number required

    Поле 31 — the overall result of the return (fields 20-29 and 30): a positive figure representing tax owed, or a negative figure representing a VAT credit. Per the form's own instructions, if fields 01-29 are otherwise left blank, this field alone must still be entered, with the value '0'.

    classification: financial
  • claimAssignmentRequested boolean

    Whether the taxpayer assigns (отстапува) all or part of its VAT credit to settle a tax debt of another taxpayer, rather than receiving the full claimed amount.

  • claimAssignmentAmount number

    Поле 32 — the amount of the VAT credit assigned to settle another taxpayer's tax debt, when claimAssignmentRequested is marked.

    range: 0–∞classification: financial
  • attachmentReportSuppliesPerformed boolean

    Whether the 'Report on supplies of goods and services performed, for which the tax debtor is the taxpayer to whom the supply was performed' is attached to this return, mandatory under чл.41-б став 1 ЗДДВ whenever domesticReverseChargeSupplyPerformedBase (поле 11) is reported.

  • attachmentReportSuppliesReceived boolean

    Whether the 'Report on supplies of goods and services received, for which the tax debtor is the recipient taxpayer' is attached to this return, mandatory under чл.41-б став 2 ЗДДВ whenever inputReverseChargeDomesticBase (поле 25) is reported.

  • stockScheduleAsOfDate date

    The stock-take date (последниот ден пред регистрацијата — the last day before VAT registration) for the one-time pre-registration input-VAT schedule below. Completed only in the taxpayer's first VAT return, when claiming a deduction for VAT on goods held in stock for resale on the date immediately before VAT registration.

  • stockInvoice1LineNumber string

    Row 1 of the pre-registration stock schedule's invoice list (capped at 5 of the paper form's own 21 numbered rows — see VERIFICATION.md): the taxpayer-assigned line/sequence number.

  • stockInvoice1SupplierName string

    Name of the supplier of the pre-registration stock goods, row 1.

    classification: pii
  • stockInvoice1InvoiceAmount number

    Invoice amount for the pre-registration stock goods, row 1.

    range: 0–∞classification: financial
  • stockInvoice1PaymentDate date

    Date the invoice for the pre-registration stock goods was paid, row 1 — one of the cumulative conditions for the deduction (per the form's instructions, the invoice must be paid no later than the deadline for submitting the first VAT return).

  • stockInvoice1VatAmount number

    VAT amount on the invoice for the pre-registration stock goods, row 1.

    range: 0–∞classification: financial
  • stockInvoice2LineNumber string

    Row 2 of the pre-registration stock schedule's invoice list.

  • stockInvoice2SupplierName string

    Name of the supplier of the pre-registration stock goods, row 2.

    classification: pii
  • stockInvoice2InvoiceAmount number

    Invoice amount for the pre-registration stock goods, row 2.

    range: 0–∞classification: financial
  • stockInvoice2PaymentDate date

    Date the invoice for the pre-registration stock goods was paid, row 2.

  • stockInvoice2VatAmount number

    VAT amount on the invoice for the pre-registration stock goods, row 2.

    range: 0–∞classification: financial
  • stockInvoice3LineNumber string

    Row 3 of the pre-registration stock schedule's invoice list.

  • stockInvoice3SupplierName string

    Name of the supplier of the pre-registration stock goods, row 3.

    classification: pii
  • stockInvoice3InvoiceAmount number

    Invoice amount for the pre-registration stock goods, row 3.

    range: 0–∞classification: financial
  • stockInvoice3PaymentDate date

    Date the invoice for the pre-registration stock goods was paid, row 3.

  • stockInvoice3VatAmount number

    VAT amount on the invoice for the pre-registration stock goods, row 3.

    range: 0–∞classification: financial
  • stockInvoice4LineNumber string

    Row 4 of the pre-registration stock schedule's invoice list.

  • stockInvoice4SupplierName string

    Name of the supplier of the pre-registration stock goods, row 4.

    classification: pii
  • stockInvoice4InvoiceAmount number

    Invoice amount for the pre-registration stock goods, row 4.

    range: 0–∞classification: financial
  • stockInvoice4PaymentDate date

    Date the invoice for the pre-registration stock goods was paid, row 4.

  • stockInvoice4VatAmount number

    VAT amount on the invoice for the pre-registration stock goods, row 4.

    range: 0–∞classification: financial
  • stockInvoice5LineNumber string

    Row 5 of the pre-registration stock schedule's invoice list.

  • stockInvoice5SupplierName string

    Name of the supplier of the pre-registration stock goods, row 5.

    classification: pii
  • stockInvoice5InvoiceAmount number

    Invoice amount for the pre-registration stock goods, row 5.

    range: 0–∞classification: financial
  • stockInvoice5PaymentDate date

    Date the invoice for the pre-registration stock goods was paid, row 5.

  • stockInvoice5VatAmount number

    VAT amount on the invoice for the pre-registration stock goods, row 5.

    range: 0–∞classification: financial
  • stockScheduleTotalVatAmount number

    Total VAT amount across all rows of the pre-registration stock schedule, transferred once into otherTaxesAndAdjustments (поле 30) with a '-' sign, per the form's instructions.

    range: 0–∞classification: financial
  • preparerNameOrBusinessName string

    Name of the person or business that prepared this return.

    classification: pii
  • preparerIdNumber string

    Tax identification number (ЕДБ) or personal identification number (ЕМБГ) of the preparer.

    classification: sensitive-pii
  • preparerCompletionDate date

    Date the preparer completed this return.

  • preparerCapacity string

    The preparer's capacity/role in relation to the taxpayer (e.g. accountant, authorized representative).

  • signatoryFullName string

    Full name of the person signing this return.

    classification: pii
  • signatoryEmbg string

    The signatory's ЕМБГ (personal identification number).

    classification: sensitive-pii
  • signatoryCompletionDate date

    Date the signatory signed this return.

  • signatoryCapacity string

    The signatory's capacity/role in relation to the taxpayer (e.g. authorized representative, director).

Verification record

This file is the source-review record for this document version, per the manual-source-review-v1 practice. It documents the provenance of the published fields and states the current verification claim honestly.

Current claim

  • status: draft
  • verification.method: manual-source-review-v1
  • verification.lastVerifiedAt: 2026-07-14

This is a GovSchema Standard Research cycle (GOV-2919, following the GOV-2916 research cycle that verified this candidate after GOV-2908's own pre-scouted backlog for Slovenia/Panama/Morocco turned out to be five consecutive dead ends on independent re-verification). North Macedonia was not previously in the registry (53 jurisdictions existed at the start of this cycle — ls -d registry/*/ | wc -l on main returns 53). This document opens North Macedonia as the registry's 54th jurisdiction, via the Taxes vertical.

Why this candidate

North Macedonia's Public Revenue Office (Управа за јавни приходи, УЈП) publishes its periodic VAT return, Обр. ДДВ-04, directly and unauthenticated from its own document host. It is a genuine AcroForm PDF — not a static print/hand-fill template — confirmed both by a raw byte scan (/AcroForm present, /FT/Tx and /FT/Btn entries throughout the compressed object streams) and independently via pdfjs-dist's getFieldObjects(). The form is also unusually self-documenting: two of its four pages are the agency's own field-by-field "УПАТСТВО ЗА ПОПОЛНУВАЊЕ" (filling instructions), explicitly naming the purpose and governing statute article of every numbered field.

Sources examined

Source 1 (primary source, the form)
  • Authority: Управа за јавни приходи (УЈП, Public Revenue Office), a body within Министерство за финансии (Ministry of Finance).
  • URL: https://www.ujp.gov.mk/files/attachment/0000/0967/sl.79_DDV-04_30.03.2022.pdf
  • Retrieved / reviewed: 2026-07-14, independently re-fetched this cycle with curl from scratch (not trusted from the issue's own cited hash).
  • HTTP status: 200. Content-Type: application/pdf. Size: 346,155 bytes. sha256: 2106f99bd113f9599b116f249cd7bef1a7408955b367c5396e046b2882ea3f0e (independently computed this cycle with sha256sum) — matches the candidate-verification cycle's own independently-derived hash exactly, a second independent confirmation that the source is stable and unchanged.
  • Extraction method: pdfjs-dist (legacy/build/pdf.js, CommonJS require, this environment's established technique — no pdftotext/pdftoppm/pip available). Used three passes: (1) doc.getFieldObjects() for the full AcroForm field-name inventory; (2) page.getAnnotations({intent:'display'}) per page for each field's exact type, rect, and page location; (3) page.getTextContent() per page for the form's own printed labels, section headers, and — critically — its field-by-field filling instructions.
  • What it confirms: every field this document models, verbatim, including the exact field-by-field descriptions and statute citations quoted in fields[].description (drawn directly from the form's own "Поле NN — ..." instruction lines on pages 3-4), the exact preferential VAT rates (10%, 5%), and the form's own footer citation confirming its publication in „Службен весник на РСМ“ бр.79/22, effective 30.03.2022.
Source 2 (authority.operatedBy.basis)

Drawn directly from the form's own printed text, not external research: the form's instructions and field-level notes cite "ЗДДВ" (Закон за данокот на додадена вредност, VAT Law) repeatedly by abbreviation with specific article numbers (чл.2 и 14, чл.32, чл.32-а, чл.32 точка 4 и 5, чл.41-б, чл.53 став 10, чл.55 став 1 и 2, чл.37) — a stronger, form-sourced citation than several prior registry entries (e.g. hr/porezna-uprava/prijava-poreza-na-dohodak) had to fall back to independent web research for.

Field inventory (Phase 2) — the 181-vs-161-vs-81 reconciliation

The issue's brief (from the GOV-2916 candidate-verification cycle) reported "181 real fields across 4 pages," derived from doc.getFieldObjects()'s returned field-name count. Independent re-verification this cycle found a more precise picture, disclosed here so the discrepancy is not mistaken for an extraction error:

  • 181 is the count of named nodes in the AcroForm field tree (Object.keys(fieldObjects).length), which includes both terminal (leaf) fields and non-terminal parent/organizational nodes.
  • 161 of those 181 are terminal leaf fields that actually carry a Widget annotation (confirmed via page.getAnnotations({intent:'display'}) on every page — 161 widgets found, matching exactly). These are the fields a filler can actually type into or check.
  • 20 are non-terminal field-tree nodes with no widget of their own — purely structural artifacts of how the form's authoring tool built up fully-qualified field names for a duplicated row template. For example, the invoice table's row 18 template was extended via nested parent groups (23.1823.18.123.18.1.1) whose actual fillable widgets carry the further-qualified names 23.18.0, 23.18.1.0, 23.18.1.1.0, and 23.18.1.1.1 (rows 18, 19, 20, and 21 of the printed table). The same pattern recurs for columns 24/25/27, and separately for a stray unused field A31_1 (superseded by the real widget A31_1.0) and the 17/17.0/17.1 parent nodes above the two real checkbox widgets 17.0.0/17.1.0.
  • This document's 81 fields[] entries model all 44 leaf fields on the main return page (header/identification, the full output-VAT computation fields 01-20, and the full input-VAT computation fields 21-32) plus a bounded subset (25 of 105) of the pre-registration stock schedule's leaf fields, plus the schedule's date/total fields, the 2 attachment checkboxes, and the 8 preparer/signatory fields — see the cap rationale below. 44 + 25 + 1 (stockScheduleAsOfDate) + 1 (stockScheduleTotalVatAmount) + 2 (attachments) + 8 (preparer/signatory) = 81, wholly independent of taxIdentificationPrefix, isCorrection, correctedTaxPeriod, refundRequested, and claimAssignmentRequested, which are already counted within the 44.

Per-page leaf-field breakdown (161 total), independently reconciled against this document's field count:

| Page | Section | Leaf fields | Modelled | |---|---|---|---| | p.1 | Header/identification (Даночен ид. број × 2, назив/адреса, телефон, е-пошта, период од/до, рок, исправка checkbox + reference) | 10 | Full (10) | | p.1 | Output VAT, поле 01-20 (A01-A19, zbir) | 20 | Full (20) | | p.1 | Input VAT, поле 21-32 (A21-A30, A31/A31_1.0, A32/A32_1) | 14 | Full (14) | | p.2 | Pre-registration stock schedule: as-of date + 21 rows × 5 columns + total | 107 | Partial: as-of date + total (2) + 5 of 21 rows × 5 columns (25) | | p.2 | Attachment checkboxes (17.0.0, 17.1.0) | 2 | Full (2) | | p.2 | Preparer/signatory (100-103, 105-108) | 8 | Full (8) | | Total | | 161 | 81 |

Access notes and judgment calls

  1. The pre-registration stock schedule is capped at 5 of the paper form's own 21 numbered rows. This is a genuinely narrow, one-time-use section: per the form's own instructions ("Ова Известување треба да се пополни во даночната пријава за првиот даночен период" — this notification is completed only in the return for the taxpayer's first tax period), it only ever applies to a business's very first VAT filing, when claiming deduction of VAT embedded in goods held in stock for resale immediately before registration. Unlike the return's core output/input VAT computation (fields 01-32, modelled in full — every filer completes these every period), this schedule is a narrow edge case analogous to this registry's established convention of capping large repeating tables at a reasonable subset rather than either silently truncating or mechanically flattening every possible row (e.g. hr/porezna-uprava/prijava-poreza-na-dohodak capping dependents/employer rows at 3 of 6-7; se/migrationsverket/work-permit-application modelling up to 5 children). 5 was chosen (rather than 3) because a newly-registering business with meaningful opening stock could plausibly have more than a handful of supplier invoices to declare, while flattening all 21 rows (105 fields) would have more than doubled this schema's size for a section only relevant to a single filing in a taxpayer's lifetime. Rows 6-21 are disclosed as deferred, both here and in the schema's own description.
  2. The stockScheduleTotalVatAmount field's exact column alignment is a disclosed judgment call. The schedule's single Vkupno (Total) widget's rect (x:379-480) sits under the x-range shared with the per-row IN fields (invoice payment date, x:378-479) rather than cleanly under the 27.N (VAT amount, x:481-571) or 25.N (invoice amount, x:241-378) column. Since a running total of payment dates makes no arithmetic sense, and the form's own instructions state this schedule's total VAT figure is what transfers once into поле 30 ("Вкупниот пријавен данок на додадена вредност за одбивка се истакнува, еднократно ... во полето 30"), this document models Vkupno as a total VAT amount rather than a total invoice amount — the semantically coherent reading, even though its rect is not perfectly column-aligned with the per-row VAT-amount fields.
  3. taxIdentificationPrefix (field 1, the narrow 2-character box) is optional, while taxIdentificationNumber (field 2) is required. The form's own instructional note states only VAT-registered taxpayers enter "MK" in this first box; taxpayers filing solely as unregistered tax debtors under чл.32 точки 3 и 4 ЗДДВ (who must also file this return per the form's own opening instructions) would leave it blank.
  4. correctedTaxPeriod is gated with requiredWhen: {field: "isCorrection", equals: true}, per the p.4 instructions text: "Доколку поднесувате исправка на претходно поднесена ДДВ-пријава, означете го полето 'Исправка на ДДВ-пријава' ... и наведете го даночниот период за кој се врши исправката" (if filing a correction, mark the field and state the tax period being corrected). This condition uses equals: true on a boolean field, not notEquals against an optional string field — avoiding this registry's known notEquals-against-absent-optional-field pitfall.
  5. claimAssignmentAmount is gated with requiredWhen: {field: "claimAssignmentRequested", equals: true}, the amount box that only applies when the taxpayer marks поле 32 to assign part of a VAT credit to settle another taxpayer's debt.
  6. taxDueOrCredit (поле 31) is the only field in the core return marked required: true besides the header identification fields. This mirrors the form's own explicit instruction that if fields 01-29 are otherwise left blank, поле 31 alone must still be entered, with the value "0" — it is the one field every filing, with or without reportable transactions, must always carry a value for.
  7. Signature ("Потпис") boxes are not modelled as fields, consistent with this registry's established convention (e.g. the HR/RO precedents) of treating a physical signature as an attestation outside the data-field model rather than a string/file field — confirmed here directly from the AcroForm: the "Потпис" cells (would-be fields 104 and a second cell beside 108) have no corresponding Widget annotation at all, i.e. the form's own author did not make them fillable AcroForm fields either.
  8. Money fields use type: "number" with only a minimum: 0 constraint, consistent with this registry's established convention for currency-denominated amounts, rather than a stricter integer/decimal pattern — even though the form's own instructions state amounts are expressed in whole denars ("Износите се искажуваат во денари, без дени"), disclosed in otherTaxesAndAdjustments's context rather than encoded as a multipleOf constraint, since negative values are explicitly permitted ("Доколку внесувате негативни износи, истите ставете ги со предзнакот '-'") and several fields (e.g. otherTaxesAndAdjustments, taxDueOrCredit) can legitimately be negative — minimum: 0 is therefore intentionally omitted from those two fields only.
  9. No documents[] entries are modelled. Unlike several prior registry entries, this form's instructions do not print any explicit attestation statement text (e.g. an "I certify..." declaration line) alongside its signature blocks — only the bare "Потпис" label — so there is no verbatim statement text to capture in a documents[].statement.

Test run (Phase 3)

No live submission was attempted: UJP's e-Porezna equivalent, etax.ujp.gov.mk (named in the form's own instructions as the mandatory electronic filing channel), is an authenticated, session-based system requiring a registered taxpayer's real credentials — submitting fabricated taxpayer data against North Macedonia's live tax administration is not a safe or reversible action.

Instead, this document's own structural validity was confirmed with this registry's standard tooling:

``` $ node tools/validate.mjs registry/mk/ujp/danochna-prijava-na-danokot-na-dodadena-vrednost/1.0.0/schema.json ok registry/mk/ujp/danochna-prijava-na-danokot-na-dodadena-vrednost/1.0.0/schema.json

1/1 document(s) passed.

$ node tools/validate-ajv.mjs registry/mk/ujp/danochna-prijava-na-danokot-na-dodadena-vrednost/1.0.0/schema.json ok registry/mk/ujp/danochna-prijava-na-danokot-na-dodadena-vrednost/1.0.0/schema.json [v0.3]

1/1 document(s) validated against the meta-schema (ajv 2020-12). ```

A full-registry run (after regenerating tools/govschema-client/registry-index.json via npm run build-index) confirms no regression:

`` $ node tools/validate.mjs 436/436 document(s) passed. 3/3 mapping.json companion(s) passed. ``

(Up from 435/435 immediately before this document was added — independently re-confirmed by moving this branch's new registry/mk/ directory aside and re-running the validator against the working tree without it, rather than trusting a prior count.)

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.