# Bankster
An easy to use Elixir validator for IBAN account and BIC numbers. It includes IBAN rules for 115 countries and validation for BIC numbers.
- IBAN validation is done using format, country, length and checksum.
- BIC validation is done using format.
## Installation
The package can be installed as Hex package:
1. Add bankster to your list of dependencies in `mix.exs`:
```elixir
def deps do
[{:bankster, "~> 0.4.0"}]
end
```
2. Run `mix deps.get` to fetch the package from hex
## Usage
### Validate IBANs
You can either use `Bankster.iban_valid?/1` or `Bankster.Iban.valid?/1` to validate IBANs.
```elixir
iex> Bankster.iban_valid?("NOTVALID")
false
iex> Bankster.Iban.valid?("NOTVALID")
false
```
### Validation with errors
Beside the boolean validation function, Bankster offers a validation function which returns the corresponding error.
Like the other validation, you can use `Bankster.iban_validate/1` or `Bankster.Iban.validate/1` to validate IBANs.
```elixir
iex> Bankster.iban_validate("NOTVALID")
{:error, :invalid_country}
iex> Bankster.Iban.validate("DK8387188644726815223423423423423423423")
{:error, :invalid_length}
iex> Bankster.Iban.validate("DK83 8718 8644 7268 15")
{:ok, "DK8387188644726815"}
```
### Validate BICs
Validating BICs works the same way as already shown for IBANs.
So you can either use `Bankster.bic_valid?/1` or `Bankster.Bic.valid?/1` to validate BICs.
```elixir
iex> Bankster.bic_valid?("NOTVALID")
false
iex> Bankster.Bic.valid?("NOTVALID")
false
```
## License
Bankster source code is released under MIT License. Check LICENSE file for more information.