Formát řetězce QR Faktury je navržen tak, aby byl kompaktní, co se velikosti obsažených dat týče. Výhodou navrženého formátu je relativně dobrá lidská čitelnost a potenciální rozšiřitelnost o specifické atributy.
Řetězec může obsahovat libovolné znaky ze znakové sady UTF-8. Pro efektivní uložení do QR kódu doporučujeme sestavit řetězec tak, aby obsahoval pouze následující znaky:
- 0–9
- A–Z [pouze velká písmena]
- mezera
- $, %, *, +, -, ., /, :
Při zachování znaků výhradně z uvedené množiny bude použit tzv. alfanumerický formát QR kódu. Množina znaků používaná v klíčích a řídících strukturách navrženého formátu je proto volena právě z této množiny tak, aby nebylo zabráněno dosažení maximální možné efektivity uložení účetních informací do QR kódů. Bude-li v hodnotě kteréhokoli pole použit znak z jiné množiny, než je uvedena výše, bude použit tzv. binární formát QR kódu.
Řetězec je vždy zahájen fixní hlavičkou SID*. Následuje verze protokolu (dvě čísla oddělená tečkou) ukončená hvězdičkou, např. 1.0*. Následně řetězec obsahuje jednotlivé účetní atributy ve formátu:
- ${klíč}:${hodnota}*
Tedy klíč je od hodnoty oddělen dvojtečkou, hodnota je zakončena hvězdičkou. Pole ${hodnota} smí obsahovat hvězdičku pouze v případě, že řetězec není integrován s QR Platbou. Hvězdička je v hodnotě zakódována jako %2A. Poslední hodnota v řetězci nemusí být ukončena hvězdičkou.
${klíč} | Klíč daného atributu je vždy zapsán velkými znaky z množiny znaků [A-Z-]. Seznam klíčů (základní sada atributů) je uveden v Tabulce 1. Formát může být libovolně rozšířen o proprietární klíče (mimo definici tohoto standardu), které mají např. lokální význam pro konkrétní lokalitu, instituci, nebo výstavce. Takové klíče obsahují na začátku svého názvu znaky „X-“. Tímto standardem definované proprietární klíče jsou uvedeny v Tabulce 2.
Každý klíč v řetězci musí mít hodnotu. Nepřipouští se existence klíče v řetězci bez hodnoty. U některých klíčů lze interpretovat jednoznačným způsobem jejich nepřítomnost v řetězci (a tím zkrátit celkovou délku řetězce) – taková interpretace je u příslušných klíčů uvedena v Tabulce 1. |
${hodnota} | Hodnota každého atributu může obsahovat libovolné znaky, ale musí být zároveň v přípustném formátu – viz. popis formátu hodnoty v Tabulce 1. Hodnota nesmí být obklopena bílými znaky (tj. za “:” a před “*” nesmí být bílé znaky) a nesmí obsahovat znak * (hvězdička). Hodnota může obsahovat znak : (dvojtečka).
Hodnota může obsahovat speciální znaky kódované pomocí URL kódování, tj. např. hvězdičku je možno do hodnoty zahrnout pomocí zápisu %2A. Pozn.: Podpora pro kódování speciálních znaků je základním parametrem typově podobných formátů. V principu existuje několik přístupů, např. HTML entity, back-slashing nebo touto specifikací zvolené URL kódování. Pokud bude hodnota obsahovat více znaků, než připouští formát, bude zpracován pouze formátem specifikovaný počet znaků zleva, ostatní budou ignorovány. |
Tabulka 1 – Základní atributy
Klíč | Povinný | Délka | Formát | Popis formátu hodnoty | Příklad zápisu klíče a hodnoty |
ID | ANO | Max. 40 znaků | Všechny znaky z povolené množiny mimo ‘*’ | Jednoznačné označení dokladu | ID:ABCD123456789EF* |
DD | ANO | Právě 8 znaků | ISO 8601, tj. datum ve formátu YYYYMMDD. Pouze numerické znaky |
Datum vystavení dokladu | DD:20160615* |
AM | ANO | Max. 18 znaků | Desetinné číslo. Max. 2 desetinné cifry. Tečka jako oddělovač desetinných míst |
Výše celkové částky k úhradě v měně specifikované klíčem CC.
V případě kladné hodnoty bez znaménka, záporná hodnota se znaménkem. |
AM:123456789.45* |
TP | NE | Právě 1 znak | Číslice | Identifikace typu daňového plnění.
0, nebo není klíč v řetězci přítomen = běžný typ plnění |
TP:0* |
TD | NE | Právě 1 znak | Číslice | Identifikace typu dokladu.
0 – nedaňový doklad (např. zálohová faktura) 1 – opravný daňový doklad 2 – doklad k přijaté platbě 3 – splátkový kalendář 4 – platební kalendář 5 – souhrnný daňový doklad 9 – ostatní daňové doklady Není-li klíč v řetězci přítomen = 9 |
TD:9* |
SA | NE | Právě 1 znak | Číslice | Příznak, který rozlišuje, zda faktura obsahuje zúčtování záloh.
0, nebo klíč není v řetězci přítomen = faktura neobsahuje zúčtování záloh |
SA:1* |
MSG | NE | Max. 40 znaků | Všechny znaky z povolené množiny mimo ‘*’ | Textový popis předmětu fakturace | MSG:KONZULTACE KVETEN 2016* |
ON | NE | Max. 20 znaků | Všechny znaky z povolené množiny mimo ‘*’ | Číslo (označení) objednávky, k níž se vztahuje tento účetní doklad. | ON:OBJ20160614TK* |
VS | NE | Max. 10 znaků | Celé číslo | Variabilní symbol | VS:1234567890* |
VII | NE | Max. 14 znaků | Alfanumerický řetězec | DIČ výstavce | VII:CZ12345678* |
INI | NE | Max. 8 znaků | Celé číslo | IČO výstavce | INI:12345678* |
VIR | NE | Max. 14 znaků | Alfanumerický řetězec | DIČ příjemce | VIR:CZ09876543* |
INR | NE | Max. 8 znaků | Celé číslo | IČO příjemce | INR:98765432* |
DUZP | NE | Právě 8 znaků | ISO 8601, tj. datum ve formátu YYYYMMDD. Pouze numerické znaky |
Datum uskutečnění zdanitelného plnění | DUZP:20160413* |
DPPD | NE | Právě 8 znaků | ISO 8601, tj. datum ve formátu YYYYMMDD. Pouze numerické znaky |
Datum povinnosti přiznat daň | DPPD:20161201* |
DT | NE | Právě 8 znaků | ISO 8601, tj. datum ve formátu YYYYMMDD. Pouze numerické znaky |
Datum splatnosti celkové částky | DT:20160908* |
TB0 | NE | Max. 18 znaků | Desetinné číslo. Max. 2 desetinné cifry. Tečka jako oddělovač desetinných míst |
Částka základu daně v základní daňové sazbě v CZK včetně haléřového vyrovnání.
V případě kladné hodnoty bez znaménka, záporná hodnota se znaménkem. Znaménko vždy explicitně určuje směr toku peněz bez ohledu na jiné atributy. |
TB0:3000* |
T0 | NE | Max. 18 znaků | Desetinné číslo. Max. 2 desetinné cifry. Tečka jako oddělovač desetinných míst |
Částka daně v základní daňové sazbě v CZK včetně haléřového vyrovnání.
V případě kladné hodnoty bez znaménka, záporná hodnota se znaménkem. Znaménko vždy explicitně určuje směr toku peněz bez ohledu na jiné atributy. |
T0:630* |
TB1 | NE | Max. 18 znaků | Desetinné číslo. Max. 2 desetinné cifry. Tečka jako oddělovač desetinných míst |
Částka základu daně v první snížené daňové sazbě v CZK včetně haléřového vyrovnání.
V případě kladné hodnoty bez znaménka, záporná hodnota se znaménkem. Znaménko vždy explicitně určuje směr toku peněz bez ohledu na jiné atributy. |
TB1:2000* |
T1 | NE | Max. 18 znaků | Desetinné číslo. Max. 2 desetinné cifry. Tečka jako oddělovač desetinných míst |
Částka daně v první snížené daňové sazbě v CZK včetně haléřového vyrovnání.
V případě kladné hodnoty bez znaménka, záporná hodnota se znaménkem. Znaménko vždy explicitně určuje směr toku peněz bez ohledu na jiné atributy. |
T1:300* |
TB2 | NE | Max. 18 znaků | Desetinné číslo. Max. 2 desetinné cifry. Tečka jako oddělovač desetinných míst |
Částka základu daně ve druhé snížené daňové sazbě v CZK včetně haléřového vyrovnání.
V případě kladné hodnoty bez znaménka, záporná hodnota se znaménkem. Znaménko vždy explicitně určuje směr toku peněz bez ohledu na jiné atributy. |
TB2:1000* |
T2 | NE | Max. 18 znaků | Desetinné číslo. Max. 2 desetinné cifry. Tečka jako oddělovač desetinných míst |
Částka daně ve druhé snížené daňové sazbě v CZK včetně haléřového vyrovnání.
V případě kladné hodnoty bez znaménka, záporná hodnota se znaménkem. Znaménko vždy explicitně určuje směr toku peněz bez ohledu na jiné atributy. |
T2:100* |
NTB | NE | Max. 18 znaků | Desetinné číslo. Max. 2 desetinné cifry. Tečka jako oddělovač desetinných míst |
Částka osvobozených plnění, plnění mimo předmět DPH, plnění neplátců DPH v CZK včetně haléřového vyrovnání. V případě kladné hodnoty bez znaménka, záporná hodnota se znaménkem. Znaménko vždy explicitně určuje směr toku peněz bez ohledu na jiné atributy. | NTB:500* |
CC | NE | Právě 3 znaky | ISO 4217 – délka 3 znaky, velká písmena | Měna celkové částky. Není-li klíč v řetězci přítomen = měna je CZK | CC:CZK* |
FX | NE | Max. 18 znaků | Desetinné číslo. Max. 3 desetinné cifry. Tečka jako oddělovač desetinných míst |
Směnný kurz mezi CZK a měnou celkové částky | FX:123456.789* |
FXA | NE | Max. 5 znaků | Celé číslo | Počet jednotek cizí měny pro přepočet pomocí klíče FX. Není-li v řetězci klíč přítomen = 1 | FXA:100* |
ACC | NE | Max. 46 znaků (IBAN+BIC) |
IBAN, BIC | Identifikace čísla účtu výstavce faktury, která je složena ze dvou komponent oddělených znaménkem + Tyto komponenty jsou: číslo účtu ve formátu IBAN identifikace banky ve formátu SWIFT dle ISO 9362. Druhá komponenta (SWIFT) je přitom volitelná |
ACC:CZ5855000000001265098001 +RZBCCZPP* a nebo (varianta bez BIC): ACC:CZ5855000000001265098001* |
CRC32 | NE | Právě 8 znaků | Znaky z množiny: [A-F0-9] |
Kontrolní součet. Hodnota vznikne výpočtem CRC32 celého řetězce (bez klíče CRC32) a převedením této číselné hodnoty do hexadecimálního zápisu.
Princip vypočítání CRC32 (zajištění jednoznačnosti reprezentace pro výpočet CRC32): · Použijí se všechny atributy mimo atributu CRC32 · Sestaví se kanonický řetězec tak, že převezme hlavičku („SID*1.0*”), ostatní atributy se setřídí abecedně dle klíče, v tomto pořadí se zakódují do řetězce dle specifikace (včetně hvězdičky na konci řetězce) a sestaví se tak základ pro počítání CRC32 Výsledek se převede do šestnáctkové soustavy a klíč s hodnotou se připojí k řetězci. |
CRC32:1234ABCD* |
Tabulka 2 – Proprietární atributy
Klíč | Povinný | Délka | Formát | Popis formátu hodnoty | Příklad zápisu klíče a hodnoty |
X-SW | NE | Max. 30 znaků | Všechny znaky z povolené množiny mimo ‘*’ | Označení účetního software, ve kterém byl řetězec QR Faktury (faktura) vytvořen. Libovolný řetězec dle rozhodnutí výrobce účetního software. Označení by mělo být obecně unikátní a neměnné pro daný software (nebo jeho verzi). | X-SW:E-FAKTURANT V5.3* |
X-URL | NE | Max. 70 znaků | Všechny znaky z povolené množiny mimo ‘*’ | Údaje pro získání účetních údajů (případně faktury) ve strukturovaném formátu z on-line uložiště. | X-URL:HTTP://E-FAKTURANT.CZ/INV/ ABCD123456789EFG.ISDOC * |
Ukládání a sdílení řetězce
Formát definuje pro potřeby klientských aplikací vlastní příponu souboru pro případ uložení a vlastní MIME type.
MIME-type: application/x-shortinvoicedescriptor
Přípona souboru: *.sind
Integrace s QR Platbou
Příklady
Stáhněte si kompletní popis formátu standardu QR Faktura [PDF, 639 kB].