Skip to content

Tax Reports

Generate combined KIR/KPR VAT ledgers

POST/tax-reports/kir


Generate one combined FURS filing containing KIR (Evidenca obračunanega DDV) and KPR
(Evidenca odbitka DDV).

The ZIP contains exactly one DDV_KIR_KPR.xml file. KIR includes applicable finalized issued invoices,
outgoing advance invoices, credit notes, and self-assessed VAT from applicable received invoices. KPR includes finalized,
non-voided received invoices from the expense register. Both ledger containers are present even
when a period has no applicable records, as required for a joint eDavki submission.

Period Selection:
- Use month for monthly exports (e.g., month=1 for January)
- Use quarter for quarterly exports (e.g., quarter=1 for Q1)
- Cannot use both month and quarter

Transaction Type Mapping:
- Domestic sales → KIR P7 + P14/P15/P16, or P8 for supplier-side domestic reverse charge
- Intra-EU B2B sales → KIR P10
- Intra-EU B2C → P7 + P14/P15/P16 (standard VAT)
- Goods exported from Slovenia → KIR P7
- Third-country services / supplies whose place is outside Slovenia → KIR P27
- Domestic purchases → KPR P8, or P9 for domestic reverse charge
- Intra-EU goods/services → KPR P10/P11 plus self-assessed KIR VAT
- Deductible input VAT → KPR P18/P19/P20; non-deductible VAT → KPR P17

Credit Notes:
- Included with negative amounts as per FURS specification
- Same field mapping as invoices, but amounts are negated

Important:
- KIR/KPR is available only to entities whose country code is SI
- Draft, voided, and deleted documents are excluded
- Domestic outgoing advances are included as separate KIR rows and their allocated net/VAT amounts are subtracted from the linked final invoice. For intra-EU B2B supplies, goods prepayments are omitted and not deducted; only the classified service component is reported in P10 and deducted from the final invoice. A fully prepaid reportable service still emits the final reconciliation row with P10 empty/zero
- Third-country outgoing documents use the persisted item tax treatment: bases with an explicit 0% tax row map to P7, while no-tax net amounts (including unrated summary bases) map to P27. Mixed documents are split between both fields. Product/service classification and customer geography are not substitutes for tax treatment; the legacy export transaction type remains an explicit goods-export marker and maps to P7
- Domestic and intra-EU B2C outgoing documents fail closed when any net base is 0%, no-tax, unrated, or does not reconcile to the explicit tax summaries; an exemption semantic is required before those amounts can be placed safely
- The selected month or quarter includes the complete final calendar day
- Customer identity fields P5/P6/P6DS are omitted for end consumers
- KIR uses the issued-document date for period selection and P2/P4. KPR uses the receipt date (falling back to supplier-document date) for period selection and P2/P4, while P5 remains the supplier-document date. Dedicated reporting state and post-export locking are deferred
- An included AP document must have its own supplier-document date for KPR P5; receipt date is never substituted into P5
- Reportable intra-EU AP purchases require both the supplier VAT number and an EU supplier country code so KPR P7/P7DS can be emitted together
- P6 is emitted only for a customer with a tax number and an explicit VAT-identified semantic (or an intra-EU B2B transaction); Greek EL VAT prefixes are normalized to FURS country code GR
- The canonical slovenia.vat_profile controls standard, special-VAT-identified, and non-VAT-subject behavior. An ambiguous legacy is_tax_subject=false state must be configured before export
- Special VAT-identified persons report only applicable EU B2B service supplies in outgoing KIR; cross-border self-assessments use KPR P17 because input VAT cannot be deducted. Non-VAT subjects cannot generate this filing
- ODBDELEZ comes only from the explicit calculates_deduction_ratio profile setting and is not inferred from line-level deductibility
- Domestic suppliers require explicit VAT-subject status; domestic small-taxpayer purchases are excluded. Every included expense requires the supplier's own document number for KPR P3
- An explicit 0% tax row with a non-zero base is an exempt purchase and maps to KPR P14 for a standard taxpayer. No tax rows are not equivalent to 0%: non-VAT-supplier purchases are excluded, while an otherwise reportable expense without tax metadata fails validation
- Cross-border supplier-charged foreign VAT is excluded. Mixing it with Slovenian-reportable reverse-charge VAT is rejected as ambiguous
- Customs imports and fixed-asset KPR columns P12/P13/P15/P16 are not currently supported; the exporter does not infer either treatment from supplier geography, item descriptions, or financial categories
- Ambiguous domestic outgoing 0% supplies, unknown transaction types, unsupported tax rates, missing EUR conversions, and amounts outside the FURS XSD bounds are rejected with HTTP 422 instead of producing an unsafe filing
- Entity must have a valid 8-digit Slovenian tax number (SI prefix is automatically removed)

