{
  "$schema": "https://govschema.org/spec/v0.3/govschema.schema.json",
  "govschemaVersion": "0.3.0",
  "id": "ba/purs/annual-income-tax-return",
  "version": "1.0.0",
  "title": "Bosnia and Herzegovina (Republika Srpska) — Annual Tax Return for Income Tax (Form 1004)",
  "description": "The Tax Administration of Republika Srpska's (Poreska uprava Republike Srpske, PURS), part of the Ministry of Finance, Form 1004, Годишња пореска пријава за порез на доходак (Annual Tax Return for Income Tax) — opens Bosnia and Herzegovina's Taxes vertical (3 of 6). Republika Srpska is one of Bosnia and Herzegovina's constituent entities (the other being the Federation of Bosnia and Herzegovina, plus the Brčko District); this schema is scoped to Republika Srpska only, consistent with this registry's existing ba/apif and ba/mup-rs schemas. Individual taxpayers who realize income from more than one of six income categories in a tax year (personal earnings/employment, copyright income, capital income, capital gains, self-employment income, and other income) must file this annual reconciliation return, per Article 41 of Republika Srpska's Law on Income Tax. GovSchema is an independent, non-profit standards body and is not affiliated with, endorsed by, or operated by the Government of Bosnia and Herzegovina, the Government of Republika Srpska, or the Tax Administration of Republika Srpska.",
  "status": "draft",
  "jurisdiction": {
    "country": "BA",
    "subdivision": "BA-SRP",
    "level": "subnational"
  },
  "authority": {
    "name": "Пореска управа Републике Српске (Tax Administration of Republika Srpska)",
    "abbreviation": "PURS",
    "url": "https://poreskaupravars.org"
  },
  "process": {
    "type": "filing",
    "language": "sr"
  },
  "source": {
    "url": "https://poreskaupravars.org/dokumenti/obrasci/Obrazac%201004popunjiva.pdf",
    "retrievedAt": "2026-07-24",
    "documentRef": "Образац 1004 — \"Годишња пореска пријава за порез на доходак\" (Form 1004 — Annual Tax Return for Income Tax)"
  },
  "verification": {
    "method": "manual-source-review-v1",
    "lastVerifiedAt": "2026-07-24",
    "verifiedBy": "GovSchema Engineering (Standards Engineer)",
    "nextReviewBy": "2027-01-24",
    "notes": "GOV-4727 (\"GovSchema Standard Research\"). Opens Bosnia and Herzegovina's Taxes vertical (3 of 6). See this document's own VERIFICATION.md for the full sourcing record, extraction method, and every disclosed scoping/judgment call."
  },
  "maturity": {
    "level": "structural-reference",
    "criteria": {
      "structuralReference": true,
      "verifiedSchema": false,
      "agentReadySchema": false,
      "executionTestedSchema": false
    },
    "method": "maturity-self-assessment-v1",
    "assertedBy": "GovSchema Engineering (Standards Engineer)",
    "assertedAt": "2026-07-24"
  },
  "license": "CC-BY-4.0",
  "steps": [
    {
      "id": "taxpayer_data",
      "title": "Одјељак 1 – Подаци о пореском обвезнику (Taxpayer data)",
      "fields": [
        "taxpayerId",
        "filingType",
        "amendedFilingBarcode",
        "municipalityCode",
        "fullName",
        "address",
        "phone",
        "email",
        "taxPeriodFrom",
        "taxPeriodTo"
      ],
      "next": "income"
    },
    {
      "id": "income",
      "title": "Одјељак 2 - Доходак (Income)",
      "fields": [
        "personalEarningsMunicipality",
        "personalEarningsRevenue",
        "personalEarningsExpense",
        "personalEarningsIncome",
        "personalEarningsTaxBaseReduction",
        "personalEarningsTaxBase",
        "personalEarningsCalculatedTax",
        "personalEarningsPaidTax",
        "personalEarningsTaxCredit",
        "personalEarningsTaxDifference",
        "personalEarningsIncomeAfterTax",
        "copyrightIncomeMunicipality",
        "copyrightIncomeRevenue",
        "copyrightIncomeExpense",
        "copyrightIncomeIncome",
        "copyrightIncomeTaxBaseReduction",
        "copyrightIncomeTaxBase",
        "copyrightIncomeCalculatedTax",
        "copyrightIncomePaidTax",
        "copyrightIncomeTaxCredit",
        "copyrightIncomeTaxDifference",
        "copyrightIncomeIncomeAfterTax",
        "capitalIncomeMunicipality",
        "capitalIncomeRevenue",
        "capitalIncomeExpense",
        "capitalIncomeIncome",
        "capitalIncomeTaxBaseReduction",
        "capitalIncomeTaxBase",
        "capitalIncomeCalculatedTax",
        "capitalIncomePaidTax",
        "capitalIncomeTaxCredit",
        "capitalIncomeTaxDifference",
        "capitalIncomeIncomeAfterTax",
        "capitalGainMunicipality",
        "capitalGainRevenue",
        "capitalGainExpense",
        "capitalGainIncome",
        "capitalGainTaxBaseReduction",
        "capitalGainTaxBase",
        "capitalGainCalculatedTax",
        "capitalGainPaidTax",
        "capitalGainTaxCredit",
        "capitalGainTaxDifference",
        "capitalGainIncomeAfterTax",
        "selfEmploymentIncomeMunicipality",
        "selfEmploymentIncomeRevenue",
        "selfEmploymentIncomeExpense",
        "selfEmploymentIncomeIncome",
        "selfEmploymentIncomeTaxBaseReduction",
        "selfEmploymentIncomeTaxBase",
        "selfEmploymentIncomeCalculatedTax",
        "selfEmploymentIncomePaidTax",
        "selfEmploymentIncomeTaxCredit",
        "selfEmploymentIncomeTaxDifference",
        "selfEmploymentIncomeIncomeAfterTax",
        "selfEmploymentIncomeCarriedLoss",
        "otherIncomeMunicipality",
        "otherIncomeRevenue",
        "otherIncomeExpense",
        "otherIncomeIncome",
        "otherIncomeTaxBaseReduction",
        "otherIncomeTaxBase",
        "otherIncomeCalculatedTax",
        "otherIncomePaidTax",
        "otherIncomeTaxCredit",
        "otherIncomeTaxDifference",
        "otherIncomeIncomeAfterTax",
        "totalMunicipality",
        "totalRevenue",
        "totalExpense",
        "totalIncome",
        "totalTaxBaseReduction",
        "totalTaxBase",
        "totalCalculatedTax",
        "totalPaidTax",
        "totalTaxCredit",
        "totalTaxDifference",
        "totalIncomeAfterTax"
      ],
      "next": "refund_preference"
    },
    {
      "id": "refund_preference",
      "title": "Overpaid-tax refund/advance-credit preference",
      "fields": [
        "refundPaymentAccountNumber",
        "overpaymentAsAdvanceCreditNote"
      ],
      "next": "certification"
    },
    {
      "id": "certification",
      "title": "Овјера пореског обвезника (Taxpayer certification)",
      "fields": [
        "authorizedPersonFullName",
        "certificationDate",
        "preparerFullName"
      ]
    }
  ],
  "fields": [
    {
      "name": "taxpayerId",
      "label": "1) ЈМБ/ЈИБ",
      "type": "string",
      "required": true,
      "classification": "sensitive-pii",
      "description": "The taxpayer's unique personal identification number (JMB, for a natural person) or unique identification number (JIB, e.g. for a self-employed/registered entrepreneur), printed as a 13-box comb field.",
      "sourceRef": "Section 1, item 1",
      "validation": {
        "minLength": 1,
        "maxLength": 20
      }
    },
    {
      "name": "filingType",
      "label": "4) Врста пријаве",
      "type": "enum",
      "required": true,
      "description": "Whether this is a basic (original) annual return or an amended return correcting a previously filed one.",
      "sourceRef": "Section 1, item 4 — \"Основна\" / \"Измијењена\"",
      "validation": {
        "enum": [
          "basic",
          "amended"
        ]
      }
    },
    {
      "name": "amendedFilingBarcode",
      "label": "Бар-код основне пријаве",
      "type": "string",
      "required": false,
      "requiredWhen": {
        "field": "filingType",
        "equals": "amended"
      },
      "description": "The protocol/barcode number of the original (basic) filing being corrected. The form's own instruction (matching the Tax Administration's XML e-filing guide for the same form family) states this is filled in only when submitting an amended return, and left blank for a basic return.",
      "sourceRef": "Section 1, header-right box, \"Бар-код основне пријаве (попуњава се само код подношења измијењене пријаве)\"",
      "validation": {
        "minLength": 1,
        "maxLength": 20
      }
    },
    {
      "name": "municipalityCode",
      "label": "5) Шифра општине",
      "type": "string",
      "required": true,
      "description": "The 3-digit code of the municipality where the taxpayer is registered for this return, printed as a 3-box comb field.",
      "sourceRef": "Section 1, item 5",
      "validation": {
        "minLength": 1,
        "maxLength": 10
      }
    },
    {
      "name": "fullName",
      "label": "2) Име и презиме",
      "type": "string",
      "required": true,
      "classification": "pii",
      "description": "The taxpayer's full given name and surname.",
      "sourceRef": "Section 1, item 2",
      "validation": {
        "minLength": 1,
        "maxLength": 300
      }
    },
    {
      "name": "address",
      "label": "3) Адреса",
      "type": "string",
      "required": true,
      "classification": "pii",
      "description": "The taxpayer's address.",
      "sourceRef": "Section 1, item 3",
      "validation": {
        "minLength": 1,
        "maxLength": 300
      }
    },
    {
      "name": "phone",
      "label": "6) Телефон",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "The taxpayer's contact telephone number.",
      "sourceRef": "Section 1, item 6",
      "validation": {
        "minLength": 1,
        "maxLength": 60
      }
    },
    {
      "name": "email",
      "label": "7) E-mail адреса",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "The taxpayer's email address.",
      "sourceRef": "Section 1, item 7",
      "validation": {
        "pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
        "maxLength": 200
      }
    },
    {
      "name": "taxPeriodFrom",
      "label": "8) Порески период — Од",
      "type": "date",
      "required": true,
      "description": "Start date of the tax period this annual return covers. The form prints two stacked DD/MM/20YY box rows under \"Порески период\" with no printed \"Од\"/\"До\" labels; a worked example published by the Tax Administration alongside this same form (\"Primjer popunjavanja obrasca 1004\") confirms the upper row is the period start and the lower row the period end, each in day/month/year order with the \"20\" century prefix pre-printed and only the last two year digits taxpayer-entered — see this document's own VERIFICATION.md.",
      "sourceRef": "Section 1, item 8, \"Порески период\", first (upper) DD/MM/20YY box row",
      "validation": {}
    },
    {
      "name": "taxPeriodTo",
      "label": "8) Порески период — До",
      "type": "date",
      "required": true,
      "description": "End date of the tax period this annual return covers (typically 31 December of the tax year, but the box structure accommodates a partial-year period). See taxPeriodFrom's own description and this document's VERIFICATION.md for the source's box-layout ambiguity and how it was resolved.",
      "sourceRef": "Section 1, item 8, \"Порески период\", second (lower) DD/MM/20YY box row",
      "validation": {}
    },
    {
      "name": "personalEarningsMunicipality",
      "label": "Р. бр. 1 (Лична примања), колона 3 (Општина)",
      "type": "string",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 1 \"Лична примања\", column 3 \"Општина\".",
      "sourceRef": "Section 2, row 1, column 3",
      "validation": {
        "minLength": 1,
        "maxLength": 100
      }
    },
    {
      "name": "personalEarningsRevenue",
      "label": "Р. бр. 1 (Лична примања), колона 4 (Приход)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 1 \"Лична примања\", column 4 \"Приход\".",
      "sourceRef": "Section 2, row 1, column 4",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "personalEarningsExpense",
      "label": "Р. бр. 1 (Лична примања), колона 5 (Расход)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 1 \"Лична примања\", column 5 \"Расход\".",
      "sourceRef": "Section 2, row 1, column 5",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "personalEarningsIncome",
      "label": "Р. бр. 1 (Лична примања), колона 6 (Доходак (4 – 5))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 1 \"Лична примања\", column 6 \"Доходак (4 – 5)\".",
      "sourceRef": "Section 2, row 1, column 6",
      "validation": {}
    },
    {
      "name": "personalEarningsTaxBaseReduction",
      "label": "Р. бр. 1 (Лична примања), колона 7 (Умањење пореске основице)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 1 \"Лична примања\", column 7 \"Умањење пореске основице\".",
      "sourceRef": "Section 2, row 1, column 7",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "personalEarningsTaxBase",
      "label": "Р. бр. 1 (Лична примања), колона 9 (Основица за порез 6 – (7 + 8))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 1 \"Лична примања\", column 9 \"Основица за порез 6 – (7 + 8)\".",
      "sourceRef": "Section 2, row 1, column 9",
      "validation": {}
    },
    {
      "name": "personalEarningsCalculatedTax",
      "label": "Р. бр. 1 (Лична примања), колона 10 (Обрачунат)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 1 \"Лична примања\", column 10 \"Обрачунат\".",
      "sourceRef": "Section 2, row 1, column 10",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "personalEarningsPaidTax",
      "label": "Р. бр. 1 (Лична примања), колона 11 (Уплаћен)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 1 \"Лична примања\", column 11 \"Уплаћен\".",
      "sourceRef": "Section 2, row 1, column 11",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "personalEarningsTaxCredit",
      "label": "Р. бр. 1 (Лична примања), колона 12 (Порески кредит)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 1 \"Лична примања\", column 12 \"Порески кредит\".",
      "sourceRef": "Section 2, row 1, column 12",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "personalEarningsTaxDifference",
      "label": "Р. бр. 1 (Лична примања), колона 13 (Разлика 10 – (11 + 12))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 1 \"Лична примања\", column 13 \"Разлика 10 – (11 + 12)\".",
      "sourceRef": "Section 2, row 1, column 13",
      "validation": {}
    },
    {
      "name": "personalEarningsIncomeAfterTax",
      "label": "Р. бр. 1 (Лична примања), колона 14 (Доходак послије опорезивања (6– 10))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 1 \"Лична примања\", column 14 \"Доходак послије опорезивања (6– 10)\".",
      "sourceRef": "Section 2, row 1, column 14",
      "validation": {}
    },
    {
      "name": "copyrightIncomeMunicipality",
      "label": "Р. бр. 2 (Доходак од ауторских права), колона 3 (Општина)",
      "type": "string",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 2 \"Доходак од ауторских права\", column 3 \"Општина\".",
      "sourceRef": "Section 2, row 2, column 3",
      "validation": {
        "minLength": 1,
        "maxLength": 100
      }
    },
    {
      "name": "copyrightIncomeRevenue",
      "label": "Р. бр. 2 (Доходак од ауторских права), колона 4 (Приход)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 2 \"Доходак од ауторских права\", column 4 \"Приход\".",
      "sourceRef": "Section 2, row 2, column 4",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "copyrightIncomeExpense",
      "label": "Р. бр. 2 (Доходак од ауторских права), колона 5 (Расход)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 2 \"Доходак од ауторских права\", column 5 \"Расход\".",
      "sourceRef": "Section 2, row 2, column 5",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "copyrightIncomeIncome",
      "label": "Р. бр. 2 (Доходак од ауторских права), колона 6 (Доходак (4 – 5))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 2 \"Доходак од ауторских права\", column 6 \"Доходак (4 – 5)\".",
      "sourceRef": "Section 2, row 2, column 6",
      "validation": {}
    },
    {
      "name": "copyrightIncomeTaxBaseReduction",
      "label": "Р. бр. 2 (Доходак од ауторских права), колона 7 (Умањење пореске основице)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 2 \"Доходак од ауторских права\", column 7 \"Умањење пореске основице\".",
      "sourceRef": "Section 2, row 2, column 7",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "copyrightIncomeTaxBase",
      "label": "Р. бр. 2 (Доходак од ауторских права), колона 9 (Основица за порез 6 – (7 + 8))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 2 \"Доходак од ауторских права\", column 9 \"Основица за порез 6 – (7 + 8)\".",
      "sourceRef": "Section 2, row 2, column 9",
      "validation": {}
    },
    {
      "name": "copyrightIncomeCalculatedTax",
      "label": "Р. бр. 2 (Доходак од ауторских права), колона 10 (Обрачунат)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 2 \"Доходак од ауторских права\", column 10 \"Обрачунат\".",
      "sourceRef": "Section 2, row 2, column 10",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "copyrightIncomePaidTax",
      "label": "Р. бр. 2 (Доходак од ауторских права), колона 11 (Уплаћен)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 2 \"Доходак од ауторских права\", column 11 \"Уплаћен\".",
      "sourceRef": "Section 2, row 2, column 11",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "copyrightIncomeTaxCredit",
      "label": "Р. бр. 2 (Доходак од ауторских права), колона 12 (Порески кредит)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 2 \"Доходак од ауторских права\", column 12 \"Порески кредит\".",
      "sourceRef": "Section 2, row 2, column 12",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "copyrightIncomeTaxDifference",
      "label": "Р. бр. 2 (Доходак од ауторских права), колона 13 (Разлика 10 – (11 + 12))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 2 \"Доходак од ауторских права\", column 13 \"Разлика 10 – (11 + 12)\".",
      "sourceRef": "Section 2, row 2, column 13",
      "validation": {}
    },
    {
      "name": "copyrightIncomeIncomeAfterTax",
      "label": "Р. бр. 2 (Доходак од ауторских права), колона 14 (Доходак послије опорезивања (6– 10))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 2 \"Доходак од ауторских права\", column 14 \"Доходак послије опорезивања (6– 10)\".",
      "sourceRef": "Section 2, row 2, column 14",
      "validation": {}
    },
    {
      "name": "capitalIncomeMunicipality",
      "label": "Р. бр. 3 (Доходак од капитала), колона 3 (Општина)",
      "type": "string",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 3 \"Доходак од капитала\", column 3 \"Општина\".",
      "sourceRef": "Section 2, row 3, column 3",
      "validation": {
        "minLength": 1,
        "maxLength": 100
      }
    },
    {
      "name": "capitalIncomeRevenue",
      "label": "Р. бр. 3 (Доходак од капитала), колона 4 (Приход)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 3 \"Доходак од капитала\", column 4 \"Приход\".",
      "sourceRef": "Section 2, row 3, column 4",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalIncomeExpense",
      "label": "Р. бр. 3 (Доходак од капитала), колона 5 (Расход)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 3 \"Доходак од капитала\", column 5 \"Расход\".",
      "sourceRef": "Section 2, row 3, column 5",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalIncomeIncome",
      "label": "Р. бр. 3 (Доходак од капитала), колона 6 (Доходак (4 – 5))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 3 \"Доходак од капитала\", column 6 \"Доходак (4 – 5)\".",
      "sourceRef": "Section 2, row 3, column 6",
      "validation": {}
    },
    {
      "name": "capitalIncomeTaxBaseReduction",
      "label": "Р. бр. 3 (Доходак од капитала), колона 7 (Умањење пореске основице)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 3 \"Доходак од капитала\", column 7 \"Умањење пореске основице\".",
      "sourceRef": "Section 2, row 3, column 7",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalIncomeTaxBase",
      "label": "Р. бр. 3 (Доходак од капитала), колона 9 (Основица за порез 6 – (7 + 8))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 3 \"Доходак од капитала\", column 9 \"Основица за порез 6 – (7 + 8)\".",
      "sourceRef": "Section 2, row 3, column 9",
      "validation": {}
    },
    {
      "name": "capitalIncomeCalculatedTax",
      "label": "Р. бр. 3 (Доходак од капитала), колона 10 (Обрачунат)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 3 \"Доходак од капитала\", column 10 \"Обрачунат\".",
      "sourceRef": "Section 2, row 3, column 10",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalIncomePaidTax",
      "label": "Р. бр. 3 (Доходак од капитала), колона 11 (Уплаћен)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 3 \"Доходак од капитала\", column 11 \"Уплаћен\".",
      "sourceRef": "Section 2, row 3, column 11",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalIncomeTaxCredit",
      "label": "Р. бр. 3 (Доходак од капитала), колона 12 (Порески кредит)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 3 \"Доходак од капитала\", column 12 \"Порески кредит\".",
      "sourceRef": "Section 2, row 3, column 12",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalIncomeTaxDifference",
      "label": "Р. бр. 3 (Доходак од капитала), колона 13 (Разлика 10 – (11 + 12))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 3 \"Доходак од капитала\", column 13 \"Разлика 10 – (11 + 12)\".",
      "sourceRef": "Section 2, row 3, column 13",
      "validation": {}
    },
    {
      "name": "capitalIncomeIncomeAfterTax",
      "label": "Р. бр. 3 (Доходак од капитала), колона 14 (Доходак послије опорезивања (6– 10))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 3 \"Доходак од капитала\", column 14 \"Доходак послије опорезивања (6– 10)\".",
      "sourceRef": "Section 2, row 3, column 14",
      "validation": {}
    },
    {
      "name": "capitalGainMunicipality",
      "label": "Р. бр. 4 (Капитални добитак), колона 3 (Општина)",
      "type": "string",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 4 \"Капитални добитак\", column 3 \"Општина\".",
      "sourceRef": "Section 2, row 4, column 3",
      "validation": {
        "minLength": 1,
        "maxLength": 100
      }
    },
    {
      "name": "capitalGainRevenue",
      "label": "Р. бр. 4 (Капитални добитак), колона 4 (Приход)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 4 \"Капитални добитак\", column 4 \"Приход\".",
      "sourceRef": "Section 2, row 4, column 4",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalGainExpense",
      "label": "Р. бр. 4 (Капитални добитак), колона 5 (Расход)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 4 \"Капитални добитак\", column 5 \"Расход\".",
      "sourceRef": "Section 2, row 4, column 5",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalGainIncome",
      "label": "Р. бр. 4 (Капитални добитак), колона 6 (Доходак (4 – 5))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 4 \"Капитални добитак\", column 6 \"Доходак (4 – 5)\".",
      "sourceRef": "Section 2, row 4, column 6",
      "validation": {}
    },
    {
      "name": "capitalGainTaxBaseReduction",
      "label": "Р. бр. 4 (Капитални добитак), колона 7 (Умањење пореске основице)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 4 \"Капитални добитак\", column 7 \"Умањење пореске основице\".",
      "sourceRef": "Section 2, row 4, column 7",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalGainTaxBase",
      "label": "Р. бр. 4 (Капитални добитак), колона 9 (Основица за порез 6 – (7 + 8))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 4 \"Капитални добитак\", column 9 \"Основица за порез 6 – (7 + 8)\".",
      "sourceRef": "Section 2, row 4, column 9",
      "validation": {}
    },
    {
      "name": "capitalGainCalculatedTax",
      "label": "Р. бр. 4 (Капитални добитак), колона 10 (Обрачунат)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 4 \"Капитални добитак\", column 10 \"Обрачунат\".",
      "sourceRef": "Section 2, row 4, column 10",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalGainPaidTax",
      "label": "Р. бр. 4 (Капитални добитак), колона 11 (Уплаћен)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 4 \"Капитални добитак\", column 11 \"Уплаћен\".",
      "sourceRef": "Section 2, row 4, column 11",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalGainTaxCredit",
      "label": "Р. бр. 4 (Капитални добитак), колона 12 (Порески кредит)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 4 \"Капитални добитак\", column 12 \"Порески кредит\".",
      "sourceRef": "Section 2, row 4, column 12",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "capitalGainTaxDifference",
      "label": "Р. бр. 4 (Капитални добитак), колона 13 (Разлика 10 – (11 + 12))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 4 \"Капитални добитак\", column 13 \"Разлика 10 – (11 + 12)\".",
      "sourceRef": "Section 2, row 4, column 13",
      "validation": {}
    },
    {
      "name": "capitalGainIncomeAfterTax",
      "label": "Р. бр. 4 (Капитални добитак), колона 14 (Доходак послије опорезивања (6– 10))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 4 \"Капитални добитак\", column 14 \"Доходак послије опорезивања (6– 10)\".",
      "sourceRef": "Section 2, row 4, column 14",
      "validation": {}
    },
    {
      "name": "selfEmploymentIncomeMunicipality",
      "label": "Р. бр. 5 (Доходак од самосталне дјелатности), колона 3 (Општина)",
      "type": "string",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 5 \"Доходак од самосталне дјелатности\", column 3 \"Општина\".",
      "sourceRef": "Section 2, row 5, column 3",
      "validation": {
        "minLength": 1,
        "maxLength": 100
      }
    },
    {
      "name": "selfEmploymentIncomeRevenue",
      "label": "Р. бр. 5 (Доходак од самосталне дјелатности), колона 4 (Приход)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 5 \"Доходак од самосталне дјелатности\", column 4 \"Приход\".",
      "sourceRef": "Section 2, row 5, column 4",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "selfEmploymentIncomeExpense",
      "label": "Р. бр. 5 (Доходак од самосталне дјелатности), колона 5 (Расход)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 5 \"Доходак од самосталне дјелатности\", column 5 \"Расход\".",
      "sourceRef": "Section 2, row 5, column 5",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "selfEmploymentIncomeIncome",
      "label": "Р. бр. 5 (Доходак од самосталне дјелатности), колона 6 (Доходак (4 – 5))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 5 \"Доходак од самосталне дјелатности\", column 6 \"Доходак (4 – 5)\".",
      "sourceRef": "Section 2, row 5, column 6",
      "validation": {}
    },
    {
      "name": "selfEmploymentIncomeTaxBaseReduction",
      "label": "Р. бр. 5 (Доходак од самосталне дјелатности), колона 7 (Умањење пореске основице)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 5 \"Доходак од самосталне дјелатности\", column 7 \"Умањење пореске основице\".",
      "sourceRef": "Section 2, row 5, column 7",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "selfEmploymentIncomeTaxBase",
      "label": "Р. бр. 5 (Доходак од самосталне дјелатности), колона 9 (Основица за порез 6 – (7 + 8))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 5 \"Доходак од самосталне дјелатности\", column 9 \"Основица за порез 6 – (7 + 8)\".",
      "sourceRef": "Section 2, row 5, column 9",
      "validation": {}
    },
    {
      "name": "selfEmploymentIncomeCalculatedTax",
      "label": "Р. бр. 5 (Доходак од самосталне дјелатности), колона 10 (Обрачунат)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 5 \"Доходак од самосталне дјелатности\", column 10 \"Обрачунат\".",
      "sourceRef": "Section 2, row 5, column 10",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "selfEmploymentIncomePaidTax",
      "label": "Р. бр. 5 (Доходак од самосталне дјелатности), колона 11 (Уплаћен)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 5 \"Доходак од самосталне дјелатности\", column 11 \"Уплаћен\".",
      "sourceRef": "Section 2, row 5, column 11",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "selfEmploymentIncomeTaxCredit",
      "label": "Р. бр. 5 (Доходак од самосталне дјелатности), колона 12 (Порески кредит)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 5 \"Доходак од самосталне дјелатности\", column 12 \"Порески кредит\".",
      "sourceRef": "Section 2, row 5, column 12",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "selfEmploymentIncomeTaxDifference",
      "label": "Р. бр. 5 (Доходак од самосталне дјелатности), колона 13 (Разлика 10 – (11 + 12))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 5 \"Доходак од самосталне дјелатности\", column 13 \"Разлика 10 – (11 + 12)\".",
      "sourceRef": "Section 2, row 5, column 13",
      "validation": {}
    },
    {
      "name": "selfEmploymentIncomeIncomeAfterTax",
      "label": "Р. бр. 5 (Доходак од самосталне дјелатности), колона 14 (Доходак послије опорезивања (6– 10))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 5 \"Доходак од самосталне дјелатности\", column 14 \"Доходак послије опорезивања (6– 10)\".",
      "sourceRef": "Section 2, row 5, column 14",
      "validation": {}
    },
    {
      "name": "selfEmploymentIncomeCarriedLoss",
      "label": "Р. бр. 5 (Доходак од самосталне дјелатности), колона 8 (Пренесени губитак за умањење пореске основице)",
      "type": "number",
      "required": false,
      "description": "Loss carried forward from a prior tax period, applied to reduce the tax base for self-employment income (Доходак од самосталне дјелатности). The form's own column 8 cell is shaded/blocked for every other income-type row (personal earnings, copyright income, capital income, capital gain, other income, and the total row) — a loss carryforward against the tax base only applies to self-employment income under Republika Srpska's income tax law, so this field is modelled only for this row, not the other six.",
      "sourceRef": "Section 2, row 5, column 8",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "otherIncomeMunicipality",
      "label": "Р. бр. 6 (Остали доходак), колона 3 (Општина)",
      "type": "string",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 6 \"Остали доходак\", column 3 \"Општина\".",
      "sourceRef": "Section 2, row 6, column 3",
      "validation": {
        "minLength": 1,
        "maxLength": 100
      }
    },
    {
      "name": "otherIncomeRevenue",
      "label": "Р. бр. 6 (Остали доходак), колона 4 (Приход)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 6 \"Остали доходак\", column 4 \"Приход\".",
      "sourceRef": "Section 2, row 6, column 4",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "otherIncomeExpense",
      "label": "Р. бр. 6 (Остали доходак), колона 5 (Расход)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 6 \"Остали доходак\", column 5 \"Расход\".",
      "sourceRef": "Section 2, row 6, column 5",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "otherIncomeIncome",
      "label": "Р. бр. 6 (Остали доходак), колона 6 (Доходак (4 – 5))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 6 \"Остали доходак\", column 6 \"Доходак (4 – 5)\".",
      "sourceRef": "Section 2, row 6, column 6",
      "validation": {}
    },
    {
      "name": "otherIncomeTaxBaseReduction",
      "label": "Р. бр. 6 (Остали доходак), колона 7 (Умањење пореске основице)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 6 \"Остали доходак\", column 7 \"Умањење пореске основице\".",
      "sourceRef": "Section 2, row 6, column 7",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "otherIncomeTaxBase",
      "label": "Р. бр. 6 (Остали доходак), колона 9 (Основица за порез 6 – (7 + 8))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 6 \"Остали доходак\", column 9 \"Основица за порез 6 – (7 + 8)\".",
      "sourceRef": "Section 2, row 6, column 9",
      "validation": {}
    },
    {
      "name": "otherIncomeCalculatedTax",
      "label": "Р. бр. 6 (Остали доходак), колона 10 (Обрачунат)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 6 \"Остали доходак\", column 10 \"Обрачунат\".",
      "sourceRef": "Section 2, row 6, column 10",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "otherIncomePaidTax",
      "label": "Р. бр. 6 (Остали доходак), колона 11 (Уплаћен)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 6 \"Остали доходак\", column 11 \"Уплаћен\".",
      "sourceRef": "Section 2, row 6, column 11",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "otherIncomeTaxCredit",
      "label": "Р. бр. 6 (Остали доходак), колона 12 (Порески кредит)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 6 \"Остали доходак\", column 12 \"Порески кредит\".",
      "sourceRef": "Section 2, row 6, column 12",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "otherIncomeTaxDifference",
      "label": "Р. бр. 6 (Остали доходак), колона 13 (Разлика 10 – (11 + 12))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 6 \"Остали доходак\", column 13 \"Разлика 10 – (11 + 12)\".",
      "sourceRef": "Section 2, row 6, column 13",
      "validation": {}
    },
    {
      "name": "otherIncomeIncomeAfterTax",
      "label": "Р. бр. 6 (Остали доходак), колона 14 (Доходак послије опорезивања (6– 10))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 6 \"Остали доходак\", column 14 \"Доходак послије опорезивања (6– 10)\".",
      "sourceRef": "Section 2, row 6, column 14",
      "validation": {}
    },
    {
      "name": "totalMunicipality",
      "label": "Р. бр. 7 (УКУПНО (р. бр. 1 до р. бр. 6)), колона 3 (Општина)",
      "type": "string",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 7 \"УКУПНО (р. бр. 1 до р. бр. 6)\", column 3 \"Општина\".",
      "sourceRef": "Section 2, row 7, column 3",
      "validation": {
        "minLength": 1,
        "maxLength": 100
      }
    },
    {
      "name": "totalRevenue",
      "label": "Р. бр. 7 (УКУПНО (р. бр. 1 до р. бр. 6)), колона 4 (Приход)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 7 \"УКУПНО (р. бр. 1 до р. бр. 6)\", column 4 \"Приход\".",
      "sourceRef": "Section 2, row 7, column 4",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "totalExpense",
      "label": "Р. бр. 7 (УКУПНО (р. бр. 1 до р. бр. 6)), колона 5 (Расход)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 7 \"УКУПНО (р. бр. 1 до р. бр. 6)\", column 5 \"Расход\".",
      "sourceRef": "Section 2, row 7, column 5",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "totalIncome",
      "label": "Р. бр. 7 (УКУПНО (р. бр. 1 до р. бр. 6)), колона 6 (Доходак (4 – 5))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 7 \"УКУПНО (р. бр. 1 до р. бр. 6)\", column 6 \"Доходак (4 – 5)\".",
      "sourceRef": "Section 2, row 7, column 6",
      "validation": {}
    },
    {
      "name": "totalTaxBaseReduction",
      "label": "Р. бр. 7 (УКУПНО (р. бр. 1 до р. бр. 6)), колона 7 (Умањење пореске основице)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 7 \"УКУПНО (р. бр. 1 до р. бр. 6)\", column 7 \"Умањење пореске основице\".",
      "sourceRef": "Section 2, row 7, column 7",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "totalTaxBase",
      "label": "Р. бр. 7 (УКУПНО (р. бр. 1 до р. бр. 6)), колона 9 (Основица за порез 6 – (7 + 8))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 7 \"УКУПНО (р. бр. 1 до р. бр. 6)\", column 9 \"Основица за порез 6 – (7 + 8)\".",
      "sourceRef": "Section 2, row 7, column 9",
      "validation": {}
    },
    {
      "name": "totalCalculatedTax",
      "label": "Р. бр. 7 (УКУПНО (р. бр. 1 до р. бр. 6)), колона 10 (Обрачунат)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 7 \"УКУПНО (р. бр. 1 до р. бр. 6)\", column 10 \"Обрачунат\".",
      "sourceRef": "Section 2, row 7, column 10",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "totalPaidTax",
      "label": "Р. бр. 7 (УКУПНО (р. бр. 1 до р. бр. 6)), колона 11 (Уплаћен)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 7 \"УКУПНО (р. бр. 1 до р. бр. 6)\", column 11 \"Уплаћен\".",
      "sourceRef": "Section 2, row 7, column 11",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "totalTaxCredit",
      "label": "Р. бр. 7 (УКУПНО (р. бр. 1 до р. бр. 6)), колона 12 (Порески кредит)",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 7 \"УКУПНО (р. бр. 1 до р. бр. 6)\", column 12 \"Порески кредит\".",
      "sourceRef": "Section 2, row 7, column 12",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "totalTaxDifference",
      "label": "Р. бр. 7 (УКУПНО (р. бр. 1 до р. бр. 6)), колона 13 (Разлика 10 – (11 + 12))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 7 \"УКУПНО (р. бр. 1 до р. бр. 6)\", column 13 \"Разлика 10 – (11 + 12)\".",
      "sourceRef": "Section 2, row 7, column 13",
      "validation": {}
    },
    {
      "name": "totalIncomeAfterTax",
      "label": "Р. бр. 7 (УКУПНО (р. бр. 1 до р. бр. 6)), колона 14 (Доходак послије опорезивања (6– 10))",
      "type": "number",
      "required": false,
      "description": "Section 2 (Одјељак 2 - Доходак), row 7 \"УКУПНО (р. бр. 1 до р. бр. 6)\", column 14 \"Доходак послије опорезивања (6– 10)\".",
      "sourceRef": "Section 2, row 7, column 14",
      "validation": {}
    },
    {
      "name": "refundPaymentAccountNumber",
      "label": "Молим да ми се износ више плаћеног пореза уплати на рачун",
      "type": "string",
      "required": false,
      "description": "The taxpayer's own bank transaction account number, into which an overpaid-tax refund should be paid, if the taxpayer requests a cash refund rather than an advance credit. See this document's own VERIFICATION.md for how this line's two unlabelled PDF form widgets were collapsed to a single field.",
      "sourceRef": "Section 2 footer, \"Молим да ми се износ више плаћеног пореза уплати на рачун/текући рачун\"",
      "validation": {
        "minLength": 1,
        "maxLength": 60
      }
    },
    {
      "name": "overpaymentAsAdvanceCreditNote",
      "label": "Износ више плаћеног пореза ħу користити као аконтацију за будуће пореске обавезе",
      "type": "string",
      "required": false,
      "description": "Taxpayer's own note electing to carry an overpaid-tax amount forward as an advance credit against future tax obligations, instead of (or alongside) a cash refund. See this document's own VERIFICATION.md for how this line's two unlabelled PDF form widgets were collapsed to a single field.",
      "sourceRef": "Section 2 footer, \"Износ више плаћеног пореза ħу користити као аконтацију за будуће пореске обавезе\"",
      "validation": {
        "minLength": 1,
        "maxLength": 60
      }
    },
    {
      "name": "authorizedPersonFullName",
      "label": "Име и презиме овлаштеног лица / законског заступника",
      "type": "string",
      "required": true,
      "classification": "pii",
      "description": "Full name of the authorized person or legal representative certifying, under moral, material, and criminal liability, that every entry in this return is complete, accurate, and truthful.",
      "sourceRef": "Овјера (Certification) — Овјера пореског обвезника (Taxpayer certification) block",
      "validation": {
        "minLength": 1,
        "maxLength": 300
      }
    },
    {
      "name": "certificationDate",
      "label": "Датум",
      "type": "date",
      "required": true,
      "description": "Date this return was certified by the authorized person/legal representative.",
      "sourceRef": "Овјера пореског обвезника block, \"Датум\"",
      "validation": {}
    },
    {
      "name": "preparerFullName",
      "label": "Име и презиме лица које је попунило пријаву",
      "type": "string",
      "required": false,
      "classification": "pii",
      "description": "Full name of the person who physically completed this return, when different from the authorized person/legal representative certifying it (e.g. an accountant or other preparer).",
      "sourceRef": "Овјера пореског обвезника block, \"Име и презиме лица које је попунило пријаву\"",
      "validation": {
        "minLength": 1,
        "maxLength": 300
      }
    }
  ],
  "crossFieldValidation": [
    {
      "id": "taxPeriodToNotBeforeFrom",
      "compare": {
        "field": "taxPeriodTo",
        "operator": "greaterThanOrEqual",
        "compareTo": "taxPeriodFrom"
      }
    }
  ]
}
