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

# IBAN Validation

> This method enables you to validate International Bank Account Numbers (IBANs) and obtain essential information about the country associated with each IBAN.

By using this API, you can ensure that the IBANs are formatted correctly and gain insights into the banking institution, enhancing security and accuracy in financial transactions.

export const MCPCallout = () => {
  return <div class="callout my-4 px-5 py-4 overflow-hidden rounded-2xl flex gap-3 border border-[rgba(192, 132, 252, 0.2)] bg-[rgba(192, 132, 252, 0.1)] dark:border-[#c084fc4d] dark:bg-[#c084fc1a] text-[#6005BB] dark:text-[#FFFFFF]" data-callout-type="callout">
      <div class="mt-0.5 w-4" data-component-part="callout-icon">
        <svg class="h-4 w-4 !m-0 shrink-0 bg-[#c084fc] [mask-image:url('https://d3gk2c5xim1je2.cloudfront.net/v7.1.0/duotone/fire.svg')] [-webkit-mask-image:url('https://d3gk2c5xim1je2.cloudfront.net/v7.1.0/duotone/fire.svg')] [mask-repeat:no-repeat] [-webkit-mask-repeat:no-repeat] [mask-position:center] [-webkit-mask-position:center]"></svg>
      </div>
      <div class="text-sm prose dark:prose-invert min-w-0 w-full [&_kbd]:bg-background-light dark:[&_kbd]:bg-background-dark text-[#6005BB] dark:text-[#FFFFFF]" data-component-part="callout-content">
        <span data-as="p">
          Want to skip the docs? Use the{" "}
          <a class="link mint-text-xs border-[#C792FC]" href="/docs-mcp-server">
            <b>MCP Server</b>
          </a>
        </span>
      </div>
    </div>;
};

export const Availability = ({plan, color}) => {
  const colorMap = {
    green: "text-green-700 dark:text-green-400",
    blue: "text-blue-700 dark:text-blue-400",
    purple: "text-purple-700 dark:text-purple-400"
  };
  return <div dir="ltr" data-orientation="horizontal" class="p-4 px-5 mt-0 md:mt-4 flex flex-col sm:flex-row flex-wrap gap-2 relative overflow-hidden rounded-2xl border border-gray-950/10 dark:border-white/10 my-0 bg-gray-50 dark:bg-white/5 dark:codeblock-dark text-gray-950 dark:text-gray-50 codeblock-light text-sm prose prose-gray dark:prose-invert font-semibold no-wrap-words">
      Endpoint availability:{" "}
      <span class={` ${colorMap[color]} flex-1`}>{plan}</span>
      <a class="custom-link text-xs" href="https://greip.io/detailed-pricing">
        Learn more
      </a>
    </div>;
};

## Authentication

Include your API key in the `Authorization` header:

```http theme={null}
Authorization: Bearer <api_key>
```

API v2 accepts the key only in this header, not in query parameters or request bodies. See [Authentication](/authentication).

### Path parameters

<ParamField path="iban" type="string" required placeholder="The IBAN">
  The International Bank Account Number (IBAN) you want to validate.

  Sample value: `BE71096123456769`, or `BE71 0961 2345 6769`.
</ParamField>

### Query parameters

<ParamField query="format" type="string" default="JSON" placeholder="Response format">
  The format command is used to get a response in a specific format.

  Expected values: `JSON`, `XML`, `CSV`, or `Newline`

  For more information please refer to [Response format](/options/response-format).
</ParamField>

<ParamField query="mode" type="string" default="live" placeholder="Environment">
  The mode command is used in the development stage to simulate the integration process before releasing it to the production environment.

  Expected values: `live`, or `test`.

  For more information please refer to [Development environment](/options/development-environment).
</ParamField>

<ParamField query="source" type="string" placeholder="Integration label">
  Optional label for your own analytics or support correlation (for example a product or channel name).
</ParamField>

<ParamField query="user_id" type="string" placeholder="User identifier">
  The user\_id command can be used to identify requests sent by specific users to monitor in the [Events page](/knowledge-base/events-and-alerts/overview).

  Expected values: email address, phone number, user id, name, etc.

  For more information please refer to [User identifier](/options/user-identifier).
</ParamField>

