Retrieving the Banks

The list of banks for a country can be retrieved through a GET call towards the URL provided in the country.banks property of the call to retrieve all supported countries. To search for a specific bank in all countries you can retrieve their bank information via a POST call to /v1/banks/get, for more details see Search for Bank Request.

Retrieve Banks with the Country Code

GET /v1/banks?country_code={country_code} HTTP/1.1
Content-Type: application/json
Authorization: Token <Token>
Host: <Host>
curl -X "GET" "/v1/banks?country_code={country_code}" \
         -H "Content-Type: application/json" \
         -H "Authorization: Token <token>"  \
         -H "Host: <Host>"

country_code String, required

Queries banks for the given country. It must comply with the ISO 3166-1 alpha-2 representation of the country, e.g. DE, GB, SE. Valid options are in the country.country_code property of the call to retrieve all supported countries.

transfer_method String, optional

Filters banks by supported transfer method Supported transfer methods that are:

  • SCT - SEPA Credit Transfer
  • SCT_INSTANT - SEPA Instant Credit Transfer

offset String, optional

Defines "where" to start in the current collection. The offset can be used to jump to a specific segment of the pagination. If no value for offset is provided, a default of 0 will be used

size String, optional

Defines how many elements to include in the result. If no value for size is provided, a default of 100 will be used. There is a maximum of 1.000 elements per request

Banks Response

{
    "banks": [{
        "bank_name": String,
        "country_code": String,
        "bank_codes": Array<String>,
        "bics": Array<String>,
        "address": {
            "street_address": String,
            "street_address2": String,
            "postal_code": String,
            "city": String,
            "region": String,
            "country": String
        },
        "popularity": Integer,
        "authentication_methods": Array<Enum<PASSWORD|MOBILE|SMS_TAN|...>>,
        "authorization_methods": Array<Enum<...>>,
        "transfer_methods": Array<Enum<SCT, SCT_INSTANT>>,
        "tokenizable": {
            "ais": Boolean,
            "pis": Boolean
        },
        "flows": {
            "<flow.type>": ?{
                "supported": ?Boolean
            },
            ...
        }
    },
    ...],
    "pagination": {
        "count": Integer,
        "total": Integer,
        "next": ?String,
        "prev": ?String,
        "offset": Integer
    }
}

banks Object[], always present

banks holds an array of objects with information on the requested banks.

banks[].bank_name String, always present

Name of the bank

banks[].country_code String, always present

The country of the bank as a ISO 3166-1 alpha-2 string

banks[].bank_codes String[], always present

List of bank codes associated with that bank

banks[].bics String[], always present

List of BICs associated with that bank

banks[].address AddressData, always present

Most common address of the bank if there are multiple

banks[].popularity Integer, always present

Number that describes the popularity of the bank for Open Banking consumers. A higher number indicates higher popularity.

banks[].authentication_methods Enum, always present

