Slovenia e-SLOG and UJP
Use e-SLOG for native Slovenian electronic invoice XML. Use UJP when an invoice or credit note also needs the Slovenian UJP-compatible package with the XML, PDF, .env envelope, and attachment package.
e-SLOG and UJP are separate from FURS fiscalization. FURS handles fiscal confirmation with the Slovenian tax authority. e-SLOG and UJP validate and export electronic invoice files.
Enable Validation
Entity settings can enable e-SLOG validation as the default for Slovenian documents. When ujp_validation_with_eslog_enabled is also enabled, invoice and credit-note create/update flows that validate e-SLOG also validate the UJP package prerequisites.
await sdk.entities.update(entity.id, {
settings: {
eslog_validation_enabled: true,
ujp_validation_with_eslog_enabled: true,
bank_accounts: [
{
type: "iban",
iban: "SI56051008010555555",
bic: "ABANSI2X",
is_default: true,
},
],
},
});Required e-SLOG Validation
Set eslog.validation_required on the document request when the operation must fail unless the current generated e-SLOG XML is valid.
const _invoice = await sdk.invoices.create({
customer: {
name: "Kupec d.o.o.",
address: "Slovenska cesta 1",
post_code: "1000",
city: "Ljubljana",
country: "Slovenia",
country_code: "SI",
tax_number: "SI12345678",
},
items: [
{
name: "Consulting",
quantity: 1,
price: 100,
taxes: [{ rate: 22 }],
},
],
eslog: { validation_required: true },
});Required validation blocks final create and finalization when validation fails. Draft creation stores validation status and errors without blocking the draft workflow.
Required UJP Validation
Set ujp.validation_required when the operation must also satisfy UJP package prerequisites. UJP validation includes current e-SLOG validation plus envelope routing data for the sender and receiver.
const _invoice = await sdk.invoices.create({
customer: {
name: "Javni zavod Primer",
address: "Trg republike 1",
post_code: "1000",
city: "Ljubljana",
country: "Slovenia",
country_code: "SI",
tax_number: "SI87654321",
bank_accounts: [
{
type: "iban",
iban: "SI56019100000123438",
bic: "UJPLSI2DICL",
is_default: true,
},
],
ujp: {
receiver_agent: "UJPLSI2DICL",
receiver_mailbox: "SI56019100000123438",
},
},
items: [
{
name: "Subscription",
quantity: 1,
price: 250,
taxes: [{ rate: 22 }],
},
],
eslog: { validation_required: true },
ujp: { validation_required: true },
});Per-Request Disable
API callers can disable validation for a specific document request even when entity-level validation is enabled.
const _invoice = await sdk.invoices.create({
customer: {
name: "Kupec d.o.o.",
country: "Slovenia",
country_code: "SI",
},
items: [{ name: "Service", quantity: 1, price: 100 }],
eslog: { validation_enabled: false },
ujp: { validation_enabled: false },
});Updates
Document updates accept the same eslog and ujp input objects as create calls. When required validation is set, invalid final updates return 422 before the document is saved.
await sdk.invoices.update(invoice.id, {
customer: {
name: "Kupec d.o.o.",
address: "Slovenska cesta 1",
post_code: "1000",
city: "Ljubljana",
country: "Slovenia",
country_code: "SI",
tax_number: "SI12345678",
},
items: [
{
name: "Updated service",
quantity: 1,
price: 120,
taxes: [{ rate: 22 }],
},
],
eslog: { validation_required: true },
ujp: { validation_required: true },
});When validation is enabled but not required, updates refresh the stored validation status after the document changes so download buttons and API downloads do not rely on stale status.
Downloads
e-SLOG downloads require current valid e-SLOG validation for the document state.
const _xml = await sdk.eSlog.download(invoice.id, { type: "invoice" });UJP package downloads are supported for Slovenian invoices and credit notes. The download does not send the document and does not require UJP credentials or certificates.
const _zip = await sdk.ujp.download(invoice.id);