Najdan / ips-qr-code

IPS QR Code Generator

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

IPS QR Code Generator

Travis CI GitHub issues badge GitHub forks badge GitHub stars badge GitHub license badge Twitter badge

Šta je ovo?

ips-qr-code je jednostavna CLI aplikacija za generisanje IPS QR kodova. NBS IPS

Instalacija

$ npm i -g ips-qr-code

Primer korišćenja

Note: Broj bankovnog racuna iz primera je nepostojeci

Data URI:

$ ips-qr-code --naziv-platioca "@artbit" --racun-platioca "123456789012345678" --naziv-primaoca "GitHub Ltd," --racun-primaoca "123456789012345678" --sifra-placanja "221" --iznos "RSD1," --svrha-placanja "Example usage" --to-datauri
$ data:image/png;base64,iVBORw0KGg...SUVORK5CYII=

Slika:

$ ips-qr-code --naziv-platioca "@artbit" --racun-platioca "123456789012345678" --naziv-primaoca "GitHub Ltd," --racun-primaoca "123456789012345678" --sifra-placanja "221" --iznos "RSD1," --svrha-placanja "Example usage" --to-file example.png

Primer IPS QR koda

Terminal:

$ ips-qr-code --naziv-platioca "@artbit" --racun-platioca "123456789012345678" --naziv-primaoca "GitHub Ltd," --racun-primaoca "123456789012345678" --sifra-placanja "221" --iznos "RSD1," --svrha-placanja "Example usage" --to-text

Primer IPS QR koda

Kao biblioteka

ips-qr-code je napisana kao CLI aplikacija, ali može da se koristi i kao biblioteka, sa doduše malo kriptičnim API-jem jer koristi skraćene oblike opcija u obliku u kom su i same upisane u IPS QR kod.

const generator = require("ips-qr-code");
const qrcode = require("qrcode");
const filename = "test.png";

generator({
    p: "Marko Markovic",
    s: "Uplata po racunu",
    n: "EPS Snabdevanje 11000 Beograd",
    sf: "221",
    i: "RSD1000,00",
    o: "123456789012345611",
    r: "845000000014284968",
    k: "PR",
    v: "01",
    c: 1,
})
.then(ipsString => qrcode.toFile(filename, ipsString))
.catch(error => console.error(error));

Opcije

-k, --kod [string=PR]

Identifikacioni kod koji opisuje sadržaj QR koda. Moguće vrednosti su:

  • PR – za QR kod na štampanom računu velikih izdavalaca računa
  • PT – za QR kod na prodajnom mestu, prikazan od strane trgovca
  • PK – za QR kod na prodajnom mestu, prikazan od strane kupca
  • EK – za QR kod u aplikaciji e-commerce
-r, --racun-primaoca [string] (required)

Broj računa primaoca plaćanja označava broj tekućeg odnosno drugog platnog računa primaoca plaćanja u skladu s propisima;

-n, --naziv-primaoca [string] (required)

Naziv i sedište primaoca plaćanja označava poslovno ime ili skraćeno poslovno ime primaoca plaćanja, odnosno naziv pod kojim je evidentiran u registru nadležnog organa. Ako naziv primaoca plaćanja sadrži i njegovo sedište, onda nije potrebno navoditi to sedište;

-i, --iznos [string] (required)

Valuta i iznos novčanih sredstava predstavlja oznaku RSD i iznos, u kome se obavezno upisuje decimalna zapeta, iza koje se ne moraju pisati nevažeće decimalne nule (primer: RSD1025). Minimalni iznos naloga je RSD0,01, a maksimalni iznos naloga je RSD99999999999999,99. Pri unosu iznosa, hiljade se ne odvajaju tačkama. Nije dozvoljeno izostaviti cifru za celo mesto u iznosu. Na primer: RSD,01 nije ispravan iznos, ispravno je RSD0,01;

-o, --racun-platioca [string] (required)

Broj računa platioca označava broj tekućeg odnosno drugog platnog računa platioca u skladu s propisima;

-p, --naziv-platioca [string] (required)

Naziv i sedište platioca predstavlja ime i prezime i adresu platioca (ulica, broj i mesto)

--sf, --sifra-placanja [number] (required)

Šifra plaćanja označava numerički podatak od tri cifre, od kojih prva identifikuje način plaćanja, a druge dve osnovu;

-s, --svrha-placanja [string] (required)

Svrha plaćanja označava podatke o nameni i osnovu prenosa, odnosno uplate novčanih sredstava;

-m, --MCC [string]

MCC je oznaka Merchant Code Category – kod kategorije trgovca u skladu sa ISO 18245. Spisak dozvoljenih kodova biće utvrđen tehničkom dokumentacijom sistema IPS NBS;

--jf, --jednokratna-sifra [string]

Jednokratna šifra platioca predstavlja TOTR vrednost (jednokratnu šifru čije je važenje vremenski ograničeno, npr. pet minuta).Banka platioca stvara jednokratnu šifru, ali i izvršava autorizaciju transakcije plaćanja;

--ro, --poziv-na-broj [string]

