1. Overview

The Swiss Bank Master API allows to access master data required for electronic payments in Switzerland. All participants connected to the Swiss payment systems SIC and euroSIC are listed. The data is centrally administered by SIX Interbank Clearing, updated daily and published in various electronic formats.

All the details published through the Swiss Bank Master API are based on information provided by the respective banks/institutions.

BIC are the property of SWIFT SCRL, 1310 La Hulpe, Belgium.

Information available through the API may be used freely. SIX assumes no responsibility for the completeness of this information, nor for any damages from actions taken based on this information. SIX reserves the express right to change or delete this information from its website at any time.

1.1. Changes to Swiss Bank Master API v2

  • As the IID type "3=Branch" is no longer published, V3 lists about 50% less entries than V2.1.

  • QR-IIDs are flagged with a dedicated IID type.

  • The record contains an indication on what day the data is valid.

  • Only the domicile address is shown, the postal address was removed. The data follows the structured address pattern used by ISO-20022 messages.

  • Outdated field (e.g. postal account number/fax) are removed.

  • Participation in services/systems is separated by distinct flags.

  • Mandatory/optional (Ma/Op) applies only if Field "Concatenation" is set to "N".

  • If "Concatenation" is set to "Y" only the fields "IID/QR-IID", "Valid On", "Concatenation" and "New IID/QR-IID" contain values, all others fields are empty. It is recommended to change a concatenated IID/QR-IID immediately.

1.2. ChangeLog

  • Added explicit HEAD method declarations to all endpoints to support downloads that require this.

1.3. Version information

Version : 3.0 (generated 2023-11-13T09:35:56Z)

1.4. Contact information

Contact : SIX Interbank Clearing
Contact Email : operations.sic@six-group.com

1.5. URI scheme

Host : api.six-group.com
BasePath : /api/epcd/v3
Schemes : HTTPS

1.6. Tags

  • bankmaster : Bankmaster API
    All public REST endpoints of the bank master data are located here, such as the bank master data as JSON and downloadable files.

  • healthcheck : System Healthcheck
    This allows to check the basic state of the API (can it be reached, does it respond).

2. Resources

2.1. Bankmaster

Bankmaster API
All public REST endpoints of the bank master data are located here, such as the bank master data as JSON and downloadable files.

2.1.1. Bank master data as JSON object.

GET /bankmaster
Description

Bank master data as JSON object.

Parameters
Type Name Description Schema Default

Query

prettyPrint
optional

Flag indicating whether the response is pretty printed.

boolean

"true"

Responses
HTTP Code Description Schema

200

Bank master data as JSON object.

default

Unexpected error.

Produces
  • application/json

2.1.2. Bank master data as JSON object (only head, no content).

HEAD /bankmaster
Description

Bank master data as JSON object (only head, no content).

Responses
HTTP Code Description Schema

200

Content can be downloaded with GET method.

No Content

default

Unexpected error.

No Content

2.1.3. Bank master data file in the CSV format.

GET /bankmaster_V3.csv
Description

Bank master data file in the CSV format, with header row. The CSV file contains UTF-8 encoded characters (important e.g. for umlauts and Euro sign).

Responses
HTTP Code Description Schema

200

Bank master data file in the CSV format.

No Content

default

Unexpected error.

Produces
  • text/csv

2.1.4. Bank master data file in the CSV format (only head, no content).

HEAD /bankmaster_V3.csv
Description

Bank master data file in the CSV format, with header row. The CSV file contains UTF-8 encoded characters (important e.g. for umlauts and Euro sign) (only head, no content).

Responses
HTTP Code Description Schema

200

Content can be downloaded with GET method.

No Content

default

Unexpected error.

No Content

2.1.5. Bank master data as JSON object.

GET /bankmaster.json
Description

Bank master data as a JSON object.

Parameters
Type Name Description Schema Default

Query

prettyPrint
optional

Flag indicating whether the response is pretty printed.

boolean

"true"

Responses
HTTP Code Description Schema

200

Bank master data as JSON object.

default

Unexpected error.

Produces
  • application/json

2.1.6. Bank master data as JSON object (only head, no content).

HEAD /bankmaster.json
Description

Bank master data as a JSON object (only head, no content).

Responses
HTTP Code Description Schema

200

Content can be downloaded with GET method.

No Content

default

Unexpected error.

No Content

2.2. Healthcheck

System Healthcheck
This allows to check the basic state of the API (can it be reached, does it respond).

2.2.1. Health check using GET method

GET /healthcheck
Description

Returns a status message of the system.

Responses
HTTP Code Description Schema

200

Healthcheck successful

default

Unexpected error.

Produces
  • application/json

2.2.2. Health check using GET method (only head, no content)

HEAD /healthcheck
Description

Returns a status message of the system (only head, no content).

Responses
HTTP Code Description Schema

200

Content can be downloaded with GET method.

No Content

default

Unexpected error.

No Content

3. Definitions

3.1. BankMasterJsonResponse

Name Description Schema

totalSize
required

The total count of records in the entries list.

integer

validOn
required

Master data is edited and published on a daily basis. Therefore the data is valid on that exact date only.
Example : "2023-01-23"

string (date)

readTime
required

Date and time (according to ISO 8601) at which this response was created.
Example : "2023-01-21T10:52:05.1904957+01:00"

string (date-time)

entries
required

< BankMasterBase > array

3.2. BankMasterBase

Name Description Schema

iid
required

Each bank / financial institution is identified by an IID (institution identification). IIDs are three to five digits long. QR-IIDs consist exclusively of numbers from 30000 to 31999.
Example : 9703

integer

validOn
required

