Preskoči na glavni sadržaj

Tehnička specifikacija za spajanje putem asinkronih web servisa (stari način razmjene)

Ovaj tekst ima svrhu opisivanja preduvjeta, koje je nužno ispuniti, da bi se ostvarila razmjena podataka između Fine, Pošiljatelja i Primatelja zainteresiranih za razmjenu podataka putem web servisa u sustavu e-Račun za poslovne korisnike (B2B). Način razmjene između Fine i poslovnih korisnika izveden je iz dosadašnjih najboljih praksi, koje osiguravaju sigurnu isporuku i zadovoljavanje određene razine sigurnosti, odnosno zaštite prijenosa i kontrole nepovredivosti sadržaja.

 

Komunikacijski uvjeti

Razmjena podataka u sustavu e-Račun za poslovne korisnike između Fine i korisnika vrši se putem internetske mreže. U testnom periodu nužno je obaviti snimanje prometa na komunikacijskom vodu, te po potrebi dati prijedlog povećanja propusnosti. Prijedlog povećanja propusnosti dat će se nakon detaljne analize prometa i zaključka da postoji prekomjerno opterećenje voda. Fina i Korisnik dužni su definirati kontakt osobe za ostvarivanje komunikacije, svatko sa svoje strane.
 

Koraci za ostvarivanje komunikacije

Korisnik koji želi slati i/ili primati račune u elektroničkom obliku mora biti registriran u sustav e-Račun za poslovne subjekte (B2B). Procedura prijave u sustav e-Račun za poslovne subjekte opisan je na stranici http://www.fina.hr/e-racun.

Da bi se obavila uspješna razmjena podataka, potrebno je poštivati propisane korake, jer u suprotnom, razmjena podataka između Fine i Korisnika neće biti moguća.
 

Izrada Web servisa

Fina i Korisnik, svatko sa svoje strane dužni su izraditi Web servis za razmjenu podataka, prema standardiziranoj XML shemi.

 

Razmjena informacija

Kontakt osobe će zatim razmijeniti podatke o poslužiteljima (testni, produkcijski, nazivi, IP adrese), na koje se pristupa od strane Fine, kao i od strane Korisnika. Jednako tako, definirat će se komunikacijski port (SSL), preko kojeg se dolazi do Web servisa od Fine prema Korisniku i obrnuto.

 

Osiguravanje zaštite prijenosnog puta

Zaštita prijenosnog puta ostvaruje se pomoću SSL-a (Secure Sockets Layer). Za potrebe testne razmjene podataka, Korisnik dobavlja DEMO certifikat od Fininog RDC-a (Registra za digitalne certifikate). Za potrebe produkcije Korisnik dobavlja produkcijski SSL certifikat od strane Fininog, RDC-a (Registra za digitalne certifikate). Procedure i obrasci za dobavu certifikata nalaze se na stranici http://rdc.fina.hr.

 

Osiguravanje zaštite integriteta podataka u prijenosu

Zaštita integriteta podataka ostvaruje se pomoću digitalnog potpisa SOAP poruke. Digitalni potpis SOAP poruke izvodi se pomoću aplikacijskog certifikata. Fina i Korisnik su dužni izgraditi mehanizam za verifikaciju potpisane poruke. Za potrebe testa Korisnik dobavlja aplikacijski DEMO certifikat od Fininog RDC-a (Registra za digitalne certifikate). Procedure i obrasci za dobavu certifikata nalaze se na stranici http://rdc.fina.hr.

 

Koncept razmjene podataka

Registrirani Korisnici (poslovni subjekti s pravom slanja e-računa) šalju pojedinačno izlazne račune na web servis na strani Fine po standardiziranoj XML shemi. Fina radi validaciju potpisa SOAP poruke, te započinje obradu izlaznog računa. Nakon uspješne obrade Fina generira poruku obrade izlaznog računa koju šalje na Korisnikov web servis.

Registriranim Korisnicima (poslovni subjekti s pravom primanja e-računa) se putem web servisa na Korisnikovoj strani šalje ulazni račun po standardiziranoj XML shemi. Korisnik obrađuje poruku s ulaznim računom u svom sustavu. Ovisno o promjenama statusa ulaznog računa u sustavu Korisnika, Korisnikov sustav šalje poruku na web servis Fine o promjeni statusa ulaznog računa. Paralelno s primanjem promjene statusa ulaznog računa, Fina šalje Pošiljatelju poruku o promjeni statusa izlaznog računa u sustav Pošiljatelja.

Slijede osnovne postavke koncepta:

  • Fina će izraditi web servis sa dvije metode (metoda za slanje izlaznih e-računa (sendOutgoingInvoice) i metoda za slanje promjene statusa ulaznih računa (sendIncomingInvoiceStatus))
  • Pošiljatelj e-računa će izraditi web servis s dvije metode:
    • Primanje rezultata obrade izlaznog računa (receiveOutgoingInvoiceProcessing)
    • Primanje promjene statusa izlaznog računa (receiveOutgoingInvoiceStatus)
  • Primatelj će izraditi web servis s jednom metodom:
    • Primanje ulaznog računa (receiveIncomingInvoice)
  • Prilikom poziva web servisa Korisnika, te Fininog uspostavljat će se SSL.
  • SOAP poruke će se potpisivati.
  • Za kriptiranje kanala i potpisivanje poruke će se koristiti digitalni certifikati Fine.
  • Za svaku SOAP poruku postojat će potvrdna SOAP poruka (acknowledgement message) koja će se potpisivati.

 

