QR Faktura

Úvod

Na tiskové konferenci dne 14. 6. 2016, pořádané Komorou daňových poradců ve spolupráci s Finanční správou, byl představen nový standard, jehož cílem je zjednodušení přenosu základních účetních dat z faktury přímo do účetních systémů. Při přípravě standardu byla využita plná integrace s již zavedenou a rozšířenou QR Platbou. Pro jeho používání není třeba žádná registrace, ani žádná licence. Tento standard zjednoduší život podnikatelům, daňovým poradcům a účetním.  V konečném důsledku se sníží počet chyb v daňových formulářích, například kontrolním hlášení. 

 

Načítání účetních dat z faktur

QR Faktura umožňuje automatické vyplnění některých účetních údajů při zpracování faktur.

Účetní data z faktur můžete snadno načíst do účetního programu naskenováním QR kódu na faktuře. Sníží se tím možnost chybného zadání důležitých údajů, jako je číslo faktury, datum splatnosti, DUZP, základ daně a daň, datum vystavení a další. Díky integraci s QR Platbou bude na faktuře jen jeden QR kód jak pro platební údaje, tak pro účetní data.

Ke stažení: standard formátu QR Faktura [PDF, 792 kB]

 

QR Faktura pro firmy

QR Faktura umožňuje firmám zpracovávat došlé faktury naskenováním QR kódu a tím načíst základní hlavičková účetní data z faktury přímo do účetního programu. Tím se sníží možnost chybování, což je především s ohledem na kontrolní hlášení DPH velká výhoda.

QR Faktura integrovaná

QR Faktura je integrovaná s již zavedenou a rozšířenou QR Platbou a to tak, že na faktuře je jen jeden QR kód. Ten obsahuje jak platební údaje pro zadání bankovního platebního příkazu, tak účetní údaje pro účetní programy. Obě funkce v jednom QR kódu.

QR Faktura zdarma

QR Faktura není komerční produkt. QR Faktura je standard, který jsme připravili a aby se mohl šířit a rozvíjet, musí být přístupný veřejnosti pro použití, komentáře a recenze. Není potřeba žádná registrace, ani žádná licence.

 

Popis formátu

QR Faktura používá pro reprezentaci účetních dat z faktury formát Short Invoice Descriptor (SIND) pro snadné načtení. Aby jej mohli implementovat tvůrci SW pro vystavování faktur, ostatní výstavci faktur a například e-shopy.

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í
1 = RPDP
2 = smíšený

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
1 = faktura obsahuje 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/

 

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 - východiska pro integraci s QR platbou

1. Na faktuře bude pouze jeden QR kód, nikoliv více:

  • Jeden QR kód splní dva účely – např. pro malé firmy umožní jak zaúčtování faktury, tak rovnou zadání platby přímo na mobilním telefonu, apod.
  • Uživatelé nebudou zmateni ze dvou QR kódů, tápajíc v nejistotě, který z nich mají na co použít.
  • Není potřeba řešit další fyzický prostor na faktuře.

2. Integrace nesmí mít dopad do standardu QR Platby, musí využívat její současné možnosti:

  • Není nutné vytvářet novou verzi standardu QR Platby.
  • Snadné rozšíření QR Faktury.
     

Princip integrace
Řetězec QR Faktury je včleněn do řetězce QR Platby takto:

  1. Žádná hodnota řetězce QR Faktury nesmí obsahovat znak ‘*‘, nebo skupinu znaků ‘%2A’.
  2. Klíče, které jsou shodné v obou formátech (jak QR Faktura, tak QR Platba), jsou z řetězce QR Faktury vyjmuty a vloženy do řetězce QR Platby. Zvláštním případem je klíč „VS“ (QR Faktura), který se změní na „X-VS“ (QR Platba). Speciálním případem je klíč MSG, jak je popsáno v bodě 5.
  3. Zbytek řetězce QR Faktury je URL-kódován tak, že všechny znaky ‘*’ jsou nahrazeny skupinou znaků ‘%2A’, dle standardu QR Platby.
  4. Takto URL-kódovaný řetězec QR Faktury je pak do řetězce QR Platby vložen jako hodnota klíče „X-INV“.
  5. Klíč MSG se může vyskytovat jak v řetězci QR Platby (Zpráva pro příjemce), tak zároveň URL-kódovaný v řetězci QR Faktury (Textový popis předmětu fakturace).
  6. Takto vytvořený výsledný řetězec QR Platby musí být validní dle standardu QR Platby:
    - Musí obsahovat validní klíč „ACC“ (číslo účtu), který je v řetězci povinný.
    - Celková částka (klíč AM) musí být kladná a ne delší než 10 znaků.