Poziv na broj odobrenja primaoca plaćanja označava dopunske podatke za primaoca plaćanja u skladu s propisima;

--rl, --referenca-primaoca [string]

Referenca primaoca plaćanja označava dopunske podatke za primaoca plaćanja u slobodnoj formi;

--rp, --referenca-placanja [string]

Referenca koja identifikuje transakciju na prodajnom mestu predstavlja jedinstveni identifikator samog plaćanja, ukupne dužine 19

--scale [number=4]

The scale of the QR code pixels

--margin [number=4]

The size of the margin around the QR code

--bg-color [string=#ffffffff]

The color of the QR code light pixels

--fg-color [string=#000000ff]

The color of the QR code dark pixels

--height [number]

Width of the QR image

--width [number]

Width of the QR image

--to-file [string]

The filename to output the QR image to

--to-datauri

Output QR code as a data URI

--to-text

Output terminal friendly QR code

IPS QR Code Format

Elementi naloga za prenos prikazani u QR kodu PDF Izvor

Ostali izvori:

https://www.nbs.rs/internet/latinica/20/plp/odluka_transfer_2018_prilog.pdf http://https://www.nbs.rs/internet/latinica/15/mediji/vesti/20180507_preporuke_QRkod.pdf

Opis elemenata:

  • Tag K: Identifikacioni kod označava sadržaj QR koda i može imati vrednosti:
    • PR – za QR kod na štampanom računu velikih izdavalaca računa
    • PT – za QR kod na prodajnom mestu, prikazan od strane trgovca
    • PK – za QR kod na prodajnom mestu, prikazan od strane kupca
    • EK – za QR kod u aplikaciji e-commerce;
  • Tag V: Verzija označava verziju prezentacije QR koda, fiksna vrednost je 01;
  • Tag C: Znakovni skup se koristi u prezentaciji, fiksna vrednost 1 označava upotrebu UTF-8 kodnog rasporeda;
  • Tag R: Broj računa primaoca plaćanja označava broj tekućeg odnosno drugog platnog računa primaoca plaćanja u skladu s propisima;
  • Tag N: Naziv i sedište primaoca plaćanja označava poslovno ime ili skraćeno poslovno ime primaoca plaćanja, odnosno naziv pod kojim je evidentiran u registru nadležnog organa. Ako naziv primaoca plaćanja sadrži i njegovo sedište, onda nije potrebno navoditi to sedište;
  • Tag I: Valuta i iznos novčanih sredstava predstavlja oznaku RSD i iznos, u kome se obavezno upisuje decimalna zapeta, iza koje se ne moraju pisati nevažeće decimalne nule (primer: RSD1025). Minimalni iznos naloga je RSD0,01, a maksimalni iznos naloga je RSD99999999999999,99. Pri unosu iznosa, hiljade se ne odvajaju tačkama. Nije dozvoljeno izostaviti cifru za celo mesto u iznosu. Na primer: RSD,01 nije ispravan iznos, ispravno je RSD0,01;
  • Tag O: Broj računa platioca označava broj tekućeg odnosno drugog platnog računa platioca u skladu s propisima;
  • Tag P: Naziv i sedište platioca predstavlja ime i prezime i adresu platioca (ulica, broj i mesto);
  • Tag SF: Šifra plaćanja označava numerički podatak od tri cifre, od kojih prva identifikuje način plaćanja, a druge dve osnovu;
  • Tag S: Svrha plaćanja označava podatke o nameni i osnovu prenosa, odnosno uplate novčanih sredstava;
  • Tag M: MCC je oznaka Merchant Code Category – kod kategorije trgovca u skladu sa ISO 18245. Spisak dozvoljenih kodova biće utvrđen tehničkom dokumentacijom sistema IPS NBS;
  • Tag JS: Jednokratna šifra platioca predstavlja TOTR vrednost (jednokratnu šifru čije je važenje vremenski ograničeno, npr. pet minuta). Banka platioca stvara jednokratnu šifru, ali i izvršava autorizaciju transakcije plaćanja;
  • Tag RO: Poziv na broj odobrenja primaoca plaćanja označava dopunske podatke za primaoca plaćanja u skladu s propisima;
  • Tag RL: Referenca primaoca plaćanja označava dopunske podatke za primaoca plaćanja u slobodnoj formi;
  • Tag RP: Referenca koja identifikuje transakciju na prodajnom mestu predstavlja jedinstveni identifikator samog plaćanja, ukupne dužine 19 karaktera u sledećem formatu: [TID 8a][Year 2n][Julian day – redni broj dana u godini 3n][Transaction number 6n];

Format zapisa

Svako polje navodi se kao par definisanog taga i sadržaja tog polja. Polja se razdvajaju delimiterom – uspravnom crtom (|). Poslednje polje u sadržaju predstavlja kraj zapisa. Delimiter ne sme biti deo sadržaja polja. Ako ne sadrže vrednost, tagovi opcionih polja se ne navode u QR kodu.

Licenca

MIT

About

IPS QR Code Generator

License:MIT License


Languages

Language:JavaScript 100.0%