Skip to content

A Java library for generation and validation of the International Bank Account Numbers (IBAN ISO_13616) and Business Identifier Codes (BIC ISO_9362).

License

Notifications You must be signed in to change notification settings

spannm/iban4j

 
 

Repository files navigation

iban4j

A Java library for the generation, validation, and parsing of International Bank Account Numbers (IBAN) and Business Identifier Codes (BIC).

Build Status Coverage Status Maven Central License


Features

  • IBAN Generation and Validation: Supports creating valid IBANs and verifying their format and check digits.
  • BIC Validation: Checks the validity of Business Identifier Codes.
  • Multiple Formats: Handles both standard and formatted string representations.
  • Customizable Padding: Offers options for zero-padding account and bank codes.

Getting Started

Maven Dependency

To use iban4j in your Maven project, add the following dependency to your pom.xml:

<dependency>
    <groupId>org.iban4j</groupId>
    <artifactId>iban4j</artifactId>
    <version>3.2.11-RELEASE</version>
</dependency>

Gradle Dependency

To include iban4j into your Gradle project, add the following dependency to your build.gradle or build.gradle.kts file.

For a Groovy DSL (build.gradle) file:

dependencies {
    implementation 'org.iban4j:iban4j:3.2.11-RELEASE'
}

For a Kotlin DSL (build.gradle.kts) file:

dependencies {
    implementation("org.iban4j:iban4j:3.2.11-RELEASE")
}

After adding the dependency, run gradle build. Gradle will automatically download the library and include it in your project.


Usage Examples

IBAN Examples

Generate an IBAN
// Using the Builder pattern
Iban iban = new Iban.Builder()
    .countryCode(CountryCode.AT)
    .bankCode("19043")
    .accountNumber("00234573201")
    .build();
Create an Iban object from a string
// From a raw IBAN string
Iban iban = Iban.valueOf("DE89370400440532013000");

// From a formatted IBAN string
Iban iban = Iban.valueOf("DE89 3704 0044 0532 0130 00", IbanFormat.Default);
Generate a random IBAN
// For a specific country
Iban iban = Iban.random(CountryCode.AT);

// For a random country
Iban iban = Iban.random();

// Using the builder for more control
Iban iban = new Iban.Builder()
    .countryCode(CountryCode.AT)
    .bankCode("19043")
    .buildRandom();
Validate an IBAN
try {
    // Validate a raw IBAN
    IbanUtil.validate("AT611904300234573201");
    // Validate a formatted IBAN

    IbanUtil.validate("DE89 3704 0044 0532 0130 00", IbanFormat.Default);
    System.out.println("IBAN is valid");
} catch (IbanFormatException | InvalidCheckDigitException | UnsupportedCountryException ex) {
    System.err.println("IBAN is invalid: " + ex.getMessage());
}
Enable left-padding for generated IBANs
// Left-pad account number, bank code, and branch code with zeros
Iban iban = new Iban.Builder()
    .leftPadding(true)
    .countryCode(CountryCode.DE)
    .bankCode("66280099")
    .accountNumber("123456700")
    .build();

// Change the default padding character from '0' to '1'
Iban ibanWithCustomPadding = new Iban.Builder()
    .leftPadding(true)
    .paddingCharacter('1')
    .countryCode(CountryCode.DE)
    .bankCode("66280099")
    .accountNumber("123456700")
    .build();

BIC Examples

Create a Bic object from a string
Bic bic = Bic.valueOf("DEUTDEFF");
Validate a BIC
try {
    BicUtil.validate("DEUTDEFF500");
    System.out.println("BIC is valid");
} catch (BicFormatException ex) {
    System.err.println("BIC is invalid: " + ex.getMessage());
}

Compatibility

This library requires Java 11 or higher.


References


License

Copyright 2015 Artur Mkrtchyan.

Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0

About

A Java library for generation and validation of the International Bank Account Numbers (IBAN ISO_13616) and Business Identifier Codes (BIC ISO_9362).

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%