Z takto sestaveného řetězce je vygenerován QR kód, který je validní dle standardu QR Platby a navíc obsahuje hlavičkové účetní údaje z faktury. Takový QR kód bude označen jako „QR Platba+F“.

Pouze tehdy, kdy nebude možné dodržet standard QR Platby, bude na faktuře uveden QR kód vygenerovaný jen z řetězce QR Faktury bez jakékoliv integrace s QR Platbou. Takový QR kód bude na faktuře označen jako „QR Faktura“.

Shodné klíče

ACC

číslo účtu

AM

částka

CC

měna

DT

datum splatnosti

Transformované klíče

QR Faktura QR Platba

VS

X-VS

Klíče, které mohou být obsaženy jak v řetězci QR Platby, tak v řetězci QR Faktury

Klíč QR Faktura QR Platba

MSG

Textový popis předmětu fakturace

Zpráva pro příjemce

X-URL

Údaje pro získání účetních údajů (případně faktury) ve strukturovaném formátu z on-line uložiště

URL, které je možno využít pro vlastní potřebu

CRC32

Kontrolní součet řetězce QR Faktury

Kontrolní součet řetězce QR Platby, který obsahuje integrovaný řetězec QR Faktury

Příklad integrace

Faktura obsahuje tyto položky:

ID:

1963/160/2015*

DD:

20161201*

TP:

0*

AM:

9535.00*

VS:

1234567890*

VII:

CZ60194383*

VIR:

CZ123456789*

INI:

60194383*

DUZP:

20161201*

DT:

20161217*

TB0:

1000.00*

T0:

210.00*

TB1:

6500.00*

T1:

975.00*

NTB:

850.00*

CC:

CZK*

ACC:

CZ3103000000270016060243*

Řetězec QR Faktury:

SID*1.0*ID:1963/160/2015*DD:20161201*TP:0*AM:9535.00*VS:1234567890*
VII:CZ60194383*VIR:CZ12345678*INI:60194383*DUZP:20161201*DT:20161217*TB0:1000.00*
T0:210.00*TB1:6500.00*T1:975.00*NTB:850.00*CC:CZK*ACC:CZ3103000000270016060243*

Červeně jsou označeny položky, které jsou shodné s QR Platbou.
Tyto položky budou tvořit základ řetězce QR Platby:

SPD*1.0*AM:9535.00*X-VS:1234567890*DT:20161217*CC:CZK*ACC:CZ3103000000270016060243*

Zeleně jsou uvedeny prvky QR platby.
Zbytek řetězce QR Faktury bude URL-kódován takto:

SID%2A1.0%2AID:1963/160/2015%2ADD:20161201%2ATP:0%2AVII:CZ60194383%2AVIR:CZ12345678%2AINI:60194383%2A
DUZP:20161201%2ATB0:1000.00%2AT0:210.00%2ATB1:6500.00%2AT1:975.00%2ANTB:850.00

Modře jsou označeny transformované hvězdičky z původního řetězce QR Faktury. Tento řetězec bude uveden jako hodnota klíče X-INV.
Takže výsledný řetězec QR Platby s integrovanou QR Fakturou bude vypadat následovně:

SPD*1.0*AM:9535.00*X-VS:1234567890*DT:20161217*CC:CZK*ACC:CZ3103000000270016060243*X-INV: SID%2A1.0%2AID:1963/160/2015%2ADD:20161201%2ATP:0%2AVII:CZ60194383%2AVIR:CZ12345678%2AINI:60194383%2A
DUZP:20161201%2ATB0:1000.00%2AT0:210.00%2ATB1:6500.00%2AT1:975.00%2ANTB:850.00*

Zeleně jsou uvedeny prvky QR Platby, červeně jsou uvedeny položky z původního řetězce QR Faktury a modře jsou označené transformované hvězdičky. Takto sestavený řetězec je validní podle standardu QR Platby – poslouží stejně dobře pro platební i účetní účely.

 

 