Slanje izlaznog računa

Slanje izlaznog računa.png

Primanje rezultata obrade izlaznog računa

Primanje rezultata obrade izlaznog računa.png

Primanje ulaznog računa

Primanje ulaznog računa.png

Slanje promjene statusa ulaznog računa

Slanje promjene statusa ulaznog računa.png

Primanje promjene statusa izlaznog računa

Primanje promjene statusa izlaznog računa.png

Kreiranje SOAP poruka

Sve poruke koje se razmjenjuju web servisom su identičnog osnovnog izgleda. Sastoje se od zaglavlja (HeaderFinancialInstitution), podataka (Data), i slobodnog polja (##any).

Podaci (Data) je definiran za svaku poruku posebno i unutar elementa se nalazi XML struktura različita ovisno o poruci. Poruke koje sadrže samostalne xml strukture (npr. xml e-računa) se ugrađuju u „omotnice” (npr. InvoiceEnvelope) tipa base64binary u kojem se nalazi originalnixml encodiran u Base64.

 

Web servis za slanje izlaznog računa i slanje promjene statusa ulaznog računa na strani Fine

Pošiljatelj kreira SOAP poruku za slanje izlaznog računa te poziva web servis na strani Fine. Fina sinkrono odgovara na poruku i asinkrono kreće u obradu SOAP poruke.

Elementi SendOutgoingInvoiceMsg poruke (metoda sendOutgoingInvoice):

  • Header
    • MessageID
    • SupplierID
    • MessageType
      • 101 – slanje izlaznog računa
    • MessageAttributes – atribut (ili atributi odvojeni delimeterom). Za ovu vrstu poruke atribut je identifikator računa u sustavu Pošiljatelja
  • Data
    • OutgoingInvoiceEnvelope
      • SupplierInvoiceID – Identifikator računa u sustavu Pošiljatelja
      • BuyerID – Identifikator Primatelja računa u sustavu Fine
      • InvoiceEnvelope – Omotač pojedinačnog računa, ili
      • CreditNoteEnvelope – Omotač odobrenja, ili
      • DebitNoteEnvelope – Omotač terećenja, ili
      • ReminderEnvelope – Omotač opomene
      • UtilityStatementEnevelope – Omotač specifikacije (opcionalno)
      • AttachedDocumentEnvelope – Omotač privitaka (opcionalno)
      • Signature – Potpis(opcionalno)

Poruka SendOutgoingInvoiceMsg

Poruka SendOutgoingInvoiceMsg.png

Elementi SendIncomingInvoiceStatusMsg poruke (metoda sendIncomingInvoiceStatus):

  • Header
    • MessageID
    • BuyerID
    • MessageType
      • 107 – Status ulaznog računa
    • MessageAttributes – atribut (ili atributi odvojeni delimeterom). Za ovu vrstu poruku atribut je identifikator računa u sustavu Fine
  • Data
    • InvoiceStatus
      • InvoiceID – Identifikator računa u sustavu e-Račun
      • InvoiceStatusCode – Šifra statusa u sustavu e-Račun
      • InvoiceStatusText – (opcionalno) opis šifre statusa

Poruka SendIncomingInvoiceStatusMsg

Poruka SendIncomingInvoiceStatusMsg.png

 

Web servis za primanje rezultata obrade izlaznog računa i primanje promjene statusa izlaznog računa

Web servis se nalazi na strani Pošiljatelja računa te mora implementirati sljedeće metode s opisima SOAP poruka:

Elementi ReceiveOutgoingInvoiceProcessingMsg poruke (metoda receiveOutgoingInvoiceProcessing):

  • Header
    • MessageID
    • SupplierID
    • MessageType
      • 103 – Rezultat obrade izlaznog računa
    • MessageAttributes – atribut (ili atributi odvojeni delimeterom). Za ovaj tip poruke MessageAttribute je identifikator izlaznog računa u sustavu Pošiljatelja
  • Data
    • OutgoingInvoiceProcessing
      • CorrectOutgoingInvoice – Ispravno obrađen izlazni račun
        • SupplierInvoiceID – Identifikator računa u sustavu Pošiljatelja
        • InvoiceID – Identifikator računa u sustavu e-Račun
        • InvoiceTimestamp – Vrijeme zaprimanje računa u sustavili
      • IncorrectOutgoingInvoice – Neispravan izlazni račun
        • SupplierInvoiceID – Identifikator računa u sustavu Pošiljatelja
        • ErrorCode – Šifra greške (tablica grešaka)
        • ErrorMessage – (opcionalno) tekstualni opis greške

Poruka ReceiveOutgoingInvoiceProcessingMsg

Poruka ReceiveOutgoingInvoiceProcessingMsg.png

Elementi ReceiveOutgoingInvoiceStatusMsg poruke (metoda receiveOutgoingInvoiceStatus):

  • Header
    • MessageID
    • SupplierID
    • MessageType
      • 109 – Promjena statusa izlaznog računa
    • MessageAttributes – atribut (ili atributi odvojeni delimeterom).
  • Data
    • InvoiceStatus
      • InvoiceID – Identifikator računa u sustavu e-Račun
      • InvoiceStatusCode – Šifra statusa računa
      • InvoiceStatusText – (opcionalno) opis šifre statusa

Poruka ReceiveOutgoingInvoiceStatusMsg

Poruka ReceiveOutgoingInvoiceStatusMsg.png

Web servis za primanje ulaznih računa

Nakon uspješne obrade izlaznog računa poslanog od strane Pošiljatelja, sustav e-Račun šalje prema Primatelju ulazni račun. Web servis na strani Primatelja treba implementirati sljedeću metodu za primanje ulaznih računa s opisom SOAP poruke:

Elementi ReceiveIncomingInvoiceMsg poruke (metoda receiveIncomingInvoice):

  • Header
    • MessageID
    • BuyerID
    • MessageType
      • 105 – primanje ulaznog e-računa
    • MessageAttributes – atribut (ili atributi odvojeni delimeterom). Za ovaj tip poruke atribut je identifikator računa iz sustava e-Račun
  • Data
    • InvoiceID – Identifikator računa u sustavu e-Račun
    • InvoiceEnvelope – Omotač ulaznog računaili
    • CreditNoteEnvelope – Omotač odobrenjaili
    • DebitNoteEnvelope – Omotač terećenjaili
    • ReminderEnvelope – Omotač opomene
    • UtilityStatementEnvelope – Omotač specifikacije (opcionalno)
    • AttachedDocumentEnvelope – Omotač priloga računu (opcionalno)
    • Signature – Potpis (opcionalno)

Poruka ReceiveIncomingInvoiceMsg

Poruka ReceiveIncomingInvoiceMsg.png

Sinkrone odgovorne SOAP poruke

Svaka SOAP poruka ima svoju sinkronu odgovornu poruku i sve su identične strukture:

Elementi odgovorne xxxAckMsg poruke (metoda sendOutgoingInvoice):

  • MessageAck
    • MessageID
    • MessageAckID
    • MessageType
      • 102 – sinkroni odgovor na SendOutgoingInvoiceMsg
      • 104 – sinkroni odgovor na ReceiveOutgoingInvoiceProcessingMsg
      • 106 – sinkroni odgovor na ReceiveIncomingInvoiceMsg
      • 108 – sinkroni odgovor na SendIncomingInvoiceStatusMsg
      • 110 – sinkroni odgovor na ReceiveOutgoingInvoiceStatusMsg
    • AckStatus – status odgovora
      • ACCEPTEDili
      • MSG_NOT_VALIDili
      • SYSTEM_ERROR
    • AckStatusCode – šifra statusa (tablica statusa)
    • AckStatusText – (opcinalno) – Opis šifre statusa

Sinkrona odgovorna poruka xxxAckMsg

Sinkrona odgovorna poruka xxxAckMsg.png

 

Opis statusa i grešaka u razmjeni

Prije puštanja na produkcijski sustav nužna je verifikacija uspješne razmjene podataka na testnim okruženjima Fine i Korisnika. Jednako tako potrebno je izvesti sistemske load testove razmjene podataka, kako bi se ispitala propusnost voda.

Slijedi tablica s opisima tipova poruka i odgovornih poruka:

Tip porukeOpisPoruka/metoda
101Slanje izlaznog računaSendOutgoingInvoiceMsg
102Odgovor na slanje izlaznog računaSendOutgoingInvoiceAckMsg
103Primanje rezultata obrade izlaznog računaReceiveOutgoingInvoice
ProcessingMsg
104Odgovor na primanje rezultata obrade izlaznog računaReceiveOutgoingInvoice
ProcessingAckMsg
105Primanje ulaznog računaReceiveIncomingInvoiceMsg
106Odgovor na primanje ulaznog računaReceiveIncomingInvoiceAckMsg
107Slanje promjene statusa ulaznog računaSendIncomingInvoiceStatusMsg
108Odgovor na slanje promjene statusa ulaznog računaSendIncomingInvoiceStatusAckMsg
109Primanje promjene statusa izlaznog računaReceiveOutgoingInvoiceMsg
110Odgovor na primanje promjene statusa izlaznog računaReceiveOutgoingInvoiceAckMsg

 

Slijede tablice s opisima statusa odgovornih poruka za opisane web servise:

Na strani pošiljatelja (prima promjenu statusa)

AckStatusAckStatusCodeAckStatusTextMessageType
ACCEPTED10Poruka zaprimljena102, 106, 108, 110
MSG_NOT_VALID90XML poruke nije ispravan102, 106, 108, 110
MSG_NOT_VALID91Potpis poruke nije ispravan102, 106, 108, 110
SYSTEM_ERROR99Sistemska greška na strani web servisa + opis102, 106, 108, 110

 

Slijede tablice s opisima statusa izlaznih/ulaznih računa u razmjeni za opisane web servise:

Na strani pošiljatelja (prima promjenu statusa)

StatusOpis
1Obavijest o plaćanju
2Odbijen
3Odobren (prihvaćen)
4Neobrađen (automatski iz sustava e-račun)
6Plaćen u Internet bankarstvu (automatski iz sustava e-račun)

 

Na strani primatelja (šalje promjenu statusa)

StatusOpis
1Obavijest o plaćanju
2Odbijen
3Odobren (prihvaćen)

 

Slijedi tablica s opisima statusa grešaka u razmjeni za opisane web servise:

Šifra greškeOpis greškePoruka
151Identifikator poslovnog subjekta iz zaglavlja poruke nije definiran u sustavu e-Račun kao aktivni korisnikNepoznat ID poslovnog subjekta
152Greška se javlja kada pošiljatelj poruke nema prava slati izlazne e-račune za identifikator pošiljatelja iz zaglavlja datotekePošiljatelj nema prava slanja e-računa
156Interna greškaInterna greška
161Greška se javlja kada potpisnik poruke nema prava potpisa za izlazne e-račune za identifikator pošiljatelja iz zaglavlja porukePošiljatelj nema prava potpisa poruke
301Greška se javlja kada nije prošla kontrola valjanosti potpisa pojedinog e-računa unutar datotekePotpis e-računa nije valjan
302Greška se javlja kada potpisnik e-računa unutar datoteke nema prava potpisa za izlazne e-račune za identifikator korisnika iz zaglavlja datotekeNemate prava potpisa za predani id pretinca
303Identifikator pošiljatelja nije definiran u sustavu e-Račun kao aktivni korisnikNepoznati id pretinca
304Greška se javlja kada identifikator primatelja iz omotača pojedinačnog računa (OutgoingInvoiceData->OutgoingInovice->BuyerID) nije uparen s OIB-om kupcaNepostojeći oib primatelja
305Greška se javlja kada identifikator pošiljatelja nije uparen s OIB-om pošiljateljaNepostojeći oib pošiljatelja
306Greška se javlja nakon provjere jedinstvenosti broja računaNeispravan broj računa
307Greška ukoliko je „datum od“ u e-računu veći od „datuma do“Neispravan datum obračunskog perioda
308Greška se javlja ukoliko je veličina priloga veća od dopuštene (3MB)Nedopuštena veličina priloga
309Greška se javlja ukoliko nije ispravan mailNeispravan e-mail
310Greška se javlja ukoliko je datum valute manji od današnjeg danaNeispravan datum valute
311Greška ukoliko je korišten nedopušteni specijalni znakNedozvoljen specijalni znak
312Greška ukoliko postoji nedozvoljen broj stavkiNedozvoljen broj stavki
313Greška ukoliko je certifikat poništenCertifikat poništen
314Greška ukoliko certifikat ne vrijediCertifikat ne vrijedi (istekao rok uporabe ili još nije počeo)
315Greška ukoliko certifikat ne pripada traženom izdavatelju certifikata (CA)Certifikat ne pripada traženom izdavatelju (CA)
318Greška ukoliko nije pronađen XML e-računa u datoteciNije pronađen e-račun
319Greška ukoliko pretinac primatelja ne može primati e-račune po toj shemiPretinac ne može primati e-račun po odabranoj xml schemi
320Greška se javlja ukoliko je napisana neispravna kategorija porezaNeispravna kategorija poreza
322Greška se javlja ako e-račun ne odgovara XML shemi e-računae-račun ne odgovara xml schemi
323Greška se javlja ako je u XML elementu „Party-PartyLegalEntity-RegistrationName“ naziv dobavljača duži od 200 znakovaDužina polja RegistrationName je veca od dozvoljene
324Greška se javlja ako je u XML elementu „Party-PartyLegalEntity- CompanyID“ OIB duži od 13 znakovaDužina polja CompanyID je veca od dozvoljene
325Greška se javlja ako je u XML elementu „Party-PostalAddress- StreetName“ naziv ulice duži od 25 znakovaDužina polja StreetName je veća od dozvoljene
326Greška se javlja ako je u XML elementu „Party-PostalAddress- BuildingNumber“ kućni broj duži od 5 znakovaDužina polja BuildingNumber je veća od dozvoljene
327Greška se javlja ako je u XML elementu „Party-PostalAddress- CityName“ mjesto duži od 25 znakovaDužina polja CityName je veća od dozvoljene
328Greška se javlja ako je u XML elementu „Party-PostalAddress- PostalZone“ poštanski broj duži od 5 znakovaDužina polja PostalZone je veća od dozvoljene
329Greška se javlja ako je u XML elementu „Party-PostalAddress-AddressLine“ adresa duža od 64 znakovaDužina polja AddressLine je veća od dozvoljene
330Greška se javlja ako je u XML elementu „Party-PostalAddress-Country-IdentificationCode“ ISO identifikator države duži od 2 znakaDužina polja Country - IdentificationCode je veća od dozvoljene
331Greška se javlja ako je u XML elementu „Party-PostalAddress-Country-Name“ naziv države duža od 64 znakaDužina polja Country - Name je veća od dozvoljene
332Greška se javlja ako je u XML elementu „SellerContact-Name“ naziv kontakta duži od 25 znakaDužina polja SellerContact - Name je veća od dozvoljene
333Greška se javlja ako je u XML elementu „SellerContact-Telephone“ telefon kontakta duži od 20 znakaDužina polja SellerContact - Telephone je veća od dozvoljene
334Greška se javlja ako je u XML elementu „SellerContact-Telefax“ telefaks kontakta duži od 20 znakovaDužina polja SellerContact - Telefax je veća od dozvoljene
335Greška se javlja ako je u XML elementu „SellerContact- ElectronicMail“ email kontakta duži od 255 znakovaDužina polja SellerContact - ElectronicMail je veća od dozvoljene
336Greška se javlja ako je u XML elementu s referencama „ID“ ID duži od 13 znakovaDužina polja OrderReference - ID je veća od dozvoljene
337Greška se javlja ako je u XML elementu s referencama „IssueDate“ ID duži od 10 znakovaDužina polja IssueDate je veća od dozvoljene
338Greška se javlja ukoliko su identifikatori kupca i dobavljača istiID kupca i dobavljača ne smije biti isti
339Greška se javlja ukoliko su postoci poreza na potrošnju različiti po stavkama, moraju biti istiPorez na potrošnju mora biti isti za sve stavke
340Greška se javlja ukoliko je korištena nepostojeća jedinica mjereNeispravna jedinica mjere
341Greška se javlja ukoliko je upisana kriva vrsta računa - InvoiceTypeCodeNeispravna vrsta računa
342Greška se javlja ukoliko je element SellersItemIdentification-Id dužina veća od 20 znakovaDužina polja SellersItemIdentification - Id je veća od dozvoljene
343Greška se javlja ukoliko je element Item-Description dužina veća od 40 znakovaDužina polja 'opis' je veća od dozvoljene
344Greška se javlja ukoliko je element InvoiceLine-InvoicedQuantity manji od 0 i veći od 1000000000Veličina stavke InvoicedQuantity nije dozvoljena
345Greška se javlja ukoliko je element Price-PriceAmount manja od 0 i veća od 1000000000Veličina stavke Price-PriceAmount nije dozvoljena
346Greška se javlja ukoliko je element AllowanceCharge-MultiplierFactorNumeric manja od 0 i veća od 1Veličina stavke MultiplierFactorNumeric nije dozvoljena
347Greška se javlja ukoliko je element Invoice-Note veći od 1024 znakaDužina polja Invoice - Note je veća od dozvoljene
348Greška se javlja ukoliko je element PaymentMeans-InstructionNote veći od 105 znakovaDužina polja InstructionNote je veća od dozvoljene
349Greška se javlja ukoliko nije popunjeno mjesto izdavanja – ExtensionContent-InvoiceIssuePlaceInvoiceIssuePlace mora biti popunjeno
350Greška se javlja ukoliko je pogrešan poredak ExtensionContentaKrivi poredak ExtensionContent-a
351Greška se javlja ukoliko je element DocumentCurrencyCode prazanPolje DocumentCurrencyCode ne postoji
352Greška se javlja ukoliko je element ExtensionContent-InvoiceIssuer duži od dozvoljenoe veličine od 1000 znakovaDužina polja InvoiceIssuer je veća od dozvoljene
353Greška se javlja ukoliko ne postoji niti jedan TaxTotal-TaxSubtotal u ukupnom porezuNije pronađen niti jedan TaxSubtotal u ukupnom porezu
354Greška se javlja ukoliko je upisana nepostojeća kategorija poreza u elementu TaxSubtotal-TaxCategoryNeispravna kategorija ukupnog poreza
355Greška se javlja ukoliko je element ExtensionContent-InvoiceIssuePlace veći od dozvoljenih 25 znakovaDužina polja "mjesto" je veća od dozvoljene
356Greška se javlja ukoliko je neispravan AttachedDocumentNeispravan prilog
357Greška se javlja ukoliko datum nije unutar 100 godina od današnjeg datumaDatum mora biti unutar 100 godina od današnjeg datuma
358Greška se javlja ukoliko je element PaymentMeans-PaymentID popunjen neispravnoNeispravan model plaćanja
359Greška se javlja ukoliko element BaseQuantity ima broj decimala veći od 3Nedozvoljen broj decimala u polju BaseQuantity
360Greška se javlja ukoliko element PriceAmount ima broj decimala veći od 6Nedozvoljen broj decimala u polju PriceAmount
361Greška se javlja ukoliko element LineExtensionAmount ima broj decimala veći od 2Nedozvoljen broj decimala u polju LineExtensionAmount
362Greška se javlja ukoliko element MultiplierFactorNumeric ima broj decimala veći od 4Nedozvoljen broj decimala u polju MultiplierFactorNumeric
363Greška se javlja ukoliko element PayableAmount ima broj decimala veći od 2Nedozvoljen broj decimala u polju PayableAmount
364Greška se javlja ukoliko element MultiplierFactorNumeric u ukupnim rabatima ima broj decimala veći od 8Nedozvoljen broj decimala u polju MultiplierFactorNumeric kod rabata
365Greška se javlja ukoliko element TaxAmount ima broj decimala veći od 2 u stavkama računaNedozvoljen broj decimala u polju TaxAmount u stavkama računa
366Greška se javlja ukoliko element Percent u kategorijama poreza ima broj decimala veći od 2 u stavkama računaNedozvoljen broj decimala u polju Percent kod kategorije u stavkama računa
367Greška se javlja ukoliko element Percent u kategorijama poreza ima broj decimala veći od 2 u ukupnom porezuNedozvoljen broj decimala u polju Percent kod kategorije u ukupnom porezu
368Greška se javlja ukoliko element TaxableAmount u kategorijama poreza ima broj decimala veći od 2 u ukupnom porezuNedozvoljen broj decimala u polju TaxableAmount u ukupnom porezu
369Greška se javlja ukoliko element TaxAmount ima broj decimala veći od 2 u ukupnom porezuNedozvoljen broj decimala u polju TaxAmount u ukupnom porezu
370Greška se javlja ukoliko element TaxAxemptionReason ima dužinu polja veću od dozvoljenih 80 znakovaDužina polja TaxAxemptionReason u stavkama računa je veća od dozvoljene
371Greška se javlja ukoliko element SpecialTerms ima dužinu polja veću od dozvoljenih 5000 znakovaDužina polja SpecialTerms u uvjetima isporuke je veća od dozvoljene
372Greška se javlja ukoliko element SpecialTerms ima iznos polja manju od 0 i veću od 1000000000Veličina stavke BaseQuantity u stavkama računa nije dozvoljena
373Greška se javlja ukoliko element LineExtensionAmount ima iznos polja manji od 0 i veći od 1000000000Veličina stavke LineExtensionAmount u stavkama računa nije dozvoljena
374Greška se javlja ukoliko element PayableAmount ima iznos polja manji od 0.00 i veći od 1000000000000.00Veličina stavke PayableAmount u stavkama računa nije dozvoljena
375Greška se javlja ukoliko element TaxableAmount ima broj decimala veći od 2 u stavkama računaNedozvoljen broj decimala u polju TaxableAmount u stavkama računa
376Greška se javlja ukoliko element TaxableAmount ima iznos polja manju od 0 i veću od 1000000000 u stavkama računaVeličina stavke TaxableAmount u stavkama računa nije dozvoljena
377Greška se javlja ukoliko element TaxAmount ima iznos polja manju od 0 i veću od 1000000000 u stavkama računaVeličina stavke TaxAmount u stavkama računa nije dozvoljena
378Greška se javlja ukoliko element MultiplierFactorNumeric ima iznos polja manju od 0 i veću od 1 u rabatimaVeličina stavke MultiplierFactorNumeric kod rabata nije dozvoljena
379Greška se javlja ukoliko element Amount ima iznos polja manju od 0 i veću od 1000000000 u rabatimaVeličina stavke Amount kod rabata nije dozvoljena
380Greška se javlja ukoliko element TaxAmount ima iznos polja manju od 0 i veću od 1000000000 u rabatimaVeličina stavke TaxAmount kod rabata nije dozvoljena
381Greška se javlja ukoliko element TaxableAmount ima iznos polja manju od 0 i veću od 1000000000 u ukupnom porezuVeličina stavke TaxableAmount kod ukupnog poreza nije dozvoljena
382Greška se javlja ukoliko element Percent ima iznos polja manju od 0 i veću od 100 u ukupnom porezuVeličina stavke Percent kod ukupnog poreza nije dozvoljena
383Greška se javlja ukoliko element PostalZone nije brojNeispravno polje PostalZone
384Greška se javlja ukoliko element Amount ima broj decimala veći od 2 u rabatimaNedozvoljen broj decimala u polju Amount kod rabata
385Greška se javlja ukoliko element DocumentType nije popunjenPolje DocumentType kod priloga nije popunjeno
386Greška se javlja ukoliko veličina elementa DocumentType više od dozvoljenih 50 znakovaDužina polja DocumentType kod priloga je veća od dozvoljene
387Greška se javlja ukoliko u elementu Attachment nedostaje element EmbeddedDocumentBinaryObjectAttachedDocument nije prema shemi, nedostaje element EmbeddedDocument
BinaryObject
388Greška se javlja ukoliko nema atributa Filename u elementu EmbeddedDocumentBinaryObjectAtribut Filename kod priloga ne postoji
389Greška se javlja ukoliko veličina atributa Filename više od dozvoljenih 50 znakovaDužina atributa Filename kod priloga je veća od dozvoljene
390Greška se javlja ukoliko u elementu AttachedDocument nedostaje element AttachmentAttachedDocument nije prema shemi, nedostaje element Attachment
391Greška se javlja ukoliko u elementu AttachedDocument nedostaje element AttachedDocumentAttachedDocument nije prema shemi, nedostaje element AttachedDocument
392Greška se javlja ukoliko je dužina elementa ID u AttachedDocument veći od 50 znakovaDužina polja ‘ID’ kod priloga je veća od dozvoljene
393Greška se javlja ukoliko je neispravan broj dokumenta na koji se AttachedDocument referencira (ParentDocumentID)Neispravan broj dokumenta u prilogu
394Greška se javlja ukoliko je neispravan identifikator pošiljatelja (SenderID)Neispravan pošiljatelj priloga
395Greška se javlja ukoliko je neispravan identifikator naručitelja (ReceiverID)Neispravan naručitelj priloga
396Greška se javlja ukoliko ne postoji element ID u AttachedDocumentBroj (ID) priloga je obavezan
397Greška se javlja ukoliko prilog nije po standardnoj UBL AttachedDocument shemiPrilog nije po UBL - Attached Document schemi
398Greška se javlja ukoliko nije upisan IBAN primatelja (ID)Nepostojeći IBAN primatelja
399Greška se javlja ukoliko nije upisan IBAN platitelja (ID)Nepostojeći IBAN platitelja
400Greška se javlja ukoliko je nispravno upisan IBAN primateljaNeispravni IBAN primatelja
401Greška se javlja ukoliko je nispravno upisan IBAN platiteljaNeispravni IBAN platitelja
402Greška se javlja ukoliko ukupan iznos na razini stavke dokumenta nije ispravan (LineExtensionAmount)Neispravan ukupan iznos na razini stavke dokumenta
403Greška se javlja ukoliko iznos pojedinog poreza na razini stavke dokumenta nije ispravan (TaxAmount)Neispravan iznos pojedinog poreza na razini stavke dokumenta
404Greška se javlja ukoliko iznos ukupnog poreza na razini stavke dokumenta nije ispravan (TaxAmount)Neispravan iznos ukupnog poreza stavke dokumenta
405Greška se javlja ukoliko iznos ukupnog poreza na razini stavke dokumenta nije ispravan (TaxExclusiveAmount)Neispravan ukupan iznos na razini cijelog dokumenta
406Greška se javlja ukoliko iznos pojedinog poreza dokumenta nije ispravan (TaxAmount)Neispravan iznos pojedinog poreza
407Greška se javlja ukoliko iznos ukupnog poreza dokumenta nije ispravan (TaxAmount)Neispravan iznos ukupnog poreza
408Greška se javlja ukoliko iznos pojedine osnovice za porez dokumenta nije ispravan (TaxableAmount)Neispravan ukupni iznos osnovice za porez za pojedinu poreznu stopu
409Greška se javlja ukoliko ukupni iznos osnovice za porez dokumenta nije ispravan (TaxableAmount)Neispravan ukupni iznos poreza za pojedinu poreznu stopu
410Greška se javlja ukoliko ukupni iznos rabata dokumenta nije ispravan (Amount)Neispravni iznosi ukupnog rabata
411Greška se javlja ukoliko iznos osnovice za rabat dokumenta nije ispravan (BaseAmount)Neispravan iznos osnovice za rabat
412Greška se javlja ukoliko se u dokumentu nalaze nepostojeće porezne stopeU rekapitulaciji poreza se nalaze nepostojeće porezne stope
413Greška se javlja ukoliko se u dokumentu nalaze nepostojeće porezne stope kod rabataNepostojeća porezna stopa kod ukupnog rabata
414Greška se javlja ukoliko je veličina stavke BaseAmount veća od 1000000000000.00 ili manja od 0.00Veličina stavke ‘BaseAmount’ kod ukupnog rabata nije dozvoljena
415Greška se javlja ukoliko je broj decimala u polju BaseAmount kod ukupnog rabata veći od 2Nedozvoljen broj decimala u polju ‘BaseAmount’ kod ukupnog rabata
416Greška se javlja ukoliko je u odobrenju dužina polja ID veća od 20Dužina polja ‘Broj računa’ (ID) je veća od dozvoljene
417Greška se javlja ukoliko je element InvoiceIssuer na pogrešnom mjestu unutar elementa UBLExtensionsKrivi poredak ExtensionContent-a. Memorandum mora biti na drugom mjestu
418Greška se javlja ukoliko je element IssuerLogo na pogrešnom mjestu unutar elementa UBLExtensionsKrivi poredak ExtensionContent-a. Logo mora biti na trećem mjestu
419Greška se javlja ukoliko je element AccountingDocumentLabel na pogrešnom mjestu unutar elementa UBLExtensionsKrivi poredak ExtensionContent-a. Vrsta računa mora biti na četvrtom mjestu
420Greška se javlja ukoliko unutar elementa AccountingDocumentLabel nije upisan R1 ili R2Vrsta računa mora biti popunjena
421Greška se javlja ukoliko su elementi unutar elementa UBLExtensions pogrešno poredaniNedovoljan broj elemenata u ExtensionContent-u. ExtensionContent redom mora sadržavati elemente:
1. Mjesta izdavanja
2. Memoranduma
3. Logoa
4. Vrste računa
5. Potpisa
422Greška se javlja ukoliko je element Percent kod rabata nije popunjenNepostojeći postotak poreza kod ukupnog rabata
423Greška se javlja ukoliko je broj decimala u elementu DebitLineAmount u opomeni veći od 2Nedozvoljen broj decimala u polju ‘DebitLineAmount’ u stavkama opomene
424Greška se javlja ukoliko je DebitLineAmount u opomeni veći od 1000000000 ili manji od 0Iznos duga u stavkama opomene nije dozvoljen
425Greška se javlja ukoliko je broj decimala u CreditLineAmount u opomeni veći od 2Nedozvoljen broj decimala u polju ‘CreditLineAmount’ u stavkama opomene
426Greška se javlja ukoliko je CreditLineAmount u opomeni veći od 1000000000 ili manji od 0Već plaćeni iznos u stavkama opomene nije dozvoljen
427Greška se javlja ukoliko je broj decimala u elementu Amount u opomeni veći od 2Nedozvoljen broj decimala u polju ‘Amount’ u stavkama opomene
428Greška se javlja ukoliko je Amount u opomeni veći od 1000000000 ili manji od 0Ukupni iznos u stavkama opomene nije dozvoljen
429Greška se javlja ukoliko je element PaymentTerms veći od 1024 znakaDužina polja ‘uvjeti plaćanja’ je veća od dozvoljene
430Greška se javlja ukoliko ne postoji ID referentnog dokumentaNedostaje ID dokumenta na koji se veže opomena
431Greška se javlja ukoliko ne postoji IssueDate referentnog dokumentaNedostaje datum izdavanja dokumenta na koji se veže opomena
432Greška se javlja ukoliko je element Amount pogrešno izračunat (DebitLineAmount - CreditLineAmount)Neispravno ukupno dugovanje
433Greška se javlja ukoliko je element Amount pogrešno izračunat na razini stavke (DebitLineAmount - CreditLineAmount)Neispravan iznos preostalog duga na razini stavke
434Greška se javlja ukoliko su elementi unutar elementa UBLExtensions pogrešno poredaniNedovoljan broj elemenata u ExtensionContent-u. ExtensionContent redom mora sadržavati elemente:
1. Mjesta izdavanja
2. Memoranduma
3. Logoa
4. Potpisa
435Greška se javlja ukoliko element Payer/ID sadrži nepostojeću oznaku države u IBAN-uNepostojeća oznaka države u IBAN-u platitelja
436Greška se javlja ukoliko element Payee/ID sadrži nepostojeću oznaku države u IBAN-uNepostojeća oznaka države u IBAN-u primatelja
437Greška se javlja ukoliko je element Note u opomeni ne sadrži tekst opomeneTekst opomene nije unešen
438Greška se javlja ukoliko je opis oslobođenja od poreza duži od 4000 znakovaTekst uvjeta za jednu od poreznih stopa u Rekapitulaciji je veći od 4000 znakova
439Greška se javlja ukoliko je ID opomene nije unešenBroj opomene je obavezan
440Greška se javlja ukoliko nije unesen RegistrationName supplier-aNaziv tvrtke ili ime i prezime kod dobavljača mora biti popunjeno
441Greška se javlja ukoliko je element Amount u stavci opomene prazan ili 0.00Iznos u stavci opomene mora biti popunjen i veći od 0.00
442Greška se javlja ukoliko nije popunjen element ID u odobrenjuBroj odobrenja je obavezan
443Greška se javlja ukoliko nije popunjen element ID u računuBroj računa je obavezan

 

Postupci prije produkcije

Prije puštanja na produkcijski sustav nužna je verifikacija uspješne razmjene podataka na testnim okruženjima Fine i Korisnika. Jednako tako potrebno je izvesti sistemske load testove razmjene podataka, kako bi se ispitala propusnost voda.

Ne može se napraviti iznimka izostajanja testiranja razmjene, na testnim okruženjima Fine i Korisnika, kao ni sistemski testovi. Jednako tako je potrebno detaljno dokumentirati komponente razmjene podataka.

 

Specifikacija e-računa (UBL-Invoice)

Nacrti specifikacije e-računa Ministarstva gospodarstva, rada i poduzetništva RH, Povjerenstva za e-račun.

Nacrti specifikacije e-računa - prosinac 2009.

Nacrti specifikacije e-računa - srpanj 2011.

 

UBL sheme

UBL sheme nalaze se ovdje.

 

Sheme poruka i definicije web servisa

Sheme poruka i definicija Web servisa nalazi se ovdje.

  • Nužni kolačići omogućuju osnovne funkcionalnosti. Bez ovih kolačića, web-stranica ne može pravilno funkcionirati, a isključiti ih možete mijenjanjem postavki u svome web-pregledniku.