Date to which the information in a record applies. This date (written as per ISO8601 standard) is identical for all records.
Example : "2023-01-23"

string (date)

entryType
required

"New IID/QR-IID" must be used instead of "IID / QR-IID" if entryType is BankMasterConcatenated.

enum (BankMasterConcatenated, BankMaster)

3.3. BankMasterConcatenated

Polymorphism : Inheritance
Discriminator : entryType

Name Description Schema

iid
required

Each bank / financial institution is identified by an IID (institution identification). IIDs are three to five digits long. QR-IIDs consist exclusively of numbers from 30000 to 31999.
Example : 9703

integer

validOn
required

Date to which the information in a record applies. This date (written as per ISO8601 standard) is identical for all records.
Example : "2023-01-23"

string (date)

entryType
required

"New IID/QR-IID" must be used instead of "IID / QR-IID" if entryType is BankMasterConcatenated.

enum (BankMasterConcatenated, BankMaster)

newIid
required

If this field contains a number, the IID/QR IID is no longer valid (e.g. due to a merger) and is to be replaced by the "New IID" (so-called concatenation).
Example : 9950

integer

3.4. BankMaster

Polymorphism : Inheritance
Discriminator : entryType

Name Description Schema

iid
required

Each bank / financial institution is identified by an IID (institution identification). IIDs are three to five digits long. QR-IIDs consist exclusively of numbers from 30000 to 31999.
Example : 9703

integer

validOn
required

Date to which the information in a record applies. This date (written as per ISO8601 standard) is identical for all records.
Example : "2023-01-23"

string (date)

entryType
required

"New IID/QR-IID" must be used instead of "IID / QR-IID" if entryType is BankMasterConcatenated.

enum (BankMasterConcatenated, BankMaster)

sicIid
optional

This is always a 6-digit number and may be used only by SIC and euroSIC participants.
Length : 6
Example : "097031"

string

headQuarters
optional

IID of the headquarters of this participant. If this is the record of the headquarters itself, then this field contains the same value as the field IID.
Example : 9703

integer

iidType
optional

Provides information as to the respective type of entry.
Example : "HEADQUARTERS"

enum (HEADQUARTERS, MAIN_BRANCH, QR_IID)

qrIidBelongsTo
optional

IID of the bank/financial institution to which this QR IID is assigned to. It only contains a value, if the field iidType contains a QR_IID. Otherwise the field is empty.
Example : 9950

integer

bankOrInstitutionName
required

Name of participant
Notice:
+ at the beginning of the name of the bank/institution = in liquidation
++ at the beginning of the name of the bank/institution = alternation of purpose
Length : 1 - 60
Example : "Schweizerische Nationalbank"

string

streetName
optional

Street of domicile address
Maximal length : 35
Example : "Bundesplatz"

string

buildingNumber
optional

Building number of domicile address
Maximal length : 16
Example : "55a"

string

postCode
optional

Zip code/postcode
Length : 1 - 16
Example : "3003"

string

townName
optional

City
Length : 1 - 35
Example : "Bern"

string

country
optional

2-digit alphabetical country code according to the ISO standard 3166.
Maximal length : 2
Example : "DE"

string

bic
optional

BIC Formatted (XXXXXXXXXXX) (= 11-digit)
Length : 11
Example : "SNBZCHZZXXX"

string

sicParticipation
required

Participation in SIC.

boolean

rtgsCustomerPaymentsChf
required

Available for RTGS customer payments.

boolean

ipCustomerPaymentsChf
required

Available for IP customer payments.

boolean

euroSicParticipation
required

Participation in euroSIC.

boolean

lsvBddChfParticipation
required

Participation in LSV+/BDD in CHF (as debtor FI).

boolean

lsvBddEurParticipation
required

Participation in LSV+/BDD in EUR (as debtor FI).

boolean

3.5. Problem

Name Description Schema

type
optional

An absolute URI that identifies the problem type.
We may provide human-readable documentation for the problem type in the future, when the URI is dereferenced.
Default : "about:blank"
Example : "/problems/REQUEST_PARAMETER_VALIDATION_FAILED"

string (uri)

title
required

A short, human readable summary of the problem type.
Example : "Request parameter has missing or invalid values"

string

status
required

The HTTP status code generated by the origin server for this occurrence
of the problem.
Minimum value : 100
Maximum value (exclusive) : 600
Example : 400

integer (int32)

detail
required

A human readable explanation specific to this occurrence of the
problem.
Example : "The submitted request contains invalid or missing request parameters which cannot be processed."

string

instance
optional

An absolute URI that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.
Example : "/api/epcd/bankmaster/v3/public/errors/EPCD0090000001/provided-D"

string (uri)

metadata
optional

3.6. GenericObject

Structured type that contains an object and its type.

Name Description Schema

@type
required

The field "@type" contains a URI/name identifying the type. Example: "@type": "types.example.com/standard/id".

string

data
required

An object of type @type containing custom fields.

object

3.7. HealthCheckResponse

Name Description Schema

message
required

Response message from health check.
Maximal length : 100
Example : "The health check GET request was successfully received and processed."

string

requestDateTime
required

According to RFC3339, section 5.6 in ISO 8601 with timezone and milliseconds.
Example : "2023-01-21T10:52:05.1904957+01:00"

string (date-time)

receivedHeaders
required

< receivedHeaders > array

environmentStage
required

The instance to which the request was sent to.
Example : "X1"

string

applicationVersion
required

The version of the API backend.
Example : "4.5.0-julia"

string

apiVersion
required

The version of the API.
Example : "1.0.23"

string

receivedHeaders

Name Description Schema

headerName
optional

The name of the provided header.
Example : "Accept"

string

headerValue
optional

As received
Example : "application/json"

string