Příklady

Příklad 1 – obyčejná faktura, nejčastější případ

Faktura obsahuje tyto údaje:

ID:

012150672*

DD:

20151201*

TP:

0*

AM:

495.00*

VS:

012150672*

VII:

CZ60194383*

INI:

60194383*

VIR:

CZ12345678*

DUZP:

20151201*

DT:

20151217*

TB0:

409.09*

T0:

85.91*

CC:

CZK*

ACC:

CZ3103000000270016060243*

Řetězec QR Faktury:

SID*1.0*ID:012150672*DD:20151201*TP:0*AM:495.00*VS:012150672*VII:CZ60194383*INI:60194383*
VIR:CZ12345678*DUZP:20151201*DT:20151217*TB0:409.09*T0:85.91*CC:CZK*ACC:CZ3103000000270016060243*

Řetězec integrovaný s QR Platbou:

SPD*1.0*CC:CZK*ACC:CZ3103000000270016060243*AM:495.00*DT:20151217*X-VS:012150672*X-INV: SID%2A1.0%2AID:012150672%2ADD:20151201%2ATP:0%2AVII:CZ60194383%2AINI:60194383%2A
VIR:CZ12345678%2ADUZP:20151201%2ATB0:409.09%2AT0:85.91*

Příklad 2 – maximální varianta (příklad z reálných dat)

Faktura obsahuje tyto údaje:

ID:

2001401154*

DD:

20140404*

TP:

0*

AM:

61189.00*

MSG:

Dodávka vybavení interiéru hotelu Kamzík*

VS:

3310001054*

VII:

CZ25568736*

VIR:

CZ25568736*

INI:

25568736*

INR:

25568736*

DUZP:

20140404*

DT:

20180412*

TB0:

26492.70*

T0:

5563.47*

TB1:

25333.10*

T1:

3799.97*

NTB:

-0.24*

CC:

CZK*

TD:

9*

ACC:

CZ9701000000007098760287+KOMBCZPP*

X-SW:

MoneyS5-1.7.1

Řetězec:

SID*1.0*ID:2001401154*DD:20140404*TP:0*AM:61189.00*MSG: Dodávka vybavení interiéru hotelu Kamzík*VS:3310001054*VII:CZ25568736*INI:25568736*INR:25568736*VIR:CZ25568736*DUZP:20140404*DT:20140412*
TB0:26492.70*T0:5563.47*TB1:25333.10*T1:3799.97*NTB:-0.24*CC:CZK*TD:9*SA:0*
ACC:CZ9701000000007098760287+KOMBCZPP*X-SW:MoneyS5-1.7.1*

Řetězec integrovaný s QR Platbou:

SPD*1.0*AM:61189.00*X-VS:3310001054*DT:20180412*CC:CZK*ACC:CZ9701000000007098760287+KOMBCZPP*X-INV:SID%2A1.0%2AID:2001401154%2ADD:20140404%2ATP:0%2AVII:CZ25568736%2AINI:25568736%2AINR:25568736
%2AVIR:CZ25568736%2ADUZP:20140404%2A%2ATB0:26492.70%2AT0:5563.47%2ATB1:25333.10%2AT1:3799.97
%2ANTB:-0.24%2ATD:9%2ASA:0%2AX-SW:MoneyS5-1.7.1%2AMSG:Dodávka vybavení interiéru hotelu Kamzík*

RESTful API

​Cílem je specifikovat, jak je na straně serveru řešené API pro práci s formátem Short Invoice Descriptor (SIND). 
Primárním cílem RESTful API je postkytnout prostředky pro snadnou integraci formátu např. do e-shopu nebo do online systémů pro správu faktur. Sekundárním cílem je pak poskytnout referenční implementaci formátu SIND.
Umístění API
API je dostupné na základní adrese: https://api.qrfgen.cz/generator/
 
Jsou k dispozici tyto zdroje:
  • Generování řetězce SIND
  • Generování souboru SIND
  • Generování QR kódu SIND
Příklad – generování QR kódu pro fakturu: 
 
Formát specifikace API

