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

# List iDIN Banks

> Get the Dutch banks an iDIN verification accepts as userInput.presetBank.

Returns the Dutch banks an iDIN verification accepts. Show each `name` to the user, then send the chosen `bic` as `userInput.presetBank` in [Create Verification](https://docs.hopae.com/v2/api-reference/verifications/create-verification.md). `idin` is the `provider.id` that [Get Connections](https://docs.hopae.com/v2/api-reference/verifications/get-connections.md) lists for the iDIN connection.

The list is fetched with the iDIN credentials of your app's oldest activated iDIN connection on the app's environment. The workflow is not consulted.

* **Sandbox app:** your connection's iDIN credentials, or Hopae's demo account (iDIN's simulator banks) when it holds none, as after **Demo activate**.
* **Production app:** the iDIN account Hopae sets up when it activates the connection.

The banks are sorted by name. Hopae caches the list for up to 24 hours, and `lastUpdated` says when it was fetched from iDIN.

## Headers

**Authorization** `string` *required*

`Basic <base64(appId:appSecret)>`. See [Authentication](https://docs.hopae.com/v2/api-reference/authentication.md).

## Response

**banks** `object[]` *required*

The banks, sorted by name.

**properties**

**bic** `string` *required*

The bank's BIC. Send it as `userInput.presetBank`.

**name** `string` *required*

The bank's name, to show the user.

**lastUpdated** `string` *required*

When the list was fetched from iDIN (ISO 8601). It is cached for up to 24 hours.

```bash cURL theme={null}
curl --request GET \
  --url 'https://api.hopae.com/connect/v2/providers/idin/banks' \
  --user '{appId}:{appSecret}'
```

```json theme={null}
{
  "banks": [
    { "bic": "ABNANL2A", "name": "ABN AMRO" },
    { "bic": "INGBNL2A", "name": "ING" }
  ],
  "lastUpdated": "2026-10-28T09:00:00.000Z"
}
```

## Errors

| HTTP | Code | When |
| :- | :- | :- |
| 400 | `VALIDATION_MISSING_PARAMETER` | The production iDIN connection holds no iDIN credentials. Contact Hopae: the connection needs fixing, not the request |
| 401 | `AUTH_INVALID_CREDENTIALS` | Wrong App ID or App Secret |
| 403 | `PROVIDER_NOT_ACTIVATED` | No iDIN connection is activated on your app's environment. Activate one in the Console |
| 502, 503 | | iDIN refused or failed the request, for example because of an invalid merchant token. Retry later; contact Hopae if it persists |


## OpenAPI

````yaml GET /providers/idin/banks
openapi: 3.1.0
info:
  title: Hopae Connect Verification API
  version: 2.0.0
servers:
  - url: https://api.hopae.com/connect/v2
    description: Hopae Connect
security:
  - basicAuth: []
tags:
  - name: Verifications
paths:
  /providers/idin/banks:
    get:
      tags:
        - Verifications
      summary: List iDIN Banks
      description: >-
        The Dutch banks an iDIN verification accepts. Send a bank's `bic` as
        `userInput.presetBank`. The list is fetched with the iDIN credentials of
        your app's oldest activated iDIN connection on the app's environment,
        sorted by name, and cached for up to 24 hours.
      operationId: listIdinBanks
      responses:
        '200':
          description: The bank list.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdinBanks'
        '400':
          description: >-
            `VALIDATION_MISSING_PARAMETER`: the production iDIN connection holds
            no iDIN credentials. Contact Hopae.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: VALIDATION_MISSING_PARAMETER
                  message: Required parameter 'merchantToken' is missing
                  details:
                    parameter: merchantToken
                    providerId: idin
                request_id: 7c1e4a92-5b3d-4f8e-a6c0-2d9b81f3e547
        '401':
          description: '`AUTH_INVALID_CREDENTIALS`: wrong App ID or App Secret.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: AUTH_INVALID_CREDENTIALS
                  message: Invalid credentials
                  details: {}
                request_id: 7c1e4a92-5b3d-4f8e-a6c0-2d9b81f3e547
        '403':
          description: >-
            `PROVIDER_NOT_ACTIVATED`: no iDIN connection is activated on your
            app's environment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: PROVIDER_NOT_ACTIVATED
                  message: >-
                    No iDIN connection is activated on the sandbox environment
                    for this application
                  details:
                    hint: >-
                      Activate an iDIN connection for this app in the console,
                      then retry.
                request_id: 7c1e4a92-5b3d-4f8e-a6c0-2d9b81f3e547
        '502':
          description: >-
            iDIN refused or failed the request, for example because of an
            invalid merchant token.
components:
  schemas:
    IdinBanks:
      type: object
      required:
        - banks
        - lastUpdated
      properties:
        banks:
          type: array
          description: The banks, sorted by name.
          items:
            type: object
            required:
              - bic
              - name
            properties:
              bic:
                type: string
                description: The bank's BIC. Send it as `userInput.presetBank`.
                example: ABNANL2A
              name:
                type: string
                description: The bank's name, to show the user.
                example: ABN AMRO
        lastUpdated:
          type: string
          format: date-time
          description: >-
            When the list was fetched from iDIN. It is cached for up to 24
            hours.
          example: '2026-10-28T09:00:00.000Z'
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
            details:
              type: object
        request_id:
          type: string
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >-
        `Basic base64(appId:appSecret)`. See
        [Authentication](/v2/api-reference/authentication).

````

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