<Panel>
  <MCPCallout />

  <Availability plan="Premium and above" color="purple" />

  <ResponseExample>
    ```json Success theme={null}

    {
      "success": true,
      "data": {
        "is_valid": true,
        "iban": "BE71096123456769",
        "formats": {
          "machine": "BE71096123456769",
          "human": "BE71 0961 2345 6769",
          "obfuscated": "BE** **** **** 6769"
        },
        "country": {
          "name": "Belgium",
          "iana": "be",
          "iso3166": "BE",
          "currency": "EUR",
          "central_bank": {
            "url": "http://www.nbb.be/",
            "name": "National Bank of Belgium"
          },
          "membership": "eu_member",
          "is_eu": true,
          "length": 16,
          "is_sepa": true,
          "swift_official": true
        },
        "bank": {
          "identifier": "GEBABEBB",
          "name": "BNP Paribas Fortis",
          "short_name": null,
          "branch_code": null,
          "bban": null
        }
      },
      "execution_ms": 1
    }

    ```

    ```json Error theme={null}
    {
      "success": false,
      "code": 101,
      "type": "invalid_key",
      "description": "The API Key is missing or invalid."
    }
    ```
  </ResponseExample>
</Panel>

### Response properties

<ResponseField name="success" type="boolean" required>
  `true` when the request succeeded; `false` on error.
</ResponseField>

<ResponseField name="data" type="object" required>
  <Expandable title="properties" defaultOpen={true}>
    <ResponseField name="is_valid" type="boolean" required>
      A boolean value that you can rely on to determine if the IBAN is valid or not.
    </ResponseField>

    <ResponseField name="iban" type="string" required>
      The IBAN value from the request.
    </ResponseField>

    <ResponseField name="formats" type="object" required>
      <Expandable title="properties" defaultOpen={true}>
        <ResponseField name="machine" type="string" required>
          Machine format of the IBAN.
        </ResponseField>

        <ResponseField name="human" type="string" required>
          Human-readable format of the IBAN.
        </ResponseField>

        <ResponseField name="obfuscated" type="string" required>
          Obfuscated format of the IBAN.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="country" type="object" required>
      <Expandable title="properties" defaultOpen={true}>
        <ResponseField name="name" type="string" required>
          Country name where the issuing bank is located.
        </ResponseField>

        <ResponseField name="iana" type="string">
          IANA country identifier when available.
        </ResponseField>

        <ResponseField name="iso3166" type="string">
          Country code in ISO 3166-1 alpha-2 format when available.
        </ResponseField>

        <ResponseField name="currency" type="string" required>
          Currency of the country.
        </ResponseField>

        <ResponseField name="central_bank" type="object" required>
          <Expandable title="properties" defaultOpen={true}>
            <ResponseField name="name" type="string">
              The name of the central bank of the issuing country.
            </ResponseField>

            <ResponseField name="url" type="string">
              The URL of the central bank of the issuing country.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="membership" type="string" required>
          Membership type of the bank.
        </ResponseField>

        <ResponseField name="is_eu" type="boolean" required>
          Determines whether the user is located within the European Union (EU) and is relevant for processing transactions or validations specific to EU countries.
        </ResponseField>

        <ResponseField name="length" type="integer">
          IBAN length in this country when known.
        </ResponseField>

        <ResponseField name="example_iban" type="string">
          Example IBAN for the country when available.
        </ResponseField>

        <ResponseField name="is_sepa" type="boolean" required>
          Indicates whether the IBAN belongs to a country participating in the Single Euro Payments Area (SEPA)
        </ResponseField>

        <ResponseField name="swift_official" type="boolean" required>
          Typically indicates whether the IBAN corresponds to an official institution or entity that is part of the SWIFT network, which facilitates international financial transactions.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="bank" type="object" required>
      Issuing bank details when available.

      <Expandable title="properties" defaultOpen={true}>
        <ResponseField name="identifier" type="string">
          Bank identifier (BIC/SWIFT) when available.
        </ResponseField>

        <ResponseField name="name" type="string">
          Bank name.
        </ResponseField>

        <ResponseField name="short_name" type="string">
          Short bank name when available.
        </ResponseField>

        <ResponseField name="branch_code" type="string">
          Branch code when available.
        </ResponseField>

        <ResponseField name="bban" type="string">
          Basic Bank Account Number segment when available.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="execution_ms" type="integer" required>
  Time taken to process the request (milliseconds).
</ResponseField>


## OpenAPI

````yaml openapi/v2.json GET /lookup/iban/{iban}
openapi: 3.0.3
info:
  title: Greip API v2 (docs playground)
  version: 2.0.0
servers:
  - url: https://v2.greipapi.com
security: []
paths:
  /lookup/iban/{iban}:
    get:
      summary: IBAN validation
      operationId: lookupIban
      parameters:
        - name: iban
          in: path
          required: true
          schema:
            type: string
        - name: format
          in: query
          schema:
            type: string
            default: JSON
        - name: mode
          in: query
          schema:
            type: string
            default: live
        - name: source
          in: query
          schema:
            type: string
        - name: user_id
          in: query
          schema:
            type: string
      responses:
        '200':
          description: OK
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.