Header parameters

entity_idstringoptional

Entity ID on which the request is made. Auto-selected when only one entity exists, required when multiple entities exist.

Query parameters

yearstringrequired

Year for the combined KIR/KPR export (e.g., 2025)

monthstringoptional

Month for monthly export (1-12). Cannot be used with quarter.

quarterstringoptional

Quarter for quarterly export (1-4). Cannot be used with month.

import SpaceInvoices from '@spaceinvoices/js-sdk/sdk';

const sdk = new SpaceInvoices('YOUR_API_KEY');

const blob = await sdk.taxReports.generateKirExport({
  year: "2025"
}, {
  entity_id: "YOUR_ENTITY_ID"
});

const arrayBuffer = await blob.arrayBuffer();
const { writeFile } = await import('node:fs/promises');
await writeFile('download.bin', Buffer.from(arrayBuffer));
console.log('Saved download.bin');

Review yearly Slovenia normirani filing

POST/tax-reports/si/yearly/normirani/review

Build a review draft for the yearly Slovenia DDD-DDD filing for the supported resident normirani s.p. path.

Header parameters

entity_idstringoptional

Entity ID on which the request is made. Auto-selected when only one entity exists, required when multiple entities exist.

Body parameters

yearintegerrequired

Tax year for the yearly Slovenia eDavki filing.

import SpaceInvoices from '@spaceinvoices/js-sdk/sdk';

const sdk = new SpaceInvoices('YOUR_API_KEY');

const response = await sdk.taxReports.reviewSloveniaYearlyNormiraniReport({
  year: 2025
}, {
  entity_id: "YOUR_ENTITY_ID"
});

console.log(response);

Returns

