ibankit
A library for generation and validation of International Bank Account Numbers (IBAN, ISO 13616) and Business Identifier Codes (BIC, ISO9362).
Key Features
- Drop-in replaceable with iban-js
- Currently conformant with Version 88 of the IBAN registry
- Decodes bank, branch and account numbers from IBAN
- Supports random BBAN / IBAN generation for testing
- Has BIC validation as a bonus
- Supports validation of National Check Digits if part of BBAN format
- Full TypesScript support
- No external dependencies
SWIFT IBAN Registry
This release should be compatible with the SWIFT IBAN Registry Version 88. There may be a limited number of value differences, some countries in the Registry doesn't describe bank/branch information but may expose it as3!n4!n
but leave the branch description as a blank.IBAN quick examples
// How to generate IBAN
const ibanStr = new IBANBuilder()
.countryCode(CountryCode.AT)
.bankCode("19043")
.accountNumber("00234573201")
.build()
.toString();
// How to create IBAN object from String
const iban = new IBAN("DE89370400440532013000");
// The library ignores spaces in IBANs, this is valid
const iban = new IBAN("DE89 3704 0044 0532 0130 00");
// For testing, the library will also generate random IBANs
const iban = IBAN.random(CountryCode.AT);
const iban = IBAN.random();
const iban = new IBANBuilder()
.countryCode(CountryCode.AT)
.bankCode("19043")
.build();
// For simplicity in porting from iban-js applications
// you can quickly check validity
IBAN.isValid("AT611904300234573201"); // === true
IBAN.isValid("DE89 3704 0044 0532 0130 00"); // == true
IBAN.isValid("hello world"); // == false
BIC quick examples
// How to create BIC object from String
const bic = BIC("DEUTDEFF");
// Check to see is BIC code is valid
BIC.isValid("DEUTDEFF500"); // === true
TODO
- Finish writing all national check digit generators (see Oracle spec)
- x For random IBANs the National Check digits is random, rather than "valid"
References
- http://en.wikipedia.org/wiki/ISO13616
- http://en.wikipedia.org/wiki/ISO9362
- https://www.swift.com/resource/iban-registry-pdf
- https://docs.oracle.com/cd/E1872701/doc.121/e13483/T359831T498954.htm
- https://en.bitcoinwiki.org/wiki/InternationalBankAccountNumber
- https://github.com/globalcitizen/php-iban/issues/39
Credits
License
Copyright 2018-2021 David KoblasLicensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0