List of supported methods to authenticate (e.g. accessing the consumer's bank account) and authorize (e.g. a payment).

Possible values are:

CLASSIC_TAN, ITAN, MTAN, CHIPTAN_MANUAL, CHIPTAN_FLICKER, SMARTTAN, SMARTTAN_PLUS, PHONE_TAN, PASSWORD, PHOTO_TAN, USB_DONGLE, EMAIL_TAN, PUSH_TAN, FINTS_SMARTCARD, FINTS_KEYFILE, APP_TAN, NONE, UNKNOWN

Detailed information on these values can be found here under "data.result.authentication_method".

banks[].authorization_methods Enum, always present

See banks[].authentication_methods

banks[].transfer_methods Enum, always present

The list of supported transfer methods that are:

  • SCT - SEPA Credit Transfer
  • SCT_INSTANT - SEPA Instant Credit Transfer

banks[].tokenizable Object, always present

The tokenizable object provides information on whether or not consent tokens can be used.

banks[].tokenizable.ais Boolean, always present

Describes if a token can be used for AIS (Account Information Service).

banks[].tokenizable.pis Boolean, always present

Describes if a token can be used for PIS (Payment Initiation Service).

banks[].flows Object, optional

The flows object provides information on the flows for the bank.

banks[].flows.<flow_type> Object, optional

The key of this property is the type of the flow (for example accounts) and the value is an object holding information about the flow.

banks[].flows.<flow_type>.supported Boolean, optional

A boolean indicator for whether or not the flow is supported for the bank.

pagination Object, always present

The pagination objects holds several properties to enable paging through the results.

pagination.count Integer, always present

The amount of elements in the current result.

pagination.total Integer, always present

The total amount of elements that are available.

pagination.next String, optional

The URI to the next list of results. It is only present if more results are available.

pagination.prev String, optional

The URI to the previous list of results. It is null if the offset is 0.

pagination.offset Integer, always present

The current offset that indicates "where" to start in the current dataset.

Search for Bank Request

This request makes it possible to filter all available banks via a Country Code and Bank Code, a BIC or an IBAN.

POST /v1/banks/get HTTP/1.1
Content-Type: application/json
Authorization: Token <Token>
Host: <Host>

<payload>
curl -X "POST" "/v1/banks/get" \
         -H "Content-Type: application/json" \
         -H "Authorization: Token <token>"  \
         -H "Host: <Host>"  \
         -d "<payload>"

NOTE that the payload has the following three specific combinations:

  • IBAN
  • country code and bank code
  • BIC Here is a more detailed look for each combination:

IBAN

{
    "iban": String
}

iban String, required

IBAN belonging to an account of the bank you want to get the data for.

Bank Code & Country Code

{
    "bank_code": String,
    "country_code": String
}

bank_code String, required

The bank code of the bank you want to get the data for.

country_code String, required

The country code of the bank you want to get the data for. It must comply with the ISO 3166-1 alpha-2 representation of the country, e.g. DE, GB, SE. Valid options are in the country.country_code property of the call to retrieve all supported countries.

BIC

{
    "bic": String
}

bic String, required

The BIC of the bank you want to get the data for.

Search Bank Response

{
    "banks": [{
        "bank_name": String,
        "country_code": String,
        "bank_codes": Array<String>,
        "bics": Array<String>,
        "address": {
            "street_address": String,
            "street_address2": String,
            "postal_code": String,
            "city": String,
            "region": String,
            "country": String
        },
        "popularity": Integer,
        "authentication_methods": Array<Enum<PASSWORD|MOBILE|SMS_TAN|...>>,
        "authorization_methods": Array<Enum<...>>,
        "transfer_methods": Array<Enum<SCT, SCT_INSTANT>>,
        "tokenizable": {
            "ais": Boolean,
            "pis": Boolean
        },
        "flows": {
            "<flow.type>": ?{
                "supported": ?Boolean
            },
            ...
        }
    },
    ...],
}

The fields are identical to the Banks Response, the only difference is that there is no pagination object.

Example

Here are some examples for each request to give you an idea on how to use them.

Request the Banks with the Country Code

This example shows you how to get all the banks from Germany.

GET https://universe.openbanking.klarna.com/v1/banks?country_code=de HTTP/1.1
curl -X "GET" "https://universe.openbanking.klarna.com/v1/banks?country_code=de"

Banks Response

{
    "banks": [{
        "bank_name": "Postbank",
        "country_code": "DE",
        "bank_codes": ["10010010", "37010050", "59010031", ...],
        "bics": ["PBNKDEFF370", "PBNKDEFF250", ...],
        "address": {
            "street_address": "THEODOR-HEUSS-ALLEE 72",
            "street_address2": "",
            "postal_code": "60320",
            "city": "FRANKFURT AM MAIN",
            "region": "",
            "country": "DE"
        },
        "popularity": 10000,
        "authentication_methods": ["PASSWORD"],
        "authorization_methods": ["MTAN", "CHIPTAN_FLICKER", "CHIPTAN_MANUAL", "USB_DONGLE"],
        "transfer_methods": ["SCT"],
        "tokenizable": {
            "ais": false,
            "pis": false
        },
        "flows": {
            "accounts": {
                "supported": true
            },
            "account_details": {
                "supported": false
            },
            "balances": {
                "supported": true
            },
            "transactions": {
                "supported": true
            },
            "transfer": {
                "supported": true
            }
        }
    },
    {
        "bank_name": "Deutsche Bank",
        "country_code": "DE",
        "bank_codes": ["10070000", "10070024", "10070100", ...],
        "bics": ["DEUTDEBBXXX", "DEUTDEDBBER", ...],
        "address": {
            "street_address": "Taunusanlage 12",
            "street_address2": "",
            "postal_code": "60325",
            "city": "Frankfurt am Main",
            "region": "",
            "country": "DE"
        },
        "popularity": 4979,
        "authentication_methods": ["PASSWORD"],
        "authorization_methods": ["MTAN", "ITAN", "PHOTO_TAN"],
        "transfer_methods": ["SCT", "SCT_INSTANT"],
        "tokenizable": {
            "ais": false,
            "pis": false
        },
        "flows": {
            "accounts": {
                "supported": true
            },
            "account_details": {
                "supported": false
            },
            "balances": {
                "supported": true
            },
            "transactions": {
                "supported": true
            },
            "transfer": {
                "supported": true
            }
        }
    }, ... ],
    "pagination": {
        "count": 100,
        "total": 1732,
        "next": "https://universe.openbanking.klarna.com/v1/banks?country_code=de&offset=100&size=100",
        "prev": null,
        "offset": 0
    }
}

Bank Search Request

This example shows how to use a Bank Search request to retrieve a specific bank, in this case Deutsche Bank via the Bank Code and Country Code.

POST https://universe.openbanking.klarna.com/v1/banks/get HTTP/1.1
{
    "bank_code": "10070000",
    "country_code": "DE"
}
curl -X "POST" "https://universe.openbanking.klarna.com/v1/banks/get" \            
                 -H "Content-Type: application/json" \
                 -H "Authorization: Token <TOKEN_HERE>" \
                 -d "{\"bank_code\": \"10070000\", \"country_code\": \"DE\"}"

Search Request Response

{
    "banks": [
        {
            "bank_name": "Deutsche Bank",
            "country_code": "DE",
            "bank_codes": ["10070000", "10070024", ...],
            "bics": ["DEUTDEBB174", "DEUTDEBB173", ...],
            "address": {
                "street_address": "THEODOR-HEUSS-ALLEE 72",
                "street_address2": "",
                "postal_code": "60486",
                "city": "FRANKFURT AM MAIN",
                "region": "",
                "country": "DE"
            },
            "popularity": 37866,
            "authentication_methods": [],
            "authorization_methods": [],
            "transfer_methods": [
                "SCT",
                "SCT_INSTANT"
            ],
            "tokenizable": {
                "ais": false,
                "pis": false
            },
            "flows": {}
        }
    ]
}

results matching ""

    No results matching ""