entity_idstring
yearinteger
filing_kindstring
profileobject
auto_valuesobject
manual_valuesobject
derived_flagsobject
warningsarray of objects
issue_detailsarray of objects
rule_summaryobject
json
{
  "entity_id": "entity-id",
  "year": 2025,
  "filing_kind": "regular_annual",
  "profile": {
    "business_form": "sp",
    "income_tax_regime": "normirani",
    "vat_profile": "standard",
    "calculates_deduction_ratio": true,
    "tax_residency": "resident",
    "yearly_reporting": {
      "activity_codes": [
        "62.010",
        "47.910"
      ],
      "registration_number": "1234567",
      "accounting_type": "records",
      "normiranec_insurance_basis": "full_time_self_employed",
      "default_withholding_tax_amount": 0,
      "default_foreign_tax_credit_amount": 0
    },
    "accounting_exports": {
      "preferred_format": "vod_xml",
      "konto_mappings": {
        "receivables": "receivables",
        "payables": "payables",
        "sales_vat_22": "sales-vat-22",
        "sales_vat_95": "sales-vat-95",
        "sales_vat_5": "sales-vat-5",
        "purchase_vat_recoverable_22": "purchase-vat-recoverable-22",
        "purchase_vat_recoverable_95": "purchase-vat-recoverable-95",
        "purchase_vat_recoverable_5": "purchase-vat-recoverable-5",
        "sales_revenue_22": "sales-revenue-22",
        "sales_revenue_95": "sales-revenue-95",
        "sales_revenue_5": "sales-revenue-5",
        "sales_revenue_exempt": "sales-revenue-exempt",
        "sales_revenue_eu_goods": "sales-revenue-eu-goods",
        "sales_revenue_eu_services": "sales-revenue-eu-services",
        "sales_revenue_reverse_charge": "sales-revenue-reverse-charge",
        "sales_revenue_third_country_goods": "sales-revenue-third-country-goods",
        "sales_revenue_third_country_services": "sales-revenue-third-country-services",
        "purchase_expense_22": "purchase-expense-22",
        "purchase_expense_95": "purchase-expense-95",
        "purchase_expense_5": "purchase-expense-5",
        "purchase_expense_exempt": "purchase-expense-exempt",
        "purchase_expense_eu_goods": "purchase-expense-eu-goods",
        "purchase_expense_eu_services": "purchase-expense-eu-services",
        "purchase_expense_reverse_charge": "purchase-expense-reverse-charge",
        "purchase_expense_third_country_goods": "purchase-expense-third-country-goods",
        "purchase_expense_third_country_services": "purchase-expense-third-country-services"
      }
    },
    "business_form_source": "stored",
    "inferred_business_form": "sp",
    "supported_exports": {
      "yearly_normirani": true,
      "vod_xml": true,
      "vasco_xml": true,
      "minimax_xml": true
    },
    "unsupported_reason": "unsupported-reason"
  },
  "auto_values": {
    "total_invoice_revenue": 0,
    "total_credit_note_reduction": 0,
    "computed_revenue": 0,
    "adjusted_revenue": 0,
    "normative_expense_rate": 0,
    "normative_expenses": 0,
    "tax_base": 0,
    "income_tax_rate": 0,
    "income_tax_amount": 0,
    "advance_tax_amount": 0,
    "monthly_installment_amount": 0,
    "quarterly_installment_amount": 0
  },
  "manual_values": {
    "withholding_tax_amount": 0,
    "foreign_tax_credit_amount": 0,
    "prior_advance_income_tax_amount": 0,
    "revenue_adjustment_decrease": 0,
    "revenue_adjustment_increase": 0
  },
  "derived_flags": {
    "has_foreign_customers": true,
    "has_foreign_tax_numbers": true,
    "has_non_eur_documents": true
  },
  "warnings": [
    {
      "code": "code",
      "message": "message",
      "severity": "info"
    }
  ],
  "issue_details": [
    {
      "code": "code",
      "title": "title",
      "summary": "summary",
      "explanation": "explanation",
      "action": "action",
      "severity": "info",
      "official_sources": [
        {
          "label": "label",
          "url": "https://example.com",
          "issuer": "FURS"
        }
      ],
      "affected_documents": [
        {
          "id": "id",
          "type": "invoice",
          "number": "number",
          "date": "date",
          "customer_name": "customer-name",
          "customer_country_code": "customer-country-code",
          "customer_tax_number": "customer-tax-number",
          "currency_code": "currency-code",
          "total": 0,
          "total_converted": 0,
          "reason": "reason",
          "document_path": "document-path"
        }
      ]
    }
  ],
  "rule_summary": {
    "normative_expense_rule": "normative-expense-rule",
    "income_tax_rule": "income-tax-rule",
    "advance_rule": "advance-rule"
  }
}

Export yearly Slovenia normirani XML

POST/tax-reports/si/yearly/normirani/export

Generate a DDD-DDD XML file for the supported resident normirani s.p. path after the yearly review values are confirmed.

Header parameters

entity_idstringoptional

Entity ID on which the request is made. Auto-selected when only one entity exists, required when multiple entities exist.

Body parameters

yearintegerrequired

Tax year for the yearly Slovenia eDavki filing.

manual_valuesobjectrequired
import SpaceInvoices from '@spaceinvoices/js-sdk/sdk';

const sdk = new SpaceInvoices('YOUR_API_KEY');

const response = await sdk.taxReports.exportSloveniaYearlyNormiraniReport({
  year: 2025,
  manual_values: {
    withholding_tax_amount: 0,
    foreign_tax_credit_amount: 0,
    prior_advance_income_tax_amount: 0,
    revenue_adjustment_decrease: 0,
    revenue_adjustment_increase: 0
  }
}, {
  entity_id: "YOUR_ENTITY_ID"
});

console.log(response);
Example:

Export Slovenia VOD XML ZIP

POST/tax-reports/si/accounting/vod/export

Generate a legacy-compatible Slovenian VOD ZIP export for issued documents. The first release contains only VOD_izdani.xml.

Header parameters

entity_idstringoptional

Entity ID on which the request is made. Auto-selected when only one entity exists, required when multiple entities exist.

Body parameters

date_fromstring<date>required

Inclusive document date in YYYY-MM-DD format.