Ke zdroji je vždy uveden:

  • Název funkčnosti (př.: “Generování řetězce SIND”, …).

  • Adresa REST zdroje ve formátu ${API_PATH}/${VERSION}/${RESOURCE} – kde:

    • ${API_PATH} označuje tzv. “base URL”, čili to, kde je API dostupné – v dokumentaci se nesubstituuje

    • ${VERSION} označuje verzi API, v dokumentaci se substituuje za aktuální verzi API

    • ${RESOURCE} označuje název konkrétního zdroje, v dokumentaci se substituuje za název zdroje

  • Parametry dotazu jsou zachyceny v tabulce (“název”, “typ”, “popis”), povinné parametry jsou zobrazeny tučně, nepovinné běžnou tloušťkou písma.

  • HTTP metoda, která daný scénář realizuje (jedna z hodnot GET, POST, PUT či DELETE).

  • Popis odpovědi, vč. popisu stavových kódů HTTP protokolu, a to jak v pozitivním (vše proběhlo v pořádku), tak v negativním (došlo k chybě) případě.

 
Obecné zásady API

Obecné zásady, kterými se API řídí, jsou následující:

  • API je verzované, aby bylo možno zajistit kompatibilitu s různými verzemi klientů.

  • API je postavené na filosofii REST, implementovanou nad protokolem HTTP (čili jedná se o tzv. RESTful API).

  • Server důsledně dbá na vracení stavových kódů HTTP protokolu, aby bylo možno v případě negativní odpovědi serveru (při chybě) HTTP tento kód okamžitě interpretovat, a např. přerušit připojení, a šetřila se tak přenesená data.

  • Veškerá komunikace bude probíhat po zabezpečeném kanále (HTTPS).

Mechanismus předávání chybových odpovědí

Komunikační protokol je navržen tak, aby bylo možno použít HTTP stavový kód jako indikátor úspěchu či neúspěchu dotazu na server. Úspěch je tedy indikován kódy 20x, neúspěch z důvodu klientské chyby kódy 40x a neúspěch z důvodu serverové chyby kódy 50x.

V případě neúspěchu libovolného typu je vrácena odpověď s tělem s MIME type application/json v následujícím formátu:

Specifické chyby jsou indikovány následujícími HTTP kódy:

  • 418 – Zastaralá verze klienta. Je nutné aktualizovat klientskou aplikaci.

  • 503 – Služba není dostupná. Vrácen v případě provádění údržby serveru. Klientská aplikace upozorní uživatele, že služba bude dostupná později.

Popis datových typů

Rozhraní používá datové typy definované ve specifikaci QR Faktury.

 
Popis zdrojů API

Generování řetězce SIND

  • URL:  ${SERVER}/generator/string

  • Metoda: GET

  • Parametry:

Název

Typ

Popis

qrplatba

BOOLEAN

Zapíná režim integrace QR Faktury s QR Platbou. Možné hodnoty: 0 nebo 1. Výchozí hodnota: 0.

  • Hodnota qrplatba=1 – integrace QR Faktury s QR Platbou

  • Hodnota qrplatba=0 (nebo bez uvedení parametru) – samotná QR Faktura

compress

BOOLEAN

Zapíná kompaktní formát bez diakritiky. Možné hodnoty: 0 nebo 1. Výchozí hodnota: 0.

  • Hodnota compress=1 – diakritika bude odstraněna

  • Hodnota compress=0 (nebo bez uvedení parametru) – diakritika nebude odstraněna

parametry QR Faktury dle specifikace

dle specifikace

Parametry dle specifikace QR Faktury, popř. QR Platby (při integraci s QR Platbou). Názvy i hodnoty parametrů musí splňovat specifikaci QR Faktury. Např:

  • ID=identfakt123

  • AM=123.12

  • VS=1234567890

  • DD=20171030

  • atd.

Odpověď v negativním případě

HTTP kód

Popis odpovědi, příklad

400 – Bad Request

Data nejsou validní, chyby jsou vráceny dle popisu chybové odpovědi.

Odpověď v pozitivním případě

HTTP kód

Popis odpovědi, příklad

200 – OK

Tělo odpovědi obsahuje validní řetězec SIND s kódováním UTF-8 a s MIME type text/plain, např.:"SPD*1.0*ACC:CZ5855000000001265098001+RZBCCZPP*AM:123.12*CC:CZK*DT:20170304*

