IPS QR kod na fakturi: kako radi i kako se pravilno pravi

Klijent otvori PDF fakture, prepisuje račun i poziv na broj u m-banking aplikaciju, pogreši cifru i odloži plaćanje za sutra. IPS QR kod rešava baš taj korak — klijent skenira kod iz m-banking aplikacije, polja naloga se popune sama, a on ih samo proveri i potvrdi plaćanje. Ako fakturišeš domaćim kupcima u dinarima, ovo je jednostavan način da im olakšaš uplatu.
Šta je IPS QR kod i zašto radi baš u Srbiji
IPS QR kod je standardizovani dvodimenzionalni kod čiji format propisuje Narodna banka Srbije za IPS sistem instant plaćanja. U jednom kvadratu su podaci potrebni za uplatu: račun i naziv primaoca, valuta i iznos, šifra plaćanja, a po potrebi i svrha i poziv na broj. Kada klijent skenira kod opcijom "IPS skeniraj" u svojoj m-banking aplikaciji, ti podaci se automatski učitaju u nalog za plaćanje.
Ključna stvar je što je IPS sistem instant — po NBS, prenos novca traje nekoliko sekundi, u bilo koje doba dana, svakog dana u godini. Nema više "poslao sam u petak popodne, videćeš u ponedeljak".
Za tebe kao izdavaoca fakture korist je dvostruka: manje grešaka pri uplati (nema ručnog prepisivanja računa i poziva na broj) i novac koji stiže odmah po potvrdi plaćanja. Za klijenta je plaćanje kraće — umesto prepisivanja, skenira kod i proveri podatke.
Kako izgleda struktura IPS QR koda po NBS specifikaciji
NBS je propisala tačan format podataka u kodu. Polja imaju svoje oznake i pravila, a za kod na računu (identifikacioni kod PR) ovo su najvažnija:
| Oznaka | Polje | Primer | Obavezno |
|---|---|---|---|
| K | Identifikacioni kod (PR za račun) | PR | Da |
| V | Verzija | 01 | Da |
| C | Znakovni skup (1 = UTF-8) | 1 | Da |
| R | Račun primaoca (tačno 18 cifara, bez crtica i razmaka) | [18 cifara računa] | Da |
| N | Naziv primaoca (do 70 znakova, može i adresa) | Firma DOO Beograd | Da |
| I | Valuta i iznos | RSD12345,67 | Da |
| P | Podaci o platiocu | Kupac DOO | Ne |
| SF | Šifra plaćanja (tri cifre) | 221 | Da |
| S | Svrha uplate (do 35 znakova) | Placanje po fakturi 2026-0042 | Ne |
| RO | Model i poziv na broj odobrenja | 002026-0042 | Ne |
Iznos se piše kao u NBS primeru: oznaka RSD, odmah iza nje iznos sa decimalnim zarezom, bez razmaka i bez tačke za hiljade (RSD12345,67). Šifra plaćanja ima tri cifre — prva označava oblik plaćanja (2 je bezgotovinsko), a druge dve osnov plaćanja iz NBS šifarnika; za promet robe i usluga to su 221 (finalna potrošnja) i 220 (međufazna potrošnja).U polju RO prve dve cifre su model (npr. 97) ili 00 kada poziv na broj nije po modelu. Za model 97 poziv na broj mora imati ispravan kontrolni broj i piše se bez crtice, a bez modela crtica je dozvoljena samo između grupa cifara (npr. 002026-0042). Polja se odvajaju znakom |, prazna opciona polja se izostavljaju, a specijalni znakovi moraju biti sa NBS liste dozvoljenih.
Za kod na štampanom računu NBS preporučuje širinu i visinu od 2,5 do 3,3 cm i nivo korekcije grešaka M ili L, a iznad, pored ili ispod koda stoji oznaka "NBS IPS QR". Manji kod ume da zada muke starijim telefonima i lošijim štampačima.
Kako se generiše IPS QR kod u praksi
Postoje tri načina, i svaki ima svoje prednosti i mane.
Ručno preko NBS generatora. Narodna banka Srbije na sajtu IPS sistema ima generator i validator NBS IPS QR koda: uneseš polja i dobiješ sliku koda, a validatorom proveriš kod koji već imaš. Za svaku fakturu ponovo unosiš podatke, kopiraš sliku i lepiš je u dokument. Za nekoliko faktura mesečno to je dovoljno; za mnogo faktura postaje zamorno.
Preko biblioteke u kodu. Ako sam praviš fakture, postoje open-source biblioteke (Python qrcode, JavaScript qrcode.js i slično) koje generišu QR kod iz stringa. Ti napraviš string po NBS formatu, biblioteka nacrta kod. Fleksibilno, ali moraš da vodiš računa o kontrolnim brojevima, dozvoljenim znakovima i validaciji. NBS nudi i API generatora i validatora za automatsku izradu ili proveru većeg broja kodova. Za one koji vole da programiraju.
Kroz softver za fakturisanje. Mnogi programi za fakturisanje imaju ugrađeno generisanje IPS QR koda — uneseš račun firme jednom i kod se pravi uz svaku fakturu. Tu najmanje razmišljaš, ali proveri da alat prati važeću NBS specifikaciju: kod koji izgleda kao IPS, a nema sva obavezna polja (na primer šifru plaćanja), NBS validator odbija. Sadržaj koda iz bilo kog alata možeš da proveriš validatorom.
Ako ti treba obrazac fakture sa svim poljima na svom mestu, pogledaj obrazac fakture (PDF, Word ili Excel; za preuzimanje ostavljaš samo mejl).
Kome IPS QR kod najviše pomaže
Paušalac sa nekoliko stalnih klijenata. Klijent ne prepisuje 18 cifara računa i poziv na broj, pa je manje pogrešnih uplata i manje uplata koje moraš da tražiš po izvodu.
Firma sa mnogo faktura mesečno. Kad svaka faktura ima tačan poziv na broj u kodu, uplate se lakše povezuju sa fakturama, a knjigovodstvo ređe traži ko je šta platio.
Frilenser sa domaćim i stranim klijentima. IPS QR kod je za plaćanja u dinarima, pa pomaže kod domaćih klijenata. Strani klijenti plaćaju na devizni račun, i za njih kod ne važi.
U sva tri slučaja QR kod ne primorava klijenta ni na šta — samo mu daje lakši način. Ko hoće da popuni nalog ručno, plati kako je navikao; ko skenira, ne prepisuje ništa.
Česte greške koje uništavaju QR kod (i kako ih izbeći)
Dešava se da je QR kod na fakturi prisutan, ali ne radi. Najčešći uzroci:
Pogrešan model poziva na broj. Ako staviš model 97, poziv na broj mora imati ispravan kontrolni broj (računa se po algoritmu MOD 97) i piše se bez crtica. Ako samo upišeš broj fakture iza oznake 97, NBS validator takav kod odbija, a aplikacija banke može da prijavi grešku. Rešenje: za pozive na broj koje sam formiraš koristi oznaku 00 (bez modela), gde je crtica dozvoljena samo između grupa cifara (npr. 002026-0042), ili alat koji ispravno računa kontrolni broj za model 97.
Račun sa crticama ili razmacima. NBS format traži tačno 18 cifara u nizu: tri cifre banke, 13 cifara broja računa (kraći broj se dopunjuje nulama sa leve strane) i dve kontrolne cifre, bez crtica i razmaka. Na samoj fakturi račun možeš da prikažeš sa crticama, ali u QR kodu ide bez njih.
Iznos sa tačkom ili separatorom hiljada. NBS validator odbija i "RSD12345.67" i "RSD12.345,67" — ispravno je "RSD12345,67". Ovo je česta greška kada program iznos formatira za prikaz, a ne po NBS formatu.
Predugačka svrha. Polje svrhe uplate po NBS pravilima ima najviše 35 znakova, a duži sadržaj pravi i gušći kod koji se teže skenira sa štampe. "Placanje po fakturi 2026-0042" je dovoljno.
Loša štampa. Premali kod, bled toner ili sjajan papir otežavaju skeniranje. Za štampane račune NBS preporučuje kod od 2,5 do 3,3 cm po strani; drži se toga i jasnog crno-belog kontrasta. Kad klijent otvori PDF na računaru, kod skenira telefonom sa ekrana.
Nedozvoljeni znakovi. Znak | razdvaja polja i ne sme da se pojavi u sadržaju, a ostali specijalni znakovi moraju biti sa NBS liste dozvoljenih. Slova sa dijakriticima ("š", "č", "đ") su u redu jer kod koristi UTF-8, ali ih alat mora ispravno kodirati. Pre slanja većeg broja faktura proveri kod validatorom ili test skeniranjem.
Test procedura pre nego što faktura ode klijentu
Nemoj slati novi QR format klijentu bez provere. Kratka provera ti štedi objašnjavanje zašto plaćanje ne prolazi:
- Sadržaj koda proveri NBS validatorom.
- Napravi test fakturu na svoj račun sa iznosom od 1 dinar.
- Otvori m-banking aplikaciju svoje banke i izaberi "IPS skeniraj".
- Skeniraj kod sa ekrana ili štampe.
- Proveri da li su sva polja ispravno učitana: račun, iznos, šifra plaćanja, poziv na broj, svrha.
- Ako je sve u redu, pošalji uplatu i proveri da li stiže odmah.
Ako imaš račune u dve banke, ponovi test i iz druge aplikacije. Kad kod prolazi NBS validator i ispravno se učitava u obe aplikacije, format je u redu.
Kako ovo izgleda u praksi sa Fakturkom
U Fakturku podatke firme i tekući račun uneseš jednom, a svaka nova faktura ih dobija automatski, uz automatsku numeraciju. Fakturu preuzmeš kao PDF ili je pošalješ kupcu mejlom, a kada je kupac javni sektor ili ste oboje obveznici PDV-a, šalješ je na SEF direktno iz aplikacije.
Za klijente koji svakog meseca plaćaju isto postoje ponavljajuće fakture, pa ne praviš istu fakturu iznova. Status plaćanja svake fakture vodiš u aplikaciji, a mesečni paket za knjigovođu može da se šalje automatski. Bez obzira na to kojim alatom praviš fakture, sadržaj IPS QR koda pre slanja klijentima proveri NBS validatorom.
Zaokruživanje: sitna tehnikalija, lakša uplata
IPS QR kod nije revolucija — samo je pametan način da klijentu ne otežavaš plaćanje. Ako fakturišeš domaćim kupcima u dinarima, možeš ga uvesti bez menjanja procesa i bez obučavanja klijenata. Račun, iznos, šifra plaćanja i poziv na broj — sve u kvadratu od oko tri centimetra.
Ako želiš da fakture, podaci o kupcima i statusi plaćanja budu na jednom mestu, isprobaj Fakturko — probni period je besplatan.
Česta pitanja
Šta je IPS QR kod i kako funkcioniše na fakturi?
IPS QR kod je standardizovani dvodimenzionalni kod čiji format propisuje Narodna banka Srbije za instant plaćanja u dinarima. U kodu su podaci za uplatu: račun i naziv primaoca, iznos, šifra plaćanja, a po potrebi i svrha i poziv na broj. Klijent skenira kod opcijom 'IPS skeniraj' u m-banking aplikaciji, polja naloga se popune sama, a on ih proveri i potvrdi plaćanje. Instant prenos traje nekoliko sekundi, u bilo koje doba dana, svakog dana u godini.
Koja polja mora da sadrži IPS QR kod po NBS specifikaciji?
Za kod na računu (K:PR) obavezni su identifikacioni kod K:PR, verzija V:01, znakovni skup C:1, račun primaoca R (tačno 18 cifara bez crtica i razmaka), naziv primaoca N (do 70 znakova), valuta i iznos I (npr. RSD12345,67, sa decimalnim zarezom i bez tačke za hiljade) i šifra plaćanja SF (tri cifre). Opciona su polja P (podaci o platiocu), S (svrha, do 35 znakova) i RO (model i poziv na broj). Polja se odvajaju znakom |, a prazna opciona polja se izostavljaju. Kod bez polja SF NBS validator odbija.
Kako mogu da generišem IPS QR kod za svoje fakture?
Postoje tri načina. Prvi je ručno, preko NBS generatora na sajtu ips.nbs.rs, što je praktično za mali broj faktura mesečno. Drugi je programski, preko biblioteka poput Python qrcode ili JavaScript qrcode.js, ili preko NBS API-ja generatora. Treći je kroz softver za fakturisanje koji kod pravi uz svaku fakturu. U svakom slučaju, sadržaj koda možeš da proveriš NBS validatorom.
Da li IPS QR kod ubrzava naplatu?
Olakšava je: klijent ne prepisuje račun, iznos i poziv na broj, pa je manje pogrešnih uplata i manje uplata koje se ručno traže po izvodu, a instant prenos stiže za nekoliko sekundi. Koliko će naplata zaista biti brža zavisi od klijenata — kod nikoga ne prisiljava da plati ranije, samo mu olakšava plaćanje.
Koje su najčešće greške pri generisanju IPS QR koda?
Najčešće greške su iznos sa tačkom ili separatorom hiljada umesto formata RSD12345,67, račun sa crticama umesto 18 cifara u nizu, izostavljena šifra plaćanja (SF), crtica ili pogrešan kontrolni broj kod modela 97 i znak | u sadržaju polja. Na štampanom računu kod treba da bude veličine od 2,5 do 3,3 cm po strani, sa nivoom korekcije grešaka M ili L i oznakom 'NBS IPS QR' uz kod. Pre slanja kod proveri NBS validatorom i test uplatom.