JEDNO API. DVA PLATOBNÉ ŠTANDARDY.

QR platby.
Slovensko aj Česko.

Pridajte platobný QR kód na faktúru alebo do aplikácie. Vyberte štandard, odošlite platobné údaje a získajte hotový obrázok.

Začať s API

Nová kapitola projektu QRGenerator.sk.

GET api.qrfactory.dev
SK/sk/by-square/pay.png
CZ/cz/qr-platba.png

Platobné údaje v URL.
QR obrázok v odpovedi.

PNG / JPEG / BASE64 / STRING

VYBERTE SI PLATOBNÝ ŠTANDARD

Dve krajiny. Vlastný formát pre každú.

SKSlovensko · EUR

PAY by square

Slovenský platobný formát s možnosťou rámčeka, loga pod kódom alebo čistého QR obrázka.

Živá ukážka slovenského PAY by square kódu na 10 EUR
10,00 EUR · živá ukážka API
O štandarde PAY by square ↗
CZČesko · CZK

QR Platba

Český platobný formát SPAYD. Predvolene s rámčekom a označením „QR platba“, aby zákazník rozpoznal platobný kód.

Živá ukážka českej QR Platby na 10 CZK
10,00 CZK · živá ukážka API
Validátor formátu SPAYD ↗

Ukážky obsahujú testovacie platobné údaje. Platbu neodosielajte. Prefixy sk a cz označujú platobný štandard.

DOKUMENTÁCIA API

Začnite jednou požiadavkou.

Všetky výstupy používajú metódu GET na doméne https://api.qrfactory.dev. Parametre posielajte v URL; textové hodnoty zakódujte pre použitie v URL.

Slovensko

https://api.qrfactory.dev/sk/by-square/pay.png?iban=SK8975000000000012345671&amount=10&currency=EUR
Otvoriť QR obrázok ↗

Česko

https://api.qrfactory.dev/cz/qr-platba.png?iban=CZ6508000000192000145399&amount=10&currency=CZK
Otvoriť QR obrázok ↗

Výstupné formáty

VýstupSlovenský PAY by squareČeská QR Platba
PNG/sk/by-square/pay.png/cz/qr-platba.png
BMP/sk/by-square/pay.bmp/cz/qr-platba.bmp
JPEG/sk/by-square/pay.jpg/cz/qr-platba.jpg
Base64 JSON/sk/by-square/base64?format=png/cz/qr-platba/base64?format=png
Platobný reťazec JSON/sk/by-square/string/cz/qr-platba/string
Veľkosť podľa modulu QR/sk/by-square/raw.png/cz/qr-platba/raw.png

Ku každej ceste pridajte platobné parametre. Pri raw obrázku určuje parameter unit_size počet pixelov na jeden modul QR.

Platobné údaje

ParameterVýznam
ibanIBAN príjemcu platby. SK: povinný. CZ: zadajte iban alebo bank_account; parameter iban prijíma iba IBAN.
bank_account (CZ)IBAN alebo české číslo účtu vo formáte [predčíslie-]číslo/kód banky, napríklad 19-2000145399/0800. Domáci formát sa automaticky prevedie na IBAN.
amountSuma s desatinnou bodkou, napríklad 120.50. SK: predvolene 0. CZ: možno vynechať a doplniť pri platení; pri zadanej sume 0 až 9 999 999,99 a najviac dve desatinné miesta.
currencyTrojpísmenový kód meny. Predvolená mena je EUR pre SK a CZK pre CZ.
due_dateVoliteľný dátum splatnosti vo formáte YYYY-MM-DD.
vs, ss, csVoliteľný variabilný, špecifický a konštantný symbol. CZ: každý 1 až 10 číslic.
payment_noteVoliteľná poznámka k platbe. CZ: najviac 60 znakov; limit sa kontroluje aj po zakódovaní špeciálnych znakov vo formáte SPAYD.
beneficiary_name, bicVoliteľné meno príjemcu a identifikačný kód banky. CZ: meno najviac 35 znakov aj po zakódovaní do SPAYD; BIC má 8 alebo 11 znakov.

Slovenský obrázok

size: 64, 128, 256 alebo 512. mode: full, bottom alebo none. Vzhľad upravujú aj transparent, border_zone, color a bgcolor.

Český obrázok

mode=full (predvolene) pridá rámček a označenie „QR platba“. mode=none vráti čistý QR. size: 128 až 1024, predvolene 256, zahŕňa celé plátno s rámčekom. Skutočný rozmer sa zaokrúhli na celé pixely na modul QR. Neplatné údaje predvolene vrátia prázdny 1 × 1 px obrázok; pre vysvetlenie chyby použite on_invalid=error. Podporu iných mien než CZK overte v cieľovej banke.

QR KÓD NA SKUTOČNEJ FAKTÚRE

Veľkosť, okraje a čitateľnosť.

Rovnaká platba môže vyzerať odlišne podľa veľkosti obrázka a spôsobu vloženia do dokumentu. Overujte výslednú faktúru, nielen samostatný QR súbor.

