Slovenia compliance
Space Invoices supports separate Slovenia compliance paths. Configure only the paths that match how your Slovenian entity issues and exchanges documents.
Compliance Paths
| Path | Use it for | Guide |
|---|---|---|
| FURS fiscalization | Real-time fiscal confirmation for cash, card, check, and other fiscalizable payments with the Slovenian tax authority. | FURS fiscalization |
| e-SLOG | Native Slovenian e-invoice XML validation and downloads. | e-SLOG and UJP |
| UJP | UJP-compatible package downloads for Slovenian public-sector or provider exchange workflows. | e-SLOG and UJP |
| Peppol sending | Network delivery of invoices and credit notes to a recipient’s Peppol address, including Slovenian budget users reached through UJP. | Peppol Sending |
| miniMAX | Accounting XML for issued and received invoices, credit notes, and advance invoices. | miniMAX accounting export |
| VASCO | Accounting XML (VASCO KN 2.1 import format) for issued and received invoices, credit notes, and advance invoices. | VASCO accounting export |
Choosing the Right Setup
Use FURS fiscalization when the invoice needs Slovenian fiscalization identifiers and QR output. This is the tax-authority fiscalization path.
Use e-SLOG and UJP when the customer or exchange workflow requires Slovenian electronic invoice XML. e-SLOG validation checks the generated XML and business rules before XML download. UJP adds public-sector/package routing checks and produces a ZIP package with XML, PDF, envelope, and attachment package files.
Use Peppol Sending when the document needs to be transmitted over the Peppol network to a recipient’s Peppol address, rather than downloaded as a file.
FURS, e-SLOG/UJP, and Peppol sending can be used independently. Enabling one does not automatically mean the document is using another.
Peppol Sending
Peppol network sending is a distinct feature from the e-SLOG XML and UJP package downloads described above. Sending transmits a Peppol BIS Billing 3.0 / EN 16931 UBL document over the Peppol network to the recipient’s own access point. e-SLOG XML generation and UJP package downloads are unchanged file-export features and continue to work on their own regardless of whether Peppol sending is enabled for the entity.
Slovenian businesses that are registered on Peppol themselves are addressed using scheme 9949 (“Slovenia VAT number”), with an identifier formatted as SI followed by the 8-digit VAT number — for example, 9949:SI12345678.
Slovenian public budget users (proračunski uporabniki: ministries, municipalities, courts and other public institutions) don’t have their own Peppol addresses. B2G e-invoicing to them has been mandatory since January 2015 and goes through UJP (Uprava Republike Slovenije za javna plačila), at a single Peppol address: 9949:si10641424.
- Send every invoice or credit note for a budget user to that address.
- The budget user is identified inside the invoice by its Slovenian tax number, which is required; without it the send is blocked.
- In the web app, the Slovenian public-sector recipient (UJP) shortcut fills in the address.
Domestic Slovenian B2B structured e-invoicing becomes mandatory from 1 January 2028 under the ZIERDED act. That mandate is not yet in force; Peppol sending to Slovenian recipients is available now for entities that choose to use it ahead of that date.
To send an invoice or credit note to a Slovenian recipient, the entity needs:
- A country that supports e-invoicing sending
settings.e_invoicing.enabledset on the entity- A verified Peppol provider enrollment
- A recipient Peppol address on the customer (
peppol_idandpeppol_scheme_id)
Recipient capability is checked against the Peppol SMP directory before sending; an unreachable or unsupported recipient fails the send rather than silently falling back to e-SLOG or UJP. Only invoices and credit notes can be sent over Peppol.
Sending over Peppol is a per-document choice: an invoice or credit note is sent only when Send via UJP/Peppol is ticked on it, or when the entity has turned on automatic sending in e-invoicing settings, which is off by default. The same toggle covers public-sector customers (via UJP) and businesses registered on Peppol.
See Peppol and French E-Invoicing for entity enrollment, recipient address formats, and the send/status API.
miniMAX Accounting Export
The miniMAX export produces one XML file for an inclusive document-date range. It includes finalized, non-voided issued and received invoices, credit notes, and advance invoices. The endpoint requires a Slovenian entity and returns the whole file only after every included document passes validation.
Before the first import, configure the account mappings in the Slovenian tax profile and compare them with the accounts and partners that already exist in your miniMAX organization. The received-advance account defaults to 2300 and the paid-advance account defaults to 1300. A final invoice settles the advance through the same configured account.
Advance invoices contain VAT records only. Book the bank or cash receipt separately in miniMAX. A linked final invoice reports the remaining VAT after the advance; a fully prepaid final invoice still carries the required zero-value VAT record. These flows follow miniMAX’s guidance for creating an advance invoice from a bank statement and its VAT reporting FAQ.
Prepare the source documents
- Store the product or service classification and complete tax metadata on every exported item. The exporter does not infer either value from its description.
- For foreign-currency documents, store the reconciled EUR values used for accounting. A document that cannot be reconciled to its EUR values is rejected.
- Partner codes are stable across exports. An eight-digit Slovenian tax number is preserved as the partner code. Other partners receive a deterministic code derived from their full available identity, such as country-qualified tax or company registration data, contact identity, or, as a last resort, the individual document. Check these codes against existing miniMAX partners before the first import to prevent duplicate partner records.
If any selected document is unsupported or invalid, the endpoint returns an actionable HTTP 422 response. It does not omit that document or return a partial file or ZIP. Correct the source data and export the complete range again.
Download the XML
In the web app, open Export, find Slovenian accounting exports, choose miniMAX XML, set the inclusive dates, and select Export miniMAX XML.
Use a Bearer API key, pass the entity in x-entity-id, and send ISO dates:
curl --request POST "https://eu.spaceinvoices.com/tax-reports/si/accounting/minimax/export" \ --header "Authorization: Bearer YOUR_API_KEY" \ --header "x-entity-id: YOUR_ENTITY_ID" \ --header "Content-Type: application/json" \ --data '{"date_from":"2026-01-01","date_to":"2026-01-31"}' \ --output minimax-2026-01.xmlThe JavaScript SDK returns the XML as a Blob:
import { writeFile } from 'node:fs/promises';import SpaceInvoices from '@spaceinvoices/js-sdk/sdk';
const sdk = new SpaceInvoices('YOUR_API_KEY');const xml = await sdk.taxReports.exportSloveniaMinimaxXml( { date_from: '2026-01-01', date_to: '2026-01-31' }, { entity_id: 'YOUR_ENTITY_ID' },);
await writeFile('minimax-2026-01.xml', Buffer.from(await xml.arrayBuffer()));See the miniMAX export API reference and miniMAX’s XML import structure for the file format. Test a representative file against your miniMAX partner and account setup before production use. Import each document once: importing the same XML or overlapping date ranges can create duplicate entries.
VASCO Accounting Export
The VASCO export produces one XML file in the VASCO KN 2.1 import format for an inclusive document-date range. It includes finalized, non-voided issued and received invoices, credit notes, and advance invoices. The endpoint requires a Slovenian entity and returns the whole file only after every included document passes validation. The file uses the windows-1250 encoding and all amounts are in EUR. Payments are not exported.
Before the first import, configure the account mappings in the Slovenian tax profile and compare them with the accounts and partners that already exist in VASCO. The received-advance account defaults to 2300 and the paid-advance account defaults to 1300. Advance invoices carry VAT-book records, and a final invoice settles the advance through the same configured account.
Prepare the source documents
- Partner codes (Sifra) are stable across exports. An eight-digit Slovenian tax number is used as the partner Sifra. End consumers use Sifra
0. Every other partner receives a permanent sequential nine-digit code (100000000 upwards) the first time it is exported, and later exports reuse it. Check these codes against existing VASCO partners before the first import to prevent duplicate partner records. - For foreign-currency documents, store the reconciled EUR values used for accounting.
- The 5% VAT rate, OSS destination-VAT documents, and customs imports are not supported. The export is rejected with an actionable message that names the document. Book these documents manually in VASCO.
If any selected document is unsupported or invalid, the endpoint does not return a partial file. Correct the source data or book the document manually, and export the complete range again.
Download the XML
In the web app, open Export, find Slovenian accounting exports, choose VASCO XML, set the inclusive dates, and select Export VASCO XML.
Use a Bearer API key, pass the entity in x-entity-id, and send ISO dates:
curl --request POST "https://eu.spaceinvoices.com/tax-reports/si/accounting/vasco/export" \ --header "Authorization: Bearer YOUR_API_KEY" \ --header "x-entity-id: YOUR_ENTITY_ID" \ --header "Content-Type: application/json" \ --data '{"date_from":"2026-01-01","date_to":"2026-01-31"}' \ --output vasco-2026-01.xmlThe JavaScript SDK returns the XML as a Blob:
import { writeFile } from 'node:fs/promises';import SpaceInvoices from '@spaceinvoices/js-sdk/sdk';
const sdk = new SpaceInvoices('YOUR_API_KEY');const xml = await sdk.taxReports.exportSloveniaVascoXml( { date_from: '2026-01-01', date_to: '2026-01-31' }, { entity_id: 'YOUR_ENTITY_ID' },);
await writeFile('vasco-2026-01.xml', Buffer.from(await xml.arrayBuffer()));See the VASCO export API reference. Test a representative file against your VASCO partner and account setup before production use. Import each range once: importing the same XML or overlapping date ranges duplicates entries in VASCO.