Regulatory Serbia — Regulatory Summary Serbia (RS) Regulatory Requirements Overview Country Code: RS Currency: RSD (Serbian Dinar) EU Status: Candidate Open Banking: PSD2-aligned (deadline Jan 2026) Payment System: IPS Serbia (instant 1-sec) + SEPA member (May 2025, full ORD May 2026) VAT (PDV - Porez na dodatu vrednost) Rate Type Rate Description Standard 20% General goods and services (opšta stopa) Reduced 10% Food, medicines, utilities (snižena stopa) Zero 0% Exports, international transport Registration Threshold: 8M RSD annual turnover Return Frequency: Monthly (>50M RSD) or Quarterly (<50M RSD) Filing Deadline: 15th of following month Portal: ePorezi Corporate Income Tax (CIT - Porez na dobit) Rate: 15% flat Filing Deadline: June 30 (for previous fiscal year) Payment: Quarterly advance payments Withholding Tax (WHT) Type Rate Dividends 20% Interest 20% Royalties 20% Small Business Regime (Pausal) Threshold: <6M RSD annual turnover Taxation: Simplified lump-sum based on activity type Benefits: Reduced compliance burden, no VAT registration required E-Invoice (SEF - Sistem e-Faktura) Platform: https://efaktura.gov.rs Status: Operational Mandatory Since: B2G (government suppliers): May 2022 B2B (business-to-business): January 2023 Format: UBL 2.1 XML API: Available for integration ( API docs ) Penalties: 50,000 - 2,000,000 RSD for non-compliance Coming: eOtpremnica (e-waybill) expected 2026/2027 Fiscal Devices (B2C) Required for: Cash sales (retail, restaurants, etc.) Systems: LPFR (Local Printer with Fiscal Register) ESIR (Electronic System for Invoice Registration) Chart of Accounts (Kontni okvir) Regulation: Pravilnik o kontnom okviru (2021) Structure: 10-class system (0-9) Class 0: Fixed assets & long-term placements Class 1: Inventory / Short-term credits Class 2: Short-term receivables, cash Class 3: Capital Class 4: Long-term provisions & liabilities Class 5: Expenses Class 6: Revenue Class 7: Financial income Class 8: Financial expenses Class 9: Operational accounting Accounts: 3-digit base accounts (standardized), 4-5 digit analytical accounts (company-specific) Financial Statement Filing Institution: APR (Agencija za privredne registre) URL: https://www.apr.gov.rs Deadline: June 30 Required Statements: Balance Sheet (Bilans stanja) Income Statement (Bilans uspjeha) Cash Flow Statement (large entities only) Statement of Changes in Equity (large entities only) Document Retention: 10 years Bank Integration Format: ISO 20022 (CAMT.053 for statements, pain.001 for payments) Instant Payments: IPS Serbia (1-second settlement) SEPA: Full member since May 2025 Accounting Standards Mandatory: IFRS (International Financial Reporting Standards) for large entities and PIEs (Public Interest Entities) Optional: IFRS for SMEs for smaller entities Fallback: Serbian accounting regulations for micro entities Key Dates Event Deadline VAT return 15th of following month CIT advance payment Quarterly CIT annual return June 30 Financial statements filing June 30 Implementation Notes Package: @bilko/country-rs SEF integration: Priority for B2B launch Pausal regime: Important for small business market Serbian language: Latin and Cyrillic script support needed Bosnia — Regulatory Summary Bosnia & Herzegovina (BA) Regulatory Requirements Overview Country Code: BA Currency: BAM (Convertible Mark), symbol "KM" EU Status: Non-member (potential candidate) Open Banking: Not adopted Payment System: Gyro Clearing + RTGS (Real-Time Gross Settlement) COMPLEXITY: BiH has two entities: FBiH (Federation of Bosnia and Herzegovina) RS (Republika Srpska) VAT is unified at state level. Direct taxes (CIT, WHT) are separate per entity. VAT (PDV - Porez na dodanu vrijednost) Rate Type Rate Description Standard 17% General goods and services (opća stopa) Zero 0% Exports No reduced rates Registration Threshold: 100,000 BAM annual turnover Return Frequency: Monthly Filing Deadline: TBD (check UIO portal) Portal: UIO (Indirect Taxation Authority) Corporate Income Tax (CIT - Porez na dobit) Rate: 10% (both FBiH and RS) Filing Deadline: March 31 Administration: Separate per entity FBiH: Tax Administration of FBiH RS: Tax Administration of RS Withholding Tax (WHT) Type FBiH RS Dividends 5% 10% Interest 10% 10% Royalties 10% 10% IMPORTANT: Dividend WHT differs by entity! Small Business Regime No specific pausal regime like Serbia or Croatia Standard taxation applies regardless of size E-Invoice (CPF - Central Platform for Fiscalisation) Status: PENDING (expected ~2027) Law Adopted: January 2026 (FBiH only) Technical Specs: NOT YET PUBLISHED Planned Coverage: B2B/B2G: CPF platform B2C: ESET fiscal devices RS Entity: Separate regulations, no mandate yet Implementation Note: Monitor for technical specifications publication. Do NOT implement until specs available. Fiscal Devices (B2C) Required for: Cash sales System: ESET (Electronic System of Tax Registers) Chart of Accounts (Kontni okvir) Regulation: FBiH Pravilnik (2022) Structure: 10-class system (0-9) Class 0: Fixed assets & long-term placements Class 1: Inventory Class 2: Short-term receivables, cash Class 3: Capital Class 4: Long-term liabilities Class 5: Operating expenses Class 6: Revenue Class 7: Financial income Class 8: Financial expenses Class 9: Off-balance sheet accounts Note: RS may have slight variations - need verification Accounts: 3-digit base accounts, 4-5 digit analytical accounts Financial Statement Filing Institution: FBiH: Agency of Financial Information RS: Tax Administration of RS Deadline: March 31 Required Statements: Balance Sheet (Bilans stanja) Income Statement (Bilans uspjeha) Cash Flow Statement (large entities) Statement of Changes in Equity (large entities) Document Retention: FBiH: 10 years RS: 11 years Bank Integration Format: ISO 20022 (aligned, not full SEPA) Payment System: Gyro Clearing + RTGS Instant Payments: Not available Accounting Standards Adopted: IFRS (International Financial Reporting Standards) by both entities Optional: IFRS for SMEs Key Dates Event Deadline VAT return Monthly (check UIO) CIT annual return March 31 Financial statements filing March 31 Implementation Notes Package: @bilko/country-ba CPF integration: DO NOT implement until technical specs published (~2027) Entity handling: Must support FBiH vs RS distinction for CIT and WHT Language: Bosnian (Latin script), Serbian (Cyrillic) also used in RS VAT unified: Single UIO portal for all entities Direct taxes separate: FBiH and RS have different portals and deadlines Unknowns & Risks CPF technical specs - Not published, expected ~2027 RS e-invoice mandate - No timeline yet Specific account numbers - Need actual Pravilnik documents RS chart of accounts - May differ from FBiH, needs verification Recommendation: Launch BiH THIRD (after Serbia and Croatia) to allow time for regulatory clarity. Croatia — Regulatory Summary Croatia (HR) Regulatory Requirements Overview Country Code: HR Currency: EUR (adopted January 2024, previously HRK) EU Status: Member since 2013 Open Banking: PSD2 full compliance (Berlin Group NextGenPSD2) Payment System: SEPA (full member) VAT (PDV - Porez na dodanu vrijednost) Rate Type Rate Description Standard 25% General goods and services (opća stopa) Intermediate 13% Certain foods, water supply, accommodation (srednja stopa) Reduced 5% Books, newspapers, baby food (snižena stopa) Zero 0% Exports, intra-EU supply Registration Threshold: 60,000 EUR annual turnover Return Frequency: Monthly Filing Deadline: Last day of following month Portal: ePorezna Corporate Income Tax (CIT - Porez na dobit) Standard Rate: 18% Reduced Rate: 10% (if annual revenue <1M EUR) Filing Deadline: April 30 (for previous fiscal year) Payment: Annual (no advance payments for small entities) Withholding Tax (WHT) Type Rate Dividends 10% Interest 12% Royalties 15% Small Business Regime (Pausalni obrt) Threshold: <60,000 EUR annual turnover Taxation: Simplified lump-sum based on activity Benefits: Reduced compliance, simplified VAT rules E-Invoice (HR-FISK 2.0 / eRacun) Platform: https://hr-fisk.fina.hr Status: Operational (launched January 2026) Mandatory Since: January 1, 2026 (B2B/B2G/B2C) Format: UBL 2.1 XML with HR-CIUS (Croatian Implementation User Specification) Protocol: AS4 Network: Peppol-compatible Certificate: FINA certificate required API: Available ( HR-FISK docs ) Penalties: Up to 500,000 EUR for non-compliance (SEVERE) Archive Requirement: 11 years Fiscal Devices (B2C) Required for: Cash sales (retail, restaurants, etc.) System: Fiskalizacija 1.0 (legacy) + Fiskalizacija 2.0 (launched 2026 alongside HR-FISK) Chart of Accounts (Kontni plan) Standard: RRiF (most widely used) Structure: 10-class system (0-9) Class 0: Fixed assets & long-term placements Class 1: Inventory Class 2: Short-term receivables, cash Class 3: Capital Class 4: Long-term liabilities Class 5: Operating expenses Class 6: Revenue Class 7: Financial income Class 8: Financial expenses Class 9: Off-balance sheet accounts Accounts: 3-digit base accounts, 4-5 digit analytical accounts Financial Statement Filing Institution: FINA (Financijska agencija) URL: https://www.fina.hr Format: RGFI (Registar godišnjih financijskih izvještaja) Deadline: April 30 Required Statements: Balance Sheet (Bilanca) Income Statement (Račun dobiti i gubitka) Cash Flow Statement (large entities) Statement of Changes in Equity (large entities) Notes to Financial Statements Document Retention: 11 years Bank Integration Format: ISO 20022 (CAMT.053, pain.001) Instant Payments: SEPA Instant (full support) SEPA: Full member Accounting Standards Mandatory for PIEs: IFRS (International Financial Reporting Standards) For SMEs: Croatian Financial Reporting Standards (CFRS) based on IFRS for SMEs Micro entities: Simplified CFRS Key Dates Event Deadline VAT return Last day of following month CIT annual return April 30 Financial statements filing April 30 Implementation Notes Package: @bilko/country-hr HR-FISK integration: Critical for Jan 2026 launch Peppol network: Enables cross-border e-invoicing (EU advantage) FINA certificate: Required for HR-FISK — integration needed Croatian language: Latin script only Euro formatting: Use Croatian locale (1.234,56 EUR) Multi-Region Overview Multi-Region Accounting Standards Overview Source: Research report /Users/makinja/system/reports/research-bilko-multi-region-2026-02-20.md Key Architectural Insight: Shared Core + Country Plugins What's SHARED (build once) Component Standard Notes Chart of Accounts structure 10 classes (0-9), decimal Same across all 3 countries Accounting standards IFRS / IFRS for SMEs Adopted by all 3 Bookkeeping Double-entry Mandatory everywhere Payment formats ISO 20022 (pain.001, camt.053) All 3 converging E-invoice format UBL 2.1 XML (EN 16931) Standard across all 3 Data protection GDPR-aligned All 3 converging Digital signatures eIDAS-aligned (QES/AES/SES) All 3 support Software certification None required No barriers to entry Data residency No in-country mandate Cloud hosting OK User licensing No professional license needed Anyone can use What's PER-COUNTRY (plugin architecture) Component Serbia Croatia BiH Currency RSD EUR BAM VAT standard rate 20% 25% 17% VAT reduced rates 10% 13%, 5% None VAT registration threshold 8M RSD 60K EUR 100K BAM VAT return frequency Monthly/Quarterly Monthly Monthly VAT filing deadline 15th of next month Last day of next month TBD Corporate income tax 15% 18% (10% if <1M EUR) 10% CIT filing deadline June 30 April 30 March 31 WHT dividends 20% 10% FBiH 5%, RS 10% E-invoice platform SEF (efaktura.gov.rs) eRacun/HR-FISK (FINA) CPF (pending) E-invoice status Mandatory since 2023 Mandatory Jan 2026 Likely 2027 Fiscal devices (B2C) LPFR + ESIR Fiskalizacija 1.0 + 2.0 ESET Chart of Accounts template Pravilnik (2021) RRiF standard FBiH Pravilnik (2022) Filing institution APR FINA Agency of Financial Info Document retention 10 years 11 years 10-11 years Payment system IPS + SEPA (2026) SEPA (full) Gyro Clearing + RTGS Open Banking PSD2 aligned (Jan 2026) PSD2 (full) Not adopted Tax portal ePorezi ePorezna UIO (VAT), entity portals (CIT) Small biz regime Pausal (<6M RSD) Pausalni obrt (<60K EUR) No specific regime Launch Order Serbia FIRST - SEF operational, largest opportunity, e-invoicing driving adoption NOW Croatia SECOND - HR-FISK launching Jan 2026, EU compliance adds credibility BiH THIRD - Wait for CPF specs (2027), build locale/tax early Competitive Strategy Compete on UX - Pantheon = ERP (complex), Bilko = accounting (simple). Fiken model. Compete on price - Pantheon charges "secretary salary" equivalent. Undercut. Compete on cloud-native - Minimax closest but older architecture Local language + compliance = moat - QuickBooks/Xero can't compete here Country-Specific Details See: Serbia (RS) Croatia (HR) Bosnia & Herzegovina (BA) Chart of Accounts (All Countries) Unified Chart of Accounts Reference Last Updated: 2026-02-20 Purpose: Cross-country comparison and implementation guide for Bilko's Chart of Accounts Overview All three target markets (Serbia, Bosnia & Herzegovina, Croatia) use a class-based Chart of Accounts structure inherited from the former Yugoslav accounting system. Despite political separation, the accounting frameworks remain structurally similar with 10 main classes (0-9). graph TD subgraph BALKAN["Balkan Chart of Accounts — Universal Classes 0-9"] direction LR CL0["Class 0
Stalna imovina
Long-term Assets
DEBIT normal"] CL1["Class 1
Obrtna imovina
Current Assets
DEBIT normal"] CL2["Class 2
Kratkoročne obaveze
Short-term Liabilities
CREDIT normal"] CL3["Class 3
Kapital
Equity
CREDIT normal"] CL4["Class 4
Dugoročne obaveze
Long-term Liabilities
CREDIT normal"] CL5["Class 5
Rashodi
Expenses
DEBIT normal"] CL6["Class 6
Prihodi
Revenue
CREDIT normal"] CL7["Class 7
RS/BA: Troškovi (Costs)
HR: Dobici i Gubici (Gains/Losses)
MIXED"] CL8["Class 8
Vanbilansna evidencija
Off-Balance Sheet
DEBIT memorandum"] CL9["Class 9
Interna računovodstva
Internal Accounting
MIXED — enterprise only"] end BS["Balance Sheet"] --> CL0 BS --> CL1 BS --> CL2 BS --> CL3 BS --> CL4 PL["P&L Statement"] --> CL5 PL --> CL6 PL --> CL7 style CL0 fill:#198754,color:#fff style CL1 fill:#198754,color:#fff style CL2 fill:#dc3545,color:#fff style CL3 fill:#6f42c1,color:#fff style CL4 fill:#dc3545,color:#fff style CL5 fill:#fd7e14,color:#fff style CL6 fill:#0d6efd,color:#fff style CL7 fill:#6c757d,color:#fff style CL8 fill:#adb5bd,color:#fff style CL9 fill:#adb5bd,color:#fff style BS fill:#0d6efd,color:#fff style PL fill:#198754,color:#fff Universal Structure (Classes 0-9) Class 0: Long-term Assets (Stalna imovina / Dugotrajna imovina) Normal Balance: Debit Examples: 01: Intangible assets (goodwill, patents, software licenses) 02: Tangible assets (land, buildings, equipment) 03: Long-term financial investments 04: Long-term receivables Bilko AccountType: asset (debit normal balance) Class 1: Current Assets (Obrtna imovina / Kratkotrajna imovina) Normal Balance: Debit Examples: 10: Material and goods (inventory) 11: Work in progress 12: Finished goods 13: Short-term receivables (accounts receivable) 14: Short-term financial assets 15: Cash and cash equivalents (bank accounts, cash on hand) Bilko AccountType: asset (debit normal balance) Class 2: Short-term Liabilities (Kratkoročne obaveze) Normal Balance: Credit Examples: 20: Short-term financial liabilities (bank loans < 1 year) 21: Accounts payable (suppliers) 22: Other short-term liabilities 23: Wages and salaries payable 24: Taxes payable (VAT, income tax, social contributions) Bilko AccountType: liability (credit normal balance) Class 3: Capital and Equity (Kapital / Glavni kapital) Normal Balance: Credit Examples: 30: Share capital / Ownership capital 31: Reserves (legal, statutory) 32: Revaluation reserves 33: Retained earnings (accumulated profit/loss) 34: Current year profit/loss Bilko AccountType: equity (credit normal balance) Class 4: Long-term Liabilities (Dugoročne obaveze) Normal Balance: Credit Examples: 40: Long-term loans (bank loans > 1 year) 41: Long-term financial liabilities 42: Provisions (for pensions, guarantees) 43: Deferred tax liabilities Bilko AccountType: liability (credit normal balance) Class 5: Expenses (Rashodi / Troškovi poslovanja) Normal Balance: Debit Examples: 50: Material costs (raw materials consumed) 51: Salaries and wages 52: Social security contributions (employer's share) 53: Depreciation and amortization 54: Other operating expenses (rent, utilities, insurance) 55: Financial expenses (interest paid) Bilko AccountType: expense (debit normal balance) Class 6: Revenue (Prihodi) Normal Balance: Credit Examples: 60: Revenue from sales of goods 61: Revenue from sales of services 62: Revenue from use of own products 63: Subsidies and grants 64: Other operating revenue 65: Financial revenue (interest received, dividends) Bilko AccountType: revenue (credit normal balance) Class 7: Cost / Gains and Losses (Troškovi / Dobici i gubici) Normal Balance: Mixed (varies by country) NOTE: This class has different usage across the three countries: Serbia & BiH: Costs (Troškovi) 70: Cost of goods sold 71: Cost of services sold 72: Production costs Used for cost accounting separate from financial accounting expenses Croatia: Gains and Losses (Dobici i gubici) 70: Extraordinary gains 71: Extraordinary losses 72: Prior period adjustments Used for non-operating items Bilko Implementation: Serbia/BiH: AccountType = expense (cost accounts) Croatia: Mixed — AccountType depends on sub-account (gain = revenue , loss = expense ) Class 8: Off-Balance Sheet Items (Vanbilansna evidencija) Normal Balance: Debit (memorandum accounts) Examples: 80: Guarantees issued 81: Guarantees received 82: Leased assets (operating lease) 83: Contingent assets and liabilities Bilko AccountType: asset (debit memorandum) Note: These accounts do NOT affect the balance sheet totals — they are for tracking only. Class 9: Internal Accounting (Interna računovodstva) Normal Balance: Mixed (company-specific) Examples: 90: Cost centers 91: Projects 92: Departments 93: Internal settlements between divisions Bilko AccountType: Mixed — depends on company's internal structure Usage: Primarily for large multi-division companies. NOT needed for SMB MVP. Account Numbering Hierarchy graph TD CL["1 — Current Assets (Class)"] GRP["12 — Short-term Receivables (Group)"] ACC1["120 — Trade Receivables Domestic (Account)"] ACC2["121 — Trade Receivables Foreign (Account)"] SA1["1200 — Trade Rec. — EU (Sub-account)"] SA2["1201 — Trade Rec. — Non-EU (Sub-account)"] SA3["1210 — Foreign Rec. — EU (Sub-account)"] SA4["1211 — Foreign Rec. — Non-EU (Sub-account)"] CL --> GRP GRP --> ACC1 GRP --> ACC2 ACC1 --> SA1 ACC1 --> SA2 ACC2 --> SA3 ACC2 --> SA4 MVP["MVP Scope
2-3 digit codes
covers 95% of SMBs"] PH2["Phase 2
4+ digit analytical accounts
enterprise clients"] ACC1 -.->|"MVP"| MVP SA1 -.->|"Phase 2"| PH2 style CL fill:#0d6efd,color:#fff style GRP fill:#0d6efd,color:#fff,stroke-dasharray: 5 5 style ACC1 fill:#198754,color:#fff style ACC2 fill:#198754,color:#fff style SA1 fill:#6c757d,color:#fff style SA2 fill:#6c757d,color:#fff style SA3 fill:#6c757d,color:#fff style SA4 fill:#6c757d,color:#fff style MVP fill:#ffc107,stroke:#e0a800 style PH2 fill:#adb5bd,color:#fff Country-Specific Differences Serbia Legal Framework: Law on Accounting (Zakon o računovodstvu), Službeni glasnik RS No. 95/2014 [HIGH] Mandatory: Yes, for all legal entities (Article 14) Language: Serbian (Cyrillic or Latin script) Class 7: Cost accounting (Troškovi) Unique Requirement: All accounts, books, and reports must use Serbian Chart as primary Bosnia & Herzegovina Legal Framework: FBiH: Law on Accounting and Auditing in the Federation (2021) — IFRS mandatory RS: Law on Accounting and Auditing (Official Gazette RS No. 94/15, 78/20) — IFRS mandatory Standard: IFRS Accounting Standards (both entities) Language: Bosnian (FBiH), Serbian (RS — Latin or Cyrillic) Class 7: Cost accounting (Troškovi) Complexity: TWO separate frameworks (FBiH vs RS), but structurally similar SME Option: IFRS for SMEs or full IFRS (company choice for non-PIEs) Croatia Legal Framework: EU Regulation 1606/2002 + Croatian Accounting Act [HIGH] Guidance: RRiF Chart of Accounts for Entrepreneurs (multiple editions) Standard: IFRS for publicly traded companies, simplified for SMEs Language: Croatian Class 7: Gains and Losses (Dobici i gubici) — different from Serbia/BiH EU Alignment: Stricter compliance due to EU membership Country Divergence — Class 7 graph LR CL7["Class 7"] CL7 --> RS7["Serbia RS
Troškovi (Costs)
70: Cost of goods sold
71: Cost of services sold
72: Production costs
AccountType: expense"] CL7 --> BA7["Bosnia BA
Troškovi (Costs)
70: Cost of goods sold
71: Cost of services sold
72: Production costs
AccountType: expense"] CL7 --> HR7["Croatia HR
Dobici i gubici
(Gains and Losses)
70: Extraordinary gains
71: Extraordinary losses
72: Prior period adjustments
AccountType: revenue/expense mixed"] RS7 --> SAME["Serbia + BiH
Identical Class 7 treatment
Cost accounting focus"] BA7 --> SAME HR7 --> DIFF["Croatia differs
Non-operating items only
Bilko: type depends on sub-account"] style CL7 fill:#6c757d,color:#fff style RS7 fill:#c0392b,color:#fff style BA7 fill:#2c3e50,color:#fff style HR7 fill:#e74c3c,color:#fff style SAME fill:#198754,color:#fff style DIFF fill:#ffc107,stroke:#e0a800 MVP Implementation for Bilko Minimum Chart of Accounts for SMBs A basic SMB in any of the three markets needs at minimum 30-40 accounts to operate legally: Assets (Classes 0-1) 020: Buildings and structures 021: Equipment and machinery 022: Vehicles 023: Computers and IT equipment 024: Furniture and fixtures 102: Raw materials inventory 103: Finished goods inventory 120: Accounts receivable — domestic customers 121: Accounts receivable — foreign customers 130: Advances paid to suppliers 140: Cash in bank (main operating account) 141: Cash on hand (petty cash) Liabilities (Classes 2, 4) 200: Short-term bank loans 210: Accounts payable — domestic suppliers 211: Accounts payable — foreign suppliers 220: Wages and salaries payable 240: VAT/PDV payable 241: Income tax payable 242: Social security contributions payable 400: Long-term bank loans Equity (Class 3) 300: Share capital / Owner's capital 330: Retained earnings 340: Current year profit/loss Revenue (Class 6) 600: Sales revenue — goods (domestic) 601: Sales revenue — services (domestic) 610: Sales revenue — exports (0% VAT) 650: Interest income 690: Other revenue Expenses (Class 5) 500: Cost of goods purchased for resale 510: Salaries and wages 520: Social security contributions (employer) 530: Depreciation expense 540: Rent expense 541: Utilities (electricity, water, heating) 542: Telephone and internet 543: Office supplies 550: Interest expense 560: Bank fees 570: Insurance 590: Other operating expenses Total: ~40 accounts (covers 90% of SMB transactions) Seed Data Strategy Approach: Country-Specific Presets Bilko should ship with 3 predefined Chart of Accounts templates : Serbia — SMB Standard (Serbian language, Classes 0-6 + 8) BiH — FBiH SMB Standard (Bosnian language, IFRS-aligned, Classes 0-6 + 8) BiH — RS SMB Standard (Serbian language, IFRS-aligned, Classes 0-6 + 8) Croatia — SMB Standard (Croatian language, RRiF-based, Classes 0-6 + 7-gains/losses + 8) Installation Process On Company Setup: User selects country: Serbia / BiH-FBiH / BiH-RS / Croatia Bilko seeds database with relevant Chart of Accounts preset User can: Accept preset as-is (recommended for new businesses) Customize (add/edit/hide accounts) Import existing chart (for migrating companies) Database Schema -- Chart of Accounts Table CREATE TABLE chart_of_accounts ( id INTEGER PRIMARY KEY, company_id INTEGER NOT NULL, code TEXT NOT NULL, -- e.g., "120", "600" name TEXT NOT NULL, -- e.g., "Potraživanja od kupaca", "Prihodi od prodaje" name_en TEXT, -- English translation (optional) account_type TEXT NOT NULL, -- 'asset', 'liability', 'equity', 'revenue', 'expense' class INTEGER NOT NULL, -- 0-9 parent_code TEXT, -- for hierarchical charts (e.g., "12" parent of "120") country TEXT NOT NULL, -- 'RS' (Serbia), 'BA-FBiH', 'BA-RS', 'HR' (Croatia) is_system BOOLEAN DEFAULT 1, -- system preset vs user-created is_active BOOLEAN DEFAULT 1, -- allow hiding unused accounts FOREIGN KEY (company_id) REFERENCES companies(id), UNIQUE (company_id, code) ); -- Example Seed Data (Serbia) INSERT INTO chart_of_accounts (company_id, code, name, account_type, class, country) VALUES (1, '120', 'Potraživanja od kupaca', 'asset', 1, 'RS'), (1, '140', 'Novac u banci', 'asset', 1, 'RS'), (1, '210', 'Obaveze prema dobavljačima', 'liability', 2, 'RS'), (1, '240', 'PDV za uplatu', 'liability', 2, 'RS'), (1, '300', 'Osnovni kapital', 'equity', 3, 'RS'), (1, '600', 'Prihodi od prodaje robe', 'revenue', 6, 'RS'), (1, '510', 'Troškovi zarada', 'expense', 5, 'RS'); Multi-Country Handling Scenario: Company operates in multiple countries Example: Serbian company (HQ) with BiH branch and Croatian client invoicing Approach: Primary Chart: Serbia (company HQ location) Secondary Charts: BiH and Croatia (linked, not duplicated) Mapping Table: Maps Serbian account codes to BiH/Croatia equivalents CREATE TABLE account_mapping ( id INTEGER PRIMARY KEY, company_id INTEGER NOT NULL, source_code TEXT NOT NULL, -- e.g., "120" (Serbia) source_country TEXT NOT NULL, -- 'RS' target_code TEXT NOT NULL, -- e.g., "120" (BiH) target_country TEXT NOT NULL, -- 'BA-FBiH' FOREIGN KEY (company_id) REFERENCES companies(id) ); Usage: Invoices issued in Serbia → Serbian chart Invoices issued to Croatian clients → mapped to Croatian chart for their records Consolidated reporting → uses primary (Serbian) chart IFRS Alignment (BiH Requirement) Challenge BiH legally requires IFRS Accounting Standards, but traditional Chart of Accounts is NOT IFRS. Solution: Hybrid Approach Internal Recording: Use traditional Chart of Accounts (Classes 0-9) This is what accountants know Compatible with neighboring Serbia and Croatia Easy for SMBs to understand Financial Statements: Generate IFRS-compliant reports via mapping Map Class 0-1 → IFRS Statement of Financial Position (Assets) Map Class 2-4 → IFRS Statement of Financial Position (Liabilities) Map Class 3 → IFRS Statement of Financial Position (Equity) Map Class 5-6 → IFRS Statement of Comprehensive Income IFRS Disclosure Notes: Auto-generate based on account types Property, Plant & Equipment (Class 02) Inventories (Class 10-12) Trade Receivables (Class 13) etc. Benefit: SMBs can use familiar Chart of Accounts, but produce IFRS-compliant financial statements when needed (e.g., for bank loans, audits). Account Numbering Schemes Standard Practice (All Three Countries) 2-digit codes: Main account (e.g., 12 = Receivables) 3-digit codes: Sub-account (e.g., 120 = Trade receivables, 121 = Receivables from affiliates) 4+ digit codes: Analytical sub-accounts (company-specific) Example Hierarchy: 1 — Current Assets (Class) 12 — Short-term Receivables (Group) 120 — Trade Receivables - Domestic (Account) 121 — Trade Receivables - Foreign (Account) 1210 — Trade Receivables - EU (Sub-account) 1211 — Trade Receivables - Non-EU (Sub-account) Bilko Recommendation MVP: Support 2-3 digit codes (sufficient for 95% of SMBs) Phase 2: Support 4+ digit analytical accounts (for enterprise clients) Implementation Checklist for Bilko Phase 1 (MVP) Seed 3 Chart of Accounts templates (Serbia, BiH-FBiH, Croatia) Country selector on company setup Support 2-3 digit account codes Account type mapping (asset, liability, equity, revenue, expense) Serbian, Bosnian, Croatian language account names Balance sheet and P&L generation using Chart of Accounts VAT/PDV account integration (Class 24) Phase 2 4+ digit analytical sub-accounts User-customizable charts (add/edit/archive accounts) BiH-RS template (separate from FBiH) Multi-country mapping (for cross-border operations) IFRS financial statement generator (BiH requirement) Account import from Excel/CSV Class 9 (Internal Accounting) support for enterprise Phase 3 Industry-specific templates (retail, manufacturing, services) Class 7 differentiation (Serbia/BiH cost vs Croatia gains/losses) Class 8 off-balance sheet tracking Full IFRS vs IFRS for SMEs selector (BiH) Sources RRiF's Chart of Accounts for Entrepreneurs | RRiF Serbian Chart of Accounts | ANA Računovodstvo Law on Accounting - Republic of Serbia | Paragraf IFRS in Bosnia and Herzegovina | IFRS Foundation IFRS in Croatia | IFRS Foundation Accounting standards in BiH | Diaspora Invest Serbia — SEF e-Invoicing Serbia — Sistem Elektronskih Faktura (SEF) Last Updated: 2026-02-20 Confidence Level: HIGH (verified from official sources and regulatory updates) Overview Serbia operates a mandatory electronic invoicing system called SEF (Sistem Elektronskih Faktura) for all VAT-liable companies. The system requires all invoices to be transmitted through a central government platform in structured XML format. 1. VAT/PDV Rate and Rules [HIGH] Standard and Reduced Rates Standard Rate: 20% [HIGH] — applies to most taxable supplies Reduced Rate: 10% [HIGH] — applies to: Basic food products Medicines Daily newspapers and publications Public transportation services Utilities Zero Rate (0%): [HIGH] — applies to: Export of goods Transport and other services directly related to exports International air transport Filing Frequency [HIGH] Monthly filing: Required for taxpayers with total annual turnover ≥ 50 million RSD Quarterly filing: Allowed for taxpayers with total annual turnover < 50 million RSD Deadline: Within 15 days of the end of each taxable period Foreign businesses: Quarterly filing expected Tax Authority Poreska Uprava Republike Srbije (Tax Administration of the Republic of Serbia) [HIGH] VAT number format: 9 digits (e.g., 123456789) Serbia PDV Rate Structure graph TD PDV["PDV (VAT) — Srbija"] PDV --> STD["Standardna stopa
20%
Opšte dobavljanje
Većina usluga"] PDV --> RED["Smanjena stopa
10%
Osnovna hrana
Lijekovi
Novine
Komunalije
Javni prevoz"] PDV --> ZERO["Nulta stopa
0%
Izvoz robe
Međunarodni vazdušni prevoz
Prateće izvozne usluge"] PDV --> REG["Prag registracije
8.000.000 RSD
godišnji promet"] PDV --> PAUSAL["Paušalni režim
ispod 6.000.000 RSD
godišnji prihodi"] FILING["Podnošenje PDV prijave"] FILING --> MONTHLY["Mjesečno
promet ≥ 50M RSD
rok: 15 dana nakon perioda"] FILING --> QUARTERLY["Kvartalno
promet < 50M RSD
rok: 15 dana nakon kvartala"] style PDV fill:#c0392b,color:#fff style STD fill:#dc3545,color:#fff style RED fill:#fd7e14,color:#fff style ZERO fill:#198754,color:#fff style FILING fill:#0d6efd,color:#fff style MONTHLY fill:#6c757d,color:#fff style QUARTERLY fill:#6c757d,color:#fff 2. Electronic Invoicing (SEF System) [HIGH] Mandatory Timeline B2G (Business-to-Government): Mandatory since January 1, 2022 [HIGH] — all suppliers to government entities B2B (Business-to-Business): Mandatory since January 1, 2023 [HIGH] — all VAT-liable companies in Serbia Scope [HIGH] All VAT-liable companies in Serbia must issue and receive e-invoices. This includes: Domestic businesses Foreign entities with fiscal representation dealing with Serbian VAT payers Technical Format [HIGH] XML format: UBL 2.1 (OASIS Universal Business Language) [HIGH] Standard compliance: Serbian CIUS (Core Invoice Usage Specification) based on EU EN 16931 [HIGH] Platform: efaktura.mfin.gov.rs (Ministry of Finance platform) [HIGH] Digital Certificate Requirements [MEDIUM] Qualified digital certificates required for invoice signing UNVERIFIED — needs verification from official SEF documentation or local accounting advisor E-Transport (E-Delivery Notes) [HIGH] NEW REQUIREMENT — 2026 onwards: Phase 1: January 1, 2026 — mandatory for: Public sector Carriers Excise goods flows Phase 2: October 1, 2027 — full private-to-private coverage Format: UBL 2.1 XML (same as e-invoicing) Platform: Central government platform (similar to SEF) SEF E-Invoicing Flow sequenceDiagram participant BILKO as Bilko participant CERT as Digitalni Sertifikat
(Qualified CA) participant SEF as efaktura.mfin.gov.rs
(Ministry of Finance) participant BUYER as Kupac (Buyer) participant PURS as Poreska Uprava
(Tax Administration) Note over BILKO,PURS: B2B mandatory since 01.01.2023 BILKO->>BILKO: Kreirati fakturu
UBL 2.1 XML format BILKO->>BILKO: Validirati EN 16931
Serbian CIUS compliance BILKO->>CERT: Potpisati XML
(Qualified digital signature) CERT-->>BILKO: Potpisana faktura BILKO->>SEF: POST /api/publicApi/salesInvoices
(signed UBL 2.1 XML) SEF->>SEF: Validacija formata
i sertifikata alt Validacija uspješna SEF-->>BILKO: 200 OK + invoiceId
(SEF internal ID) SEF->>BUYER: Notifikacija o novoj fakturi BUYER->>SEF: GET /api/purchaseInvoices/:id
(preuzimanje fakture) SEF-->>BUYER: UBL 2.1 XML faktura BUYER->>BUYER: Procesiranje fakture BUYER->>SEF: Potvrda prijema (opciono) SEF->>PURS: Real-time reporting
(porezni podaci) else Validacija neuspješna SEF-->>BILKO: 400 Bad Request
(greška validacije) BILKO->>BILKO: Ispraviti fakturu i pokušati ponovo end Note over BILKO,PURS: Čuvanje 10 godina
Dostupno za poreznu kontrolu 3. Chart of Accounts Standard [HIGH] Legal Framework Governing Law: Law on Accounting (Zakon o računovodstvu) [HIGH] Framework: Kontni Okvir (Chart of Accounts Framework) [HIGH] Official Publication: Službeni glasnik RS No. 95/2014 [HIGH] Structure [MEDIUM] The Serbian Chart of Accounts follows a class-based structure typical of Balkan accounting systems: Class 0: Long-term assets (Stalna imovina) Class 1: Current assets (Obrtna imovina) Class 2: Short-term liabilities (Kratkoročne obaveze) Class 3: Capital/Equity (Kapital) Class 4: Long-term liabilities (Dugoročne obaveze) Class 5: Expenses (Rashodi) Class 6: Revenue (Prihodi) Class 7: Cost/Gains-Losses (Troškovi/Dobici-Gubici) Class 8: Off-balance sheet (Vanbilansna evidencija) Class 9: Internal accounting Requirement [HIGH] All legal persons must record business changes in accounts prescribed by the Chart of Accounts (Article 14, Accounting Law) All transactions, books, and reports must be in Serbian language Serbian Chart of Accounts must be the primary chart Serbia Kontni Okvir — Class Hierarchy graph TD KO["Kontni Okvir Srbije
(Chart of Accounts Framework)
Zakon o računovodstvu
Sl. glasnik RS br. 95/2014"] KO --> BS_SIDE["Bilans Stanja (Balance Sheet)"] KO --> PL_SIDE["Bilans Uspjeha (P&L)"] BS_SIDE --> CL0["Klasa 0: Stalna imovina
020 Građevinski objekti
021 Mašine i uređaji
023 Računari
[DEBIT]"] BS_SIDE --> CL1["Klasa 1: Obrtna imovina
120 Potraživanja od kupaca
140 Novac u banci
141 Blagajna
[DEBIT]"] BS_SIDE --> CL2["Klasa 2: Kratkoročne obaveze
210 Dobavljači
240 PDV za uplatu
241 Porez na dohodak
[KREDIT]"] BS_SIDE --> CL3["Klasa 3: Kapital
300 Osnovna kapital
330 Neraspoređena dobit
340 Dobit/gubitak
[KREDIT]"] BS_SIDE --> CL4["Klasa 4: Dugoročne obaveze
400 Dugoročni krediti
420 Rezervisanja
[KREDIT]"] PL_SIDE --> CL5["Klasa 5: Rashodi
510 Troškovi zarada
530 Amortizacija
540 Zakupnina i komunalije
[DEBIT]"] PL_SIDE --> CL6["Klasa 6: Prihodi
600 Prihodi od prodaje robe
601 Prihodi od usluga
610 Izvozni prihodi (0% PDV)
[KREDIT]"] PL_SIDE --> CL7["Klasa 7: Troškovi
(Cost Accounting)
70 Troškovi prodane robe
71 Troškovi prodanih usluga
[DEBIT]"] style KO fill:#c0392b,color:#fff style BS_SIDE fill:#0d6efd,color:#fff style PL_SIDE fill:#198754,color:#fff style CL0 fill:#198754,color:#fff style CL1 fill:#198754,color:#fff style CL2 fill:#dc3545,color:#fff style CL3 fill:#6f42c1,color:#fff style CL4 fill:#dc3545,color:#fff style CL5 fill:#fd7e14,color:#fff style CL6 fill:#0d6efd,color:#fff style CL7 fill:#6c757d,color:#fff 4. Record Keeping Requirements [HIGH] Retention Period [HIGH] 10 years for all accounting records: Daily cash transactions Business books Accounting documents VAT records Electronic Storage [HIGH] Allowed: Yes, electronic storage is permitted Requirement: Records must be kept in the original form in which they were created Compliance: Must follow Law on Electronic Documents and related bylaws Qualified System Required: Electronic archiving must guarantee: Authenticity Reliability Integrity Usability Audit Trail [HIGH] E-invoices must remain accessible to Tax Authorities for audit purposes for the full 10-year retention period 5. MVP Impact Assessment MVP-CRITICAL (Must Have for Legal Operation) SEF Integration [HIGH PRIORITY] UBL 2.1 XML invoice generation API integration with efaktura.mfin.gov.rs platform Real-time invoice transmission Digital certificate handling PDV (VAT) Calculation [HIGH PRIORITY] Support for 20% standard, 10% reduced, 0% export rates Automatic VAT calculation on transactions VAT report generation for monthly/quarterly filing Serbian Chart of Accounts [HIGH PRIORITY] Predefined Serbian Kontni Okvir structure (Classes 0-9) Mapping of transactions to correct account codes Support for Serbian language in accounting records Electronic Record Storage [HIGH PRIORITY] 10-year retention capability Original format preservation Audit trail for all transactions Export functionality for tax authority audits FUTURE (v2 or Later) E-Transport (E-Delivery Notes) [MEDIUM PRIORITY] Not critical for initial MVP (Phase 1 begins Jan 2026) Required only for: Companies selling to public sector Logistics/carrier companies Excise goods (alcohol, tobacco, fuel) Can be added when targeting these segments Advanced VAT Features [LOW PRIORITY] Reverse charge mechanism Cross-border VAT (intra-EU supplies) Tax exemption handling for specific sectors Multi-Currency Support [LOW PRIORITY] Initial MVP can focus on RSD (Serbian Dinar) only Foreign currency transactions can be added later Implementation Notes for Bilko Critical Path SEF XML Generation Engine: Core requirement — without this, invoices are not legally valid Digital Certificates: Must acquire qualified certificates for invoice signing — partner with local CA (Certification Authority) Platform API: Study efaktura.mfin.gov.rs API documentation — may require Serbian language documentation Local Testing: Must test with Serbian Tax Administration sandbox before production Risks Language Barrier: Official documentation likely in Serbian only Certificate Complexity: Qualified digital certificates may require local company registration API Availability: Government API reliability may vary Compliance Changes: Regulations updated frequently — need monitoring system Recommendation Hire local Serbian accounting advisor for: Verification of all technical requirements Digital certificate acquisition process Sandbox testing coordination Ongoing compliance monitoring Sources Serbia E-Invoicing & Archiving Rules | Basware Serbia's E-invoicing and E-transport Requirements Explained | Ecosio All About B2B E-Invoicing in Serbia | DDDInvoices Serbia VAT Guide | Fonoa Serbia VAT Guide for Businesses in 2026 | Quaderno Law on Accounting - Republic of Serbia | Paragraf Electronic Archiving in Serbia | AVS Legal Serbia Tax Administration | PURS Bosnia — PDV System Bosnia & Herzegovina — PDV (Porez na dodatu vrijednost) Last Updated: 2026-02-20 Confidence Level: HIGH for tax rates, MEDIUM for e-invoicing (pending legislation) Overview Bosnia and Herzegovina operates a unified VAT (PDV) system administered by the Indirect Taxation Authority (Uprava za neizravno oporezivanje / UNO/ITA). Despite the country's complex two-entity structure (Federation of BiH and Republika Srpska), VAT is applied uniformly across the entire territory. BiH Entity Structure and Tax Governance graph TD BIH["Bosna i Hercegovina (BiH)"] BIH --> FBIH["Federacija BiH (FBiH)
Primarni entitet
Sarajevo, Mostar
~60% populacije"] BIH --> RS_ENT["Republika Srpska (RS)
Banja Luka
~40% populacije"] BIH --> BD["Brčko Distrikt
Poseban status"] BIH --> UNO["UNO / ITA
Uprava za neizravno oporezivanje
Jedinstveni PDV za cijelu BiH
www.uino.gov.ba"] UNO --> PDV_UNIFIED["PDV — Jedinstvena stopa
17% za cijelu BiH
Nema smanjene stope"] FBIH --> FBIH_ACC["Računovodstvo FBiH
Zakon o računovodstvu 2021
IFRS obavezno
Jezik: Bosanski"] RS_ENT --> RS_ACC["Računovodstvo RS
Zakon (Sl. glasnik RS 94/15, 78/20)
IFRS obavezno
Jezik: Srpski"] FBIH --> FBIH_CIT["Porez na dobit FBiH
10% flat
WHT dividende: 5%"] RS_ENT --> RS_CIT["Porez na dobit RS
10% flat
WHT dividende: 10%"] style BIH fill:#2c3e50,color:#fff style UNO fill:#c0392b,color:#fff style PDV_UNIFIED fill:#dc3545,color:#fff style FBIH fill:#2980b9,color:#fff style RS_ENT fill:#8e44ad,color:#fff style BD fill:#6c757d,color:#fff 1. VAT/PDV Rate and Rules [HIGH] Single Rate System Standard Rate: 17% [HIGH] — applies to all taxable supplies No Reduced Rate: Bosnia and Herzegovina does NOT have a reduced VAT rate [HIGH] Zero Rate (0%): Export of goods is zero-rated [HIGH] Registration Threshold [HIGH] Mandatory registration: 100,000 BAM (convertibilna marka / convertible mark) [HIGH] Any person making taxable supplies exceeding or likely to exceed this threshold must register as a VAT payer Filing Frequency [HIGH] VAT period: One calendar month [HIGH] Foreign businesses: Quarterly filing expected [HIGH] Tax Authority [HIGH] UNO / ITA: Uprava za neizravno oporezivanje (Indirect Taxation Authority) [HIGH] Single institution responsible for VAT calculation and collection throughout BiH Website: www.uino.gov.ba BiH PDV Filing Flow flowchart TD TRANS["Transakcija (Transaction)"] TRANS --> CHECK{"PDV obveznik?
(>= 100.000 BAM)"} CHECK -->|Da — VAT registered| CALC["Obračun PDV 17%
Nema smanjena stopa
Izvoz = 0%"] CHECK -->|Ne — Below threshold| NOVAT["Bez PDV
Pratiti promet
prema 100K BAM pragu"] CALC --> IZDAVANJE["Izdavanje fakture
(sa PDV-om)"] CALC --> ULAZNI["Ulazni PDV
(kupovine / troškovi)"] IZDAVANJE --> IZLAZNI["Izlazni PDV
(prodaje / prihodi)"] IZLAZNI --> PRIJAVA["Mjesečna PDV Prijava
UNO/ITA
Rok: kraj narednog mjeseca"] ULAZNI --> PRIJAVA PRIJAVA --> NETPDV{"Neto PDV"} NETPDV -->|"Izlazni > Ulazni"| UPLATA["Uplata PDV
UNO/ITA"] NETPDV -->|"Ulazni > Izlazni"| POVRAT["Povrat PDV
od UNO/ITA"] PRIJAVA --> CUVANJE["Čuvanje dokumentacije
Minimum 5 godina"] style TRANS fill:#2c3e50,color:#fff style CALC fill:#dc3545,color:#fff style UPLATA fill:#dc3545,color:#fff style POVRAT fill:#198754,color:#fff style CUVANJE fill:#6c757d,color:#fff 2. Electronic Invoicing (E-Faktura) [MEDIUM] Legislative Status [MEDIUM — PENDING] Draft Law: Published and accepted, now with Parliament [MEDIUM] Proposed Mandatory Date: January 1, 2026 [MEDIUM] Status as of Feb 2026: Implementation timelines and secondary regulations still being defined [LOW] Planned Scope [MEDIUM] The Draft Law proposes mandatory e-invoicing for: B2G (Business-to-Government): Mandatory B2B (Business-to-Business): Mandatory B2C (Business-to-Consumer): Mandatory for most sectors Out of Scope: Security and defense Health activities Social protection activities Technical Format [MEDIUM — PENDING FINAL REGULATIONS] Standard: European Standard EN 16931 compliance required [MEDIUM] B2B/B2G Platform: Central Platform for Fiscalisation (CPF) [MEDIUM] Mandatory use for issuing, transmitting, and validating e-invoices B2C Requirements: Approved Electronic Fiscal Systems (EFS) [MEDIUM] ESET tools Certified fiscal devices Current Status [LOW — UNCERTAIN] Final technical specifications pending Secondary regulations awaited Implementation may be delayed beyond January 2026 RECOMMENDATION: Monitor UNO/ITA website for official announcements BiH E-Faktura Status (2026) stateDiagram-v2 [*] --> Draft_Law: Nacrt zakona objavljen Draft_Law --> Parliament: Prihvaćen, upućen Parlamentu Parliament --> Pending: Status Feb 2026
Implementacijski rokovi se definišu
Sekundarni propisi čekaju Pending --> Enacted: Zakon stupi na snagu
[MOGUĆE Q2-Q3 2026] Pending --> Delayed: Odgođeno
[RIZIK — pratiti UNO/ITA] Enacted --> Phase_B2G: B2G obavezno
Svi dobavljači vlade Enacted --> Phase_B2B: B2B obavezno
Svi PDV obveznici Enacted --> Phase_B2C: B2C obavezno
(bez sigurnosti, zdravstva,
socijalne zaštite) Phase_B2G --> CPF: Centralna Platforma za Fiskalizaciju (CPF)
EN 16931 standard
UBL 2.1 format Phase_B2B --> CPF Phase_B2C --> EFS: Odobreni Elektronski Fiskalni Sistemi (EFS)
ESET alati
Certificirani uređaji note right of Pending Bilko MVP preporuka: NE implementirati još Pratiti UNO/ITA website Implementirati Q2 2026 ako zakon stupi na snagu end note 3. Chart of Accounts Standard [MEDIUM] Two-Entity System [MEDIUM] Bosnia and Herzegovina has two separate accounting frameworks due to its constitutional structure: Federation of BiH (FBiH) [HIGH] Law: Law on Accounting and Auditing in the Federation (February 24, 2021) [HIGH] Standard: IFRS Accounting Standards (mandatory) [HIGH] Issued by: International Accounting Standards Board (IASB) Translation: Union of Accountants, Auditors and Financial Workers of Federation of BiH publishes IFRS in Bosnian language Republika Srpska (RS) [HIGH] Law: Law on Accounting and Auditing (Official Gazette of RS No. 94/15 and 78/20) [HIGH] Standard: IFRS Accounting Standards (mandatory) [HIGH] First adopted: 2005, updated 2015 Translation: Association of Accountants and Auditors of the Republic of Srpska publishes official Serbian translation Chart of Accounts Structure [MEDIUM] Both entities use analytical chart of accounts following traditional Balkan structure: Class 0: Long-term assets (Stalna imovina) Class 1: Current assets (Obrtna imovina) Class 2: Short-term liabilities (Kratkoročne obaveze) Class 3: Capital/Equity (Kapital) Class 4: Long-term liabilities (Dugoročne obaveze) Class 5: Expenses (Rashodi) Class 6: Revenue (Prihodi) Class 7: Cost/Gains-Losses (Troškovi/Dobici-Gubici) Class 8: Off-balance sheet (Vanbilansna evidencija) Class 9: Internal accounting IFRS for SMEs [MEDIUM] Non-PIEs and SMEs: Can choose between: IFRS for SMEs Accounting Standard, OR Full IFRS Accounting Standards Public Interest Entities (PIEs): Must use full IFRS Standards 4. Record Keeping Requirements [MEDIUM] Retention Period [MEDIUM] Minimum: 5 years [MEDIUM] for: Employment-related records Tax-related records Accounting documents NOTE: Some sources indicate retention periods can vary from 5 years to permanent recordkeeping depending on document type. UNVERIFIED — needs local accounting advisor confirmation. Electronic Storage [MEDIUM] Allowed: Yes, BiH allows retention of accounting documents in electronic form [MEDIUM] Original Form Requirement: Records must be kept in the "original" form in which they were created [MEDIUM] Integrity Requirements: [MEDIUM] Information integrity must be preserved Organization must be able to print the information Entity-Specific Variations [LOW] Due to BiH's complex constitutional structure (FBiH, RS, Brčko District, 10 Cantons in FBiH), legislation may be introduced at multiple administrative levels. Specific retention requirements may vary by entity — requires verification with local advisor. 5. MVP Impact Assessment MVP-CRITICAL (Must Have for Legal Operation) PDV (VAT) Calculation [HIGH PRIORITY] Single rate: 17% on all taxable supplies Zero-rate for exports VAT report generation for monthly filing Registration threshold tracking (100,000 BAM) Chart of Accounts — Dual Support [HIGH PRIORITY] Support BOTH FBiH and RS accounting frameworks IFRS-compliant account structure Entity selection during company setup (FBiH vs RS vs Brčko) Bosnian/Serbian language support for account names Electronic Record Storage [MEDIUM PRIORITY] 5-year minimum retention Original format preservation Print capability for all stored records FUTURE (v2 or Phase 2) E-Invoicing (E-Faktura) [MEDIUM PRIORITY — WATCH & WAIT] NOT CRITICAL FOR MVP — legislation still pending Monitor UNO/ITA for final regulations Target implementation: Q2-Q3 2026 (if mandate proceeds) Features needed: EN 16931 XML generation Central Platform for Fiscalisation (CPF) API integration Electronic Fiscal Systems (EFS) for B2C Advanced IFRS Features [LOW PRIORITY] Full IFRS vs IFRS for SMEs selector Consolidated financial statements Multi-currency for PIEs Brčko District Support [LOW PRIORITY] Separate administrative unit with potential unique requirements Low priority unless targeting this market Implementation Notes for Bilko Critical Decisions FBiH vs RS Default? Most commercial activity in FBiH (Sarajevo) Consider FBiH as default, RS as option OR: Entity selector during onboarding IFRS Compliance Full IFRS implementation is complex Consider IFRS for SMEs as MVP scope Partner with local accounting firm for IFRS mapping Language Requirements Bosnian language support MANDATORY Serbian Cyrillic optional (RS uses Latin + Cyrillic) English for international users (optional) Risks E-Invoicing Uncertainty: Timeline and requirements not finalized Two-Entity Complexity: Different laws, different translations IFRS Compliance: May be overkill for micro-businesses (under 100K BAM threshold) Language Barrier: Official documentation in Bosnian/Serbian only Recommendations Launch without E-Invoicing: Wait for final regulations before implementing Partner with BiH Accounting Firm: For IFRS guidance and entity-specific requirements Localize Interface: Bosnian language MUST be primary Monitor UNO/ITA: Set up alert for e-invoicing regulation updates UNVERIFIED ITEMS — NEEDS LOCAL ADVISOR REVIEW Exact retention period per document type: Ranges from 5 years to permanent — need detailed matrix Digital certificate requirements for e-invoicing: Not yet published CPF platform technical specs: Awaiting secondary regulations Brčko District unique requirements: Unclear if different from FBiH/RS Canton-level variations in FBiH: 10 cantons may have specific rules Sources Bosnia and Herzegovina VAT System | Indirect Taxation Authority Bosnia and Herzegovina - Corporate - Other taxes | PwC Bosnia and Herzegovina to Implement Mandatory E-Invoicing | VATupdate All About E-Invoicing in Bosnia and Herzegovina | DDDInvoices IFRS in Bosnia and Herzegovina | IFRS Foundation Accounting standards in BiH | Diaspora Invest Record Retention in Bosnia and Herzegovina | FilersKeepers Electronic Records Requirements | ARMA Magazine Croatia — eRačun & HR-FISK Croatia — eRačun and Fiscalization (Fiskalizacija) Last Updated: 2026-02-20 Confidence Level: HIGH (Croatia is EU member with well-documented regulations) Overview Croatia, as an EU member state, implements a comprehensive e-invoicing and fiscalization system. Two parallel systems operate as of January 1, 2026: Fiscalization 1.0 — B2C (end consumer) transactions with real-time cash register fiscalization Fiscalization 2.0 — B2B and B2G electronic invoicing with mandatory use of the eRačun platform Croatia Dual Fiscalization System graph TD HR["Republika Hrvatska
EU Member State
VAT: PDV
Currency: EUR (since 2023)"] HR --> FISC1["Fiskalizacija 1.0
B2C transakcije
Već na snazi (postojeći zahtjev)"] HR --> FISC2["Fiskalizacija 2.0
B2B transakcije
Obavezno od 01.01.2026"] FISC1 --> F1_REQ["Zahtjevi:
Certificirani fiskalni uređaji
Real-time veza s Poreznom upravom
JIR (Jedinstveni identifikator računa)
Odmah"] FISC2 --> F2_VAT["PDV Obveznici:
Obavezno izdavati i primati
e-račune od 01.01.2026
Real-time reporting na eRačun"] FISC2 --> F2_NOVAT["Ne-PDV Obveznici:
Primati e-račune od 01.01.2026
Izdavati e-račune od 01.01.2027"] FISC2 --> FINA["FINA (Financijska agencija)
Operator eRačun platforme
Centralni hub za B2G i B2B
www.fina.hr"] FISC2 --> B2G["B2G (Servis eRačun za državu)
Obavezno od 01.07.2019
UBL 2.1 (preporučeno)
ili CII format"] style HR fill:#e74c3c,color:#fff style FISC1 fill:#fd7e14,color:#fff style FISC2 fill:#dc3545,color:#fff style FINA fill:#0d6efd,color:#fff style B2G fill:#198754,color:#fff style F2_VAT fill:#dc3545,color:#fff style F2_NOVAT fill:#ffc107,stroke:#e0a800 1. VAT/PDV Rate and Rules [HIGH] Rate Structure (2026) Standard Rate: 25% [HIGH] — one of the highest in the EU First Reduced Rate: 13% [HIGH] — applies to: Food products Accommodation services Utilities Second Reduced Rate: 5% [HIGH] — applies to: Books Medicines Daily newspapers Zero Rate (0%): [HIGH] — applies to: Intra-EU passenger transport International passenger transport (excluding rail and road) NOTE: Croatia does NOT use a super-reduced rate below 5% as of 2026. Filing Requirements [MEDIUM] Monthly VAT filing: Standard for most taxpayers [MEDIUM] Annual tax return: Required [MEDIUM] Tax Authority Porezna uprava (Tax Administration) — Croatian Tax Authority [HIGH] VAT compliance monitored through eRačun platform and Fiscalization 2.0 system Croatia PDV Rate Structure graph TD PDV_HR["PDV (VAT) — Hrvatska
Porezna uprava"] PDV_HR --> STD["Osnovna stopa
25%
Jedna od najviših u EU
Opća primjena"] PDV_HR --> RED1["Smanjena stopa 1
13%
Hrana
Smještaj (hoteli)
Komunalije"] PDV_HR --> RED2["Smanjena stopa 2
5%
Knjige
Lijekovi
Dnevne novine"] PDV_HR --> ZERO["Nulta stopa
0%
Intra-EU putnički prevoz
Međunarodni prevoz"] PDV_HR --> CIT["Porez na dobit"] CIT --> CIT_SMALL["10%
Prihodi < 1M EUR
Malo poduzetništvo"] CIT --> CIT_LARGE["18%
Prihodi ≥ 1M EUR
Veliko poduzetništvo"] PDV_HR --> REG["Prag PDV registracije
60.000 EUR
(EU 2025 usklađeno)"] style PDV_HR fill:#e74c3c,color:#fff style STD fill:#dc3545,color:#fff style RED1 fill:#fd7e14,color:#fff style RED2 fill:#ffc107,stroke:#e0a800 style ZERO fill:#198754,color:#fff style CIT fill:#0d6efd,color:#fff 2. Electronic Invoicing — Dual System [HIGH] A. B2G (Business-to-Government) — Mandatory Since July 1, 2019 [HIGH] Legal Basis Law: Act on eInvoicing in Public Procurement (OJ 94/2018) [HIGH] EU Directive: Transposes Directive 2014/55/EU [HIGH] Mandatory since: July 1, 2019 [HIGH] Technical Requirements [HIGH] Platform: Servis eRačun za državu (eRačun Service for the State) [HIGH] Format: Must comply with European Standard EN 16931 [HIGH] Supported syntaxes: UBL 2.1 (OASIS Universal Business Language) — recommended [HIGH] CII (Cross-Industry Invoice) [HIGH] Scope [HIGH] All suppliers to public sector entities must issue structured e-invoices Extended beyond EU requirements to include: Procurement below EU thresholds (goods/services < €26,540, works < €66,360) Direct award procedures (purchase orders) Paper or non-compliant digital invoices are NOT accepted since July 1, 2019 [HIGH] B. B2B (Business-to-Business) — Mandatory Since January 1, 2026 [HIGH] Legal Basis Law: New Fiscalization Act 2026 (Fiscalization 2.0) [HIGH] Effective Date: January 1, 2026 [HIGH] Mandatory Requirements [HIGH] All VAT-registered taxpayers MUST issue and receive structured e-invoices for domestic B2B transactions Real-time reporting to tax authorities through national platform Non-VAT registered taxpayers: MUST receive electronic invoices from January 1, 2026 [HIGH] MUST issue and fiscalize e-invoices from January 1, 2027 [HIGH] Technical Format [HIGH] Standard: EN 16931 compliance mandatory [HIGH] Format: UBL 2.1 or CII [HIGH] Platform: National eRačun monitoring system [HIGH] Real-Time Reporting [HIGH] All B2B e-invoices must be transmitted to Croatian Tax Authorities in real time Centralized monitoring via eRačun platform (operated by FINA) eRačun B2B Flow — Fiscalization 2.0 sequenceDiagram participant BILKO as Bilko participant CA as Certifikat
(Croatian CA) participant ERACUN as eRačun platforma
(FINA) participant BUYER as Kupac
(B2B primatelj) participant POREZNA as Porezna uprava
(Tax Authority) Note over BILKO,POREZNA: B2B obavezno od 01.01.2026
Real-time reporting na Poreznu upravu BILKO->>BILKO: Kreirati e-Račun
UBL 2.1 ili CII format
EN 16931 validacija BILKO->>BILKO: Dodati PDV
(25% / 13% / 5% / 0%) BILKO->>CA: Potpisati digitalno
(kvalificirani certifikat) CA-->>BILKO: Potpisani račun BILKO->>ERACUN: POST e-račun
(FINA API) ERACUN->>ERACUN: Validacija
EN 16931 usklađenost
Format i potpis alt Uspješna validacija ERACUN-->>BILKO: 200 OK + račun ID ERACUN->>POREZNA: Real-time reporting
(porezni podaci odmah) ERACUN->>BUYER: Notifikacija: novi račun BUYER->>ERACUN: Preuzimanje e-računa ERACUN-->>BUYER: UBL 2.1 XML BUYER->>BUYER: Procesiranje i knjiženje else Neuspješna validacija ERACUN-->>BILKO: Greška validacije
(EN 16931 kršenje) BILKO->>BILKO: Ispraviti i ponovo poslati end Note over BILKO: B2G (servis eRačun za državu):
Isti tok, obavezno od 01.07.2019
Svi dobavljači javnog sektora 3. FINA (Financijska agencija) [HIGH] Role in E-Invoicing FINA is Croatia's national financial agency [HIGH] Operator: Manages the eRačun platform for B2G invoices [HIGH] Function: Central hub for invoice transmission, validation, and tax reporting Website: www.fina.hr Croatia HR-FISK 2.0 Integration Architecture graph TD subgraph BILKO_STACK["Bilko Internal Stack"] INV_ENGINE["Invoice Engine
UBL 2.1 / CII Generator"] VAT_CALC["PDV Calculator
25% / 13% / 5% / 0%"] CHART_HR["Računski plan (RRiF)
HR Chart of Accounts"] CERT_MGR["Certifikat Manager
Qualified CA Croatia"] EN16931["EN 16931 Validator
EU standard compliance"] end subgraph FINA_PLATFORM["FINA eRačun Platform"] B2B_API["B2B API
(Fiscalization 2.0)
od 01.01.2026"] B2G_API["B2G API
(Servis eRačun za državu)
od 01.07.2019"] MONITOR["Monitoring sustav
(Porezna uprava)"] end INV_ENGINE --> EN16931 VAT_CALC --> INV_ENGINE CHART_HR --> INV_ENGINE CERT_MGR --> INV_ENGINE EN16931 --> B2B_API EN16931 --> B2G_API B2B_API --> MONITOR B2G_API --> MONITOR subgraph FUTURE["Fiskalizacija 1.0 — B2C (Buduće)"] CASH_REG["Fiskalni uređaji
Certificirani cash register
JIR identifikator"] end BILKO_STACK -.->|"Phase 2 if retail"| FUTURE style BILKO_STACK fill:#f8f9fa,stroke:#dee2e6 style FINA_PLATFORM fill:#e74c3c,color:#fff,stroke:#c0392b style FUTURE fill:#adb5bd,color:#fff,stroke:#6c757d style B2B_API fill:#dc3545,color:#fff style B2G_API fill:#198754,color:#fff 4. Chart of Accounts Standard [MEDIUM] Governing Framework [MEDIUM] Primary Source: RRiF (Računovodstvo i financije) — Croatian accounting association [MEDIUM] Document: RRiF's Chart of Accounts for Entrepreneurs (Računski plan za poduzetnike) [MEDIUM] Multiple editions published: 18th (2014), 25th (2021), 26th (2023) [MEDIUM] Accounting Standards [HIGH] Croatia, as an EU member, follows: EU Regulation 1606/2002: Application of International Accounting Standards [HIGH] IFRS Standards (EU-adopted): Mandatory for: Consolidated financial statements of publicly traded companies Companies whose securities trade on a regulated market SMEs: May use simplified standards [MEDIUM] Chart Structure [MEDIUM] The Croatian Chart of Accounts (Računski plan) follows traditional structure: Class 0: Long-term assets (Stalna imovina) Class 1: Current assets (Obrtna imovina) Class 2: Short-term liabilities (Kratkoročne obaveze) Class 3: Capital/Equity (Kapital) Class 4: Long-term liabilities (Dugoročne obaveze) Class 5: Expenses (Rashodi) Class 6: Revenue (Prihodi) Class 7: Cost (Troškovi) Class 8: Off-balance sheet (Vanbilansna evidencija) Class 9: Internal accounting Industry Bodies [MEDIUM] HGK (Hrvatska gospodarska komora): Croatian Chamber of Commerce — account codes for receivables [MEDIUM] RRiF: Professional accounting guidance and chart publication [MEDIUM] Ministry of Finance: Sets official accounting standards [HIGH] 5. Record Keeping Requirements [MEDIUM] Retention Period [MEDIUM] UNVERIFIED — needs confirmation from Croatian Accounting Law Likely 5-10 years based on EU standards and neighboring country practices RECOMMENDATION: Consult Croatian accounting advisor for exact retention periods per document type Electronic Storage [MEDIUM] Allowed: Yes, electronic storage permitted in Croatia [MEDIUM] EU Compliance: Must follow EU standards for electronic archiving Requirements: Original format preservation Integrity and authenticity guarantees Audit trail maintenance 6. Fiscalization 1.0 (B2C) [HIGH] Real-Time Cash Register Fiscalization [HIGH] Applies to: All B2C (end consumer) transactions [HIGH] Requirement: Tax receipt (or electronic equivalent) must be transmitted to Croatian Tax Authorities in real-time [HIGH] Effective: Existing requirement, continues alongside Fiscalization 2.0 Technical Requirements [MEDIUM] Certified fiscal devices (cash registers) Real-time connection to Tax Authority servers Unique receipt identifier (JIR — Jedinstveni identifikator računa) 7. MVP Impact Assessment MVP-CRITICAL (Must Have for Legal Operation in Croatia) eRačun B2B Integration (Fiscalization 2.0) [HIGHEST PRIORITY] UBL 2.1 or CII XML invoice generation EN 16931 standard compliance Real-time transmission to eRačun platform API FINA platform integration WITHOUT THIS: B2B invoicing is ILLEGAL in Croatia as of Jan 1, 2026 PDV (VAT) Calculation [HIGH PRIORITY] Support for 25% / 13% / 5% / 0% rates Automatic rate selection based on product/service type VAT report generation for monthly filing Croatian Chart of Accounts [HIGH PRIORITY] RRiF-compliant account structure Croatian language support for account names IFRS-aligned for publicly traded clients (if targeting them) eRačun B2G Integration (if targeting public sector clients) [HIGH PRIORITY] Servis eRačun za državu platform API UBL 2.1 format (recommended) EN 16931 compliance Mandatory since 2019 — mature system FUTURE (v2 or Later) Fiscalization 1.0 (B2C Cash Registers) [MEDIUM PRIORITY] Only needed if Bilko targets retail/POS segment Most B2B SaaS accounting software does NOT need this Fiscal device certification required Advanced IFRS Features [LOW PRIORITY] Full IFRS reporting for PIEs (Public Interest Entities) Consolidated financial statements Multi-entity accounting Multi-Currency Support [LOW PRIORITY] Croatia uses Euro (€) since January 1, 2023 [HIGH] Initial MVP: Euro only Foreign currency: Phase 2 Implementation Notes for Bilko Critical Path for Croatia eRačun API Integration Priority #1 — B2B invoicing is MANDATORY since Jan 1, 2026 Study FINA eRačun API documentation Sandbox testing environment available FINA Documentation: www.fina.hr (Croatian language) UBL 2.1 Generator Same engine can serve B2G and B2B EN 16931 validation library required Consider open-source UBL libraries (Java, PHP, Python) Digital Certificates Qualified certificates required for invoice signing Croatian CA (Certification Authority) needed May require Croatian company registration Language Localization Croatian language MANDATORY for: Chart of accounts Invoice templates Tax reports User interface (if targeting Croatian SMBs) Risks Mature Market: Croatia has had B2G e-invoicing since 2019 — competitors exist Complexity: Dual system (1.0 + 2.0) adds overhead EU Compliance: Stricter standards than Serbia/BiH FINA Dependency: Single national platform — downtime = business stoppage Competitive Advantage EU Standards: Croatia's EN 16931 compliance means Bilko could expand to other EU markets more easily First-Mover (Balkan SaaS): Few Balkan-region SaaS products support Croatian Fiscalization 2.0 Cross-Border: Croatian companies doing business in Serbia/BiH could use Bilko for all three markets UNVERIFIED ITEMS — NEEDS LOCAL ADVISOR REVIEW Exact record retention period per document type: Likely 5-10 years, needs confirmation Non-VAT registered taxpayer e-invoicing delay: Confirmed Jan 1, 2027 — verify this is still valid FINA API technical specifications: Requires registration and Croatian company status? Digital certificate requirements: Type, issuing CA, cost Penalties for non-compliance: Fine amounts for missing/late B2B e-invoices Sources Croatia Confirms Mandatory B2B E-Invoice Launch for 2026 | EDICOM Croatia mandatory eInvoicing 2026 | Fintua Mandatory e-Invoicing in Croatia starting January 1, 2026 | Fiscal Solutions eInvoicing in Croatia: What to Expect from the 2026 B2B Mandate | VATit Croatia requires B2G e-invoicing as of 1 July 2019 | SEEBURGER 2025 Croatia eInvoicing Country Sheet | European Commission E-Invoicing in Croatia (B2B, B2G) | DDDInvoices Croatia VAT Rates and Compliance (2026) | Numeral Global VAT Rates by Country (2026) | VATupdate RRiF's Chart of Accounts for Entrepreneurs | RRiF IFRS in Croatia | IFRS Foundation Bilko HR eRačun — sveRačun (PostLink) Integration & Status Model Overview Provider: sveRačun by PostLink d.o.o. (Velika Gorica, HR). Contact: David Krišto david.kristo@sveracun.hr , Ivan Jurić ivan.juric@sveracun.hr . API docs: https://sveracun-public-api.redocly.app/ Replaces the abandoned Storecove plan (MC #8675, not approved). CEO accepted sveRačun partnership 2026-06-11. Current state: adapter MERGED to main, GATED/DISABLED ( SVERACUN_HR_LIVE=false , adapter_config sveracun-hr-fisk enabled=FALSE ). Live activation pending (MC #103443). API Operation Endpoint Notes Submit document POST https://test.sveracun.hr/api/rest/v1/documents/send Auth header: Authorization: (apiKey scheme, NOT Bearer). Body: raw UBL 2.1 XML ( application/octet-stream ). Response: {"documentId":""} . PROD base URL differs from TEST. Internal status POST /rest/v1/documents/getInternalStatus Poll only — no webhook. External status POST /rest/v1/documents/getExternalStatus Provider also references documents/getStatus . Two-Stage Processing (per David Krišto / PostLink) Etapa 1 — Basic parse: the initiator OIB (the OIB that calls send, tied to the API key) MUST equal the sender OIB inside the UBL XML, plus recipient/document-type/process checks. Mismatch results in status FAILED . Etapa 2 — Full routing: validation vs Porezna uprava validator; recipient access-point lookup; SBD preparation; AS4 exchange (waits 5 min for recipient access point; on unavailability retries up to 24× every 30 min); outbound fiscalization; archiving. Status Model (Authoritative — correct as of 2026-06-11) Internal statuses Status Meaning NEW Inbound-only — document available to pick up. OK Processed successfully by sveRačun. FAILED Processing interrupted (e.g. sender OIB mismatch, parse error). UNKNOWN Currently being processed. UNDELIVERABLE Recipient not registered in AMS (access-point lookup failed). External (fiscalization) statuses Status Meaning FISCALIZATION:OK Fiscalization succeeded. FISCALIZATION:ERROR Fiscalization failed. null Not yet forwarded to fiscalization. FISCALIZATION_PAYMENT_REPORT:OK|ERROR Payment report fiscalization result. FISCALIZATION_REJECTION_REPORT:OK|ERROR Rejection report fiscalization result. FISCALIZATION_NOT_DELIVERED_REPORT:OK|ERROR Not-delivered report fiscalization result. Bilko decision: composite outcome classification Outcome Condition SUCCESS internal = OK AND external = FISCALIZATION:OK FAILURE internal = FAILED | UNDELIVERABLE , OR external = FISCALIZATION:ERROR | any REJECTION_REPORT | any NOT_DELIVERED_REPORT PENDING internal = UNKNOWN | NEW , OR external = null How do we know the invoice arrived? Poll until external status is FISCALIZATION:OK (success) or any *_REPORT / ERROR terminal state (failure). There is NO webhook from sveRačun. Implementation Source files apps/api/src/main/kotlin/no/alai/bilko/country/hr/SveRacunHttpClient.kt — HTTP client (submit, getInternalStatus, getExternalStatus). apps/api/src/main/kotlin/no/alai/bilko/country/hr/SveRacunHrEInvoiceAdapter.kt — serialize, submit, pollStatus; unified mapStatusPair(internal, external) logic. PluginHR.kt — EINVOICE_SUBMIT = BETA, gated by SVERACUN_HR_LIVE flag. db/migrations/V74__sveracun_adapter_config.sql — Flyway migration; registers adapter_config record sveracun-hr-fisk . Key implementation detail serialize() forces UBL AccountingSupplierParty OIB to equal SVERACUN_SENDER_VAT (e.g. HR91276104352 ). If this env var is unset the method is fail-closed (throws before submitting). This prevents Etapa-1 sender-OIB mismatch failures. Configuration & secrets Variable Purpose Where stored SVERACUN_API_KEY API authentication (raw key, not Bearer) GCP Secret: bilko-sveracun-test-api-key (TEST); separate PROD secret to be provisioned. SVERACUN_BASE_URL Base URL (test vs prod differs) Cloud Run env SVERACUN_SENDER_VAT Sender OIB for UBL XML + Etapa-1 initiator match Cloud Run env SVERACUN_HR_LIVE Feature gate (false = adapter disabled) Cloud Run env SECURITY: Never commit or log the actual API key value. Always retrieve from GCP Secret Manager at runtime. PRs & tests PR #346 — initial integration. PR #348 — status-model correction (MC #103445). 42 unit tests: SveRacunHrEInvoiceAdapterTest . Verification Proveo independent PASS — live TEST submit returned HTTP 200, internalStatus=UNKNOWN (processing) after Etapa-1 sender-OIB fix. Prior FAILED result was caused by sender/initiator OIB mismatch before the serialize() fix. Evidence: /tmp/evidence-103445/ . Activation Checklist (MC #103443 — NOT yet done) PostLink confirms our OIB 91276104352 is a registered TEST sender (and separately, PROD sender). Independent green re-test: internalStatus=OK end-to-end (both Etapa 1 and 2). Provision PROD sveRačun API key as GCP Secret. Flip adapter_config enabled=true + SVERACUN_HR_LIVE=true + SVERACUN_SENDER_VAT in Cloud Run (PROD environment). ZAKON PI2 deploy + Proveo live-activation verification. GA compliance review before statutory HR eRačun filing obligations take effect. Related MC Tasks MC #103434 — sveRačun integration (build). MC #103445 — Corrected status model (PR #348). MC #103443 — Live activation (pending — do NOT mark done until activation checklist complete). MC #8675 — Abandoned Storecove plan (not approved; superseded). Document Metadata Author: ALAI / Skillforge Created: 2026-06-11 Status: LIVE REFERENCE — update when activation checklist progresses or API contract changes. Bilko B5 — Per-Line VAT Exemption Classification (MC #103593, 2026-06-15) Context & Decision Date: 2026-06-15  |  MC: #103593  |  Decision authority: CEO (Alem Basic) Domain expert Vlado Brkanć reviewed the existing VAT exemption approach during his B5 classification review (MC #103508). The prior system derived a single document-level allExempt flag in GlBridge.kt and auto-selected the VATEX code from the organisation VAT number prefix ( orgVatNum.startsWith("EU") ). Why this was legally insufficient: Mixed-exemption invoices (e.g. one line: EU IC supply čl.41, second line: domestic exempt čl.39) cannot be represented by a single document-level code. EN 16931 mandates a separate TaxSubtotal group per exemption category. Croatian VAT law ( čl.79 ZPDV, NN ) requires the specific statutory article reference in the UBL TaxExemptionReasonCode (BT-121) and TaxExemptionReason (BT-120). Auto-deriving the code from the country field or the organisation VAT prefix is not deterministic — a Croatian organisation may issue both EU IC supplies and domestically exempt supplies on the same invoice. The allExempt && jurisdiction == "HR" && orgVatNum?.startsWith("EU") heuristic silently emitted EU_41 for any fully-exempt HR invoice whose organisation happened to have an EU-format VAT number, regardless of the actual legal basis. CEO decision 2026-06-14: Option C — Hybrid model. The system auto-suggests an exemption code per line at invoice-creation time; the accountant must confirm or override before issuing to Sveracun. Exemption code is NOT a hard-block on invoice creation (create always succeeds; validation runs at the SveRacun submit boundary). What Changed (B5 Implementation) Database — V90 Migration File: apps/api/src/main/resources/db/migration/V90__invoice_item_vat_exemption_code.sql ALTER TABLE invoice_items ADD COLUMN IF NOT EXISTS vat_exemption_code VARCHAR(20) NULL Additive only — no default, no NOT NULL. Pre-B5 rows remain NULL. No CHECK constraint in DB; application layer ( InvoiceService ) validates the allowed codes so future codes can be added without a migration. Partial index on non-null values: idx_invoice_items_exemption_code ON invoice_items (invoice_id, vat_exemption_code) WHERE vat_exemption_code IS NOT NULL — selective and fast for GL and UBL grouping. Column comment records B5 origin and all four allowed values. Schema (Prisma) InvoiceItem model: vatExemptionCode String? field added (nullable, no default). Exposed Table InvoiceItems in Tables.kt : vatExemptionCode column wired to V90. Canonical Invoice Builder (HrEInvoiceService.kt) HrInvoiceItem now carries vatExemptionCode: String? fetched from the DB per item. buildCanonicalInvoice groups items by (TaxCategory, rate, exemptionCode) — a mixed invoice produces multiple distinct TaxSubtotal groups , each with its own VATEX code. vatexReasonCode(code) and vatexReasonText(code) helper functions map Bilko codes to EN 16931 VATEX values and Croatian-language reason text. A TODO(B5-art79) marker is left in vatexReasonText() pending statutory text confirmation from narodne-novine.nn.hr . UBL Output (StorecoveHrFiskEInvoiceAdapter.kt) HrUblBuilder emits TaxExemptionReasonCode (BT-121) and TaxExemptionReason (BT-120) in each TaxSubtotal block, one per exemption code group. GL Bridge (GlBridge.kt) The allExempt heuristic is replaced with a per-item lookup: // Before (B1 heuristic): val allExempt = items.all { it[InvoiceItems.vatExempt] } val vatExemptionCode = when { allExempt && jurisdiction == "HR" && orgVatNum?.startsWith("EU") == true -> "EU_41" allExempt -> "EXEMPT_39" else -> null } // After (B5): val itemCodes = items.mapNotNull { it[InvoiceItems.vatExemptionCode] }.distinct() val vatExemptionCode = if (itemCodes.size == 1) itemCodes.first() else null Mixed-code invoices result in null at document level — GL rule R-5 (standard/mixed) applies. Credit Notes (CN, type 381) Full CN (storno): vatExemptionCode is inherited per-line from the original invoice items. Partial CN: inherited from caller-supplied item map. Both paths persist to invoice_items and the GL bridge receives the correct code without the allExempt re-derivation. The createCreditNote path in InvoiceService.kt was updated accordingly. Invoice Service (InvoiceService.kt) createInvoice and updateInvoice : accept and persist vatExemptionCode per item. Code validation against the four allowed values happens here (not in the DB). VATEX Mapping Table Bilko Code EN 16931 VATEX BT-120 Text (HR) ZPDV Article EU_41 vatex-eu-ic Oslobođenje od PDV-a — isporuka unutar EU čl. 41 ZPDV EXPORT_45 vatex-eu-g Oslobođenje od PDV-a — izvoz u treće zemlje čl. 45 ZPDV EXEMPT_39 vatex-eu-o Oslobođenje od PDV-a — usluge/isporuke po čl. 39 ZPDV čl. 39 ZPDV EXEMPT_40 vatex-eu-e Oslobođenje od PDV-a — financijske/osigurateljne usluge čl. 40 ZPDV EN 16931 BT-121 carries the VATEX code; BT-120 carries the human-readable reason text. A mixed invoice produces one TaxSubtotal group per distinct code. Hybrid UX Model At invoice creation/edit, Bilko auto-suggests vatExemptionCode per line (e.g. from line context, item category, or existing customer-level setting). The accountant must confirm or override each suggested code before the invoice is submitted to SveRačun. Exemption code is not a hard-block on invoice creation . Validation (including OIB, jurisdiction, EUR currency check) runs at the SveRačun issue boundary ( SVERACUN_HR_LIVE intentional design). This satisfies Vlado Brkanć domain principle: bookkeeping operators must remain in control; the system guides but does not impose. Open Item — čl.79 ZPDV Statutory Text A TODO(B5-art79) marker is present in HrEInvoiceService.vatexReasonText() . Before embedding the exact Croatian statutory article text in the printed invoice UI , the precise subpoint of čl.79 st.1 ZPDV NN must be confirmed by fetching the operative text from narodne-novine.nn.hr . This is an open item for Lexicon/legal review before the printed-invoice feature ships. Test Evidence Suite Tests Pass Notes VatExemptionB5Test (new) 7 7 All B5-specific assertions HrEInvoiceCanonicalInvoiceTest (B3) 5 5 Regression TaxCorrectnessB4Test ~15 ~15 Regression PostingRuleEngineTest ~20 ~20 Regression CreditNote381ComplianceTest ~5 ~5 Regression Full suite 1564 1560 4 pre-existing INFRA-SKIP (SVERACUN_SENDER_VAT env var missing, not B5) Commit: 256d539e on branch feat/103593-b5-exemption . Build: PASS (0 compile errors; 4 pre-existing infra-skip failures are env-var-gated and not introduced by B5). Deploy Status NOT yet deployed. Branch work is Proveo-verified (build PASS, all B5 tests PASS). Deploy is pending the Azure migration — GCP billing is inactive; the production environment is moving to Azure. This page will be updated when the deploy completes. Prerequisite: Flyway V90 migration must run against the target database before the service starts.