Skip to content
Book a call Client login

Free tools/NBS IPS QR code

NBS IPS QR code for your invoices

Make the QR code for payment slips on your invoices. Your customer scans it in the bank app and the payment order fills in by itself. The tool checks the account, amount, payment code and reference by the rules of the National Bank of Serbia.

  • Free
  • No signup
  • Runs in your browser, NBS check only on click

NBS IPS QR code

Live
Payee (you)

NBS recommends the name on the first line and only the town on the second. Name and address together can have 70 characters. To be safe, the tool counts each line break as two characters.

Account and name are saved only in this browser (localStorage) and never sent anywhere. Untick the box to delete them.

Payment
RSD

Model and reference number

Payer

    On printed invoices NBS asks for a code 2.5 to 3.3 cm wide and high. Placed at 100%, the SVG is 3.2 cm wide with its white border, so the code itself stays in that range.

    Text in the code
    …
    Check with the NBS validator

    This button sends the text above, with the account, name, amount and everything else in it, to the free validator of the National Bank of Serbia and shows its answer. Nothing is sent without the click, and everything else on this page stays in your browser.

    Example data with a made up company. Replace it with your own and scan the printed code with your bank app before you send invoices.

    Check a PIB or account

    What the NBS IPS QR code is

    It is the QR code standard of the National Bank of Serbia for payments. On invoices it uses the identification code PR. When your customer scans it in the mobile banking app, the app fills in the payment order with your account, name, amount, payment code and reference, and the customer only checks and confirms it. Scanning alone does not pay anything.

    The rules are in Annex 1 of the NBS decision on instant credit transfers, which was last replaced in 2020. Point 22 of the decision says the code is used by these rules, also on invoices. NBS also publishes recommendations that explain every field, and a free validator.

    What goes into the code

    TagWhatRule
    KIdentification codeAlways PR on invoices
    V, CVersion and character setAlways 01 and 1 (UTF-8)
    RPayee accountExactly 18 digits, no dashes
    NPayee name and addressUp to 70 characters, at most 3 lines
    ICurrency and amountRSD and the amount with a decimal comma, no thousands separator, at most 999999999999,99
    PPayerOptional, up to 70 characters, at most 3 lines
    SFPayment code3 digits
    SPurpose of paymentOptional, up to 35 characters
    ROModel and reference numberOptional, up to 25 characters

    Each field is written as tag, colon and value, and fields are separated by the character |. That character, the backslash and Cyrillic letters are not allowed in the values. Latin letters with Č, Ć, Đ, Š and Ž, digits, spaces and common punctuation are fine. An empty optional field is left out completely. The tool writes the fields in the order NBS uses in all of its examples.

    Example from Annex 1K:PR|V:01|C:1|R:845000000040484987|N:JP EPS BEOGRAD|I:RSD3702,65|SF:289|S:UPLATA PO RAČUNU ZA EL. ENERGIJU|RO:97163220000111111111000

    After scanning, the payer cannot change the account, the payee name and the reference. The amount on an invoice can be changed, and so can the payer details, the payment code and the purpose. If you leave the amount empty, the code carries 0,00 and the payer types the amount.

    Payment code

    The first digit is the form of payment: 2 for a non cash transfer between accounts, 1 for cash. In an NBS IPS QR code it can only be 1 or 2. The last two digits are the basis of payment from the NBS list in Annex 3 of the decision on payment order forms.

    NBS names 221 and 222 (and 121 and 122) as the codes used most often in these QR codes. Codes 189 and 289 are only for payments ordered by citizens, so when your customers are companies or entrepreneurs, choose another code. If you are not sure which code fits your invoices, ask your accountant.

    Model 97 and the reference number

    With model 97 the first two digits of the reference are a control number, so a mistyped reference can be caught. Banks reject a payment order when the control number does not match. Without a model the field starts with 00, and banks do not check the reference.

    Control number = 98 − (reference followed by 00) mod 97

    Letters count as numbers: A is 10, B is 11 and so on up to Z, which is 35. In the NBS example the reference 567812F48K012 gets the control number 54, so the full reference is 54567812F48K012. In model 97 the reference has no dashes or spaces and at most 23 characters with the control number.

    Before you print

    • Size. On printed invoices the code should be 2.5 to 3.3 cm wide and high.
    • Label. Print NBS IPS QR directly above, beside or below the code. The downloads have it under the code.
    • Error correction. NBS allows level M or L on invoices. The tool uses M and switches to L only when the content does not fit otherwise.
    • Amount of text. The code may be at most version 13, which is 69 × 69 modules. That holds 331 bytes at level M and 425 at level L. Č, Ć, Đ, Š and Ž take two bytes each.
    • White border. NBS does not set one. The general QR standard asks for four modules on every side, and the tool keeps four.
    • Test it. Scan the printed code with your own bank app before you send invoices to customers.

    FAQ

    Is my data sent anywhere?

    Only when you click the NBS check. Then the text of the code goes to the free validator of the National Bank of Serbia and the page shows its answer. Without that click nothing leaves your browser. NBS publishes no limits or uptime promise for the validator, so if it does not answer, try again later.

    Does the tool check that the account belongs to the payee?

    No. It checks the format, the control number and the bank code. Whether the account is open and whose it is, only the bank knows. Copy the account from a bank statement or contract.

    My company name is in Cyrillic. What now?

    The NBS list of allowed characters has only Latin letters. Write the name in Latin script, or click Convert to Latin when the tool finds Cyrillic, and check the result.

    Is this the same as paying with IPS at a shop?

    No. Payments at a point of sale and online shops use other identification codes (PT, PK and EK), which a merchant sets up through its bank. The PR code on invoices only fills in a payment order.

    Why is the bank code marked as unknown?

    The tool uses the NBS list of bank codes from 8 September 2026. After a merger the bank that takes over may keep using the old code for a while, so an unknown code is not always a mistake. Check the account with the payee.

    Sources: National Bank of Serbia, decision on general rules for instant credit transfers and its Annex 1 from 2020, recommendations for the NBS IPS QR code, guide to the generator and validator, decision on payment order forms with Annex 2 (model 97) and Annex 3 (payment codes), decision on the structure of current accounts and the list of bank codes of 8 September 2026. Checked in October 2026.

    This page explains the NBS rules in plain words. It is not legal, tax or financial advice. For payment codes and references on your invoices, ask your accountant or bank.

    Everything you type stays in your browser. Only the NBS check button sends the text of the code to the National Bank of Serbia.

    Let's look at your numbers together.

    Book a free 30 minute call or send us a message. Tell us where you are now and where you want to be.

    Emailinfo@aragonitdigital.com Phone+381 69 424 54 23
    HoursMon to Fri, 08:00 to 21:00 CET
    Book a call