XSDHub

HR-BR-2 — Nedostaje vrijeme izdavanja računa

Uzrok, popravak i reproducirani XML primjer za HR-BR-2 u hrvatskom eRačunu.

Značenje i popravak

Vrijeme izdavanja zaseban je hrvatski podatak HR-BT-2. U UBL-u se zapisuje u cbc:IssueTime uz datum izdavanja. Aktualni HR predikat zahtijeva prisutnost podatka i zapis s dvije znamenke za sate, minute i sekunde, odvojene dvotočkama. Vrijednost samo s datumom u IssueDate ne zadovoljava ovu provjeru.

Pozitivni dokument navodi 12:34:56. Pogrešna inačica uklanja cijeli IssueTime, a datum, iznosi i broj računa ostaju jednaki. Time reproduciramo nedostatak vremena, a ne pomak vremenske zone ili pogrešan sat na uređaju. XML Schema dodatno provjerava dopuštenu vremensku vrijednost. Zapis sa završnom oznakom vremenske zone može biti prihvatljiv za opći XML tip, ali ne odgovarati ovom užem regularnom izrazu hrvatskog Schematrona. Zato se pri izvozu ravnaj prema izabranom nacionalnom profilu.

Osnovni EN16931 skup za IssueTime vraća upozorenje UBL-CR-006. XSDHub ga prikazuje uz hrvatski rezultat jer hrvatski profil upravo zahtijeva taj element; upozorenje nije prešućeno niti pretvoreno u nacionalnu pogrešku. U programu provjeri prenosi li se stvarno vrijeme izdavanja, uključujući sekunde, umjesto vremena slanja datoteke. Ova provjera ne uspoređuje sat s poreznim sustavom i ne potvrđuje trenutak fiskalizacije. Ispravljena datoteka može proći uz navedeno informativno upozorenje osnovnog profila.

Polje koje mijenja test

