# `PhoenixKitBilling.IbanData`
[🔗](https://github.com/BeamLabEU/phoenix_kit_billing/blob/0.5.1/lib/phoenix_kit_billing/utils/iban_data.ex#L1)

IBAN specifications by country.

Provides IBAN length and SEPA membership data for banking validation.
Data sourced from IBAN.com/structure.

## Examples

    iex> IbanData.get_iban_length("EE")
    20

    iex> IbanData.sepa_member?("EE")
    true

    iex> IbanData.country_uses_iban?("US")
    false

# `t`

```elixir
@type t() :: %PhoenixKitBilling.IbanData{length: pos_integer(), sepa: boolean()}
```

# `all_specs`

Get all IBAN specifications.

Returns a map of country codes to `%IbanData{}` structs.

# `country_uses_iban?`

Check if a country uses IBAN.

## Examples

    iex> IbanData.country_uses_iban?("EE")
    true

    iex> IbanData.country_uses_iban?("US")
    false

# `get_iban_length`

Get IBAN length for a country.

Returns the expected IBAN length for the country code, or nil if the country
does not use IBAN.

## Examples

    iex> IbanData.get_iban_length("EE")
    20

    iex> IbanData.get_iban_length("DE")
    22

    iex> IbanData.get_iban_length("US")
    nil

# `get_spec`

Get the IBAN specification for a country.

Returns a `%IbanData{}` struct or nil if the country does not use IBAN.

# `sepa_member?`

Check if a country is a SEPA member.

## Examples

    iex> IbanData.sepa_member?("EE")
    true

    iex> IbanData.sepa_member?("TR")
    false

    iex> IbanData.sepa_member?("US")
    false

---

*Consult [api-reference.md](api-reference.md) for complete listing*
