> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cleariflow.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Проверка IBAN

> Эндпоинт `iban` проверяет международные банковские счета с учётом правил конкретной страны, проверкой формата и подробной структурной информацией для финансовых приложений.

## Начало работы

### Базовый URL

```
https://bankvalidation.cleariflow.com/v1/iban/
```

### Эндпоинт проверки

Эндпоинт `iban` требует ваш API-ключ и параметр IBAN для комплексной проверки международных банковских счётов.

```
https://bankvalidation.cleariflow.com/v1/iban/
? api_key = YOUR_UNIQUE_API_KEY
& iban = DE89370400440532013000
```

Успешный запрос проверяет немецкий IBAN и возвращает подробную информацию:

<ResponseExample>
  ```json theme={"system"}
  {
    "iban": "DE89370400440532013000",
    "is_valid": true,
    "country_code": "DE",
    "country_name": "Germany",
    "bank_code": "37040044",
    "account_number": "0532013000",
    "length": 22,
    "expected_length": 22,
    "checksum_valid": true,
    "format_valid": true,
    "details": {
      "structure": "BBBB BBBB BBBB BBBB BB",
      "example": "DE89 3704 0044 0532 0130 00",
      "bank_name": "Bank information not available",
      "bank_bic": "BIC not available",
      "account_type": "Bank Account",
      "currency": "EUR"
    }
  }
  ```
</ResponseExample>

### Параметры запроса

<ParamField query="api_key" type="String" required>
  Ваш уникальный API-ключ. У каждого пользователя уникальные ключи *для каждого API Cleariflow*, поэтому ключ Bank Validation не будет работать, например, с API обменных курсов.
</ParamField>

<ParamField query="iban" type="String" required>
  Международный банковский счёт для проверки. Пробелы допустимы и автоматически удаляются при обработке. IBAN должен соответствовать формату стандарта ISO 13616.
</ParamField>

### Параметры ответа