Zmenšovať je zvyčajne lepšie než zväčšovať

Pre väčšie zobrazenie vytvorte dostatočne veľký PNG a podľa potreby ho zmenšite. Napríklad pre priestor približne 400 px začnite s obrázkom 512 px. Zväčšenie malého 128 px obrázka môže rozmazať hranice modulov. Aj zmenšovanie môže pri nevhodnom pomere zhoršiť čitateľnosť; ideálne zachovajte celé pixely na modul.

QR kód vygenerovaný v šírke 512 pixelov a zmenšený na 256 pixelov
512 → 256 px
Zmenšenie väčšieho obrázka
QR kód vygenerovaný v šírke 128 pixelov a zväčšený na 256 pixelov
128 → 256 px
Zväčšenie menšieho obrázka

Oba obrázky zobrazujú rovnaké testovacie údaje v rovnakej šírke 256 CSS px, pokiaľ to šírka obrazovky umožňuje. Spôsob vyhladzovania závisí od prehliadača a displeja.

Web a PDF

Nemeňte pomer strán; nastavte šírku a výšku nechajte automatickú. SK obrázok s rámčekom alebo logom môže byť vyšší než širší. PNG zachováva ostré hrany bez stratovej kompresie JPEG.

<img src="URL_VÁŠHO_QR_OBRÁZKA"
     width="256"
     style="height: auto"
     alt="QR kód pre úhradu faktúry">

Do PDF vložte originálny súbor. Po exporte skontrolujte QR v reálnej veľkosti na displeji aj na vytlačenej faktúre.

Ochranný okraj a kontrast

Okolo QR ponechajte čistý svetlý priestor bez textu a grafiky. Pri SK použite border_zone=true, ak okraj nezabezpečuje samotný dokument. CZ výstup obsahuje ochranný okraj široký štyri moduly na každej strane.

Najistejšia východisková kombinácia je tmavý QR kód na bielom pozadí. Priehľadnosť neznamená, že bude kód čitateľný na ľubovoľnom pozadí. JPEG priehľadnosť nepodporuje.

Všetky možnosti vykresľovania

ParameterSlovenský PAY by squareČeská QR Platba
size64, 128, 256, 512; predvolene 128. Malé rozmery nemusia stačiť pre dlhšie platobné údaje.Celé číslo 128–1024, predvolene 256. Ide o maximálny rozmer celého štvorcového obrázka vrátane rámčeka; výsledok sa prispôsobí celým pixelom na modul. Ak nevychádzajú aspoň 2 px na modul, uplatní sa on_invalid.
modefull (predvolene): rámček; bottom: logo pod kódom; none: bez brandingu.full (predvolene): rámček a označenie „QR platba“; none: čistý QR. Platí aj pre Base64. bottom nie je podporované.
transparentPredvolene true. Priehľadné alebo biele plátno okolo kódu pri full/bottom. Pri none nemá účinok; samotné pozadie modulov určuje bgcolor.Biele pozadie; parameter sa nepoužíva.
border_zonePredvolene false. Zapína ochranný okraj QR.Ochranný okraj je vždy súčasťou obrázka.
color / bgcolorFarba modulov / pozadia, šesť hexadecimálnych znakov bez #. Predvolene 000000 / ffffff.Čierna na bielej; parametre sa nepoužívajú.
unit_sizePre raw.*, predvolene 5 px na modul. Rozmer potom určuje množstvo dát, nie size. Raw nemá rámček ani logo.Pre raw.*: 2–16, predvolene 5 px na modul. Vždy bez rámčeka, aj pri mode=full.
normalizePredvolene true. Zjednocuje Unicode text (NFC), zachováva diakritiku a nahrádza tabulátory či nové riadky medzerami. False túto úpravu vypne.Nepoužíva sa. Text sa kóduje podľa SPAYD.
beneficiary_address1 / beneficiary_address2Voliteľné riadky adresy príjemcu.Nepoužívajú sa.

Base64 používa rovnaký render ako obrazový výstup. Parameter unit_size patrí k raw výstupu; v Base64 používajte size.

Český účet: IBAN aj domáce číslo

Parameter iban prijíma výhradne IBAN. Do bank_account môžete vložiť IBAN alebo české číslo účtu s kódom banky. Platí pre obrázky, raw, Base64 aj platobný reťazec. QR vždy obsahuje výsledný IBAN.

GET /cz/qr-platba.png?bank_account=19-2000145399%2F0800&amount=10
GET /cz/qr-platba.png?bank_account=1265098001%2F5500&amount=10
GET /cz/qr-platba.png?bank_account=CZ6508000000192000145399&amount=10

Medzery sa odstránia, malé písmená IBANu sa prevedú na veľké. Domáci formát potrebuje štvormiestny kód banky; predčíslie má najviac šesť číslic a číslo účtu najviac desať. Predčíslie možno vynechať. API kontroluje kontrolné súčty a prevádza účet lokálne, bez externých služieb. Napríklad 19-2000145399/0800 prevedie na CZ6508000000192000145399.

