Zadnja izmjena: 31.01.2026 12:35:43
| Polje | Opis | Status | Default |
|---|---|---|---|
INIVERSION |
Verzija INI formata.Ne koristi se u pretvorbi | OPCIONALNO | 1 |
ProfileID |
BT-23: Business process type (P1-P12, P99) - OBAVEZNO za HR-BR-34 | OBAVEZNO | P1 |
ID |
BT-1: Invoice number - Broj računa | OBAVEZNO | - |
CopyIndicator |
HR-BT-1: Copy indicator - Indikator kopije računa Vrijednosti: • true = Kopija već poslanog računa (šalje se pod istim brojem) • false = Izvornik (prvi put poslan) ⚠️ VAŽNO: • Element se NE dodaje u XML ako nije eksplicitno naveden • Koristi se kada se ispravlja podatak koji ne utječe na obračun poreza • Račun se šalje pod istim brojem (ID) s vrijednošću CopyIndicator=true Primjer uporabe (slanje kopije): ID=120-221-1 |
OPCIONALNO | - |
IssueDate |
BT-2: Invoice issue date - Datum izdavanja (YYYY-MM-DD) | OBAVEZNO | - |
IssueTime |
Vrijeme izdavanja (HH:MM:SS) | OBAVEZNO | - |
TaxPointDate |
BT-7: Tax point date - Datum nastanka porezne obveze (YYYY-MM-DD) Kada koristiti: • Kada je datum nastanka PDV obveze različit od datuma izdavanja računa (IssueDate) • POŽELJNO ako je naveden PDVpoNaplati - označava datum stvarne naplate • Ako nije naveden, smatra se da je jednak IssueDate-u Primjeri uporabe: • Račun izdan 15.01.2026, naplata 20.01.2026 → TaxPointDate=2026-01-20 • Predujam naplačen 10.12.2025, račun izdan 05.01.2026 → TaxPointDate=2025-12-10 • Isporuka izvršena 25.01.2026, račun izdan 30.01.2026 → TaxPointDate=2026-01-25 |
OPCIONALNO | - |
TypeCode |
BT-3: Invoice type code Standardni tipovi za Invoice: • 380 = Commercial invoice (standardni račun) • 384 = Corrected invoice (ispravak računa) • 389 = Self-billed invoice (samofaktura) Tipovi za CreditNote (Odobrenje): • 381 = Credit note (odobrenje) • 83, 261, 262, 296, 308, 386, 396, 420, 458, 532 (ostale vrste kreditnih dokumenata) ⚠️ VAŽNO: Korištenjem TypeCode-a iz CreditNote liste automatski se kreira <CreditNote> dokument umjesto <Invoice> dokumenta. NAPOMENA za CreditNote: • Stavke trebaju biti pozitivne vrijednosti (dokument sam označava kredit) • Exempt od KPD koda (HR-BR-25 pravilo) • BillingReference.InvoiceID opcionalan (može biti blanket referenca) |
OPCIONALNO | 380 |
CurrencyCode |
BT-5: Invoice currency code (EUR) | OPCIONALNO | EUR |
OrderReference.ID |
BT-13: Purchase order reference - Broj narudžbenice | OPCIONALNO | - |
OrderReference.SalesOrderID |
BT-14: Sales order reference - Broj prodajnog naloga | OPCIONALNO | - |
ContractDocumentReference.ID |
BT-12: Contract reference - Referenca na ugovor na koji se račun odnosi (npr. 'Ugovor br.012-2025') | OPCIONALNO | - |
BillingReference.InvoiceID |
BT-25: Preceding Invoice reference - Referenca na dokument (broj računa, ugovora, bonus ID, itd.). OBAVEZNO za TypeCode=384 (Corrected Invoice), opcionalno za TypeCode=381 (CreditNote). Primjeri: '2025-1-55', 'GODISNJI-BONUS-2025', 'UG-2024-123' | OPCIONALNO | - |
BillingReference.IssueDate |
BT-26: Preceding Invoice issue date - Datum izdavanja referentnog dokumenta (YYYY-MM-DD). Opcionalno polje. | OPCIONALNO | - |
PrepaidAmount |
BT-113: Paid amount - Plaćeni iznos u naprijed (avans/kapara/akontacija). PayableAmount = TaxInclusiveAmount - PrepaidAmount | OPCIONALNO | - |
Notes |
BT-22: Invoice notes - napomena na razini računa. Podržava više napomena odvojenih sa ; ili \n Primjer sa semicolon separatorom: Notes=Na dan 09.02.2025 Vaš dospjeli dug iznosi 79.78 €.;Vrijeme izdavanja: 14:50:07;Oznaka operatera: admin adminPrimjer sa newline separatorom: Notes=Na dan 09.02.2025 Vaš dospjeli dug iznosi 79.78 €.Svaka napomena će biti zasebni <cbc:Note> element u XML-u. |
OPCIONALNO | - |
PDVpoNaplati |
HR-BT-15: Obračun PDV-a po naplaćenoj naknadi Napomena: Prihvaća i stari naziv 'HRObracunPDVPoNaplati' zbog kompatibilnosti. NOVA LOGIKA: • Bilo koja vrijednost - generira službeni tekst: "Obračun PDVa prema naplačenoj naknadi" • Vlastiti tekst (>5 znakova) - koristi navedeni tekst u XML-u • Odsutno ili prazan - element se NE dodaje u XML (Obračun pdv-a NIJE po naplati) ⚠️ UKRATKO: Čim polje postoji i nije prazno, smatra se da je račun po naplati, bez obzira što piše! 💡 PREPORUKA: Ako koristite PDVpoNaplati, obavezno navedite TaxPointDate (BT-7) koji označava datum stvarne naplate - to je datum kada nastaje porezna obveza, a ne datum izdavanja računa. |
OPCIONALNO | - |
| Polje | Opis | Status | Default |
|---|---|---|---|
Name |
BT-27: Seller name - Naziv prodavatelja | OBAVEZNO | - |
RegistrationName |
Registrirano ime (ako različito od Name) | OPCIONALNO | - |
CompanyID |
BT-30: Seller legal registration - OIB NAPOMENA: Ovo polje automatski popunjava: • Endpoint.ID (9934:OIB) • PartyIdentification.ID • VAT.ID (HR + OIB) Ne trebaš navoditi ta polja eksplicitno! BR-O-02: Ako BILO KOJA stavka ima VAT kategoriju 'O' (Not subject to VAT), OIB se NEĆE generirati u PartyTaxScheme (BT-31) jer to zahtijeva EN16931 standard. |
OBAVEZNO | - |
CompanyLegalForm |
Pravni oblik tvrtke (npr. 'Osnovano na trgovačkom sudu, temeljni kapital 20.000 EUR') | OPCIONALNO | - |
VAT.Scheme |
Porezni status prodavatelja (VAT ili FRE). Vrijednosti: • VAT = U sustavu PDV-a (default) • FRE = Nije u sustavu PDV-a (free of VAT) Napomena: Ako nije naveden, automatski se koristi 'VAT'. |
OPCIONALNO | VAT |
Address.Street |
BT-35: Seller address line 1 - Ulica i broj | OBAVEZNO | - |
Address.City |
BT-37: Seller city - Grad | OBAVEZNO | - |
Address.ZIP |
BT-38: Seller post code - Poštanski broj | OBAVEZNO | - |
Address.Country |
BT-40: Seller country code (HR) | OPCIONALNO | HR |
Contact.Name |
BT-41: Seller contact point - Kontakt osoba | OPCIONALNO | - |
Contact.Email |
BT-43: Seller contact email | OPCIONALNO | - |
Operator.Code |
Oznaka operatera - Preporučeno za HR-BR-37, ima fallback mehanizam | OBAVEZNO | - |
Operator.OIB |
OIB operatera - Preporučeno za HR-BR-09, kondicionalno dodaje SellerContact | OBAVEZNO | - |
CompanyID je obavezan i koristi se kao fallback za Endpoint.ID i PartyIdentification.ID ako nisu eksplicitno navedeni.
| Polje | Opis | Status | Default |
|---|---|---|---|
Name |
BT-44: Buyer name - Naziv kupca | OBAVEZNO | - |
RegistrationName |
Registrirano ime (ako različito od Name) | OPCIONALNO | - |
CompanyID |
BT-47: Buyer legal registration - OIB NAPOMENA: Ovo polje automatski popunjava: • Endpoint.ID (9934:OIB) • PartyIdentification.ID • VAT.ID (HR + OIB) Ne trebaš navoditi ta polja eksplicitno! BR-O-02: Ako BILO KOJA stavka ima VAT kategoriju 'O' (Not subject to VAT), OIB se NEĆE generirati u PartyTaxScheme (BT-48) jer to zahtijeva EN16931 standard. |
OBAVEZNO | - |
CompanyLegalForm |
Pravni oblik tvrtke (npr. 'Osnovano na trgovačkom sudu, temeljni kapital 20.000 EUR') | OPCIONALNO | - |
VAT.Scheme |
Porezni status kupca (VAT ili FRE). Vrijednosti: • VAT = U sustavu PDV-a (ZADANO) • FRE = Nije u sustavu PDV-a ⚠️ VAŽNO: • Zadana vrijednost je VAT jer je većina kupaca u sustavu PDV-a • Eksplicitno navedi FRE samo za fizičke osobe ili paušalce koji nisu u sustavu PDV-a |
OPCIONALNO | VAT |
Address.Street |
BT-50: Buyer address line 1 - Ulica i broj | OBAVEZNO | - |
Address.City |
BT-52: Buyer city - Grad | OBAVEZNO | - |
Address.ZIP |
BT-53: Buyer post code - Poštanski broj | OBAVEZNO | - |
Address.Country |
BT-55: Buyer country code (HR) | OBAVEZNO | HR |
Contact.Name |
BT-56: Buyer contact point | OPCIONALNO | - |
Contact.Email |
BT-58: Buyer contact email | OPCIONALNO | - |
| Polje | Opis | Status | Default |
|---|---|---|---|
DueDate |
BT-9: Payment due date - Datum dospijeća (YYYY-MM-DD) ⚠️ HR-BR-4 pravilo: • OBAVEZNO za Invoice (TypeCode 380, 384, 389...) ako je PayableAmount > 0 • NIJE obavezno za CreditNote (TypeCode 381, 83, 261...) jer je PayableAmount negativan • Alternativno može postojati PaymentTerms/Note (BT-20) umjesto DueDate-a Napomena: Za račune koji NE zahtijevaju plaćanje (PayableAmount ≤ 0), DueDate nije potreban. |
OPCIONALNO | - |
MeansCode |
BT-81: Payment means type code - MANDATORY po UBL 2.1 specifikaciji ako postoji PaymentMeans element. DEFAULT: 30 (automatski se postavlja ako je naveden Account) Standardni kodovi (UNTDID 4461): • 30 = Credit Transfer (virman/prenos na račun) • 10 = Cash (gotovina) • 48 = Card Payment (kartica) • 49 = Direct Debit (direktno terećenje) • 42 = Payment to bank account (plaćanje na bankovni račun) Napomena: Ako navedete samo Account (IBAN), MeansCode se automatski postavlja na 30 (virman). |
OPCIONALNO | 30 |
MeansText |
BT-82: Payment means text - Tekstualni opis načina plaćanja (npr. 'Virman', 'Gotovina', 'Kartica') | OPCIONALNO | - |
InstructionNote |
BT-82: Payment instruction note - Napomena o plaćanju (npr. 'Opis plaćanja', 'Platiti u roku 15 dana') | OPCIONALNO | - |
Account |
BT-84: Payment account identifier - IBAN račun primatelja plaćanja (koristi se i za generiranje barcode-a) ⚠️ VAŽNO: Navođenjem ovog polja automatski se kreira PaymentMeans element s MeansCode=30 (Credit Transfer) ako MeansCode nije eksplicitno naveden. |
OPCIONALNO | - |
Model |
Model plaćanja za barcode i PaymentID - hrvatski modeli (HR00, HR01, HR02, HR03...) Kombinira se s Reference poljem u format 'HR00 1234567-1-5555' za PaymentID element. |
OPCIONALNO | - |
Reference |
Poziv na broj (referenca) za barcode i PaymentID Primjeri: '1234567-1-5555', '00-12345-67890' |
OPCIONALNO | - |
IncludeBarcode |
Generira barcode za plaćanje - podržani formati: • QRCODE = QR kod (moderni format) • PDF417 = PDF417 barcode (stariji format) Napomena: Za generiranje barcode-a obavezna su polja: Account, Model, Reference |
OPCIONALNO | - |
_note |
⚠️ VAŽNA PRAVILA ZA PAYMENT SEKCIJU: HR-BR-4 pravilo o DueDate-u: • Za Invoice (TypeCode 380, 384, 389...): Ako je PayableAmount > 0 → DueDate je OBAVEZAN • Za CreditNote (TypeCode 381, 83, 261...): DueDate NIJE obavezan (PayableAmount je negativan) PaymentMeans logika: • Prema UBL 2.1 XSD shemi: PaymentMeans element je OPCIONALAN (minOccurs=0) • PaymentMeansCode je MANDATORY samo AKO postoji PaymentMeans element • Ako navedete Payment.Account → automatski se kreira PaymentMeans s MeansCode=30 • Ako ne navedete NIŠTA iz Payment grupe → PaymentMeans se NEĆE generirati (validan XML) |
OPCIONALNO | - |
| Polje | Opis | Status | Default |
|---|---|---|---|
ActualDeliveryDate |
Datum stvarne isporuke (YYYY-MM-DD) | OPCIONALNO | - |
Location.Street |
Ulica adrese mjesta isporuke | OPCIONALNO | - |
Location.City |
Grad mjesta isporuke | OPCIONALNO | - |
Location.ZIP |
Poštanski broj mjesta isporuke | OPCIONALNO | - |
Location.Country |
Država mjesta isporuke (ISO kod, npr. HR) | OPCIONALNO | HR |
DeliveryParty.Name |
Naziv stranke koja prima isporuku (ako nije kupac) | OPCIONALNO | - |
| Polje | Opis | Status | Default |
|---|---|---|---|
Quantity |
BT-129: Invoiced quantity - Količina | OBAVEZNO | - |
QuantityUnit |
BT-130: Unit of measure (H87=Piece, KGM=Kilogram, MTR=Meter) | OPCIONALNO | H87 |
ExtensionAmount |
BT-131: Invoice line net amount - Neto iznos stavke (VP vrijednost robe sa oduzetim rabatom) | OBAVEZNO | - |
Price |
BT-146: Item net price - VP cijena po jedinici (VP cijena prije rabata) | OBAVEZNO | - |
BaseQuantity |
BT-149: Item price base quantity - navedi samo ako cijena nije za 1 jedinicu (npr. 100 EUR za 10 kom) | OPCIONALNO | - |
Name |
BT-153: Item name - Naziv proizvoda/usluge | OBAVEZNO | - |
Description |
BT-154: Item description - Opis proizvoda/usluge | OPCIONALNO | - |
SellersItemID |
Šifra artikla dobavljača | OPCIONALNO | - |
BuyersItemID |
Šifra artikla kupca | OPCIONALNO | - |
Classification |
BT-158: Item classification identifier - KPD kod | OBAVEZNO | - |
ClassificationListID |
BT-158-1: Scheme identifier (listID) - Automatski default 'CG' ako je naveden Classification | OPCIONALNO | CG |
Tax.Category |
BT-151: Tax category code (S, Z, E, O) | OBAVEZNO | - |
Tax.CategoryName |
Naziv kategorije (HR:PDV25, HR:S13, HR:S5, HR:POVNAK) | OBAVEZNO | - |
Tax.Percent |
BT-152: Tax rate percentage - Porezna stopa (25.00, 13.00, 5.00, 0.00) | OBAVEZNO | - |
Tax.ExemptionReason |
BT-121: Tax exemption reason - Razlog oslobođenja ⚠️ VAŽNO (HR-BR-36 i BR-O-10): • OBAVEZNO za kategoriju O (Not subject to VAT) • OBAVEZNO za kategoriju E (Exempt from VAT) ✅ AUTO-GENERACIJA (txt2inv.java): Ako nije naveden, plugin automatski generiše službeni tekst za: - HR:POVNAK: 'Povratna naknada za jednokratnu ambalažu (trošak POVNAK je prolazna stavka koja ne ulazi u poreznu osnovicu - čl. 33. st. 3)' - HR:PP: 'Posebni porez na potrošnju u ugostiteljstvu (trošak PPUG je prolazna stavka čl. 33. st. 3)' - HR:PPMV: 'Posebni porez na motorna vozila' - HR:E: 'Oslobođeno od PDV-a' 📝 Napomena: Ako želite vlastiti tekst, unesite ga ovdje i on će se koristiti umjesto auto-generiranog. Primjeri vlastitog teksta: • POVNAK - prolazna stavka • PP 3% - ugostiteljstvo • PPMV - luksuzna vozila • Oslobođeno čl. 39 st. 1 |
OPCIONALNO | - |
Tax.ExemptionReasonCode |
BT-121-1: Exemption reason code | OPCIONALNO | - |
Tax.Scheme |
Tax scheme (VAT) | OPCIONALNO | VAT |
AdditionalItemProperty.Name |
Naziv dodatnog atributa (ponovljivo bez broja u [Line]: ključ možeš navesti više puta; svaki sljedeći Name/Value par postaje novi AdditionalItemProperty) | OPCIONALNO | - |
AdditionalItemProperty.Value |
Vrijednost dodatnog atributa (ponovljivo bez broja u [Line]: navodi se uz pripadni Name; ponovi Name+Value za svaki novi par.) | OPCIONALNO | - |
AllowanceCharge.ChargeIndicator |
true=Dodatna naplata, false=Popust | OPCIONALNO | false |
AllowanceCharge.Amount |
METODA 1 - Direktni unos: Iznos popusta/naplate (uvjek pozitivan iznos) Primjer: AllowanceCharge.Amount=53.60 (popust od 53.60 EUR)⚠️ NAPOMENA: Koristi METODU 1 (Amount) ILI METODU 2 (BaseAmount + MultiplierFactorNumeric), ne oboje! |
OPCIONALNO | - |
AllowanceCharge.BaseAmount |
METODA 2 (dio 1/2) - Osnovna vrijednost: VP vrijednost prije rabata ⚠️ Koristi se ZAJEDNO sa MultiplierFactorNumeric! Formula auto-kalkulacije: Amount = BaseAmount × (MultiplierFactorNumeric ÷ 100)Primjer kompletnog unosa (oba polja): AllowanceCharge.BaseAmount=1053.60→ Plugin automatski računa: Amount = 1053.60 × 0.0509 = 53.60 EUR 💡 KADA KORISTITI METODU 2: Kad imaš VP cijenu i postotak rabata (npr. '5.09% popusta na 1053.60 EUR') |
OPCIONALNO | - |
AllowanceCharge.MultiplierFactorNumeric |
METODA 2 (dio 2/2) - Postotak: Postotak popusta/naplate ⚠️ Koristi se ZAJEDNO sa BaseAmount! Unosi se kao decimalni broj (NE kao razlomak): • 5.09 = 5.09% popusta • 10 = 10% popusta • 2.5 = 2.5% popusta Primjer kompletnog unosa (oba polja): AllowanceCharge.ChargeIndicator=false→ Rezultat: 53.60 EUR popusta (5.09% od 1053.60 EUR) ⚠️ BEZ BaseAmount polja ovo se ignorira! |
OPCIONALNO | - |
AllowanceCharge.AllowanceChargeReason |
Razlog popusta/naplate (npr. Količinski rabat, Sezonski popust) | OPCIONALNO | - |
AllowanceCharge.AllowanceChargeReasonCode |
BT-140: Kod razloga (95=Discount, 100=Special agreement) | OPCIONALNO | - |
Classification mora biti validan KPD kod (listID=CG)Tax.CategoryName mora biti iz HR-TB-2 liste (HR:PDV25, HR:S13, HR:S5, HR:POVNAK)Tax.ExemptionReason ili Tax.ExemptionReasonCode| Polje | Opis | Status | Default |
|---|---|---|---|
ChargeIndicator |
true=Naplata (npr. POVNAK, PPMV), false=Popust (određuje predznak u sažetku) | OPCIONALNO | false |
Amount |
METODA 1 - Direktni unos: Iznos popusta/naplate - OBAVEZAN ako koristiš AllowanceCharge sekciju (prikazuje se u sažetku). Za POVNAK: osnovica poreza. Primjer: Amount=100.00 (popust od 100 EUR)⚠️ NAPOMENA: Koristi METODU 1 (Amount) ILI METODU 2 (BaseAmount + MultiplierFactorNumeric), ne oboje! |
OBAVEZNO | - |
BaseAmount |
METODA 2 (dio 1/2) - Osnovna vrijednost: Ukupna VP vrijednost svih stavki prije rabata ⚠️ Koristi se ZAJEDNO sa MultiplierFactorNumeric! Formula auto-kalkulacije: Amount = BaseAmount × (MultiplierFactorNumeric ÷ 100)Primjer kompletnog unosa (oba polja): [AllowanceCharge]→ Plugin automatski računa: Amount = 5268.00 × 0.02 = 105.36 EUR 💡 KADA KORISTITI METODU 2: Za popust na cijeli račun kad znaš ukupnu vrijednost i postotak (npr. '2% popusta na račun od 5268 EUR') |
OPCIONALNO | - |
MultiplierFactorNumeric |
METODA 2 (dio 2/2) - Postotak: Postotak popusta/naplate na razini cijelog računa ⚠️ Koristi se ZAJEDNO sa BaseAmount! Unosi se kao decimalni broj: • 2 = 2% popusta • 5.5 = 5.5% popusta • 10 = 10% popusta Primjer kompletnog unosa (oba polja): [AllowanceCharge]→ Rezultat: 105.36 EUR popusta (2% od 5268 EUR) s PDV-om od 25% ⚠️ BEZ BaseAmount polja ovo se ignorira! |
OPCIONALNO | - |
AllowanceChargeReason |
Opis koji se koristi kao naziv stavke u sažetku. Za HR specifične poreze koristi #HR:POVNAK# ili #HR:PPMV# prefix (npr. '#HR:POVNAK#Povratna naknada') | OPCIONALNO | - |
Tax.Category |
VAT kategorija (S, E, Z, O) - obavezno za document-level AllowanceCharge. Za POVNAK koristi E. | OPCIONALNO | - |
Tax.CategoryName |
Naziv kategorije (HR:PDV25, HR:POVNAK) - automatski se dodaje HR: prefix | OPCIONALNO | - |
Tax.Percent |
Porezna stopa (25.00, 0.00). Za POVNAK koristi 0.00. | OPCIONALNO | - |
Tax.ExemptionReason |
Razlog oslobođenja - OBAVEZAN za E kategoriju (npr. '#HR:POVNAK#Povratna naknada', 'Posebni porez na motorna vozila') | OPCIONALNO | - |
Tax.ExemptionReasonCode |
Kod razloga oslobođenja | OPCIONALNO | - |
Tax.Scheme |
Tax scheme (VAT, CAR za PPMV) | OPCIONALNO | VAT |
| Polje | Opis | Status | Default |
|---|---|---|---|
ID |
ID reference dokumenta (automatski DocumentTypeCode=130) | OPCIONALNO | - |
SchemeID |
Scheme ID (CT=Contract) | OPCIONALNO | - |
| Polje | Opis | Status | Default |
|---|---|---|---|
ID |
ID priloženog dokumenta | OPCIONALNO | - |
DocumentDescription |
Opis priloženog dokumenta | OPCIONALNO | - |
File |
Putanja do file-a za prilog - plugin automatski učitava file, enkodira u Base64 i detektira MIME tip iz ekstenzije (.pdf, .xml, .png, .jpg, .txt...) | OPCIONALNO | - |
Base64 |
Gotov Base64 string za direktno umetanje - fiksno se postavlja mimeCode='application/pdf' i filename='ID.pdf'. Koristi se KAO ALTERNATIVA File polju. | OPCIONALNO | - |
_note |
PRIMJERI KORIŠTENJA: Primjer 1 - Učitavanje iz file-a (File=): [AttachedDocument]Primjer 2 - Direktno Base64 umetanje (Base64=): [AttachedDocument]Napomena: File= automatski detektira MIME tip, Base64= fiksno koristi application/pdf. |
OPCIONALNO | - |
| Polje | Opis | Status | Default |
|---|---|---|---|
ID |
ID vanjskog dokumenta | OPCIONALNO | - |
DocumentDescription |
Opis vanjskog dokumenta | OPCIONALNO | - |
URI |
URI vanjskog dokumenta | OPCIONALNO | - |
| Endpoint | Metoda | Opis |
|---|---|---|
/txt2inv/ping |
GET | Provjera da li plugin radi |
/txt2inv/verzija |
GET | Verzija plugina |
/txt2inv/parse |
POST | Konverzija INI → JSON |
/txt2inv/xml |
POST | Konverzija INI → UBL XML Query parametri: • ?cleannamespaces=true - uklanja nekorištene xmlns deklaracije• &preserve=xsi,ds - zadržava navedene prefikse (kombinacija sa cleannamespaces)• &comments - zadržava komentare u XML-u (default: uklanja ih) |
/txt2inv/validate |
POST | Validacija INI datoteke |
/txt2inv/checkMinimal |
POST | Provjera minimalnih polja |
/txt2inv/sendTo/{provider} |
POST | Direktno slanje provajderu (doku/eposlovanje) |
/txt2inv/preview |
POST | Konverzija INI → HTML pregled računa |
/txt2inv/getinvoicepdf |
POST | Konverzija INI → PDF račun |
/txt2inv/xml2ini |
POST | Reversna konverzija UBL XML → INI format Parsira UBL Invoice XML i generira kompatibilan INI format. Uključuje automatsko dekodiranje BASE64 priloženih dokumenata i spremanje u xmlprivici folder.Ekstrahira sve standardne i HR-specifične elemente (TaxSubtotal, HRTaxSubtotal). |
/txt2inv/xmltoflat |
POST | Konverzija UBL XML → Flat format (key.subkey=value) Parsira XML u jednostavan flat format sa jednim key-om po liniji. Korisno za debug i analizu XML strukture. Prikazuje sve elemente sa njihovim putanjama i vrijednostima. |
GET /txt2inv/ping
JavaScript fetch:
fetch('/txt2inv/ping')
.then(response => response.text())
.then(data => console.log(data));
POST /txt2inv/parse Content-Type: text/plain; charset=UTF-8 INIVERSION=1 ID=25-5555-S1-1 IssueDate=2025-12-15 [Supplier] Name=Cvjećarna Silvia CompanyID=81016300664 [Line] Quantity=2.000 Name=Coca Cola Price=7.92
JavaScript fetch:
const iniContent = `INIVERSION=1
ID=25-5555-S1-1
IssueDate=2025-12-15
[Supplier]
Name=Cvjećarna Silvia
CompanyID=81016300664
[Line]
Quantity=2.000
Name=Coca Cola
Price=7.92`;
fetch('/txt2inv/parse', {
method: 'POST',
headers: {
'Content-Type': 'text/plain; charset=UTF-8'
},
body: iniContent
})
.then(response => response.json())
.then(json => console.log(JSON.stringify(json, null, 2)));
JavaScript fetch (osnovno):
fetch('/txt2inv/xml', {
method: 'POST',
headers: {
'Content-Type': 'text/plain; charset=UTF-8'
},
body: iniContent
})
.then(response => response.text())
.then(xml => console.log(xml));
JavaScript fetch sa namespace cleanup:
// Generira XML i uklanja nekorištene namespace deklaracije
fetch('/txt2inv/xml?cleannamespaces=true', {
method: 'POST',
headers: {
'Content-Type': 'text/plain; charset=UTF-8'
},
body: iniContent
})
.then(response => response.text())
.then(xml => console.log('Čisti XML:', xml));
// Sa preserve listom (npr. za potpis kasnije)
fetch('/txt2inv/xml?cleannamespaces=true&preserve=xsi,ds,xades', {
method: 'POST',
headers: {
'Content-Type': 'text/plain; charset=UTF-8'
},
body: iniContent
})
.then(response => response.text())
.then(xml => console.log('XML za potpis:', xml));
cleannamespaces=true - uklanja nekorištene xmlns:* deklaracije iz XML-apreserve=xsi,ds - lista prefiksa koji će biti zadržani čak i ako nisu korištenicurl -X POST http://localhost:8084/txt2inv/parse \ -H "Content-Type: text/plain; charset=UTF-8" \ --data-binary @racun.txt
# Osnovna konverzija curl -X POST http://localhost:8084/txt2inv/xml \ -H "Content-Type: text/plain; charset=UTF-8" \ --data-binary @racun.txt \ -o invoice.xml # Sa namespace cleanup curl -X POST "http://localhost:8084/txt2inv/xml?cleannamespaces=true" \ -H "Content-Type: text/plain; charset=UTF-8" \ --data-binary @racun.txt \ -o invoice-clean.xml # Sa preserve listom za potpis curl -X POST "http://localhost:8084/txt2inv/xml?cleannamespaces=true&preserve=xsi,ds" \ -H "Content-Type: text/plain; charset=UTF-8" \ --data-binary @racun.txt \ -o invoice-for-signing.xml
fetch('/txt2inv/checkMinimal', {
method: 'POST',
headers: {
'Content-Type': 'text/plain; charset=UTF-8'
},
body: iniContent
})
.then(response => response.json())
.then(json => {
console.log('Valid:', json.valid);
console.log('Missing:', json.missing);
});
filename atributa.
// Učitaj XML sadržaj
const xmlContent = `<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2">
<cbc:ID>25-5555-S1-1</cbc:ID>
<cbc:IssueDate>2025-12-15</cbc:IssueDate>
...
</Invoice>`;
fetch('/txt2inv/xml2ini', {
method: 'POST',
headers: {
'Content-Type': 'application/xml; charset=UTF-8'
},
body: xmlContent
})
.then(response => response.text())
.then(iniContent => {
console.log('Konvertirani INI format:');
console.log(iniContent);
});
cURL primjer - XML → INI:
curl -X POST http://localhost:8449/txt2inv/xml2ini \ -H "Content-Type: application/xml; charset=UTF-8" \ --data-binary @invoice.xml \ -o racun.txt
<cbc:EmbeddedDocumentBinaryObject> se automatski dekodiraju iz BASE64xmlprivici unutar trenutnog radnog direktorija s imenom iz filename atributa<cbc:EmbeddedDocumentBinaryObject filename="a.pdf">JVBERi0xLjQK...</...>
a.pdf u folder xmlprivici.
http:NOENCODEPOST /txt2inv/parse file=racun.txt text/html
# Osnovna konverzija http:NOENCODEPOST /txt2inv/xml file=racun.txt text/html
# Sa namespace cleanup http:NOENCODEPOST /txt2inv/xml?cleannamespaces=true file=racun.txt text/html
# Sa preserve listom (za potpis) http:NOENCODEPOST /txt2inv/xml?cleannamespaces=true&preserve=xsi,ds,xades file=racun.txt text/html
cleannamespaces=true omogućava automatsko uklanjanje nekorištenih namespace deklaracija, što:http:NOENCODEPOST /txt2inv/validate file=racun.txt text/html
http:NOENCODEPOST /txt2inv/checkMinimal file=racun.txt text/html
http:NOENCODEPOST /txt2inv/sendTo/doku file=racun.txt text/html
http:NOENCODEPOST /txt2inv/preview file=racun.txt text/html
http:NOENCODEPOST /txt2inv/getinvoicepdf file=racun.txt text/html
http:NOENCODEPOST /txt2inv/xml2ini file=Invoice.xml text/html
<cbc:EmbeddedDocumentBinaryObject filename="a.pdf">xmlprivici unutar radnog direktorijahttp:NOENCODEPOST /txt2inv/xmltoflat file=Invoice.xml text/html
POST /txt2inv/sendTo/{provider}
Content-Type: text/plain; charset=UTF-8
[INI sadržaj računa]
// Slanje prema DOKU
fetch('/txt2inv/sendTo/doku', {
method: 'POST',
headers: {
'Content-Type': 'text/plain; charset=UTF-8'
},
body: iniContent
})
.then(response => response.json())
.then(json => console.log('DOKU response:', json));
// Slanje prema ePoslovanje
fetch('/txt2inv/sendTo/eposlovanje?sendAsEmail=false', {
method: 'POST',
headers: {
'Content-Type': 'text/plain; charset=UTF-8'
},
body: iniContent
})
.then(response => response.json())
.then(json => console.log('ePoslovanje response:', json));
http:NOENCODEPOST /txt2inv/sendTo/doku?auto=true file=Invoice.txt text/html