GIRO account numbers and related error detection

Since I started working in CIB, some of my friends asked me about Giro account number systems: can we fill account numbers incorrectly in internetbank, is it possible to transfer money, where we don’t want to, because of a typo? Short answer is no, or very unlikely. But why?

GIRO account numbers format

Start from a quick and not so accurate definition: card numbers are what are printed on debit or credit cards, while account numbers identify banking accounts. These two connect in banking systems, when card gets assigned to particular account. This can be changed very easily, but traditional banks are not offering such online services usually. Giro account numbers contain 2x8 or 3x8 numbers, and the 8-digits blocks are separated by hyphen (-). In Hungary most banks introduced the 24-digit format, but the biggest competitor (OTP) is a commited 16-digit user. Frankly, it doesn’t really matter, filling last 8 digits with zeros can transform type-16 to type-24.

So the format is the following: AAABBBBC – DDDDDDDE – FFFFFFFG.

What can we know from each digits?

Let’s check one by one, what numbers mean or how are generated.

AAA: Giro-code from 3 digits, in Hungary, MNB (Central Bank of Hungary) provides it and assigns to banks. (e.g. CIB – 107, OTP – 117, etc.) The actual list can be downloaded from MNB homepage.

BBBB: Branch identifier of the bank.

C: A checksum generated from AAABBBB, the exact algorythm will be described later.

The specification says that remaining 16 digits can be used for customer identification, but most banks do this with 9-16 digits, and last 8 numbers are used for sub-accounts, ot not used at all, as we saw previously. A common best-practice is:

DDDDDDD – Customer internal, bank-specific ID.

E – Generated checksum from DDDDDDD.

FFFFFFF – Sub-account ID.

G – Generated checksum from FFFFFFF.

Error detection

Based on the previously mentioned 3 generated checksums, transfer services or basically anybody can check, if the account numbers you are trying to transfer money to, is valid or not logically. Obviously it doesn’t validate it’s real existence, but can avoid unwanted transactions.

Error detected later Photo by Anna Gru

The error detection algorythm is the following:

Multiply first 8 digits’…

  • first number by 9
  • second number by 7
  • third number by 3
  • fourth number by 1
  • fifth number by 9
  • sixth number by 7
  • seventh number by 3
  • eighth number by 1,

and add these products. The summarized amount must be divisible by ten without remainder. If it’s not, the giro account number cannot be valid.

As a consequence, most likely there won’t be mistaken transfers, as long as you don’t have multiple errors in the same account numbers. So no reason to worry, but always handle your finances with proper care.