Zadajte aspoň jeden z parametrov. Ak pošlete oba, musia byť platné a označovať rovnaký účet. Neplatný iban sa nenahradí hodnotou bank_account. Chýbajúci kód banky sa neodhaduje. Kontrola nepotvrdzuje existenciu ani vlastníctvo účtu. Chyby sa riadia nastavením on_invalid; pri ladení použite on_invalid=error. Slovenské API zostáva bez zmeny.

Česká QR Platba: s rámčekom alebo bez

Obrazové a Base64 výstupy predvolene používajú mode=full. Rámček a označenie vychádzajú z oficiálneho grafického manuálu QR Platba. Štvormodulová biela tichá zóna zostáva zachovaná. Ak potrebujete pôvodný čistý obrázok, pridajte mode=none. Platobné údaje sa nemenia.

GET /cz/qr-platba.png?iban=CZ6508000000192000145399&amount=10&mode=full
GET /cz/qr-platba.png?iban=CZ6508000000192000145399&amount=10&mode=none
GET /cz/qr-platba/raw.png?iban=CZ6508000000192000145399&amount=10&unit_size=5

Rovnaké možnosti platia pre PNG, JPEG aj BMP. Pri rovnakej hodnote size zaberie rámček časť plátna, takže samotný QR môže byť menší. Pre dlhšie údaje zvýšte size; ak nevychádzajú aspoň dva pixely na modul, uplatní sa on_invalid. raw zostáva bez rámčeka.

Neplatné údaje a prázdny obrázok (CZ)

České obrazové endpointy vrátane raw predvolene používajú on_invalid=empty. Pri chybe validácie vrátia HTTP 200 a platný obrázok 1 × 1 px: priehľadný PNG alebo biely JPEG/BMP. Faktúra tak nemusí zobrazovať ikonu poškodeného obrázka. Odpoveď sa neukladá do cache (Cache-Control: no-store). HTTP 200 preto samo osebe nepotvrdzuje platnosť platobných údajov.

Pri ladení použite on_invalid=error: API vráti HTTP 400 s vysvetlením. Túto možnosť používa aj galéria. Neznáma hodnota on_invalid alebo nepodporovaný formát vždy vrátia 400. Neočakávané chyby servera zostávajú HTTP 500. Base64 a platobný reťazec naďalej vracajú chyby validácie; slovenské endpointy sa nemenia.

GET /cz/qr-platba.png?iban=INVALID
GET /cz/qr-platba.png?iban=INVALID&on_invalid=error

V editore faktúry odporúčame vysvetliť chýbajúci QR kód, napríklad upozornením na neplatný IBAN. Prázdny obrázok je určený pre čistý výstup faktúry, nie ako náhrada validácie údajov vo vašej aplikácii.

Base64 a platobný reťazec

Base64 endpoint vracia JSON s mime, data (Base64 obrázok) a dimensions. Do HTML ho vložíte ako data:image/png;base64,…; pri inom formáte použite prijatú MIME hodnotu. Pole dimensions obsahuje údaje o moduloch. Pri CZ označuje size rozmer celého štvorcového plátna, qr_width šírku QR vrátane tichej zóny a offset jeho odsadenie od horného a ľavého okraja. Pri SK rámčeku sa konečné rozmery obrázka môžu líšiť od rozmerov samotného QR.

GET /sk/by-square/base64?format=png&iban=SK8975000000000012345671&amount=10&size=256
GET /cz/qr-platba/base64?format=png&iban=CZ6508000000192000145399&amount=10&size=256

Endpoint string vracia JSON s poľom data, ktoré obsahuje platobný reťazec pre vlastné vykresľovanie QR. Nejde o Base64 obrázok.

GET /sk/by-square/string?iban=SK8975000000000012345671&amount=10
GET /cz/qr-platba/string?iban=CZ6508000000192000145399&amount=10

Overenie pred nasadením

  1. Skontrolujte IBAN, menu, sumu, symboly a dátum splatnosti po naskenovaní.
  2. Použite krátke aj dlhšie poznámky. Viac údajov znamená hustejší QR kód a môže vyžadovať väčší obrázok.
  3. Otestujte finálne PDF alebo výtlačok v bankových aplikáciách, ktoré používajú vaši zákazníci.
  4. Český platobný reťazec skontrolujte aj v oficiálnom validátore SPAYD. Validný reťazec sám osebe nepotvrdzuje čitateľnosť obrázka.

Otvoriť galériu všetkých variantov →

Z QRGENERATOR.SK NA QRFACTORY.DEV

Nové integrácie
majú novú adresu.

QRGenerator.sk zostáva dostupný ako pôvodná, zastaraná verzia. Existujúce adresy API sa nemenia. Pre nové integrácie použite QRFactory.dev a príslušný platobný štandard.

Pri prechode zo slovenského API nahraďte api.qrgenerator.sk/by-square/pay/qr.png adresou api.qrfactory.dev/sk/by-square/pay.png. Výsledné QR kódy pred nasadením overte vo svojich faktúrach a bankových aplikáciách.

Dokumentácia pôvodného API ↗