Za HR-BR-2 mijenja se samo /*/cbc:IssueTime. Uklanja se jedan element sa svim pripadajućim atributima i sadržajem.

Reproducirani rezultat

Negativna datoteka: HR-BR-2.

Ispravljena datoteka prolazi XSD i oba skupa poslovnih pravila. Upozorenja osnovnog profila ostaju vidljiva: UBL-CR-006, UBL-CR-200, UBL-CR-412.

{
  "bad": {
    "ok": false,
    "stage": "Business rules",
    "rules": "HR-CIUS/EXT 2025 1.0.0, 13.3.2026 (primjena 15.3.2026) + EN16931 1.3.16",
    "syntax": "UBL",
    "engine": "SaxonC-HE 13.1 / saxonche 13.1.1",
    "errors": [
      {
        "code": "HR-BR-2",
        "message": "[HR-BR-2] - Račun mora imati vrijeme izdavanja računa (HR-BT-2). Vrijeme se upisuje u formatu hh:mm:ss",
        "path": "/*:Invoice[namespace-uri()='urn:oasis:names:specification:ubl:schema:xsd:Invoice-2'][1]"
      }
    ],
    "warnings": [
      {
        "code": "UBL-CR-200",
        "message": "[UBL-CR-200]-A UBL invoice should not include the AccountingSupplierParty SellerContact",
        "path": "/*:Invoice[namespace-uri()='urn:oasis:names:specification:ubl:schema:xsd:Invoice-2'][1]"
      },
      {
        "code": "UBL-CR-412",
        "message": "[UBL-CR-412]-A UBL invoice should not include the PaymentMeans PaymentDueDate",
        "path": "/*:Invoice[namespace-uri()='urn:oasis:names:specification:ubl:schema:xsd:Invoice-2'][1]"
      }
    ],
    "truncated": false
  },
  "good": {
    "ok": true,
    "stage": "Business rules",
    "rules": "HR-CIUS/EXT 2025 1.0.0, 13.3.2026 (primjena 15.3.2026) + EN16931 1.3.16",
    "syntax": "UBL",
    "engine": "SaxonC-HE 13.1 / saxonche 13.1.1",
    "errors": [],
    "warnings": [
      {
        "code": "UBL-CR-006",
        "message": "[UBL-CR-006]-A UBL invoice should not include the IssueTime",
        "path": "/*:Invoice[namespace-uri()='urn:oasis:names:specification:ubl:schema:xsd:Invoice-2'][1]"
      },
      {
        "code": "UBL-CR-200",
        "message": "[UBL-CR-200]-A UBL invoice should not include the AccountingSupplierParty SellerContact",
        "path": "/*:Invoice[namespace-uri()='urn:oasis:names:specification:ubl:schema:xsd:Invoice-2'][1]"
      },
      {
        "code": "UBL-CR-412",
        "message": "[UBL-CR-412]-A UBL invoice should not include the PaymentMeans PaymentDueDate",
        "path": "/*:Invoice[namespace-uri()='urn:oasis:names:specification:ubl:schema:xsd:Invoice-2'][1]"
      }
    ],
    "truncated": false
  }
}

Izmišljeni XML za preuzimanje

Preuzmi pogrešan XML · Preuzmi ispravljeni XML

<ubl:Invoice xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cn="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
  <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:mfin.gov.hr:cius-2025:1.0#conformant#urn:mfin.gov.hr:ext-2025:1.0</cbc:CustomizationID>
  <cbc:ProfileID>P1</cbc:ProfileID>
  <cbc:ID>TEST-HR-2026-001</cbc:ID>
  <cbc:IssueDate>2026-11-03</cbc:IssueDate>
  <cbc:DueDate>2026-11-30</cbc:DueDate>
  <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
  <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
  <cac:AccountingSupplierParty>
    <cac:Party>
      <cbc:EndpointID schemeID="9934">12345678903</cbc:EndpointID>
      <cac:PostalAddress>
        <cbc:StreetName>Izmišljena ulica 1</cbc:StreetName>
        <cbc:CityName>Zagreb</cbc:CityName>
        <cbc:PostalZone>10000</cbc:PostalZone>
        <cac:Country>
          <cbc:IdentificationCode>HR</cbc:IdentificationCode>
        </cac:Country>
      </cac:PostalAddress>
      <cac:PartyTaxScheme>
        <cbc:CompanyID>HR12345678903</cbc:CompanyID>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:PartyTaxScheme>
      <cac:PartyLegalEntity>
        <cbc:RegistrationName>XSDHub izmišljeni prodavatelj</cbc:RegistrationName>
        <cbc:CompanyID>12345678903</cbc:CompanyID>
      </cac:PartyLegalEntity>
    </cac:Party>
    <cac:SellerContact>
      <cbc:ID>12345678903</cbc:ID>
      <cbc:Name>Testni operater</cbc:Name>
    </cac:SellerContact>
  </cac:AccountingSupplierParty>
  <cac:AccountingCustomerParty>
    <cac:Party>
      <cbc:EndpointID schemeID="9934">98765432106</cbc:EndpointID>
      <cac:PostalAddress>
        <cbc:StreetName>Izmišljena ulica 1</cbc:StreetName>
        <cbc:CityName>Zagreb</cbc:CityName>
        <cbc:PostalZone>10000</cbc:PostalZone>
        <cac:Country>
          <cbc:IdentificationCode>HR</cbc:IdentificationCode>
        </cac:Country>
      </cac:PostalAddress>
      <cac:PartyTaxScheme>
        <cbc:CompanyID>HR98765432106</cbc:CompanyID>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:PartyTaxScheme>
      <cac:PartyLegalEntity>
        <cbc:RegistrationName>XSDHub izmišljeni kupac</cbc:RegistrationName>
        <cbc:CompanyID>98765432106</cbc:CompanyID>
      </cac:PartyLegalEntity>
    </cac:Party>
  </cac:AccountingCustomerParty>
  <cac:PaymentMeans>
    <cbc:PaymentMeansCode>10</cbc:PaymentMeansCode>
    <cbc:PaymentDueDate>2026-11-30</cbc:PaymentDueDate>
  </cac:PaymentMeans>
  <cac:TaxTotal>
    <cbc:TaxAmount currencyID="EUR">25.00</cbc:TaxAmount>
    <cac:TaxSubtotal>
      <cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
      <cbc:TaxAmount currencyID="EUR">25.00</cbc:TaxAmount>
      <cac:TaxCategory>
        <cbc:ID>S</cbc:ID>
        <cbc:Percent>25</cbc:Percent>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:TaxCategory>
    </cac:TaxSubtotal>
  </cac:TaxTotal>
  <cac:LegalMonetaryTotal>
    <cbc:LineExtensionAmount currencyID="EUR">100.00</cbc:LineExtensionAmount>
    <cbc:TaxExclusiveAmount currencyID="EUR">100.00</cbc:TaxExclusiveAmount>
    <cbc:TaxInclusiveAmount currencyID="EUR">125.00</cbc:TaxInclusiveAmount>
    <cbc:PayableAmount currencyID="EUR">125.00</cbc:PayableAmount>
  </cac:LegalMonetaryTotal>
  <cac:InvoiceLine>
    <cbc:ID>1</cbc:ID>
    <cbc:InvoicedQuantity unitCode="C62">1</cbc:InvoicedQuantity>
    <cbc:LineExtensionAmount currencyID="EUR">100.00</cbc:LineExtensionAmount>
    <cac:Item>
      <cbc:Name>Izmišljena usluga za provjeru</cbc:Name>
      <cac:CommodityClassification>
        <cbc:ItemClassificationCode listID="CG">62.10.11</cbc:ItemClassificationCode>
      </cac:CommodityClassification>
      <cac:ClassifiedTaxCategory>
        <cbc:ID>S</cbc:ID>
        <cbc:Percent>25</cbc:Percent>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:ClassifiedTaxCategory>
    </cac:Item>
    <cac:Price>
      <cbc:PriceAmount currencyID="EUR">100.00</cbc:PriceAmount>
      <cbc:BaseQuantity unitCode="C62">1</cbc:BaseQuantity>
    </cac:Price>
  </cac:InvoiceLine>
</ubl:Invoice>
<ubl:Invoice xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cn="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
  <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:mfin.gov.hr:cius-2025:1.0#conformant#urn:mfin.gov.hr:ext-2025:1.0</cbc:CustomizationID>
  <cbc:ProfileID>P1</cbc:ProfileID>
  <cbc:ID>TEST-HR-2026-001</cbc:ID>
  <cbc:IssueDate>2026-11-03</cbc:IssueDate>
  <cbc:IssueTime>12:34:56</cbc:IssueTime>
  <cbc:DueDate>2026-11-30</cbc:DueDate>
  <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
  <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
  <cac:AccountingSupplierParty>
    <cac:Party>
      <cbc:EndpointID schemeID="9934">12345678903</cbc:EndpointID>
      <cac:PostalAddress>
        <cbc:StreetName>Izmišljena ulica 1</cbc:StreetName>
        <cbc:CityName>Zagreb</cbc:CityName>
        <cbc:PostalZone>10000</cbc:PostalZone>
        <cac:Country>
          <cbc:IdentificationCode>HR</cbc:IdentificationCode>
        </cac:Country>
      </cac:PostalAddress>
      <cac:PartyTaxScheme>
        <cbc:CompanyID>HR12345678903</cbc:CompanyID>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:PartyTaxScheme>
      <cac:PartyLegalEntity>
        <cbc:RegistrationName>XSDHub izmišljeni prodavatelj</cbc:RegistrationName>
        <cbc:CompanyID>12345678903</cbc:CompanyID>
      </cac:PartyLegalEntity>
    </cac:Party>
    <cac:SellerContact>
      <cbc:ID>12345678903</cbc:ID>
      <cbc:Name>Testni operater</cbc:Name>
    </cac:SellerContact>
  </cac:AccountingSupplierParty>
  <cac:AccountingCustomerParty>
    <cac:Party>
      <cbc:EndpointID schemeID="9934">98765432106</cbc:EndpointID>
      <cac:PostalAddress>
        <cbc:StreetName>Izmišljena ulica 1</cbc:StreetName>
        <cbc:CityName>Zagreb</cbc:CityName>
        <cbc:PostalZone>10000</cbc:PostalZone>
        <cac:Country>
          <cbc:IdentificationCode>HR</cbc:IdentificationCode>
        </cac:Country>
      </cac:PostalAddress>
      <cac:PartyTaxScheme>
        <cbc:CompanyID>HR98765432106</cbc:CompanyID>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:PartyTaxScheme>
      <cac:PartyLegalEntity>
        <cbc:RegistrationName>XSDHub izmišljeni kupac</cbc:RegistrationName>
        <cbc:CompanyID>98765432106</cbc:CompanyID>
      </cac:PartyLegalEntity>
    </cac:Party>
  </cac:AccountingCustomerParty>
  <cac:PaymentMeans>
    <cbc:PaymentMeansCode>10</cbc:PaymentMeansCode>
    <cbc:PaymentDueDate>2026-11-30</cbc:PaymentDueDate>
  </cac:PaymentMeans>
  <cac:TaxTotal>
    <cbc:TaxAmount currencyID="EUR">25.00</cbc:TaxAmount>
    <cac:TaxSubtotal>
      <cbc:TaxableAmount currencyID="EUR">100.00</cbc:TaxableAmount>
      <cbc:TaxAmount currencyID="EUR">25.00</cbc:TaxAmount>
      <cac:TaxCategory>
        <cbc:ID>S</cbc:ID>
        <cbc:Percent>25</cbc:Percent>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:TaxCategory>
    </cac:TaxSubtotal>
  </cac:TaxTotal>
  <cac:LegalMonetaryTotal>
    <cbc:LineExtensionAmount currencyID="EUR">100.00</cbc:LineExtensionAmount>
    <cbc:TaxExclusiveAmount currencyID="EUR">100.00</cbc:TaxExclusiveAmount>
    <cbc:TaxInclusiveAmount currencyID="EUR">125.00</cbc:TaxInclusiveAmount>
    <cbc:PayableAmount currencyID="EUR">125.00</cbc:PayableAmount>
  </cac:LegalMonetaryTotal>
  <cac:InvoiceLine>
    <cbc:ID>1</cbc:ID>
    <cbc:InvoicedQuantity unitCode="C62">1</cbc:InvoicedQuantity>
    <cbc:LineExtensionAmount currencyID="EUR">100.00</cbc:LineExtensionAmount>
    <cac:Item>
      <cbc:Name>Izmišljena usluga za provjeru</cbc:Name>
      <cac:CommodityClassification>
        <cbc:ItemClassificationCode listID="CG">62.10.11</cbc:ItemClassificationCode>
      </cac:CommodityClassification>
      <cac:ClassifiedTaxCategory>
        <cbc:ID>S</cbc:ID>
        <cbc:Percent>25</cbc:Percent>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:ClassifiedTaxCategory>
    </cac:Item>
    <cac:Price>
      <cbc:PriceAmount currencyID="EUR">100.00</cbc:PriceAmount>
      <cbc:BaseQuantity unitCode="C62">1</cbc:BaseQuantity>
    </cac:Price>
  </cac:InvoiceLine>
</ubl:Invoice>

Uvjet iz izvornih pravila

[
  {
    "source": "invoice/rules/hr/expanded.sch",
    "kind": "assert",
    "context": "ubl-creditnote:CreditNote | ubl-invoice:Invoice",
    "test": "cbc:IssueTime and matches(cbc:IssueTime, '^[0-9]{2}:[0-9]{2}:[0-9]{2}$')",
    "message": "[HR-BR-2] - Račun mora imati vrijeme izdavanja računa (HR-BT-2). Vrijeme se upisuje u formatu hh:mm:ss"
  }
]

UBL 2.1 Invoice / CreditNote · EN16931 1.3.16 · HR-CIUS/EXT 13.3.2026, primjena 15.3.2026 · XSD + Schematron #ALL

Provjeri vlastiti XML · Sva pravila

Porezna uprava: dokumentacija · Izvori / Sources · JSON: testovi · Metoda i granice (Hrvatski)