---
title: IBAN Validation API - Validate Format, Check SEPA & Return Bank Details
version: 1.0.0
description: Validate an IBAN number against country-specific format, length, and checksum rules. Supports IBANs from all SEPA and IBAN-compliant countries. Returns detailed validation results for each check — alphanumeric, supported country, length, structure, and check digit. Includes bank data such as BIC/SWIFT code, bank name, branch details, and SEPA eligibility when available.
openapi: 3.1.1
servers:
  - https://api.apifreaks.com/v1.0
paths: 1
operations: 1
schemas: 4
---

## Table of Contents

- [IBAN Validation API - Validate Format, Check SEPA & Return Bank Details v1.0.0](#iban-validation-api-validate-format-check-sepa-return-bank-details-v100)
  - [Authentication](#authentication)
  - [Financial APIs](#financial-apis)
    - [validateIban](#validateiban)
      - [Parameters](#parameters)
      - [Responses](#responses)
  - [Schemas](#schemas)
    - [IbanValidationResponse](#ibanvalidationresponse)
    - [IbanValidationResult](#ibanvalidationresult)
    - [IbanBankData](#ibanbankdata)
    - [ErrorResponse](#errorresponse)



# IBAN Validation API - Validate Format, Check SEPA & Return Bank Details v1.0.0

Validate an IBAN number against country-specific format, length, and checksum rules. Supports IBANs from all SEPA and IBAN-compliant countries. Returns detailed validation results for each check — alphanumeric, supported country, length, structure, and check digit. Includes bank data such as BIC/SWIFT code, bank name, branch details, and SEPA eligibility when available.

Base URLs:

* [https://api.apifreaks.com/v1.0](https://api.apifreaks.com/v1.0)

## Authentication

* API Key (ApiKeyAuthHeader)
    - Parameter Name: **X-apiKey**, in: header. Pass your API key via the X-apiKey request header.

* API Key (ApiKeyAuthQuery)
    - Parameter Name: **apiKey**, in: query. Pass your API key via the apiKey query parameter.

## Financial APIs

### validateIban

`GET /iban/validation`

*Validate IBAN*

Checks an IBAN for structural validity, checksum accuracy, and bank metadata.

#### Parameters

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|format|query|string|false|Specify the desired response format. Options: 'json' (default) or 'xml'.|
|iban|query|string|true|IBAN to validate.|

##### Enumerated Values

|Parameter|Value|
|---|---|
|format|json|
|format|xml|

> Example responses

> Successful response

```json
{
  "valid": true,
  "iban": "GB29NWBK60161331926819",
  "validation": {
    "is_alpha_numeric": true,
    "is_iban_supported_country": true,
    "is_valid_length": true,
    "is_valid_structure": true,
    "is_iban_check_digit_valid": true,
    "bban": "valid"
  },
  "bank_data": {
    "bic": "NWBKGB2LBHM",
    "bank": "NATIONAL WESTMINSTER BANK PLC",
    "bank_code": "NWBK",
    "branch_code": "601613",
    "country": "United Kingdom",
    "country_iso2": "GB",
    "city": "BIRMINGHAM",
    "address": "6 BRINDLEY PLACE - BIRMINGHAM, B1",
    "account": "31926819",
    "sepa": true
  }
}
```

```json
{
  "valid": false,
  "iban": "NOTANIBAN123",
  "validation": {
    "is_alpha_numeric": true,
    "is_iban_supported_country": true,
    "is_valid_length": false,
    "is_valid_structure": false,
    "is_iban_check_digit_valid": false,
    "bban": "unknown"
  },
  "bank_data": {
    "bic": null,
    "bank": null,
    "bank_code": null,
    "branch_code": "",
    "country": "Norway",
    "country_iso2": "NO",
    "city": null,
    "address": null,
    "account": "N123",
    "sepa": true
  }
}
```

```json
{
  "valid": false,
  "iban": "US29NWBK60161331926819",
  "validation": {
    "is_alpha_numeric": true,
    "is_iban_supported_country": false,
    "is_valid_length": false,
    "is_valid_structure": false,
    "is_iban_check_digit_valid": false,
    "bban": "unknown"
  },
  "bank_data": {
    "bic": null,
    "bank": null,
    "bank_code": null,
    "branch_code": "",
    "country": null,
    "country_iso2": "US",
    "city": null,
    "address": null,
    "account": null,
    "sepa": null
  }
}
```

> Bad Request

```json
{
  "error": "Invalid Param Exception",
  "message": "please pass correct parameters",
  "path": "/v1.0/iban/validation",
  "status": 400,
  "timestamp": "2026-07-27T11:49:29.286Z"
}
```

#### Responses

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Successful response|[IbanValidationResponse](#ibanvalidationresponse)|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|[ErrorResponse](#errorresponse)|

#### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|X-AF-Credits-Cost|integer||Specifies the number of credits consumed by the current request.|
|400|X-AF-Credits-Cost|integer||Specifies the number of credits consumed by the current request.|

To perform this operation, you must be authenticated by means of one of the following methods:
ApiKeyAuthHeader, ApiKeyAuthQuery

## Schemas

### IbanValidationResponse

IBAN validation response containing validation results and bank data.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|valid|boolean|true|none|True if the IBAN passes all validation checks.|
|iban|string|true|none|The IBAN number provided in the request.|
|validation|[IbanValidationResult](#ibanvalidationresult)|true|none|Object contains IBAN validation details.|
|bank_data|[IbanBankData](#ibanbankdata)|true|none|Object contains Bank and BIC details. Most fields are null when the IBAN is structurally invalid or the country's bank data isn't resolvable.|

### IbanValidationResult

Object contains IBAN validation details.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|is_alpha_numeric|boolean|true|none|Whether the IBAN contains only alphanumeric characters.|
|is_iban_supported_country|boolean|true|none|Whether the country extracted from the IBAN supports IBAN standards.|
|is_valid_length|boolean|true|none|Whether the IBAN length matches the expected length for its country.|
|is_valid_structure|boolean|true|none|Whether the IBAN structure matches the pattern for its country.|
|is_iban_check_digit_valid|boolean|true|none|Whether the IBAN check digit is valid.|
|bban|string|false|none|BBAN checksum status. "unknown" means BBAN checksum validation isn't supported for this country.|

##### Enumerated Values

|Property|Value|
|---|---|
|bban|valid|
|bban|invalid|
|bban|unknown|

### IbanBankData

Object contains Bank and BIC details. Most fields are null when the IBAN is structurally invalid or the country's bank data isn't resolvable.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|bic|string|false|none|SWIFT/BIC code extracted from the IBAN. Null when not available for this country or IBAN.|
|bank|string|false|none|Bank name extracted from the IBAN. Null when not resolvable.|
|bank_code|string|false|none|Bank code extracted from the IBAN. Null when not resolvable.|
|branch_code|string|false|none|Branch code extracted from the IBAN. Can be an empty string when not available.|
|country|string|false|none|Country name extracted from the IBAN. Null when the country prefix isn't a supported IBAN country.|
|country_iso2|string|true|none|ISO 3166-1 alpha-2 country code extracted from the IBAN's prefix.|
|city|string|false|none|City or branch name for the bank. Null when not resolvable.|
|address|string|false|none|Bank branch address. Null when not resolvable.|
|account|string|false|none|Account number extracted from the IBAN. Null when the country prefix isn't a supported IBAN country.|
|sepa|boolean|false|none|Whether the country supports Single Euro Payments Area (SEPA). Null when the country prefix isn't a supported IBAN country.|

### ErrorResponse

Standard error envelope returned by the API on failed requests.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|error|string|false|none|Short error category or exception type.|
|message|string|true|none|Human-readable error message describing the failure.|
|path|string|false|none|API endpoint path that produced the error.|
|status|integer|false|none|HTTP status code returned with the error.|
|timestamp|string(date-time)|false|none|Timestamp when the error occurred (ISO 8601).|