Ответ API возвращается в универсальном лёгком формате [JSON](https://www.json.org/json-en.html).

<ResponseField name="iban" type="String">
  Нормализованный IBAN без пробелов в верхнем регистре.
</ResponseField>

<ResponseField name="is_valid" type="Boolean">
  Общий результат проверки — валиден ли IBAN по всем правилам.
</ResponseField>

<ResponseField name="country_code" type="String">
  Двухбуквенный ISO-код страны (например, DE для Германии, FR для Франции).
</ResponseField>

<ResponseField name="country_name" type="String">
  Полное название страны, связанной с IBAN.
</ResponseField>

<ResponseField name="bank_code" type="String">
  Банковский идентификатор, извлечённый из IBAN согласно формату конкретной страны.
</ResponseField>

<ResponseField name="account_number" type="String">
  Номер счёта в IBAN без кода страны, контрольных цифр и банковского кода.
</ResponseField>

<ResponseField name="length" type="Integer">
  Фактическая длина переданного IBAN.
</ResponseField>

<ResponseField name="expected_length" type="Integer">
  Ожидаемая длина IBAN для конкретной страны по стандарту ISO 13616.
</ResponseField>

<ResponseField name="checksum_valid" type="Boolean">
  Прошла ли проверка контрольной суммы IBAN по алгоритму MOD-97.
</ResponseField>

<ResponseField name="format_valid" type="Boolean">
  Соответствует ли формат IBAN ожидаемой структуре для страны.
</ResponseField>

<ResponseField name="details" type="Object">
  Дополнительная подробная информация о структуре и форматировании IBAN.
</ResponseField>

<ResponseField name="details.structure" type="String">
  Визуальное представление структуры IBAN с плейсхолдерами B (Bank), S (Sort), C (Customer) и K (Key).
</ResponseField>

<ResponseField name="details.example" type="String">
  Правильно отформатированный пример IBAN с пробелами для читаемости.
</ResponseField>

<ResponseField name="details.bank_name" type="String">
  Название банка (сейчас отображается «Bank information not available»).
</ResponseField>

<ResponseField name="details.bank_bic" type="String">
  BIC-код банка (сейчас отображается «BIC not available»).
</ResponseField>

<ResponseField name="details.account_type" type="String">
  Тип счёта (обычно «Bank Account»).
</ResponseField>

<ResponseField name="details.currency" type="String">
  Код валюты страны (например, EUR для еврозоны, GBP для Великобритании).
</ResponseField>

## Примеры

### Валидный немецкий IBAN

**Запрос:**

```
GET https://bankvalidation.cleariflow.com/v1/iban/?api_key=YOUR_API_KEY&iban=DE89370400440532013000
```

**Ответ:**

```json theme={"system"}
{
  "iban": "DE89370400440532013000",
  "is_valid": true,
  "country_code": "DE",
  "country_name": "Germany",
  "bank_code": "37040044",
  "account_number": "0532013000",
  "length": 22,
  "expected_length": 22,
  "checksum_valid": true,
  "format_valid": true,
  "details": {
    "structure": "BBBB BBBB BBBB BBBB BB",
    "example": "DE89 3704 0044 0532 0130 00",
    "bank_name": "Bank information not available",
    "bank_bic": "BIC not available",
    "account_type": "Bank Account",
    "currency": "EUR"
  }
}
```

### Валидный французский IBAN

**Запрос:**

```
GET https://bankvalidation.cleariflow.com/v1/iban/?api_key=YOUR_API_KEY&iban=FR1420041010050500013M02606
```

**Ответ:**

```json theme={"system"}
{
  "iban": "FR1420041010050500013M02606",
  "is_valid": true,
  "country_code": "FR",
  "country_name": "France",
  "bank_code": "2004101005",
  "account_number": "0500013M02606",
  "length": 27,
  "expected_length": 27,
  "checksum_valid": true,
  "format_valid": true,
  "details": {
    "structure": "BBBB BSSS SSCC CCCC CCCC CCC KK",
    "example": "FR14 2004 1010 0505 0001 3M02 606",
    "bank_name": "Bank information not available",
    "bank_bic": "BIC not available",
    "account_type": "Bank Account",
    "currency": "EUR"
  }
}
```

### Невалидный IBAN

**Запрос:**

```
GET https://bankvalidation.cleariflow.com/v1/iban/?api_key=YOUR_API_KEY&iban=INVALID
```

**Ответ:**

```json theme={"system"}
{
  "iban": "",
  "is_valid": false,
  "country_code": "",
  "country_name": "",
  "bank_code": "",
  "account_number": "",
  "length": 7,
  "expected_length": 0,
  "checksum_valid": false,
  "format_valid": false,
  "details": {
    "structure": "",
    "example": ""
  }
}
```

## Обработка ошибок

### Отсутствует параметр IBAN

**Запрос:**

```
GET https://bankvalidation.cleariflow.com/v1/iban/?api_key=YOUR_API_KEY
```

**Ответ:**

```json theme={"system"}
{
  "error": {
    "message": "Missing iban",
    "code": "missing_iban"
  }
}
```

### Отсутствует API-ключ

**Запрос:**

```
GET https://bankvalidation.cleariflow.com/v1/iban/?iban=DE89370400440532013000
```

**Ответ:**

```json theme={"system"}
{
  "error": {
    "message": "API key is required",
    "code": "missing_api_key"
  }
}
```

## Структура IBAN

IBAN состоит из нескольких компонентов:

1. **Код страны (2 символа)**: ISO 3166-1 alpha-2 код страны
2. **Контрольные цифры (2 символа)**: проверка по алгоритму MOD-97
3. **Банковский идентификатор**: банковский код, специфичный для страны
4. **Номер счёта**: идентификатор счёта клиента

### Форматы по странам

В разных странах структура IBAN различается:

* **Германия (DE)**: 22 characters - `BBBB BBBB BBBB BBBB BB`
* **Франция (FR)**: 27 characters - `BBBB BSSS SSCC CCCC CCCC CCC KK`
* **Италия (IT)**: 27 characters - `CAAA AABB BBSS CCCC CCCC CCX`
* **Великобритания (GB)**: 22 characters - `BBBB SSSS SSCC CCCC CC`
* **Испания (ES)**: 24 characters - `BBBB SSSS DDCC CCCC CCCC CC`

Где:

* **B** = банковский код
* **S** = код сортировки
* **C** = номер счёта клиента
* **K** = ключевая/контрольная цифра
* **A** = тип счёта
* **D** = контрольная цифра

## Правила проверки

API выполняет комплексную проверку, включая:

1. **Проверка формата**: соответствует ли IBAN ожидаемой структуре для страны
2. **Проверка длины**: соответствует ли длина IBAN стандарту страны
3. **Проверка контрольной суммы**: валидация по алгоритму MOD-97
4. **Проверка кода страны**: поддерживается ли код страны
5. **Проверка символов**: допустимые буквенно-цифровые символы

## Поддерживаемые страны

API поддерживает проверку IBAN для 50+ стран, включая:

* **Европа**: Германия, Франция, Италия, Испания, Нидерланды, Бельгия, Австрия, Швейцария, Великобритания, Польша
* **Азия**: ОАЭ, Бахрейн, Израиль, Иордания, Казахстан, Кувейт
* **Америка**: Бразилия, Коста-Рика, Доминиканская Республика, Гватемала
* **Африка**: Мавритания, Маврикий, Тунис

Полный список поддерживаемых стран см. на странице [Поддерживаемые страны](/bank-validation/countries).
