( nagylzs | 2021. 06. 20., v – 10:22 )

Szokás szerint megint nagyon értelmes dokumentációt adtak hozzá... A 3.0 dokumentációban az electronicInvoiceHash leírása a 18.2.1. részben, a 24. oldalon a hatos alpontban szerepel.

> Az electronicInvoiceHash tag az InvoiceOperationType komplex típusban szerepel. A hash-lenyomat megadása opcionális sémaszinten, azonban completenessIndicator jelölő true értéke esetén kötelező. Az electronicInvoiceHash tag a típusából adódóan kiegészül egy új, kötelező attibútummal: cryptoType néven. Elfogadott értéke az adott számla completenessIndicator (adatszolgáltatás maga a számla) tag értékétől függ. Ha a completenessIndicator értéke true, az egyetlen elfogadott érték az SHA3-512. Ilyen esetben a hash értékének nagybetűs változatát kell beküldeni. Ha a completenessIndicator jelölő értéke false, az elfogadott értékek: SHA3-512, SHA-256.

A hash értékek köztudottan binárisak. Ha valaki azt írja hoyg "nagybetűs változatát kell beküldeni", akkor abból lehet sejteni, hogy itt valamilyen módon kódolni kell ezt a bináris értéket. De ez lehet base64, hexa, binhex, uuencode vagy xxencode stb.

Az xsd-ből se leszünk okosabbak:

			<xs:element name="electronicInvoiceHash" type="common:CryptoType" minOccurs="0">
				<xs:annotation>
					<xs:documentation xml:lang="hu">Elektronikus számla vagy módosító okirat állomány hash lenyomata</xs:documentation>
					<xs:documentation xml:lang="en">Electronic invoice or modification document file hash value</xs:documentation>
				</xs:annotation>
			</xs:element>

A cryptotype meg ilyen:

	<xs:complexType name="CryptoType">
		<xs:annotation>
			<xs:documentation xml:lang="hu">Kriptográfiai metódust leíró típus</xs:documentation>
			<xs:documentation xml:lang="en">Denoting type of cryptographic method</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="SimpleText512NotBlankType">
				<xs:attribute name="cryptoType" type="SimpleText50NotBlankType" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>

Nemüres szöveg, ami max. 512 karakter. Hát ez bármi lehet. :-D

 

Mondjuk azt lehet sejteni, hogy nem valami egzotikus (pl. Base62) kódolást kell használni, de ez így akkor is kevés. Nem tudom mit szólnának hozzá, ha mondjuk base32 vagy base36 kódolással írnám ide a hash-eket?

Szóval a számla mellé őrizzük meg a hash-t. Azt a hash-t ami legyen nagybetűsen beküldve (mert ez nagyon fontos!), de hogy milyen encoding-gal az meg már nem számít. Ilyeneket nem lenne szabad eltéveszteni egy olyan dokumentációban, ami több millió embert érint. Az egészről süt a hozzá nem értés.