date_tostring<date>required

Inclusive document date in YYYY-MM-DD format.

import SpaceInvoices from '@spaceinvoices/js-sdk/sdk';

const sdk = new SpaceInvoices('YOUR_API_KEY');

const blob = await sdk.taxReports.exportSloveniaVodXml({
  date_from: "2025-01-01",
  date_to: "2025-01-31"
}, {
  entity_id: "YOUR_ENTITY_ID"
});

const arrayBuffer = await blob.arrayBuffer();
const { writeFile } = await import('node:fs/promises');
await writeFile('download.bin', Buffer.from(arrayBuffer));
console.log('Saved download.bin');
Example:

Get Slovenia yearly tax profile

GET/tax-reports/si/profile

Retrieve the normalized Slovenia-specific tax profile stored on the entity, including inferred business form and yearly-export support status.

Header parameters

entity_idstringoptional

Entity ID on which the request is made. Auto-selected when only one entity exists, required when multiple entities exist.

import SpaceInvoices from '@spaceinvoices/js-sdk/sdk';

const sdk = new SpaceInvoices('YOUR_API_KEY');

const response = await sdk.taxReports.getSloveniaTaxProfile({
  entity_id: "YOUR_ENTITY_ID"
});

console.log(response);

Returns

business_formstringnullable
income_tax_regimestringnullable
vat_profilestringnullable
calculates_deduction_ratioboolean
tax_residencystringnullable
yearly_reportingobject
accounting_exportsobject
business_form_sourcestring
inferred_business_formstringnullable
supported_exportsobject
unsupported_reasonstringnullable
json
{
  "business_form": "sp",
  "income_tax_regime": "normirani",
  "vat_profile": "standard",
  "calculates_deduction_ratio": true,
  "tax_residency": "resident",
  "yearly_reporting": {
    "activity_codes": [
      "62.010",
      "47.910"
    ],
    "registration_number": "1234567",
    "accounting_type": "records",
    "normiranec_insurance_basis": "full_time_self_employed",
    "default_withholding_tax_amount": 0,
    "default_foreign_tax_credit_amount": 0
  },
  "accounting_exports": {
    "preferred_format": "vod_xml",
    "konto_mappings": {
      "receivables": "receivables",
      "payables": "payables",
      "sales_vat_22": "sales-vat-22",
      "sales_vat_95": "sales-vat-95",
      "sales_vat_5": "sales-vat-5",
      "purchase_vat_recoverable_22": "purchase-vat-recoverable-22",
      "purchase_vat_recoverable_95": "purchase-vat-recoverable-95",
      "purchase_vat_recoverable_5": "purchase-vat-recoverable-5",
      "sales_revenue_22": "sales-revenue-22",
      "sales_revenue_95": "sales-revenue-95",
      "sales_revenue_5": "sales-revenue-5",
      "sales_revenue_exempt": "sales-revenue-exempt",
      "sales_revenue_eu_goods": "sales-revenue-eu-goods",
      "sales_revenue_eu_services": "sales-revenue-eu-services",
      "sales_revenue_reverse_charge": "sales-revenue-reverse-charge",
      "sales_revenue_third_country_goods": "sales-revenue-third-country-goods",
      "sales_revenue_third_country_services": "sales-revenue-third-country-services",
      "purchase_expense_22": "purchase-expense-22",
      "purchase_expense_95": "purchase-expense-95",
      "purchase_expense_5": "purchase-expense-5",
      "purchase_expense_exempt": "purchase-expense-exempt",
      "purchase_expense_eu_goods": "purchase-expense-eu-goods",
      "purchase_expense_eu_services": "purchase-expense-eu-services",
      "purchase_expense_reverse_charge": "purchase-expense-reverse-charge",
      "purchase_expense_third_country_goods": "purchase-expense-third-country-goods",
      "purchase_expense_third_country_services": "purchase-expense-third-country-services"
    }
  },
  "business_form_source": "stored",
  "inferred_business_form": "sp",
  "supported_exports": {
    "yearly_normirani": true,
    "vod_xml": true,
    "vasco_xml": true,
    "minimax_xml": true
  },
  "unsupported_reason": "unsupported-reason"
}

Update Slovenia yearly tax profile

PUT/tax-reports/si/profile