MSG:testovací+faktura*X-VS:1234567890*X-INV:SID%2A1.0%2AID:identfakt123%2A

DD:20171030%2ATP:0%2ATD:9%2ASA:0%2AMSG:testovací+faktura%2AON:obj1%2A

INI:69274533%2AVIR:CZ7708052000%2ADPPD:20170101%2ATB0:100.00%2AT0:21.00%2AFXA:1"

 

Výstup odpovídá zapnutému nebo vypnutému režimu integrace QR Faktury s QR Platbou.

Generování souboru SIND

URL: ${SERVER}/generator/sind
Metoda: GET
Parametry:

Název

Typ

Popis

qrplatba

BOOLEAN

Zapíná režim integrace QR Faktury s QR Platbou. Možné hodnoty: 0 nebo 1. Výchozí hodnota: 0.

  • Hodnota qrplatba=1 – integrace QR Faktury s QR Platbou

  • Hodnota qrplatba=0 (nebo bez uvedení parametru) – samotná QR Faktura

compress

BOOLEAN

Zapíná kompaktní formát bez diakritiky. Možné hodnoty: 0 nebo 1. Výchozí hodnota: 0.

  • Hodnota compress=1 – diakritika bude odstraněna

  • Hodnota compress=0 (nebo bez uvedení parametru) – diakritika nebude odstraněna

parametry QR Faktury dle specifikace

dle specifikace

Parametry dle specifikace QR Faktury, popř. QR Platby (při integraci s QR Platbou). Názvy i hodnoty parametrů musí splňovat specifikaci QR Faktury. Např:

  • ID=identfakt123

  • AM=123.12

  • VS=1234567890

  • DD=20171030

  • atd.

Odpověď v negativním případě

HTTP kód

Popis odpovědi, příklad

400 – Bad Request

Data nejsou validní, chyby jsou vráceny dle popisu chybové odpovědi.

Odpověď v pozitivním případě

HTTP kód

Popis odpovědi, příklad

200 – OK

Tělo odpovědi obsahuje soubor s validním řetězcem SIND s kódováním UTF-8 a s MIME type application/shortinvoicedescriptor a příponou *.sind, např.:

"SPD*1.0*ACC:CZ5855000000001265098001+RZBCCZPP*AM:123.12*CC:CZK*DT:20170304*

MSG:testovací+faktura*X-VS:1234567890*X-INV:SID%2A1.0%2AID:identfakt123%2A

DD:20171030%2ATP:0%2ATD:9%2ASA:0%2AMSG:testovací+faktura%2AON:obj1%2A

INI:69274533%2AVIR:CZ7708052000%2ADPPD:20170101%2ATB0:100.00%2AT0:21.00%2AFXA:1"

Generování QR kódu SIND

URL: ${SERVER}/generator/image
Metoda: GET
Parametry:

Název

Typ

Popis

qrplatba

BOOLEAN

Zapíná režim integrace QR Faktury s QR Platbou. Možné hodnoty: 0 nebo 1. Výchozí hodnota: 0.

  • Hodnota qrplatba=1 – integrace QR Faktury s QR Platbou

  • Hodnota qrplatba=0 (nebo bez uvedení parametru) – samotná QR Faktura

compress

BOOLEAN

Zapíná kompaktní formát bez diakritiky. Možné hodnoty: 0 nebo 1. Výchozí hodnota: 0.

  • Hodnota compress=1 – diakritika bude odstraněna

  • Hodnota compress=0 (nebo bez uvedení parametru) – diakritika nebude odstraněna

branding

BOOLEAN

Zapíná branding QR kódu (nápis QR Faktura nebo QR Platba+F na obrázku). Možné hodnoty: 0 nebo 1. Výchozí hodnota: 1.

  • Hodnota branding=1 (nebo bez uvedení parametru) – nápis bude uveden

  • Hodnota branding=0 – nápis nebude uveden

qrpixelsize

INT

Relativní velikost jednoho pixelu (čtverce) v QR kódu. Možné hodnoty: 1 až 20. Výchozí hodnota: 4.

parametry QR Faktury dle specifikace

dle specifikace

Parametry dle specifikace QR Faktury, popř. QR Platby (při integraci s QR Platbou). Názvy i hodnoty parametrů musí splňovat specifikaci QR Faktury. Např:

  • ID=identfakt123

  • AM=123.12

  • VS=1234567890

  • DD=20171030

  • atd.

