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.