Update the Slovenia-specific tax profile stored on the entity. Unsupported profiles are stored for future use but remain blocked for yearly export.

Header parameters

entity_idstringoptional

Entity ID on which the request is made. Auto-selected when only one entity exists, required when multiple entities exist.

Body parameters

business_formstringoptionalnullable
income_tax_regimestringoptionalnullable
vat_profilestringoptionalnullable
calculates_deduction_ratiobooleanoptionalnullable
tax_residencystringoptionalnullable
yearly_reportingobjectoptionalnullable
accounting_exportsobjectoptionalnullable
import SpaceInvoices from '@spaceinvoices/js-sdk/sdk';

const sdk = new SpaceInvoices('YOUR_API_KEY');

const response = await sdk.taxReports.updateSloveniaTaxProfile({
  business_form: "sp",
  income_tax_regime: "normirani",
  vat_profile: "standard",
  calculates_deduction_ratio: false,
  tax_residency: "resident",
  yearly_reporting: {
    activity_codes: [
      "62.010",
      "47.910"
    ],
    registration_number: "1234567",
    accounting_type: "records",
    normiranec_insurance_basis: "full_time_self_employed",
    default_withholding_tax_amount: 0,
    default_foreign_tax_credit_amount: 0
  }
}, {
  entity_id: "YOUR_ENTITY_ID"
});

console.log(response);
Example:

Returns

business_formstringnullable
income_tax_regimestringnullable
vat_profilestringnullable
calculates_deduction_ratioboolean
tax_residencystringnullable
yearly_reportingobject
accounting_exportsobject
business_form_sourcestring
inferred_business_formstringnullable
supported_exportsobject
unsupported_reasonstringnullable
json
{
  "business_form": "sp",
  "income_tax_regime": "normirani",
  "vat_profile": "standard",
  "calculates_deduction_ratio": true,
  "tax_residency": "resident",
  "yearly_reporting": {
    "activity_codes": [
      "62.010",
      "47.910"
    ],
    "registration_number": "1234567",
    "accounting_type": "records",
    "normiranec_insurance_basis": "full_time_self_employed",
    "default_withholding_tax_amount": 0,
    "default_foreign_tax_credit_amount": 0
  },
  "accounting_exports": {
    "preferred_format": "vod_xml",
    "konto_mappings": {
      "receivables": "receivables",
      "payables": "payables",
      "sales_vat_22": "sales-vat-22",
      "sales_vat_95": "sales-vat-95",
      "sales_vat_5": "sales-vat-5",
      "purchase_vat_recoverable_22": "purchase-vat-recoverable-22",
      "purchase_vat_recoverable_95": "purchase-vat-recoverable-95",
      "purchase_vat_recoverable_5": "purchase-vat-recoverable-5",
      "sales_revenue_22": "sales-revenue-22",
      "sales_revenue_95": "sales-revenue-95",
      "sales_revenue_5": "sales-revenue-5",
      "sales_revenue_exempt": "sales-revenue-exempt",
      "sales_revenue_eu_goods": "sales-revenue-eu-goods",
      "sales_revenue_eu_services": "sales-revenue-eu-services",
      "sales_revenue_reverse_charge": "sales-revenue-reverse-charge",
      "sales_revenue_third_country_goods": "sales-revenue-third-country-goods",
      "sales_revenue_third_country_services": "sales-revenue-third-country-services",
      "purchase_expense_22": "purchase-expense-22",
      "purchase_expense_95": "purchase-expense-95",
      "purchase_expense_5": "purchase-expense-5",
      "purchase_expense_exempt": "purchase-expense-exempt",
      "purchase_expense_eu_goods": "purchase-expense-eu-goods",
      "purchase_expense_eu_services": "purchase-expense-eu-services",
      "purchase_expense_reverse_charge": "purchase-expense-reverse-charge",
      "purchase_expense_third_country_goods": "purchase-expense-third-country-goods",
      "purchase_expense_third_country_services": "purchase-expense-third-country-services"
    }
  },
  "business_form_source": "stored",
  "inferred_business_form": "sp",
  "supported_exports": {
    "yearly_normirani": true,
    "vod_xml": true,
    "vasco_xml": true,
    "minimax_xml": true
  },
  "unsupported_reason": "unsupported-reason"
}