Odpověď v negativním případě

HTTP kód

Popis odpovědi, příklad

400 – Bad Request

Data nejsou validní, chyby jsou vráceny dle popisu chybové odpovědi.

Odpověď v pozitivním případě

HTTP kód

Popis odpovědi, příklad

200 – OK

Tělo odpovědi obsahuje QR kód (image/png), který obsahuje řetězec SIND, např.:

 

Tisková konference


QR Fakturu podporují

                                                                                                            

 

Tisková zpráva

AUTOMATIZACE A ZJEDNODUŠENÍ ZPRACOVÁNÍ FAKTUR POMOCÍ STANDARDU

QR FAKTURA 


Brno, 14. června 2016 – Komora daňových poradců České republiky představuje standard QR Faktura, jehož cílem je zjednodušení přenosu základních účetních dat z papírové faktury přímo do účetních systémů.

QR Faktura je standard formátu navrženého pro přenos a sdílení základních hlavičkových účetních údajů z faktur a jiných účetních, či daňových dokladů. Výhoda použití QR Faktury spočívá především v automatizovaném přenosu údajů z faktur do účetních systémů bez zásahu lidského faktoru. Tím se jednak zvýší komfort pro zpracovatele dokladů, ale také se sníží počet špatně zadaných údajů a náklady na jejich dohledávání, případně vymáhání. Uživatel, vybavený čtečkou QR kódu a účetním programem s podporou QR Faktury, místo ručního typování údajů naskenuje z papírové faktury QR kód a tím se mu předvyplní příslušná pole účetního záznamu v účetním programu. Uživatel může údaje zkontrolovat a případně opravit. Tím nejen roste uživatelská spokojenost, ale také klesá chybovost zadání. Podle prezidentky Komory Petry Pospíšilové nabývá automatizace přenosu dat faktur na důležitosti zejména v souvislosti s kontrolními hlášeními, kdy „využití QR Faktury významně přispěje k tomu, aby odběratel reportoval do kontrolního hlášení stejné údaje jako jeho dodavatel. Dojde tak k podstatnému snížení počtu vad kontrolního hlášení jen z důvodu nepřesného přepisu dat a také snížení nákladů na vydávání výzev oběma stranám obchodu k odstranění těchto vad.

Při přípravě standardu QR Faktury byly plně využity možnosti integrace s již zavedenou a rozšířenou QR Platbou. Na faktuře tak bude k dispozici stále jen jeden QR kód, který obsahuje jak platební údaje pro zadání bankovního platebního příkazu, tak účetní údaje pro účetní programy.

Softwarové firmy, nabízející ekonomické a účetní programy, již nyní pracují na zapracování QR Faktury do svých produktů, aby uživatelé, zejména zpracovatelé papírových faktur na straně daňových poradců, účetních nebo podnikatelských subjektů, mohli částečně zautomatizovat jejich zpracování. Výhodou je především úspora času a snížení chybovosti při ručním zpracování. 

Martin Janeček, generální ředitel GFŘ o projektu říká: „Obecně tento projekt vnímáme jako určitou podporu pro zajištění nižší míry chybovosti při pořizování přijatých daňových a účetních dokladů do účetních systémů.“

Podrobnosti o projektu jsou k dispozici na www.qr-faktura.cz, kde jsou uvedeny i subjekty z podnikatelské, státní i veřejné správy, které QR Fakturu podporují a jejichž počet stále narůstá. QR Faktura není komerční produkt. Pro používání není třeba žádná registrace, ani žádná licence.

Komora daňových poradců ČR tak prostřednictvím QR Faktury přináší nástroj, díky němuž se zjednoduší život podnikatelům, daňovým poradcům a účetním.“ říká tajemník Komory Radek Neužil.


Fotogalerie

        


Prezentace


Název souboru Velikost
Prezentace Martin Cígler 1MB Stáhnout
Prezentace Ing. Tomáš Hajdušek 890KB Stáhnout
Prezentace Ing. Petra Pospíšilová 886KB Stáhnout
Tisková zpráva 201KB Stáhnout
QR Faktura standard_final.pdf 792KB Stáhnout