openapi: 3.0.1
info:
  title: SwiftRef API
  description: |
    One of Swift's latest delivery channels for SwiftRef reference data are Application Programming Interfaces (APIs).
    APIs offer financial institutions, corporates and third party service providers an automated data look-up service
    for real-time identification and validation of critical payments reference data within the SwiftRef utility.
    
    **v5.2.0 Release notes**

    * OpenAPI changes
      * 2 endpoints added:
        * Check validity of an account number and get its institution details: `POST /account_numbers/validity-and-institution-details`
        * Get country code and town name from a free format address: `GET /addresses/town-name-and-country-code`
  version: 5.2.0
  contact:
    name: Developer Hub
    url: 'https://developer.swift.com'
    email: developer-support@swift.com
  license:
    name: API Restricted License
    url: 'https://developer.swift.com/api-license'
servers:
  - url: 'https://api.swift.com/swiftrefdata/v5'
    description: Live environment - Internet
  - url: 'https://sandbox.swift.com/swiftrefdata/v5'
    description: Sandbox environment
  - url: 'https://api.swiftnet.sipn.swift.com/swiftrefdata/v5'
    description: Live environment - MV-SIPN
security:
  # NOTE:
  # Due to the limitation of OpenAPI Specification and the definition of servers (above), the securityScheme for oauthToken specifies the token and refresh URLs for the Swift Live environment only.
  #
  # When using environments (see servers above), the domain for the token and refresh URLs should be amended to match the domain of the environment required:
  # Live environment - MV-SIPN: use https://api.swiftnet.sipn.swift.com/oauth2/v1/token
  # Sandbox environment: use https://sandbox.swift.com/oauth2/v1/token
  - oauthToken: []
tags:
  - name: account_numbers
    description: Endpoints related to account numbers, including IBANs, BBANs, domestic account numbers and account numbers used for any type of payment.
  - name: bbans
    description: Endpoints related to BBANs (Basic Bank Account Number), the part of IBANs managed by national banking authorities.
  - name: bics
    description: Endpoints related to BICs (Business Identifier Code), an international standard for identification of institutions within the financial services industry, described by standard ISO 9362.
  - name: country_codes
    description: Endpoints related to the different country code formats described by standard ISO 3166-1.
  - name: currency_codes
    description: Endpoints related to the different currency code formats described by standard ISO 4217.
  - name: iban_national_ids
    description: Endpoints related to IBAN National IDs, that represent the bank IDs within IBANs.
  - name: ibans
    description: Endpoints related to IBANs (International Bank Account Number), the worldwide unique identifiers for accounts of customers at financial institutions, described by standard ISO 13616.
  - name: leis
    description: Endpoints related to LEIs (Legal Entity Identifier), used for unique identification of legal entities involved in financial transactions, deascribed by standard ISO 17442.
  - name: national_ids
    description: Endpoints related to National IDs, identifiers associated to banks or financial institutions.
  - name: pmis
    description: Endpoints related to PMIs (Payment Market Infrastructures), that are clearing and settlement services or SWIFTNet services.
  - name: identifiers
    description: Endpoints related to identifiers associated to institutions.
  - name: sensitive_data
    description: Endpoints dealing with data allowing to clearly identify customers.
  - name: collection
    description: Endpoints processing a list of identifiers, instead of only one.
  - name: addresses
    description: Endpoints related to address processing.
paths:
  '/ibans/validity-and-bic':
    post:
      tags:
        - ibans
        - sensitive_data
        - collection
      summary: Check validity of a list of IBANs and get their BICs.
      description: You can check whether several IBANs are valid and get their IBAN BICs.
      operationId: getCollectionIbanValidityAndBic
      requestBody:
        description: Object containing IBANs to validate.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestIbans'
            examples:
              Formally_valid_IBANs:
                summary: Valid IT IBAN and IBAN with inexistent country code
                value:
                  ibans:
                    - IT60X0542811101000000123456
                    - XX8330001234567
              Valid_IBAN_and_formally_invalid_IBAN:
                summary: Valid IT IBAN and LU IBAN with unallowed characters (a 400 response is returned)
                value:
                  ibans:
                    - IT60X0542811101000000123456
                    - LU-12-001-0001234567891
      responses:
        '200':
          description: IBAN BIC or failed validation result (because of domain-related reason), for each input IBAN
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IbansValidationAndBicRetrievalResult'
              example:
                - iban: IT60X0542811101000000123456
                  bic: BCITITMMXXX
                - iban: XX8330001234567
                  errors:
                    - code: REDA.API.IICC
                      severity: Fatal
                      text: ISO IBAN country code prefix is not valid
            application/xml:
              schema:
                $ref: '#/components/schemas/IbansValidationAndBicRetrievalResult'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <results>
                  <result>
                    <iban>IT60X0542811101000000123456</iban>
                    <bic>BCITITMMXXX</bic>
                  </result>
                  <result>
                    <iban>XX8330001234567</iban>
                    <errors>
                      <error>
                        <code>REDA.API.IICC</code>
                        <severity>Fatal</severity>
                        <text>ISO IBAN country code prefix is not valid</text>
                      </error>
                    </errors>
                  </result>
                </results>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Input IBAN list is invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              examples:
                Empty_list_of_IBANs:
                  summary: Empty list of IBANs
                  value:
                    errors:
                      - code: REDA.API.ELII
                        severity: Fatal
                        text: Empty list of IBAN identifiers
                Invalid_list_of_IBANs:
                  summary: At least one input IBANs is formally invalid
                  value:
                    errors:
                      - code: REDA.API.ILII
                        severity: Fatal
                        text: At least one invalid IBAN resource identifier (not matching expression [a-zA-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30})
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              examples:
                Empty_list_of_IBANs:
                  summary: Empty list of IBANs
                  value: |
                    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                    <errors>
                      <error>
                        <code>REDA.API.ELII</code>
                        <severity>Fatal</severity>
                        <text>Empty list of IBAN identifiers</text>
                      </error>
                    </errors>
                Invalid_list_of_IBANs:
                  summary: At least one input IBANs is formally invalid
                  value: |
                    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                    <errors>
                      <error>
                        <code>REDA.API.ILII</code>
                        <severity>Fatal</severity>
                        <text>At least one invalid IBAN resource identifier (not matching expression [a-zA-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30})</text>
                      </error>
                    </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '405':
          $ref: '#/components/responses/InvalidHttpMethodSensitiveData'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/ibans/enhanced-details':
    post:
      tags:
        - ibans
        - sensitive_data
      summary: Check validity of an IBAN and get its enhanced details.
      description: You can check whether an IBAN is valid, get its details and IBAN BIC details.
      operationId: getIbanValidityAndEnhancedDetails
      requestBody:
        description: Object containing IBAN to validate.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestIban'
            examples:
              IT_valid_IBAN:
                summary: Valid IT IBAN
                value:
                  iban: IT60X0542811101000000123456
              LU_formally_invalid_IBAN:
                summary: LU IBAN with unallowed characters (a 400 response is returned)
                value:
                  iban: LU-12-001-0001234567891
              XX_invalid_IBAN:
                summary: Inexistent IBAN country code
                value:
                  iban: XX8330001234567
      responses:
        '200':
          description: Valid IBAN, its details and IBAN BIC details found or invalid IBAN because of domain-related reason.
          content:
            application/json:
              schema:
                oneOf:
                  # Valid IBAN, with its details found, optionally with IBAN BIC details.
                  - $ref: '#/components/schemas/IbanEnhancedDetails'
                  # Invalid IBAN, because of domain-related reason.
                  - $ref: '#/components/schemas/Errors'
              examples:
                IBAN_valid_and_BIC_details_found:
                  summary: IBAN is valid, its details and IBAN BIC details are found
                  value:
                    iban: IT60X0542811101000000123456
                    country_code: IT
                    checksum: '60'
                    bank_id: '05428'
                    branch_id: '11101'
                    account_number: '000000123456'
                    length: 27
                    is_iso: true
                    iban_bic:
                      bic: BCITITMMXXX
                      office_type: HO
                      name: INTESA SANPAOLO SPA
                      department: HEAD OFFICE
                      swift_type: SUPE
                      utc_offset: '+01:00'
                      unstructured_address:
                        address_line_1: PIAZZA DELLA SCALA, 6
                        address_line_3: 20121 MILANO (MI) IT
                      structured_address:
                        street_name: PIAZZA DELLA SCALA
                        building_number: '6'
                        post_code: '20121'
                        town_name: MILANO
                        country_subdivision_name: MILANO
                        country_subdivision_code: MI
                        country_code: IT
                        country_name: ITALY
                      swift_connectivity:
                        fin: true
                        interact: true
                        fileact: true
                        finplus:
                          future: ou=xxx,o=bcititmm,o=swift
                          live: ou=xxx,o=bcititmm,o=swift
                          pilot: ou=xxx,o=bcititmm,o=swift
                      swift_services:
                        - code: EBA
                          name: EBA CLEARING - EURO1
                        - code: ERP
                          name: EBA CLEARING - STEP1
                        - code: FIN
                          name: PUBLISH IN FIN BASIC SECTION (BLUE) IN BIC DIR
                IBAN_not_usable_and_BIC_details_not_returned:
                  summary: IBAN is valid but, since listed within the Exclusion List, it cannot be used and no IBAN BIC is returned
                  value:
                    errors:
                      - code: REDA.API.IBID
                        severity: Fatal
                        text: The bank ID exists, but should not be used in IBANs (it is included in the exclusion list)
                        user_message: The bank ID is invalid according to the EXCLUSION LIST
            application/xml:
              schema:
                oneOf:
                  # Valid IBAN, with its details found, optionally with IBAN BIC details.
                  - $ref: '#/components/schemas/IbanEnhancedDetails'
                  # Invalid IBAN, because of domain-related reason.
                  - $ref: '#/components/schemas/Errors'
              examples:
                IBAN_valid_and_BIC_details_found:
                  summary: IBAN is valid, its details and IBAN BIC details are found
                  value: |
                    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                    <iban>
                      <iban>IT60X0542811101000000123456</iban>
                      <country_code>IT</country_code>
                      <checksum>60</checksum>
                      <bank_id>05428</bank_id>
                      <branch_id>11101</branch_id>
                      <account_number>000000123456</account_number>
                      <length>27</length>
                      <is_iso>true</is_iso>
                      <iban_bic>
                        <bic>BCITITMMXXX</bic>
                        <office_type>HO</office_type>
                        <name>INTESA SANPAOLO SPA</name>
                        <department>HEAD OFFICE</department>
                        <swift_type>SUPE</swift_type>
                        <utc_offset>+01:00</utc_offset>
                        <unstructured_address>
                          <address_line_1>PIAZZA DELLA SCALA, 6</address_line_1>
                          <address_line_3>20121 MILANO (MI) IT</address_line_3>
                        </unstructured_address>
                        <structured_address>
                          <street_name>PIAZZA DELLA SCALA</street_name>
                          <building_number>6</building_number>
                          <post_code>20121</post_code>
                          <town_name>MILANO</town_name>
                          <country_subdivision_name>MILANO</country_subdivision_name>
                          <country_subdivision_code>MI</country_subdivision_code>
                          <country_code>IT</country_code>
                          <country_name>ITALY</country_name>
                        </structured_address>
                        <swift_connectivity>
                          <fin>true</fin>
                          <interact>true</interact>
                          <fileact>true</fileact>
                          <finplus>
                            <future>ou=xxx,o=bcititmm,o=swift</future>
                            <live>ou=xxx,o=bcititmm,o=swift</live>
                            <pilot>ou=xxx,o=bcititmm,o=swift</pilot>
                          </finplus>
                        </swift_connectivity>
                        <swift_services>
                          <swift_service>
                            <code>EBA</code>
                            <name>EBA CLEARING - EURO1</name>
                          </swift_service>
                          <swift_service>
                            <code>ERP</code>
                            <name>EBA CLEARING - STEP1</name>
                          </swift_service>
                          <swift_service>
                            <code>FIN</code>
                            <name>PUBLISH IN FIN BASIC SECTION (BLUE) IN BIC DIR</name>
                          </swift_service>
                        </swift_services>
                      </iban_bic>
                    </iban>
                IBAN_not_usable_and_BIC_details_not_returned:
                  summary: IBAN is valid but, since listed within the Exclusion List, it cannot be used and no IBAN BIC is returned
                  value: |
                    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                    <errors>
                      <error>
                        <code>REDA.API.IBID</code>
                        <severity>Fatal</severity>
                        <text>The bank ID exists, but should not be used in IBANs (it is included in the exclusion list)</text>
                        <user_message>The bank ID is invalid according to the EXCLUSION LIST</user_message>
                      </error>
                    </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          $ref: '#/components/responses/FormallyInvalidIban'
        '401':
          $ref: '#/components/responses/Unallowed'
        '405':
          $ref: '#/components/responses/InvalidHttpMethodSensitiveData'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/ibans/validity':
    post:
      tags:
        - ibans
        - sensitive_data
      summary: Check validity of an IBAN, with SEPA-only option.
      description: You can check whether an IBAN is valid, by restricting validation to SEPA countries.
      operationId: getIbanValidity
      requestBody:
        description: Object containing IBAN to validate, with flag driving restricting validation to SEPA countries.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestIbanWithSepaFlag'
            examples:
              IT_no_sepa_flag:
                summary: Italian IBAN without SEPA-only flag
                value:
                  iban: IT60X0542811101000000123456
              IT_with_sepa_flag:
                summary: Italian IBAN without SEPA-only flag
                value:
                  iban: IT60X0542811101000000123456
                  sepa_only: true
      responses:
        '200':
          description: Valid IBAN
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IbanValidity'
              example:
                iban: IT60X0542811101000000123456
                validity: IVAL
            application/xml:
              schema:
                $ref: '#/components/schemas/IbanValidity'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <validity>
                  <iban>IT60X0542811101000000123456</iban>
                  <validity>IVAL</validity>
                </validity>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          $ref: '#/components/responses/FormallyInvalidIban'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: Supplied IBAN is not valid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.IICC
                    severity: Fatal
                    text: ISO IBAN country code prefix is not valid
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.IICC</code>
                    <severity>Fatal</severity>
                    <text>ISO IBAN country code prefix is not valid</text>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethodSensitiveData'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/ibans/bic':
    post:
      tags:
        - ibans
        - sensitive_data
      summary: Get the BIC for an IBAN.
      description: For a given IBAN, you can retrieve the BIC of the institution that services the IBAN. This API is compliant with the requirement for BIC from IBAN derivation defined in the Regulation (EU) No 260/2012.
      operationId: getBicFromIban
      requestBody:
        description: Object containing IBAN for which the corresponding BIC is requested
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestIban'
            examples:
              IT:
                summary: Italian IBAN
                value:
                  iban: IT60X0542811101000000123456
      responses:
        '200':
          description: Corresponding BIC found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IbanBic'
              example:
                bic: DEUTDEFFXXX
            application/xml:
              schema:
                $ref: '#/components/schemas/IbanBic'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <bic>
                  <bic>DEUTDEFFXXX</bic>
                </bic>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Input IBAN is formally invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.MIRI
                    severity: Fatal
                    text: Invalid IBAN resource identifier (not matching expression [a-zA-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}) or missing IBAN resource identifier
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.MIRI</code>
                    <severity>Fatal</severity>
                    <text>Invalid IBAN resource identifier (not matching expression [a-zA-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}) or missing IBAN resource identifier</text>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: No corresponding BIC found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.BINF
                    severity: Fatal
                    user_message: No corresponding BIC found
                    text: The supplied IBAN does not exist or has no BIC associated
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.BINF</code>
                    <severity>Fatal</severity>
                    <text>No corresponding BIC found</text>
                    <user_message>The supplied IBAN does not exist or has no BIC associated</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethodSensitiveData'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/ibans/details':
    post:
      tags:
        - ibans
        - sensitive_data
      summary: Get details for an IBAN.
      description: For a given IBAN, you can obtain the components of the IBAN.
      operationId: getIbanDetails
      requestBody:
        description: Object containing IBAN for which details are requested
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestIban'
            examples:
              IT:
                summary: Italian IBAN
                value:
                  iban: IT60X0542811101000000123456
      responses:
        '200':
          description: Corresponding IBAN found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IbanDetailsWithIsoFlag'
              example:
                iban: DE04500700100532013000
                country_code: DE
                checksum: '04'
                bank_id: '50070010'
                account_number: '0532013000'
                length: 22
                is_iso: true
            application/xml:
              schema:
                $ref: '#/components/schemas/IbanDetailsWithIsoFlag'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <iban>
                  <iban>DE04500700100532013000</iban>
                  <country_code>DE</country_code>
                  <checksum>04</checksum>
                  <bank_id>50070010</bank_id>
                  <account_number>0532013000</account_number>
                  <length>22</length>
                  <is_iso>true</is_iso>
                </iban>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: No corresponding IBAN found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.INVI
                    severity: Fatal
                    text: Invalid IBAN
                    user_message: Invalid IBAN
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.INVI</code>
                    <severity>Fatal</severity>
                    <text>Invalid IBAN</text>
                    <user_message>Invalid IBAN</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethodSensitiveData'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/ibans':
    post:
      tags:
        - ibans
        - sensitive_data
      summary: IBAN constructor.
      description: Build a valid IBAN from BBAN elements (e.g. bank code, branch code, account number). Required BBAN elements depend on the country.
      operationId: ibanConstructor
      requestBody:
        description: Object containing IBAN country code and BBAN elements, supplied either as separate tokens or as single token (full BBAN)
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestIbanConstruction'
            examples:
              IT_separate_tokens:
                summary: Italian BBAN as separate elements
                value:
                  country_code: IT
                  checksum: X
                  bank_code: '05428'
                  branch_code: '11101'
                  account: '000000123456'
              IT_single_token:
                summary: Italian BBAN as single element (full BBAN)
                value:
                  country_code: IT
                  bban: X0542811101000000123456
      responses:
        '200':
          description: IBAN code was successfully built from BBAN elements
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IbanBuilt'
              example:
                iban: IT60X0542811101000000123456
            application/xml:
              schema:
                $ref: '#/components/schemas/IbanBuilt'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <iban>
                  <iban>IT60X0542811101000000123456</iban>
                </iban>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.MIBE
                    severity: Fatal
                    text: account not provided
                  - code: REDA.API.MIBE
                    severity: Fatal
                    text: bank_code not provided
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.MIBE</code>
                    <severity>Fatal</severity>
                    <text>account not provided</text>
                  </error>
                  <error>
                    <code>REDA.API.MIBE</code>
                    <severity>Fatal</severity>
                    <text>bank_code not provided</text>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: IBAN contruction failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.IBEV
                    severity: Fatal
                    text: country_code has an invalid value
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.MIBE</code>
                    <severity>Fatal</severity>
                    <text>country_code has an invalid value</text>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethodSensitiveData'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/iban_national_ids/{iban_national_id}/bic':
    get:
      tags:
        - iban_national_ids
      summary: Get the BIC for an IBAN national ID.
      description: For a given IBAN national ID, you can retrieve the BIC of the institution that services the IBAN.
      operationId: getBicFromIbanNationalId
      parameters:
        - in: path
          name: iban_national_id
          schema:
            $ref: '#/components/schemas/AlphaNumStringMax30'
          required: true
          description: IBAN national ID for which the corresponding BIC is requested
          example: '0542811101'
        - in: query
          name: country_code
          schema:
            $ref: '#/components/schemas/CountryCode'
          required: true
          description: The 2-character ISO 3166-1 country code of the country that issued the IBAN National ID
          example: IT
      responses:
        '200':
          description: Corresponding BIC found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IbanNationalIdBic'
              example:
                bic: DEUTDEFFXXX
            application/xml:
              schema:
                $ref: '#/components/schemas/IbanNationalIdBic'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <bic>
                  <bic>DEUTDEFFXXX</bic>
                </bic>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.ICCF
                    severity: Fatal
                    text: Invalid country code format
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.ICCF</code>
                    <severity>Fatal</severity>
                    <text>Invalid country code format</text>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: BIC not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.NICT
                    severity: Fatal
                    text: Country not supporting IBANs
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.NICT</code>
                    <severity>Fatal</severity>
                    <text>Country not supporting IBANs</text>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/bbans/iban':
    post:
      tags:
        - bbans
        - sensitive_data
      summary: Get the IBAN from a BBAN.
      description: For a given Basic Bank Account Number (BBAN), you can retrieve the corresponding IBAN; you must also provide a country code.
      operationId: getIbanFromBban
      requestBody:
        description: Object containing IBAN country code and BBAN for which the corresponding IBAN is requested
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - country_code
                - bban
              properties:
                country_code:
                  $ref: '#/components/schemas/CountryCode'
                  # description: The 2-character ISO 3166-1 country code of the country that issued the National ID
                bban:
                  $ref: '#/components/schemas/AlphaNumStringMax30'
              additionalProperties: false
            examples:
              IT:
                summary: Italian BBAN
                value:
                  country_code: IT
                  bban: X0542811101000000123456
      responses:
        '200':
          description: Corresponding IBAN found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IbanOfBban'
              example:
                iban: DE04500700100532013000
            application/xml:
              schema:
                $ref: '#/components/schemas/IbanOfBban'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <iban>
                  <iban>DE04500700100532013000</iban>
                </iban>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.ICCP
                    severity: Fatal
                    text: The supplied country code does not exist
                    user_message: Invalid country code parameter
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.ICCP</code>
                    <severity>Fatal</severity>
                    <text>The supplied country code does not exist</text>
                    <user_message>Invalid country code parameter</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: No corresponding IBAN found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.IBNF
                    severity: Fatal
                    text: No corresponding IBAN found
                    user_message: No corresponding IBAN found
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.IBNF</code>
                    <severity>Fatal</severity>
                    <text>No corresponding IBAN found</text>
                    <user_message>No corresponding IBAN found</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethodSensitiveData'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/bbans/elements':
    get:
      tags:
        - bbans
      summary: Get BBAN elements of an IBAN country.
      description: Get all BBAN element combinations that can be used as input of IBAN constructor for a specific country. Each BBAN element is described by name, length, mandatory/optional flag, position within BBAN.
      operationId: getBbanElements
      parameters:
        - $ref: '#/components/parameters/ibanCountryCode'
      responses:
        '200':
          description: BBAN elements found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BbanElements'
              example:
                elements:
                  - - field_position: 3
                      field_length: 23
                      field_name: bban
                      label_en: Bank code and account number
                      label_local: Numero di conto
                      is_max_length: false
                      is_mandatory: true
                  - - field_position: 3
                      field_length: 1
                      field_name: checksum
                      label_en: National checksum
                      label_local: CIN
                      is_max_length: false
                      is_mandatory: false
                    - field_position: 4
                      field_length: 5
                      field_name: bank_code
                      label_en: Bank code
                      label_local: ABI
                      is_max_length: false
                      is_mandatory: true
                    - field_position: 5
                      field_length: 5
                      field_name: branch_code
                      label_en: Branch code
                      label_local: CAB
                      is_max_length: false
                      is_mandatory: true
                    - field_position: 6
                      field_length: 12
                      field_name: account
                      label_en: Account number
                      label_local: Numero di conto corrente
                      is_max_length: true
                      is_mandatory: true
            application/xml:
              schema:
                $ref: '#/components/schemas/BbanElements'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <bban>
                  <elements>
                    <element>
                      <field_position>3</field_position>
                      <field_length>23</field_length>
                      <field_name>bban</field_name>
                      <label_en>Bank code and account number</label_en>
                      <label_local>Numero di conto</label_local>
                      <is_max_length>false</is_max_length>
                      <is_mandatory>true</is_mandatory>
                    </element>
                  </elements>
                  <elements>
                    <element>
                      <field_position>3</field_position>
                      <field_length>1</field_length>
                      <field_name>checksum</field_name>
                      <label_en>National checksum</label_en>
                      <label_local>CIN</label_local>
                      <is_max_length>false</is_max_length>
                      <is_mandatory>false</is_mandatory>
                    </element>
                    <element>
                      <field_position>4</field_position>
                      <field_length>5</field_length>
                      <field_name>bank_code</field_name>
                      <label_en>Bank code</label_en>
                      <label_local>ABI</label_local>
                      <is_max_length>false</is_max_length>
                      <is_mandatory>true</is_mandatory>
                    </element>
                    <element>
                      <field_position>5</field_position>
                      <field_length>5</field_length>
                      <field_name>branch_code</field_name>
                      <label_en>Branch code</label_en>
                      <label_local>CAB</label_local>
                      <is_max_length>false</is_max_length>
                      <is_mandatory>true</is_mandatory>
                    </element>
                    <element>
                      <field_position>6</field_position>
                      <field_length>12</field_length>
                      <field_name>account</field_name>
                      <label_en>Account number</label_en>
                      <label_local>Numero di conto corrente</label_local>
                      <is_max_length>true</is_max_length>
                      <is_mandatory>true</is_mandatory>
                    </element>
                  </elements>
                </bban>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.ICCP
                    severity: Fatal
                    text: IBAN country code parameter is not valid
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.ICCP</code>
                    <severity>Fatal</severity>
                    <text>IBAN country code parameter is not valid</text>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: BBAN elements not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.BENF
                    severity: Fatal
                    text: No corresponding BBAN elements found
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.BENF</code>
                    <severity>Fatal</severity>
                    <text>No corresponding BBAN elements found</text>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/bics/{bic}':
    get:
      tags:
        - bics
      summary: Get details of a BIC.
      description: For a given BIC, you can retrieve the details of that BIC, that is the bank name or business name, and the address and the Swift service details.
      operationId: getBicDetails
      parameters:
        - in: path
          name: bic
          schema:
            $ref: '#/components/schemas/Bic'
          required: true
          description: BIC (8-characters or 11-characters) for which details are requested
          example: DEUTDEFFXXX
      responses:
        '200':
          description: Corresponding BIC details found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BicIsoDetails'
              example:
                bic: DEUTDEFFXXX
                name: DEUTSCHE BANK AG
                office_type: HO
                utc_offset: "+01:00"
                structured_address:
                  building_number: '12'
                  country_code: DE
                  country_name: GERMANY
                  country_subdivision_name: HESSEN
                  post_code: '60325'
                  street_name: TAUNUSANLAGE
                  town_name: FRANKFURT AM MAIN
                swift_connectivity:
                  fileact: true
                  fin: true
                  finplus:
                    future: ou=xxx,o=deutdeff,o=swift
                    live: ou=xxx,o=deutdeff,o=swift
                    pilot: ou=xxx,o=deutdeff,o=swift
                  interact: true
                swift_services:
                  - code: EBA
                    name: EBA CLEARING - EURO1
                  - code: ERP
                    name: EBA CLEARING - STEP1
                  - code: FIN
                    name: Many-to-many FIN payment service
                  - code: PCH
                    name: SWISS INTERBANK CLEARING (SIC)
                  - code: SCO
                    name: SCORE FIN
                  - code: TGT
                    name: TARGET2 DIRECT PARTICIPANTS
                swift_type: SUPE
            application/xml:
              schema:
                $ref: '#/components/schemas/BicIsoDetails'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <bic>
                  <bic>DEUTDEFFXXX</bic>
                  <name>DEUTSCHE BANK AG</name>
                  <office_type>HO</office_type>
                  <utc_offset>+01:00</utc_offset>
                  <structured_address>
                    <building_number>12</building_number>
                    <country_code>DE</country_code>
                    <country_name>GERMANY</country_name>
                    <country_subdivision_name>HESSEN</country_subdivision_name>
                    <post_code>60325</post_code>
                    <street_name>TAUNUSANLAGE</street_name>
                    <town_name>FRANKFURT AM MAIN</town_name>
                  </structured_address>
                  <swift_connectivity>
                    <fin>true</fin>
                    <finplus>
                      <future>ou=xxx,o=deutdeff,o=swift</future>
                      <live>ou=xxx,o=deutdeff,o=swift</live>
                      <pilot>ou=xxx,o=deutdeff,o=swift</pilot>
                    </finplus>
                    <interact>true</interact>
                    <fileact>true</fileact>
                  </swift_connectivity>
                  <swift_services>
                    <swift_service>
                      <code>EBA</code>
                      <name>EBA CLEARING - EURO1</name>
                    </swift_service>
                    <swift_service>
                      <code>ERP</code>
                      <name>EBA CLEARING - STEP1</name>
                    </swift_service>
                    <swift_service>
                      <code>FIN</code>
                      <name>Many-to-many FIN payment service</name>
                    </swift_service>
                    <swift_service>
                      <code>PCH</code>
                      <name>SWISS INTERBANK CLEARING (SIC)</name>
                    </swift_service>
                    <swift_service>
                      <code>SCO</code>
                      <name>SCORE FIN</name>
                    </swift_service>
                    <swift_service>
                      <code>TGT</code>
                      <name>TARGET2 DIRECT PARTICIPANTS</name>
                    </swift_service>
                  </swift_services>
                  <swift_type>SUPE</swift_type>
                </bic>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: BIC not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.BINF
                    severity: Fatal
                    text: The supplied BIC does not exist within the BIC Directory
                    user_message: No corresponding BIC found
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.BINF</code>
                    <severity>Fatal</severity>
                    <text>The supplied BIC does not exist within the BIC Directory</text>
                    <user_message>No corresponding BIC found</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/bics/{bic}/validity':
    get:
      tags:
        - bics
      summary: Check validity of a BIC.
      description: You can check whether a BIC is correct and valid, that is whether it is published in the BIC Directory; optionally, you can check whether a BIC was valid at a particular date in the past.
      operationId: getBicValidity
      parameters:
        - in: path
          name: bic
          schema:
            $ref: '#/components/schemas/Bic'
          required: true
          description: BIC (8-characters or 11-characters) to validate
          example: DEUTDEFFXXX
        - in: query
          name: effective_date
          schema:
            type: string
            format: date
          required: false
          description: A date in YYYY-MM-DD format
          example: '2019-07-23'
      responses:
        '200':
          description: Valid BIC
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BicValidity'
              example:
                bic: DEUTDEFFXXX
                validity: VBIC
                effective_date: '2019-07-23Z'
            application/xml:
              schema:
                $ref: '#/components/schemas/BicValidity'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <validity>
                  <bic>DEUTDEFFXXX</bic>
                  <validity>VBIC</validity>
                  <effective_date>2019-07-23Z</effective_date>
                </validity>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.MBRI
                    severity: Fatal
                    text: Invalid BIC resource identifier (not matching expression [A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}) or missing BIC resource identifier
                    user_message: Invalid BIC format or BIC not supplied
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.MBRI</code>
                    <severity>Fatal</severity>
                    <text>Invalid BIC resource identifier (not matching expression [A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}) or missing BIC resource identifier</text>
                    <user_message>Invalid BIC format or BIC not supplied</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: Supplied BIC is not formally valid or does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.IBIC
                    severity: Fatal
                    text: BIC resource identifier matches expression [A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1},but it does not exist within the BIC Directory (or is invalid on the supplied date, if supplied)
                    user_message: Invalid BIC
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.IBIC</code>
                    <severity>Fatal</severity>
                    <text>BIC resource identifier matches expression [A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1},but it does not exist within the BIC Directory (or is invalid on the supplied date, if supplied)</text>
                    <user_message>Invalid BIC</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/bics/{bic}/lei':
    get:
      tags:
        - bics
      summary: Get the LEI for a BIC.
      description: For a given BIC (Business Identifier Code), you can retrieve the LEI (Legal Entity Identifier) of that BIC.
      operationId: getLeiFromBic
      parameters:
        - in: path
          name: bic
          schema:
            $ref: '#/components/schemas/Bic'
          required: true
          description: BIC (8-characters or 11-characters) for which the corresponding LEI is requested
          example: DEUTDEFFXXX
      responses:
        '200':
          description: Corresponding LEI found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LeiFound'
              example:
                lei: 7LTWFZYICNSX8D621K86
            application/xml:
              schema:
                $ref: '#/components/schemas/LeiFound'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <lei>
                  <lei>7LTWFZYICNSX8D621K86</lei>
                </lei>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: Corresponding LEI not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.LEIN
                    severity: Fatal
                    text: The BIC does not exist or has no LEI associated
                    user_message: No corresponding LEI found
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.LEIN</code>
                    <severity>Fatal</severity>
                    <text>The BIC does not exist or has no LEI associated</text>
                    <user_message>No corresponding LEI found</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/bics/{bic}/national_ids':
    get:
      tags:
        - bics
      summary: Get National IDs for a BIC.
      description: For a given BIC, you can retrieve the National IDs of that BIC.
      operationId: getNationalIdsFromBic
      parameters:
        - in: path
          name: bic
          schema:
            $ref: '#/components/schemas/Bic'
          required: true
          description: BIC (8-characters or 11-characters) for which the corresponding National IDs are requested
          example: DEUTDEFFXXX
      responses:
        '200':
          description: Corresponding National ID(s) found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NationalIdsFound'
              example:
                national_ids:
                  - id: '015246'
                    id_type: 'US-CHIPS6'
                    national_id_type: CHIPS
                  - id: '352002'
                    id_type: 'HK-ICC6'
                    national_id_type: HKICL
                    iso_clc_type: HKNCC
            application/xml:
              schema:
                $ref: '#/components/schemas/NationalIdsFound'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <national_ids>
                  <national_ids>
                    <id>015246</id>
                    <id_type>US-CHIPS6</id_type>
                    <national_id_type>CHIPS</national_id_type>
                  </national_ids>
                  <national_ids>
                    <id>352002</id>
                    <id_type>HK-ICC6</id_type>
                    <national_id_type>HKICL</national_id_type>
                    <iso_clc_type>HKNCC</iso_clc_type>
                  </national_ids>
                </national_ids>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.MBRI
                    severity: Fatal
                    text: Missing BIC resource identifier
                    user_message: Wrong URL format
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.MBRI</code>
                    <severity>Fatal</severity>
                    <text>Missing BIC resource identifier</text>
                    <user_message>Wrong URL format</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: Corresponding National ID(s) not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.NNIF
                    severity: Fatal
                    text: The BIC does not exist or has no national ID associated
                    user_message: No corresponding national ID found
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.NNIF</code>
                    <severity>Fatal</severity>
                    <text>The BIC does not exist or has no national ID associated</text>
                    <user_message>No corresponding national ID found</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/bics/{bic}/reachability':
    get:
      tags:
        - bics
      summary: Validate SEPA reachability of a BIC.
      description: For a given BIC and SEPA payment scheme, you can validate that it can be reached for SEPA payments and return the SEPA channel CSM (Clearing and Settlement System) through which the bank owning the BIC can be reached; the response also returns the adherence BIC that signed the adherence agreement with the EPC and the intermediary institution's BIC (if applicable and available).
      operationId: getSepaReachabilityFromBic
      parameters:
        - in: path
          name: bic
          schema:
            $ref: '#/components/schemas/Bic'
          required: true
          description: BIC (8-characters or 11-characters) for which SEPA reachability is requested
          example: DEUTDEFFXXX
        - in: query
          name: sepa_scheme
          schema:
            type: string
            minLength: 1
            maxLength: 7
          required: true
          description: SEPA service code
          example: SDD
      responses:
        '200':
          description: Payment channel(s) found with the supplied BIC and scheme
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BicReachabilityFound'
              example:
                payment_channels:
                  - id: EBAS
                    member_type: IDRC
                    direct_participant: DEUTDEFFXXX
                  - id: DBSC
                    member_type: DRCT
                  - id: TIPS
                    member_type: UKWN
            application/xml:
              schema:
                $ref: '#/components/schemas/BicReachabilityFound'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <reachability>
                  <payment_channels>
                    <id>EBAS</id>
                    <member_type>IDRC</member_type>
                    <direct_participant>DEUTDEFFXXX</direct_participant>
                  </payment_channels>
                  <payment_channels>
                    <id>DBSC</id>
                    <member_type>DRCT</member_type>
                  </payment_channels>
                  <payment_channels>
                    <id>TIPS</id>
                    <member_type>UKWN</member_type>
                  </payment_channels>
                </reachability>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.ISSC
                    severity: Fatal
                    text: SEPA scheme parameter not supplied, supplied with a wrong parameter name or the SEPA scheme does not exist (only SDD, SCT, SDB and SCTINST allowed)
                    user_message: Invalid SEPA scheme parameter
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.ISSC</code>
                    <severity>Fatal</severity>
                    <text>SEPA scheme parameter not supplied, supplied with a wrong parameter name or the SEPA scheme does not exist (only SDD, SCT, SDB and SCTINST allowed)</text>
                    <user_message>Invalid SEPA scheme parameter</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: No payment channel found with the supplied BIC and scheme or wrong URL format
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.ICHA
                    severity: Fatal
                    text: The supplied BIC does not exist or has no payment channel associated with the supplied SEPA scheme
                    user_message: No payment channel found with the supplied BIC and scheme
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.ICHA</code>
                    <severity>Fatal</severity>
                    <text>The supplied BIC does not exist or has no payment channel associated with the supplied SEPA scheme</text>
                    <user_message>No payment channel found with the supplied BIC and scheme</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/bics/{bic}/ssis':
    get:
      tags:
        - bics
      summary: Get SSIs for a BIC.
      description: For a given BIC, you can retrieve the Standing Settlement Instructions (SSIs) for that BIC, for a given currency, and (optionally) an asset category.
      operationId: getSsisFromBic
      parameters:
        - in: path
          name: bic
          schema:
            $ref: '#/components/schemas/Bic'
          required: true
          description: BIC (8-characters or 11-characters) for which the corresponding SSIs are requested
          example: DEUTDEFFXXX
        - in: query
          name: iso_currency_code
          schema:
            $ref: '#/components/schemas/CurrencyCode'
          required: true
          description: A 3-character currency code for which SSI data needs to be retrieved
          example: EUR
        - in: query
          name: asset_category
          schema:
            $ref: '#/components/schemas/SsiAssetCategory'
          required: false
          description: Code that indicates the asset category for which SSI data needs to be retrieved
          example: COPA
      responses:
        '200':
          description: Records found matching the supplied parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SsisFound'
              example:
                ssis:
                  - owner:
                      bic: DEUTDEFFXXX
                      city: FRANKFURT AM MAIN
                      institution_name: DEUTSCHE BANK AG
                      iso_country_code: DE
                    account_holding_institution:
                      bic: NBADAEAAXXX
                      institution_name: FIRST ABU DHABI BANK PJSC
                      iso_country_code: AE
                      account_number: AE340350000000250007510
                      institution_type: CORRESPONDENT
                      preferred: false
                    traffic_flag: false
                    update_date: '2025-05-07'
                    asset_category: COPA
                    iso_currency_code: AED
                  - owner:
                      bic: DEUTDEFFXXX
                      city: FRANKFURT AM MAIN
                      institution_name: DEUTSCHE BANK AG
                      iso_country_code: DE
                    account_holding_institution:
                      bic: NBADAEAAXXX
                      institution_name: FIRST ABU DHABI BANK PJSC
                      iso_country_code: AE
                      account_number: AE340350000000250007510
                      institution_type: CORRESPONDENT
                      preferred: false
                    traffic_flag: false
                    update_date: '2025-05-07'
                    asset_category: FOEX
                    iso_currency_code: AED
            application/xml:
              schema:
                $ref: '#/components/schemas/SsisFound'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <ssis>
                  <ssis>
                    <owner>
                    <bic>DEUTDEFFXXX</bic>
                      <city>FRANKFURT AM MAIN</city>
                      <institution_name>DEUTSCHE BANK AG</institution_name>
                      <iso_country_code>DE</iso_country_code>
                    </owner>
                    <account_holding_institution>
                      <bic>NBADAEAAXXX</bic>
                      <institution_name>FIRST ABU DHABI BANK PJSC</institution_name>
                      <iso_country_code>AE</iso_country_code>
                      <account_number>AE340350000000250007510</account_number>
                      <institution_type>CORRESPONDENT</institution_type>
                      <preferred>false</preferred>
                    </account_holding_institution>
                    <traffic_flag>false</traffic_flag>
                    <update_date>2025-05-07</update_date>
                    <asset_category>COPA</asset_category>
                    <iso_currency_code>AED</iso_currency_code>
                  </ssis>
                  <ssis>
                    <owner>
                      <bic>DEUTDEFFXXX</bic>
                      <city>FRANKFURT AM MAIN</city>
                      <institution_name>DEUTSCHE BANK AG</institution_name>
                      <iso_country_code>DE</iso_country_code>
                    </owner>
                    <account_holding_institution>
                      <bic>NBADAEAAXXX</bic>
                      <institution_name>FIRST ABU DHABI BANK PJSC</institution_name>
                      <iso_country_code>AE</iso_country_code>
                      <account_number>AE340350000000250007510</account_number>
                      <institution_type>CORRESPONDENT</institution_type>
                      <preferred>false</preferred>
                    </account_holding_institution>
                    <traffic_flag>false</traffic_flag>
                    <update_date>2025-05-07</update_date>
                    <asset_category>FOEX</asset_category>
                    <iso_currency_code>AED</iso_currency_code>
                  </ssis>
                </ssis>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.ICCY
                    severity: Fatal
                    text: Currency parameter not supplied, supplied with a wrong parameter name or it does not exist (not ISO 4217-compliant)
                    user_message: Invalid currency parameter
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.ICCY</code>
                    <severity>Fatal</severity>
                    <text>Currency parameter not supplied, supplied with a wrong parameter name or it does not exist (not ISO 4217-compliant)</text>
                    <user_message>Invalid currency parameter</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: No records found matching the supplied input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.NOSS
                    severity: Fatal
                    text: The supplied BIC does not exist or has no SSI with the specified currency and category
                    user_message: No SSI matching the supplied parameters
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.NOSS</code>
                    <severity>Fatal</severity>
                    <text>The supplied BIC does not exist or has no SSI with the specified currency and category</text>
                    <user_message>No SSI matching the supplied parameters</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/bics/{bic}/connected_bic':
    get:
      tags:
        - bics
      summary: Get connected BIC.
      description: For a given BIC, retrieve the related connected BIC (or Swift BIC), which is a BIC connected to the Swift network, therefore usable in the header of a Swift message. If available, it is a BIC of the same institution, otherwise it's the correspondent through which the input BIC connects.
      operationId: getConnectedBic
      parameters:
        - in: path
          name: bic
          schema:
            $ref: '#/components/schemas/Bic'
          required: true
          description: BIC resource identifier
          example: DEUTDEFFXXX
      responses:
        '200':
          description: Connected BIC found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectedBicFound'
              example:
                connected_bic: WELADEDDXXX
            application/xml:
              schema:
                $ref: '#/components/schemas/ConnectedBicFound'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <connected_bic>
                  <connected_bic>WELADEDDXXX</connected_bic>
                </connected_bic>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.INVP
                    severity: Fatal
                    text: Invalid parameter
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.INVP</code>
                    <severity>Fatal</severity>
                    <text>Invalid parameter</text>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: Input BIC does not exist of connected BIC not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.NCBF
                    severity: Fatal
                    text: No connected BIC found
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.NCBF</code>
                    <severity>Fatal</severity>
                    <text>No connected BIC found</text>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/leis/{lei}/bic':
    get:
      tags:
        - leis
      summary: Get the BIC for an LEI.
      description: For a given LEI, you can retrieve the BIC of that LEI.
      operationId: getBicFromLei
      parameters:
        - in: path
          name: lei
          schema:
            $ref: '#/components/schemas/Lei'
          required: true
          description: LEI (20-characters) for which the corresponding BIC is requested
          example: BFXS5XCH7N0Y05NIXW11
      responses:
        '200':
          description: Corresponding BIC found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LeiBic'
              example:
                bic: DEUTDEFFXXX
            application/xml:
              schema:
                $ref: '#/components/schemas/LeiBic'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <bic>
                  <bic>DEUTDEFFXXX</bic>
                </bic>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.MLRI
                    severity: Fatal
                    text: Missing LEI resource identifier
                    user_message: Wrong URL format
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.MLRI</code>
                    <severity>Fatal</severity>
                    <text>Missing LEI resource identifier</text>
                    <user_message>Wrong URL format</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: Corresponding BIC not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.BINF
                    severity: Fatal
                    text: The LEI does not exist or has no BIC associated
                    user_message: No corresponding BIC found
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.BINF</code>
                    <severity>Fatal</severity>
                    <text>The LEI does not exist or has no BIC associated</text>
                    <user_message>No corresponding BIC found</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/leis/{lei}/validity':
    get:
      tags:
        - leis
      summary: Check validity of a LEI.
      description: You can check whether a LEI is formally correct and exists.
      operationId: getLeiValidity
      parameters:
        - in: path
          name: lei
          schema:
            $ref: '#/components/schemas/Lei'
          required: true
          description: LEI to validate
          example: BFXS5XCH7N0Y05NIXW11
      responses:
        '200':
          description: Valid LEI
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LeiValidity'
              example:
                lei: BFXS5XCH7N0Y05NIXW11
                validity: VLEI
            application/xml:
              schema:
                $ref: '#/components/schemas/LeiValidity'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <validity>
                  <lei>BFXS5XCH7N0Y05NIXW11</lei>
                  <validity>VLEI</validity>
                </validity>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.MCRI
                    severity: Fatal
                    text: Missing LEI resource identifier
                    user_message: Wrong URL format
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.MCRI</code>
                    <severity>Fatal</severity>
                    <text>Missing LEI resource identifier</text>
                    <user_message>Wrong URL format</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: Invalid LEI or LEI not found or wrong URL format
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.ILEI
                    severity: Fatal
                    text: LEI resource identifier matches expression [0-9A-Z]{20}, but it does not exist
                    user_message: Invalid LEI
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.ILEI</code>
                    <severity>Fatal</severity>
                    <text>LEI resource identifier matches expression [0-9A-Z]{20}, but it does not exist</text>
                    <user_message>Invalid LEI</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/leis/{lei}':
    get:
      tags:
        - leis
      summary: Get details of a LEI.
      description: For a given LEI, you can retrieve the details of that LEI.
      operationId: getLeiDetails
      parameters:
        - in: path
          name: lei
          schema:
            $ref: '#/components/schemas/Lei'
          required: true
          description: LEI for which details are requested
          example: BFXS5XCH7N0Y05NIXW11
      responses:
        '200':
          description: Corresponding LEI found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LeiDetails'
              example:
                lei: BFXS5XCH7N0Y05NIXW11
                legal_name: ABN AMRO Bank N.V.
                legal_jurisdiction: NL
                entity_legal_form_code: B5PM
                entity_status: ACTIVE
                initial_registration_date: '2012-06-06'
                last_update_date: '2025-06-10'
                registration_status: ISSUED
                address:
                  street_address:
                    - Gustav Mahlerlaan 10
                  city: Amsterdam
                  postal_code: 1082PP
                  country_name: NETHERLANDS
                head_quarters_address:
                  street_address:
                    - Gustav Mahlerlaan 10
                  city: Amsterdam
                  postal_code: 1082PP
                  country_name: NETHERLANDS
            application/xml:
              schema:
                $ref: '#/components/schemas/LeiDetails'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <lei>
                  <lei>BFXS5XCH7N0Y05NIXW11</lei>
                  <legal_name>ABN AMRO Bank N.V.</legal_name>
                  <legal_jurisdiction>NL</legal_jurisdiction>
                  <entity_legal_form_code>B5PM</entity_legal_form_code>
                  <entity_status>ACTIVE</entity_status>
                  <initial_registration_date>2012-06-06</initial_registration_date>
                  <last_update_date>2025-06-10</last_update_date>
                  <registration_status>ISSUED</registration_status>
                  <address>
                    <street_address>Gustav Mahlerlaan 10</street_address>
                    <city>Amsterdam</city>
                    <postal_code>1082PP</postal_code>
                    <country_name>NETHERLANDS</country_name>
                  </address>
                  <head_quarters_address>
                    <street_address>Gustav Mahlerlaan 10</street_address>
                    <city>Amsterdam</city>
                    <postal_code>1082PP</postal_code>
                    <country_name>NETHERLANDS</country_name>
                  </head_quarters_address>
                </lei>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: LEI not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.LENF
                    severity: Fatal
                    text: The LEI does not exist
                    user_message: LEI not found
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.LENF</code>
                    <severity>Fatal</severity>
                    <text>The LEI does not exist</text>
                    <user_message>LEI not found</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/national_ids/{national_id}':
    get:
      tags:
        - national_ids
      summary: Get details of a National ID.
      description: For a given National ID, you can retrieve the details of that National ID, that is the bank name or business name, and the address. You must provide either a country code, or an indication to which scheme the National ID belongs.
      operationId: getNationalIdDetails
      parameters:
        - in: path
          name: national_id
          schema:
            $ref: '#/components/schemas/NationalIdCode'
          required: true
          description: National ID (a synonym for clearing code, routing code, sort code, bank and branch ID) for which details are requested
          example: '50070010'
        - in: query
          name: country_code
          schema:
            $ref: '#/components/schemas/CountryCode'
          required: false
          description: The 2-character ISO 3166-1 country code of the country that issued the National ID (mandatory, when scheme parameter is not provided)
          example: DE
        - in: query
          name: scheme
          schema:
            $ref: '#/components/schemas/NationalIdScheme'
          required: false
          description: The scheme (a synonym for the National ID type) under which the National ID is defined (mandatory, when country_code parameter is not provided)
          example: 'DE-BLZ8'
        - in: query
          name: only_local_language
          schema:
            $ref: '#/components/schemas/BooleanAsString'
          required: false
          description: Whether fields must be returned in local language
          example: 'false'
      responses:
        '200':
          description: Corresponding National ID(s) found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NationalIdDetailsFound'
              example:
                national_ids:
                  - national_id: '50070010'
                    id_type: DE-BLZ8
                    national_id_type: BLZ
                    iso_clc_type: DEBLZ
                    office_type: HO
                    name: DEUTSCHE BANK
                    department: DEUTSCHE BANK
                    utc_offset: "+01:00"
                    unstructured_address:
                      address_line_1: FRANKFURT AM MAIN, HESSEN, 60254
                    structured_address:
                      post_code: '60254'
                      town_name: FRANKFURT AM MAIN
                      country_subdivision_name: HESSEN
                      country_code: DE
                      country_name: GERMANY
                  - national_id: '50070010'
                    id_type: DE-BLZ8
                    national_id_type: BLZ
                    iso_clc_type: DEBLZ
                    office_type: DB
                    name: DEUTSCHE BANK
                    department: DEUTSCHE BANK
                    utc_offset: "+01:00"
                    unstructured_address:
                      address_line_1: BAD HOMBURG, HESSEN, 61348
                    structured_address:
                      post_code: '61348'
                      town_name: BAD HOMBURG
                      country_subdivision_name: HESSEN
                      country_code: DE
                      country_name: GERMANY
            application/xml:
              schema:
                $ref: '#/components/schemas/NationalIdDetailsFound'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <national_ids>
                  <national_ids>
                    <national_id>50070010</national_id>
                    <id_type>DE-BLZ8</id_type>
                    <national_id_type>BLZ</national_id_type>
                    <iso_clc_type>DEBLZ</iso_clc_type>
                    <office_type>HO</office_type>
                    <name>DEUTSCHE BANK</name>
                    <department>DEUTSCHE BANK</department>
                    <utc_offset>+01:00</utc_offset>
                    <unstructured_address>
                      <address_line_1>FRANKFURT AM MAIN, HESSEN, 60254</address_line_1>
                    </unstructured_address>
                    <structured_address>
                      <post_code>60254</post_code>
                      <town_name>FRANKFURT AM MAIN</town_name>
                      <country_subdivision_name>HESSEN</country_subdivision_name>
                      <country_code>DE</country_code>
                      <country_name>GERMANY</country_name>
                    </structured_address>
                  </national_ids>
                  <national_ids>
                    <national_id>50070010</national_id>
                    <id_type>DE-BLZ8</id_type>
                    <national_id_type>BLZ</national_id_type>
                    <iso_clc_type>DEBLZ</iso_clc_type>
                    <office_type>DB</office_type>
                    <name>DEUTSCHE BANK</name>
                    <department>DEUTSCHE BANK</department>
                    <utc_offset>+01:00</utc_offset>
                    <unstructured_address>
                      <address_line_1>BAD HOMBURG, HESSEN, 61348</address_line_1>
                    </unstructured_address>
                    <structured_address>
                      <post_code>61348</post_code>
                      <town_name>BAD HOMBURG</town_name>
                      <country_subdivision_name>HESSEN</country_subdivision_name>
                      <country_code>DE</country_code>
                      <country_name>GERMANY</country_name>
                    </structured_address>
                  </national_ids>
                </national_ids>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.INIF
                    severity: Fatal
                    text: Invalid National ID format
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.INIF</code>
                    <severity>Fatal</severity>
                    <text>Invalid National ID format</text>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: No corresponding National ID found or wrong URL format
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.NNIF
                    severity: Fatal
                    text: National ID not found
                    user_message: National ID not found
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.NNIF</code>
                    <severity>Fatal</severity>
                    <text>National ID not found</text>
                    <user_message>National ID not found</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/national_ids/{national_id}/validity':
    get:
      tags:
        - national_ids
      summary: Check the Validity of a National ID.
      description: With this API call, you can check whether a National ID format is correct and the value exists in Swift's list of National IDs; you need to provide the National ID, and either a country code, or an indication to which scheme this National ID belongs.
      operationId: getNationalIdValidity
      parameters:
        - in: path
          name: national_id
          schema:
            $ref: '#/components/schemas/NationalIdCode'
          required: true
          description: National ID (a synonym for clearing code, routing code, sort code, bank and branch ID) to validate
          example: '50070010'
        - in: query
          name: country_code
          schema:
            $ref: '#/components/schemas/CountryCode'
          required: false
          description: The 2-character ISO 3166-1 country code of the country that issued the National ID (mandatory, when scheme parameter is not provided)
          example: DE
        - in: query
          name: scheme
          schema:
            $ref: '#/components/schemas/NationalIdScheme'
          required: false
          description: The scheme (a synonym for the National ID type) under which the National ID is defined (mandatory, when country_code parameter is not provided); it maps all possible National ID types (id_type, national_id_type, iso_clc_type)
          example: 'DE-BLZ8'
      responses:
        '200':
          description: The National ID is valid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidNationalIdWithValidityFlag'
              example:
                national_id: '50070010'
                id_type: 'DE-BLZ8'
                national_id_type: BLZ
                iso_clc_type: DEBLZ
                validity: valid
            application/xml:
              schema:
                $ref: '#/components/schemas/ValidNationalIdWithValidityFlag'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <validity>
                  <national_id>50070010</national_id>
                  <id_type>DE-BLZ8</id_type>
                  <national_id_type>BLZ</national_id_type>
                  <iso_clc_type>DEBLZ</iso_clc_type>
                  <validity>valid</validity>
                </validity>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.ICTP
                    severity: Fatal
                    text: Supplied scheme does not exist (/AN and /FN suffixes are not allowed)
                    user_message: Invalid scheme parameter
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.ICTP</code>
                    <severity>Fatal</severity>
                    <text>Supplied scheme does not exist (/AN and /FN suffixes are not allowed)</text>
                    <user_message>Invalid scheme parameter</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: The National ID is formally invalid or is valid but it does not exist, or wrong URL format
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.INID
                    severity: Fatal
                    text: The existence of the National ID cannot be confirmed against Swift's list of National IDs because it is either an invalid code or Swift's list is incomplete. However, its format is correct.
                    user_message: Invalid National ID
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.INID</code>
                    <severity>Fatal</severity>
                    <text>The existence of the National ID cannot be confirmed against Swift's list of National IDs because it is either an invalid code or Swift's list is incomplete. However, its format is correct.</text>
                    <user_message>Invalid National ID</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/national_ids/{national_id}/bics':
    get:
      tags:
        - national_ids
      summary: Get BICs of a National ID.
      description: For a given National ID, you can retrieve the BIC or the BICs of that National ID; you need to provide the National ID, and either a country code, or an indication to which scheme this National ID belongs.
      operationId: getBicsFromNationalId
      parameters:
        - in: path
          name: national_id
          schema:
            $ref: '#/components/schemas/NationalIdCode'
          required: true
          description: National ID (a synonym for clearing code, routing code, sort code, bank and branch ID) for which the corresponding BICs are requested
          example: '50070010'
        - in: query
          name: country_code
          schema:
            $ref: '#/components/schemas/CountryCode'
          required: false
          description: The 2-character ISO 3166-1 country code of the country that issued the National ID (mandatory, when scheme parameter is not provided)
          example: DE
        - in: query
          name: scheme
          schema:
            $ref: '#/components/schemas/NationalIdScheme'
          required: false
          description: The scheme (a synonym for the National ID type) under which the National ID is defined (mandatory, when country_code parameter is not provided)
          example: 'DE-BLZ8'
      responses:
        '200':
          description: Corresponding BIC(s) found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BicsFound'
              example:
                bics:
                  - AABSDE31XXX
            application/xml:
              schema:
                $ref: '#/components/schemas/BicsFound'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <bics>
                  <bics>AABSDE31XXX</bics>
                </bics>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.ICTP
                    severity: Fatal
                    text: Supplied scheme does not exist
                    user_message: Invalid scheme parameter
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.ICTP</code>
                    <severity>Fatal</severity>
                    <text>Supplied scheme does not exist</text>
                    <user_message>Invalid scheme parameter</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: Corresponding BIC(s) not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.BINF
                    severity: Fatal
                    text: The supplied national ID does not exist, does not exist with the supplied scheme or country code or has no BIC associated
                    user_message: No corresponding BIC found
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.BINF</code>
                    <severity>Fatal</severity>
                    <text>The supplied national ID does not exist, does not exist with the supplied scheme or country code or has no BIC associated</text>
                    <user_message>No corresponding BIC found</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/country_codes/{country_code}/validity':
    get:
      tags:
        - country_codes
      summary: Check validity of a country code.
      description: You can check whether a country code is correct and valid.
      operationId: getCountryCodeValidity
      parameters:
        - in: path
          name: country_code
          schema:
            $ref: '#/components/schemas/CountryCodeExtended'
          required: true
          description: Country code (2-letters, 3-letters or 3-digits) to validate
          example: DE
      responses:
        '200':
          description: Valid country code
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CountryCodeValidity'
              example:
                country_code: IT
                validity: VCOC
            application/xml:
              schema:
                $ref: '#/components/schemas/CountryCodeValidity'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <validity>
                  <country_code>IT</country_code>
                  <validity>VCOC</validity>
                </validity>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.MCRI
                    severity: Fatal
                    text: 'The country code is not in one of the three supported formats: 2a, 3a or 3n'
                    user_message: 'The country code is not in one of the three supported formats: 2a, 3a or 3n'
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.MCRI</code>
                    <severity>Fatal</severity>
                    <text>The country code is not in one of the three supported formats: 2a, 3a or 3n</text>
                    <user_message>The country code is not in one of the three supported formats: 2a, 3a or 3n</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: Invalid country code or country code not found or wrong URL format
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.ICOC
                    severity: Fatal
                    text: The country code does not exist
                    user_message: The country code matches one of the three supported formats (2a, 3a or 3n), but it does not exist
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.ICOC</code>
                    <severity>Fatal</severity>
                    <text>The country code does not exist</text>
                    <user_message>The country code matches one of the three supported formats (2a, 3a or 3n), but it does not exist</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/country_codes/{country_code}':
    get:
      tags:
        - country_codes
      summary: Get details of a country code.
      description: For a given country code, you can retrieve the details of that country code, that is the name, other codes and official currencies.
      operationId: getCountryCodeDetails
      parameters:
        - in: path
          name: country_code
          schema:
            $ref: '#/components/schemas/CountryCodeExtended'
          required: true
          description: Country code (2-letters, 3-letters or 3-digits) for which details are requested
          example: DE
      responses:
        '200':
          description: Corresponding country code found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Country'
              example:
                name: ITALY
                iso_2a_code: IT
                iso_3a_code: ITA
                iso_3n_code: '380'
                currencies:
                  - iso_3a_code: EUR
                    iso_3n_code: '978'
                    name: EURO
            application/xml:
              schema:
                $ref: '#/components/schemas/Country'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <country_code>
                  <name>ITALY</name>
                  <iso_2a_code>IT</iso_2a_code>
                  <iso_3a_code>ITA</iso_3a_code>
                  <iso_3n_code>380</iso_3n_code>
                  <currencies>
                    <iso_3a_code>EUR</iso_3a_code>
                    <iso_3n_code>978</iso_3n_code>
                    <name>EURO</name>
                  </currencies>
                </country_code>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: No corresponding country code found or wrong URL format
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.CONF
                    severity: Fatal
                    text: The country code does not exist
                    user_message: The country code does not exist
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.CONF</code>
                    <severity>Fatal</severity>
                    <text>The country code does not exist</text>
                    <user_message>The country code does not exist</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/currency_codes/{currency_code}/validity':
    get:
      tags:
        - currency_codes
      summary: Check validity of a currency code.
      description: You can check whether a currency code is correct and valid.
      operationId: getCurrencyCodeValidity
      parameters:
        - in: path
          name: currency_code
          schema:
            $ref: '#/components/schemas/CurrencyCodeExtended'
          required: true
          description: Currency code (3-letters or 3-digits) to validate
          example: EUR
      responses:
        '200':
          description: Valid currency code
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CurrencyCodeValidity'
              example:
                currency_code: EUR
                validity: VCUC
            application/xml:
              schema:
                $ref: '#/components/schemas/CurrencyCodeValidity'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <validity>
                  <currency_code>EUR</currency_code>
                  <validity>VCUC</validity>
                </validity>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.MCRI
                    severity: Fatal
                    text: 'The currency code is not in one of the two supported formats: 3a or 3n'
                    user_message: 'The currency code is not in one of the two supported formats: 3a or 3n'
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.MCRI</code>
                    <severity>Fatal</severity>
                    <text>The currency code is not in one of the two supported formats: 3a or 3n</text>
                    <user_message>The currency code is not in one of the two supported formats: 3a or 3n</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: Invalid currency code or currency code not found or wrong URL format
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.ICUC
                    severity: Fatal
                    text: 'The currency code is not in one of the two supported formats: 3a or 3n'
                    user_message: Invalid currency code
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.ICUC</code>
                    <severity>Fatal</severity>
                    <text>The currency code matches one of the two supported formats (3a or 3n), but it does not exist</text>
                    <user_message>Invalid currency code</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/currency_codes/{currency_code}':
    get:
      tags:
        - currency_codes
      summary: Get details of a currency code.
      description: For a given currency code, you can retrieve the details of that currency code, that is the name, other codes, the fractional digits and the list of countries where the currency is used.
      operationId: getCurrencyCodeDetails
      parameters:
        - in: path
          name: currency_code
          schema:
            $ref: '#/components/schemas/CurrencyCodeExtended'
          required: true
          description: Currency code (3-letters or 3-digits) for which details are requested
          example: EUR
      responses:
        '200':
          description: Corresponding currency code found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Currency'
              example:
                name: US DOLLAR
                iso_3a_code: USD
                iso_3n_code: '840'
                fractional_digits: 2
                countries:
                  - iso_2a_code: AS
                    iso_3a_code: ASM
                    iso_3n_code: '016'
                    name: AMERICAN SAMOA
                  - iso_2a_code: BQ
                    iso_3a_code: BES
                    iso_3n_code: '535'
                    name: BONAIRE, SINT EUSTATIUS AND SABA
            application/xml:
              schema:
                $ref: '#/components/schemas/Currency'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <currency_code>
                  <name>US DOLLAR</name>
                  <iso_3a_code>USD</iso_3a_code>
                  <iso_3n_code>840</iso_3n_code>
                  <fractional_digits>2</fractional_digits>
                  <countries>
                    <iso_2a_code>AS</iso_2a_code>
                    <iso_3a_code>ASM</iso_3a_code>
                    <iso_3n_code>016</iso_3n_code>
                    <name>AMERICAN SAMOA</name>
                  </countries>
                  <countries>
                    <iso_2a_code>BQ</iso_2a_code>
                    <iso_3a_code>BES</iso_3a_code>
                    <iso_3n_code>535</iso_3n_code>
                    <name>BONAIRE, SINT EUSTATIUS AND SABA</name>
                  </countries>
                </currency_code>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: No corresponding currency code found or wrong URL format
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.CUNF
                    severity: Fatal
                    text: The currency code does not exist
                    user_message: The currency code does not exist
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.CUNF</code>
                    <severity>Fatal</severity>
                    <text>The currency code does not exist</text>
                    <user_message>The currency code does not exist</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/currency_codes/{currency_code}/amount_validity':
    get:
      tags:
        - currency_codes
      summary: Check validity of a currency amount.
      description: You can check whether an amount is valid for a specific currency.
      operationId: getCurrencyAmountValidity
      parameters:
        - in: path
          name: currency_code
          schema:
            $ref: '#/components/schemas/CurrencyCodeExtended'
          required: true
          description: Currency code (3-letters or 3-digits) of the amount to validate
          example: EUR
        - in: query
          name: amount
          schema:
            type: string
            pattern: '^[0-9]*,[0-9]*$'
          required: true
          description: Currency amount to validate
          example: '12,34'
      responses:
        '200':
          description: Valid amount
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CurrencyAmountValidity'
              example:
                amount: '12,34'
                currency_code: EUR
                validity: VAMT
            application/xml:
              schema:
                $ref: '#/components/schemas/CurrencyAmountValidity'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <amount_validity>
                  <amount>12,34</amount>
                  <currency_code>EUR</currency_code>
                  <validity>VAMT</validity>
                </amount_validity>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: Invalid currency code, currency code not found, invalid amount decimals or wrong URL format
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.IAMT
                    severity: Fatal
                    text: Invalid amount
                    user_message: Invalid amount
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.IAMT</code>
                    <severity>Fatal</severity>
                    <text>Invalid amount</text>
                    <user_message>Invalid amount</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/account_numbers/validity':
    post:
      tags:
        - account_numbers
        - sensitive_data
      summary: Check validity of account number formats, including IBANs.
      description: Check validity of account number formats, including IBANs, issued in almost any country in the world.
      operationId: getAccountNumberValidity
      requestBody:
        description: Object containing account number to validate and additional details to make validation more specific
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - account_number
              properties:
                account_number:
                  $ref: '#/components/schemas/FullAccountNumber'
                  # description: Account number to validate
                country_code:
                  $ref: '#/components/schemas/CountryCode'
                  # description: ISO 2-letter country code of the country where the account is held
                is_iban:
                  type: boolean
                  # description: Whether the account number must be handled as an IBAN
                usage:
                  type: string
                  enum:
                    - retail
                    - wholesale
                  # description: How the account number is used (only for a few countries)
                national_id:
                  type: string
                  pattern: '^[0-9a-zA-Z]{2,20}$'
                  # description: National ID (bank ID, clearing code, sort code, routing number) of the account holding institution
                bic:
                  $ref: '#/components/schemas/Bic'
                  # description: BIC-8 or BIC-11 of the account holding institution
              additionalProperties: false
            examples:
              IT:
                summary: Italian account number
                value:
                  account_number: X0542811101000000123456
                  country_code: IT
                  usage: retail
                  is_iban: false
      responses:
        '200':
          description: Valid account number
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountNumberValidity'
              example:
                account_number: X0542811101000000123456
                validity: AVAL
            application/xml:
              schema:
                $ref: '#/components/schemas/AccountNumberValidity'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <validity>
                  <account_number>X0542811101000000123456</account_number>
                  <validity>AVAL</validity>
                </validity>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.ANFI
                    severity: Fatal
                    text: The format of the account number is different from the allowed formats
                    user_message: Account number format is invalid
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.ANFI</code>
                    <severity>Fatal</severity>
                    <text>The format of the account number is different from the allowed formats</text>
                    <user_message>Account number format is invalid</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: Invalid account format or invalid checksum or wrong URL format
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.ANCI
                    severity: Fatal
                    text: At least one checksum is different from the calculated checksum
                    user_message: 'At least one account number checksum is invalid: CHECKSUM'
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.ANCI</code>
                    <severity>Fatal</severity>
                    <text>At least one checksum is different from the calculated checksum</text>
                    <user_message>At least one account number checksum is invalid: CHECKSUM</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethodSensitiveData'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/account_numbers/validity-and-institution-details':
    post:
      tags:
        - account_numbers
        - sensitive_data
      summary: Check validity of account number formats, including IBANs, and get their institution details.
      description: Check validity of account number formats, including IBANs, issued in almost any country in the world, and get their institution details.
      operationId: getAccountNumberValidityAndInstitutionDetails
      requestBody:
        description: Object containing account number to validate and additional details to make validation more specific
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - account_number
                - country_code
              properties:
                account_number:
                  $ref: '#/components/schemas/FullAccountNumber'
                  # description: Account number to validate
                country_code:
                  $ref: '#/components/schemas/CountryCode'
                  # description: ISO 2-letter country code of the country where the account is held
                national_id:
                  type: string
                  pattern: '^[0-9a-zA-Z]{2,20}$'
                  # description: National ID (bank ID, clearing code, sort code, routing number) of the account holding institution
                bic:
                  $ref: '#/components/schemas/Bic'
                  # description: BIC-8 or BIC-11 of the account holding institution
              additionalProperties: false
            examples:
              IT:
                summary: Italian account number
                value:
                  account_number: X0542811101000000123456
                  country_code: IT
      responses:
        '200':
          description: Valid account number and its institution details found or invalid account number because of domain-related reason.
          content:
            application/json:
              schema:
                oneOf:
                  # Valid account number, with its details found.
                  - $ref: '#/components/schemas/AccountNumberValidityAndInstitutionDetails'
                  # Invalid account number or account holding institution not found.
                  - $ref: '#/components/schemas/Error'
              examples:
                IBAN_valid_and_institution_details_found:
                  summary: Italian IBAN is valid and its institution details are found
                  value:
                    account_number: IT60X0542811101000000123456
                    clearing_institution_name: UBI BANCA S.P.A.
                    calculated_bic: BLOPIT22XXX
                    bic_verification_status: 'REDA.API.VBIC'
                    national_id: '0542811101'
                    national_id_verification_status: 'REDA.API.VRID'
                    country_code: IT
                Invalid_IBAN_checksum:
                  summary: Invalid IBAN checksum
                  value:
                    code: REDA.API.IIBC
                    severity: Fatal
                    text: IBAN checksum is invalid
                    user_message: IBAN checksum is invalid
            application/xml:
              schema:
                oneOf:
                  # Valid account number, with its details found.
                  - $ref: '#/components/schemas/AccountNumberValidityAndInstitutionDetails'
                  # Invalid account number or account holding institution not found.
                  - $ref: '#/components/schemas/Error'
              examples:
                IBAN_valid_and_institution_details_found:
                  summary: Italian IBAN is valid and its institution details are found
                  value: |
                    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                    <validity-and-institution-details>
                      <account_number>IT60X0542811101000000123456</account_number>
                      <clearing_institution_name>UBI BANCA S.P.A.</clearing_institution_name>
                      <calculated_bic>BLOPIT22XXX</calculated_bic>
                      <bic_verification_status>REDA.API.VBIC</bic_verification_status>
                      <national_id>0542811101</national_id>
                      <national_id_verification_status>REDA.API.VRID</national_id_verification_status>
                      <country_code>IT</country_code>
                    </validity-and-institution-details>
                Invalid_IBAN_checksum:
                  summary: Invalid IBAN checksum
                  value: |
                    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                    <error>
                      <code>REDA.API.IIBC</code>
                      <severity>Fatal</severity>
                      <text>IBAN checksum is invalid</text>
                      <user_message>IBAN checksum is invalid</user_message>
                    </error>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: REDA.API.MIRP
                severity: Fatal
                text: Country code not supplied
                user_message: Required parameter(s) not supplied
            application/xml:
              schema:
                $ref: '#/components/schemas/Error'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <error>
                  <code>REDA.API.MIRP</code>
                  <severity>Fatal</severity>
                  <text>Country code not supplied</text>
                  <user_message>Required parameter(s) not supplied</user_message>
                </error>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '405':
          $ref: '#/components/responses/InvalidHttpMethodSensitiveData'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/pmis/participants':
    get:
      tags:
        - pmis
      summary: Search for PMI participants.
      description: Get a list of PMI (Payment Market Infrastructure) participants matching the input parameters.
      operationId: getPmiParticipants
      parameters:
        - in: query
          name: service_id_substring
          schema:
            $ref: '#/components/schemas/StringMax20'
          required: false
          description: Part of the service ID of a Payment Market Infrastructure
          example: CNAP
        - in: query
          name: participant_id_substring
          schema:
            $ref: '#/components/schemas/StringMax255'
          required: false
          description: Part of a Payment Market Infrastructure participant ID
          example: DEUTDE
        - in: query
          name: participant_name_substring
          schema:
            $ref: '#/components/schemas/StringMax255'
          required: false
          description: Part of a Payment Market Infrastructure participant name
          example: 'BANCO DE GALICIA'
        - $ref: '#/components/parameters/pmiCountryCode'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: Records found matching the supplied parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PmiParticipants'
              example:
                data:
                  - service_id: US FEDACH
                    participant_id: '271291648'
                    participant_name: AAA FEDERAL CREDIT UNION
                    country_code: US
                    links:
                      - href: https://api.swiftrefdata.com/v5/pmis/participants/3073811
                        rel: self
                        type: GET
                links:
                  - href: https://api.swift.com/swiftrefdata/v5/pmis/participants?participant_name_substring=aaa&offset=0&limit=20
                    rel: first
                    type: GET
                  - href: https://api.swift.com/swiftrefdata/v5/pmis/participants?participant_name_substring=aaa&offset=0&limit=20
                    rel: last
                    type: GET
                  - href: https://api.swift.com/swiftrefdata/v5/pmis/participants?participant_name_substring=aaa&offset=0&limit=20
                    rel: self
                    type: GET
            application/xml:
              schema:
                $ref: '#/components/schemas/PmiParticipants'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <pmi>
                  <data>
                    <service_id>US FEDACH</service_id>
                    <participant_id>271291648</participant_id>
                    <participant_name>AAA FEDERAL CREDIT UNION</participant_name>
                    <country_code>US</country_code>
                    <links>
                      <href>https://api.swift.com/swiftrefdata/v5/pmis/participants/3073811</href>
                      <rel>self</rel>
                      <type>GET</type>
                    </links>
                  </data>
                  <links>
                    <href>https://api.swift.com/swiftrefdata/v5/pmis/participants?participant_name_substring=aaa&offset=0&limit=20</href>
                    <rel>first</rel>
                    <type>GET</type>
                  </links>
                  <links>
                    <href>https://api.swift.com/swiftrefdata/v5/pmis/participants?participant_name_substring=aaa&offset=0&limit=20</href>
                    <rel>last</rel>
                    <type>GET</type>
                  </links>
                  <links>
                    <href>https://api.swift.com/swiftrefdata/v5/pmis/participants?participant_name_substring=aaa&offset=0&limit=20</href>
                    <rel>self</rel>
                    <type>GET</type>
                  </links>
                </pmi>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
            Content-Location:
              required: true
              schema:
                type: string
                format: uri
              description: The real URL returning the current resource/resources, with all implicit pagination parameters explicited
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.ICCP
                    severity: Fatal
                    text: Invalid country_code parameter
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.ICCP</code>
                    <severity>Fatal</severity>
                    <text>Invalid country_code parameter</text>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: No records found matching the supplied parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.PPNF
                    severity: Fatal
                    text: No records found
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.PPNF</code>
                    <severity>Fatal</severity>
                    <text>No records found</text>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/pmis/participants/{participant_record_id}':
    get:
      tags:
        - pmis
      summary: Get PMI participant details.
      description: For a given participant record ID, you can retrieve all details of that PMI participant, as reported within REACHPLUS flatfile.
      operationId: getPmiParticipantDetails
      parameters:
        - in: path
          name: participant_record_id
          schema:
            type: integer
            minimum: 1
          required: true
          description: PMI participant record ID within REACHPLUS flatfile (not to be confused with participant_id, which corresponds to the REACHPLUS flatfile field with the same name)
          example: 12345
      responses:
        '200':
          description: Record found matching the supplied ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PmiParticipantDetails'
              example:
                service_name: SWIFTNet Bulk Payments Generic SnF
                participant_id: o=tdomcatt,o=swift
                attribute_2: TDOMCATT
                attribute_3: THE TORONTO DOMINION BANK
                attribute_4: swift.bulkp.generic.sf
                attribute_5: SF
                attribute_6: L
                attribute_7: FA
                attribute_8: bulkpuser
                service_id: BULKP
                links:
                  - href: "https://api.swift.com/swiftrefdata/v1/pmis/BULKP/structure"
                    rel: describedby
                    type: GET
            application/xml:
              schema:
                $ref: '#/components/schemas/PmiParticipantDetails'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <participant>
                  <service_name>SWIFTNet Bulk Payments Generic SnF</service_name>
                  <participant_id>o=tdomcatt,o=swift</participant_id>
                  <attribute_2>TDOMCATT</attribute_2>
                  <attribute_3>THE TORONTO DOMINION BANK</attribute_3>
                  <attribute_4>swift.bulkp.generic.sf</attribute_4>
                  <attribute_5>SF</attribute_5>
                  <attribute_6>L</attribute_6>
                  <attribute_7>FA</attribute_7>
                  <attribute_8>bulkpuser</attribute_8>
                  <service_id>BULKP</service_id>
                  <links>
                    <href>https://api.swift.com/swiftrefdata/v1/pmis/BULKP/structure.xml</href>
                    <rel>describedby</rel>
                    <type>GET</type>
                  </links>
                </participant>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: No record found matching the supplied ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.PPNF
                    severity: Fatal
                    text: Record not found
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.PPNF</code>
                    <severity>Fatal</severity>
                    <text>Record not found</text>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/pmis/{service_id}/structure':
    get:
      tags:
        - pmis
      summary: Get PMI participant structure.
      description: For the given Payment Market Infrastructure service ID, get the participant record structure as described by flatfile REACHPLUSSTRUCTURE.
      operationId: getPmiParticipantStructure
      parameters:
        - $ref: '#/components/parameters/serviceId'
      responses:
        '200':
          description: Record found matching the supplied service ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PmiParticipantStructure'
              example:
                data:
                  - allowed_values:
                      - AE UAEFTS
                    always_present: true
                    generic_field_name: platform
                    platform: AE UAEFTS
                    specific_field_description: The identifier of this data structure specification.
                      PLATFORM defines the data elements of the SERVICE ID. It might be reused by multiple
                      SERVICE IDs.
                    specific_field_name: PLATFORM
                    specific_format: 9c
                  - allowed_values:
                      - AE UAEFTS
                    always_present: true
                    generic_field_name: service_id
                    platform: AE UAEFTS
                    specific_field_description: The acronym of the PMI service, assigned by SWIFT, to which this data structure specification applies  (see field ALLOWED VALUES). A domestic service id starts with the country code. A regional or international service starts with the area code, in most cases.
                    specific_field_name: SERVICE ID
                    specific_format: 9c
                  - allowed_values:
                      - UAE Funds Transfer System
                    always_present: true
                    generic_field_name: service_name
                    platform: AE UAEFTS
                    specific_field_description: The name of the PMI Service in which the institutions participate (see field ALLOWED VALUES).
                    specific_field_name: SERVICE NAME
                    specific_format: 25c
            application/xml:
              schema:
                $ref: '#/components/schemas/PmiParticipantStructure'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <structure>
                  <data>
                    <generic_field_name>platform</generic_field_name>
                    <specific_field_name>PLATFORM</specific_field_name>
                    <specific_field_description>The identifier of this data structure specification. PLATFORM defines the data elements of the SERVICE ID. It might be reused by multiple SERVICE IDs.</specific_field_description>
                    <specific_format>9c</specific_format>
                    <always_present>true</always_present>
                    <allowed_values>AE UAEFTS</allowed_values>
                    <platform>AE UAEFTS</platform>
                  </data>
                  <data>
                    <generic_field_name>service_id</generic_field_name>
                    <specific_field_name>SERVICE ID</specific_field_name>
                    <specific_field_description>The acronym of the PMI service, assigned by SWIFT, to which this data structure specification applies  (see field ALLOWED VALUES). A domestic service id starts with the country code. A regional or international service starts with the area code, in most cases.</specific_field_description>
                    <specific_format>9c</specific_format>
                    <always_present>true</always_present>
                    <allowed_values>AE UAEFTS</allowed_values>
                    <platform>AE UAEFTS</platform>
                  </data>
                  <data>
                    <generic_field_name>service_name</generic_field_name>
                    <specific_field_name>SERVICE NAME</specific_field_name>
                    <specific_field_description>The name of the PMI Service in which the institutions participate (see field ALLOWED VALUES).</specific_field_description>
                    <specific_format>25c</specific_format>
                    <always_present>true</always_present>
                    <allowed_values>UAE Funds Transfer System</allowed_values>
                    <platform>AE UAEFTS</platform>
                  </data>
                </structure>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: No record found matching the supplied service ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.PSNF
                    severity: Fatal
                    text: PMI structure not found
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.PSNF</code>
                    <severity>Fatal</severity>
                    <text>PMI structure not found</text>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/pmis/{service_id}':
    get:
      tags:
        - pmis
      summary: Get PMI details.
      description: Get Payment Market Infrastructure details for the given service ID.
      operationId: getPmiDetails
      parameters:
        - $ref: '#/components/parameters/serviceId'
      responses:
        '200':
          description: PMI found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PmiDetails'
              example:
                service_id: AE UAEFTS
                service_name: UAE Funds Transfer System
                currency_codes:
                  - AED
                  - EUR
                  - USD
                service_type: RTGS
                areas:
                  - AE
                coverage: domestic
                high_low_value: HV/LV
                gross_net_settlement: GS
                execution_delay: RT
                transaction_types:
                  - CT
                  - IB
                participant_id_type: BIDAE
                service_local_start_time: '08:00+04:00'
                service_local_cut_off_time: 17:30+04:00
                operating_days: SAT-THU
            application/xml:
              schema:
                $ref: '#/components/schemas/PmiDetails'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <pmi>
                  <service_id>AE UAEFTS</service_id>
                  <service_name>UAE Funds Transfer System</service_name>
                  <currency_codes>AED</currency_codes>
                  <currency_codes>EUR</currency_codes>
                  <currency_codes>USD</currency_codes>
                  <service_type>RTGS</service_type>
                  <areas>AE</areas>
                  <coverage>domestic</coverage>
                  <high_low_value>HV/LV</high_low_value>
                  <gross_net_settlement>GS</gross_net_settlement>
                  <execution_delay>RT</execution_delay>
                  <transaction_types>CT</transaction_types>
                  <transaction_types>IB</transaction_types>
                  <participant_id_type>BIDAE</participant_id_type>
                  <service_local_start_time>08:00+04:00</service_local_start_time>
                  <service_local_cut_off_time>17:30+04:00</service_local_cut_off_time>
                  <operating_days>SAT-THU</operating_days>
                </pmi>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.MISI
                    severity: Fatal
                    text: service_id not provided
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.MISI</code>
                    <severity>Fatal</severity>
                    <text>service_id not provided</text>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: PMI not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.SINF
                    severity: Fatal
                    text: service_id not found
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.SINF</code>
                    <severity>Fatal</severity>
                    <text>service_id not found</text>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/pmis':
    get:
      tags:
        - pmis
      summary: Search for Payment Market Infrastructures.
      description: Get a list of Payment Market Infrastructures matching the input parameters.
      operationId: getPmis
      # At least one parameter is required
      parameters:
        - name: service_id_substring
          in: query
          schema:
            $ref: '#/components/schemas/StringMax20'
          required: false
          description: Part of the service ID of a Payment Market Infrastructure
          example: CNAP
        - name: service_name_substring
          in: query
          schema:
            $ref: '#/components/schemas/StringMax105'
          required: false
          description: Part of the name of the Payment Market Infrastructure
          example: 'Advanced Payments'
        - name: currency_code
          in: query
          schema:
            $ref: '#/components/schemas/CurrencyCode'
          required: false
          description: Currency cleared or settled on the Payment Market Infrastructure service
          example: EUR
        - $ref: '#/components/parameters/pmiCountryCode'
      responses:
        '200':
          description: PMIs found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pmis'
              example:
                pmis:
                  - areas:
                      - AE
                    currency_codes:
                      - AED
                      - EUR
                      - USD
                    service_id: AE UAEFTS
                    service_name: UAE Funds Transfer System
                    service_type: RTGS
            application/xml:
              schema:
                $ref: '#/components/schemas/Pmis'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <pmis>
                  <pmis>
                    <service_id>AE UAEFTS</service_id>
                    <service_name>UAE Funds Transfer System</service_name>
                    <currency_codes>AED</currency_codes>
                    <currency_codes>EUR</currency_codes>
                    <currency_codes>USD</currency_codes>
                    <service_type>RTGS</service_type>
                    <areas>AE</areas>
                  </pmis>
                </pmis>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Wrong URL format or invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.INVP
                    severity: Fatal
                    text: "At least one of the following parameters must be supplied: service_id, service_name, currency_code, country_code"
                    user_message: Invalid parameters
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.PSNF</code>
                    <severity>Fatal</severity>
                    <text>At least one of the following parameters must be supplied: service_id, service_name, currency_code, country_code</text>
                    <user_message>Invalid parameters</user_message>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '404':
          description: No records found matching the supplied parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.PMNF
                    severity: Fatal
                    text: No PMI found
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.PMNF</code>
                    <severity>Fatal</severity>
                    <text>No PMI found</text>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  '/identifiers':
    get:
      tags:
        - identifiers
      summary: Search for identifiers associated to institutions.
      description: Get a list of institution identifiers matching all input parameters (parameter values searched by enforcing logical AND).
      operationId: getIdentifiers
      parameters:
        - in: query
          name: text_to_search_for
          schema:
            type: string
            minLength: 2
            maxLength: 140
          description: Text to search for within identifier attribute values, e.g. identifier code, institution name and address (to match, the parameter text must only be contained in identifier attribute values, no need for an exact match)
          required: true
          example: bank
        - in: query
          name: id_type_substring
          schema:
            type: string
            minLength: 2
            maxLength: 20
          required: false
          description: Part of the identifier type
          example: CNAP
        - in: query
          name: country_code
          schema:
            $ref: '#/components/schemas/CountryCode'
          description: The 2-character ISO 3166-1 country code of an institution
          required: false
          example: IT
        - in: query
          name: country_name_substring
          schema:
            type: string
            minLength: 2
            maxLength: 70
          description: Part of the country name of an institution
          required: false
          example: Ital
        - in: query
          name: status
          schema:
            type: string
            enum:
              - Current
              - History
            default: Current
          description: Status of the institution identifiers to search for
          required: false
          example: Current
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: Institution identifiers found, not found or invalid parameter values because of domain-related reasons.
          content:
            application/json:
              schema:
                anyOf:
                  # Institution identifiers found.
                  - $ref: '#/components/schemas/Identifiers'
                  # Institution identifiers not found or invalid parameter values because of domain-related reasons.
                  - $ref: '#/components/schemas/Errors'
              examples:
                identifiers_found:
                  summary: Identifiers found
                  value:
                    data:
                      - id_value: 'UBSWGB2LSBI'
                        id_type: 'BIC11'
                        name: 'UBS AG LONDON BRANCH'
                        status: 'Current'
                        structured_address:
                          street_name: 'HIGH TIMBER STREET'
                          building_number: '1'
                          building_name: 'SWISS BANK HOUSE'
                          post_code: 'EC4V 3SB'
                          town_name: 'LONDON'
                          country_subdivision_name: 'GREATER LONDON'
                          country_code: 'GB'
                          country_name: 'UNITED KINGDOM'
                        unstructured_address:
                          address_line_1: 'SWISS BANK HOUSE'
                          address_line_2: '1 HIGH TIMBER STREET'
                          address_line_3: 'LONDON, EC4V 3SB, GREATER LONDON GB'
                    links:
                      - href: https://api.swift.com/swiftrefdata/v5/identifiers?text_to_search_for=ubs&offset=0&limit=20
                        rel: first
                        type: GET
                      - href: https://api.swift.com/swiftrefdata/v5/identifiers?text_to_search_for=ubs&offset=0&limit=20
                        rel: last
                        type: GET
                      - href: https://api.swift.com/swiftrefdata/v5/identifiers?text_to_search_for=ubs&offset=0&limit=20
                        rel: self
                        type: GET
                identifiers_not_found:
                  summary: No institution identifiers found matching the supplied parameters
                  value:
                    errors:
                      - code: REDA.API.IINF
                        severity: Fatal
                        text: No institution identifiers found
                invalid_parameter_value_because_of_domain_related_reason:
                  summary: Invalid parameter value because of domain-related reason
                  value:
                    errors:
                      - code: REDA.API.ICCV
                        severity: Fatal
                        text: Invalid country_code parameter
            application/xml:
              schema:
                oneOf:
                  # Institution identifiers found.
                  - $ref: '#/components/schemas/Identifiers'
                  # Institution identifiers not found or invalid parameter values because of domain-related reasons.
                  - $ref: '#/components/schemas/Errors'
              examples:
                identifiers_found:
                  summary: Identifiers found
                  value: |
                    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                    <identifiers>
                      <data>
                        <id_value>UBSWGB2LSBI</id_value>
                        <id_type>BIC11</id_type>
                        <name>UBS AG LONDON BRANCH</name>
                        <status>Current</status>
                        <structured_address>
                          <street_name>HIGH TIMBER STREET</street_name>
                          <building_number>1</building_number>
                          <building_name>SWISS BANK HOUSE</building_name>
                          <post_code>EC4V 3SB</post_code>
                          <town_name>LONDON</town_name>
                          <country_subdivision_name>GREATER LONDON</country_subdivision_name>
                          <country_code>GB</country_code>
                          <country_name>UNITED KINGDOM</country_name>
                        </structured_address>
                        <unstructured_address>
                          <address_line_1>SWISS BANK HOUSE</address_line_1>
                          <address_line_2>1 HIGH TIMBER STREET</address_line_2>
                          <address_line_3>LONDON, EC4V 3SB, GREATER LONDON GB</address_line_3>
                        </unstructured_address>
                      </data>
                      <links>
                        <href>https://api.swift.com/swiftrefdata/v5/identifiers?text_to_search_for=ubs&offset=0&limit=20</href>
                        <rel>first</rel>
                        <type>GET</type>
                      </links>
                      <links>
                        <href>https://api.swift.com/swiftrefdata/v5/identifiers?text_to_search_for=ubs&offset=0&limit=20</href>
                        <rel>last</rel>
                        <type>GET</type>
                      </links>
                      <links>
                        <href>https://api.swift.com/swiftrefdata/v5/identifiers?text_to_search_for=ubs&offset=0&limit=20</href>
                        <rel>self</rel>
                        <type>GET</type>
                      </links>
                    </identifiers>
                identifiers_not_found:
                  summary: No institution identifiers found matching the supplied parameters
                  value: |
                    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                    <errors>
                      <error>
                        <code>REDA.API.IINF</code>
                        <severity>Fatal</severity>
                        <text>No institution identifiers found</text>
                      </error>
                    </errors>
                invalid_parameter_value_because_of_domain_related_reason:
                  summary: Invalid parameter value because of domain-related reason
                  value: |
                    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                    <errors>
                      <error>
                        <code>REDA.API.ICCV</code>
                        <severity>Fatal</severity>
                        <text>Invalid country_code parameter</text>
                      </error>
                    </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
            Content-Location:
              required: true
              schema:
                type: string
                format: uri
              description: The real URL returning the current resource/resources, with all implicit pagination parameters explicited
        '400':
          description: Invalid input format
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                errors:
                  - code: REDA.API.ICCF
                    severity: Fatal
                    text: Invalid country_code parameter format
            application/xml:
              schema:
                $ref: '#/components/schemas/Errors'
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <errors>
                  <error>
                    <code>REDA.API.ICCF</code>
                    <severity>Fatal</severity>
                    <text>Invalid country_code parameter format</text>
                  </error>
                </errors>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'
  /addresses/town-name-and-country-code:
    get:
      tags:
        - addresses
      summary: Get country code and town name from a free format address.
      description: |
        Accepts an address string and returns the extracted country (as ISO alpha-2 code),
        town name and confidence scores.

        Country is resolved first. If `country_code_confidence` < 80, town name extraction is not performed.
      operationId: splitAddress
      parameters:
        - name: address
          in: query
          required: true
          description: Free-format address string, any language/script.
          schema:
            type: string
            maxLength: 250
          example: "Baluardo La Marmora 13, Novara, Italia"
      responses:
        '200':
          description: Address split successful.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SplitResult"
              example:
                town_name: "Novara"
                town_name_confidence: 100
                country_code: "IT"
                country_code_confidence: 100
            application/xml:
              schema:
                $ref: "#/components/schemas/SplitResult"
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <town-name-and-country-code>
                  <town_name>Novara</town_name>
                  <town_name_confidence>95</town_name_confidence>
                  <country_code>IT</country_code>
                  <country_code_confidence>100</country_code_confidence>
                </town-name-and-country-code>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '400':
          description: Missing or empty `address` parameter.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
              example:
                code: REDA.API.INVP
                severity: Fatal
                text: Missing or empty address parameter
            application/xml:
              schema:
                $ref: "#/components/schemas/Error"
              example: |
                <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <error>
                  <code>REDA.API.INVP</code>
                  <severity>Fatal</severity>
                  <text>Missing or empty address parameter</text>
                </error>
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        '401':
          $ref: '#/components/responses/Unallowed'
        '405':
          $ref: '#/components/responses/InvalidHttpMethod'
        '406':
          $ref: '#/components/responses/NotAcceptable'
        default:
          $ref: '#/components/responses/UnexpectedError'

components:
  securitySchemes:
    oauthToken:
      type: oauth2
      flows:
        password:
          tokenUrl: 'https://api.swift.com/oauth2/v1/token'
          refreshUrl: 'https://api.swift.com/oauth2/v1/token'
          scopes: {}
  headers:
    X-Request-ID:
      description: |
        End-to-end tracking ID. This value will be returned to the caller as a response header of the same name.
        If no header is assigned by the caller, then one will be assigned by Swift.
      schema:
        type: string
        maxLength: 75
      required: true
      example: rrt-1130311210763048898-c-geu2-21394-2055157-17
  parameters:
    ibanCountryCode:
      name: country_code
      in: query
      description: The 2-character ISO 3166-1 country code of an IBAN country
      schema:
        $ref: '#/components/schemas/CountryCode'
      required: true
      example: IT
    pmiCountryCode:
      name: country_code
      in: query
      description: The 2-character ISO 3166-1 country code of a Payment Market Infrastructure
      schema:
        $ref: '#/components/schemas/CountryCode'
      required: false
      example: IT
    offset:
      in: query
      name: offset
      schema:
        type: integer
        minimum: 0
        default: 0
      required: false
      description: The number of records to skip before starting to collect the result set
      example: 20
    limit:
      in: query
      name: limit
      schema:
        type: integer
        enum:
          - 10
          - 20
          - 50
          - 100
          - 200
          - 500
          - 1000
        default: 20
      required: false
      description: The number of records to return
      example: 20
    serviceId:
      in: path
      name: service_id
      schema:
        $ref: '#/components/schemas/PmiServiceId'
      required: true
      description: Service ID of a Payment Market Infrastructure
      example: CN CNAPS
  responses:
    # Generic responses.
    UnexpectedError:
      description: Unexpected error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
        application/xml:
          schema:
            $ref: '#/components/schemas/Errors'
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
    InvalidHttpMethod:
      description: Request HTTP method is not accepted
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
          example:
            errors:
              - code: REDA.API.IREQ
                severity: Fatal
                text: Request performed with HTTP method other than GET
                user_message: Invalid request
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
    InvalidHttpMethodSensitiveData:
      description: Request HTTP method is not accepted
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
          example:
            errors:
              - code: REDA.API.IREQ
                severity: Fatal
                text: Request performed with HTTP method other than POST
                user_message: Invalid request
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
    NotAcceptable:
      description: The server does not support the format asked by the consumer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
          example:
            errors:
              - code: REDA.API.NOAC
                severity: Fatal
                text: Requested output format is not supported
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
    Unallowed:
      description: You do not have sufficient privileges to execute this service
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
          example:
            errors:
              - code: REDA.API.ILIC
                severity: Fatal
                text: You do not have sufficient privileges to execute this service
                user_message: You do not have sufficient privileges to execute this service
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
    # Endpoint-specific responses.
    FormallyInvalidIban:
      description: Input IBAN is formally invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Errors'
          example:
            errors:
              - code: REDA.API.MIRI
                severity: Fatal
                text: Invalid IBAN resource identifier (not matching expression [a-zA-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}) or missing IBAN resource identifier
        application/xml:
          schema:
            $ref: '#/components/schemas/Errors'
          example: |
            <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
            <errors>
              <error>
                <code>REDA.API.MIRI</code>
                <severity>Fatal</severity>
                <text>Invalid IBAN resource identifier (not matching expression [a-zA-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}) or missing IBAN resource identifier</text>
              </error>
            </errors>
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
  schemas:
    BooleanAsString:
      type: string
      enum:
        - 'true'
        - 'false'
      example: 'true'
    StringMax16:
      description: Generic string definition, from 1 to 16 characters long
      type: string
      minLength: 1
      maxLength: 16
    StringMax20:
      description: Generic string definition, from 1 to 20 characters long
      type: string
      minLength: 1
      maxLength: 20
    StringMax35:
      description: Generic string definition, from 1 to 35 characters long
      type: string
      minLength: 1
      maxLength: 35
    StringMax70:
      description: Generic string definition, from 1 to 70 characters long
      type: string
      minLength: 1
      maxLength: 70
    StringMax105:
      description: Generic string definition, from 1 to 105 characters long
      type: string
      minLength: 1
      maxLength: 105
    StringMax140:
      description: Generic string definition, from 1 to 140 characters long
      type: string
      minLength: 1
      maxLength: 140
    StringMax255:
      description: Generic string definition, from 1 to 255 characters long
      type: string
      minLength: 1
      maxLength: 255
    TwoLetterCode:
      description: Generic 2-letter code
      type: string
      pattern: '^[A-Z]{2}$'
    TwoDigitCode:
      description: Generic 2-digit code
      type: string
      pattern: '^[0-9]{2}$'
    ThreeLetterCode:
      description: Generic 3-letter code
      type: string
      pattern: '^[A-Z]{3}$'
    ThreeDigitCode:
      description: Generic 3-digit code
      type: string
      pattern: '^[0-9]{3}$'
    AlphaNumStringMax30:
      description: Alphanumeric string definition, from 1 to 30 characters long
      type: string
      pattern: '^[0-9a-zA-Z]{1,30}$'
    StatusCode:
      description: Code representing a response status
      type: string
      pattern: '^REDA\.API\.[A-Z]{4}$'
    InstitutionName:
      $ref: '#/components/schemas/StringMax140'
      # description: Name by which an institution is known and which is usually used to identify that institution
    InstitutionDepartment:
      $ref: '#/components/schemas/StringMax70'
    AddressLine:
      $ref: '#/components/schemas/StringMax140'
    CountryName:
      $ref: '#/components/schemas/StringMax70'
    CurrencyName:
      $ref: '#/components/schemas/StringMax70'
    City:
      $ref: '#/components/schemas/StringMax70'
    PostalCode:
      type: string
      minLength: 1
      maxLength: 15
      description: Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail
    IsoPostalCode:
      type: string
      minLength: 1
      maxLength: 16
      description: Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail
    IsoPostOfficeIdentifier:
      description: Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for
      type: string
      minLength: 1
      maxLength: 16
    FullAccountNumber:
      $ref: '#/components/schemas/StringMax70'
    NationalIdScheme:
      $ref: '#/components/schemas/StringMax20'
      # description: Generic national ID scheme definition,
      #              introduced to avoid "oneOf:(Bank/Bdp/Iso5)NationalIdScheme"
    BankNationalIdScheme:
      $ref: '#/components/schemas/StringMax20'
      # description: Banks' identifier type
      # example: IT-ABICAB10
    BdpNationalIdScheme:
      $ref: '#/components/schemas/StringMax20'
      # description: BDP national ID type
      # example: ABICAB
    Iso5NationalIdScheme:
      type: string
      pattern: '^[A-Z]{5}$'
      description: ID type by ISO
      example: ITNCC
    EntityName:
      description: Legal entity name
      type: string
      minLength: 1
      maxLength: 320
    FinPlusDistinguishedName:
      $ref: '#/components/schemas/StringMax255'
      # description: Unique identifier of an entity that sends or receives messages over SWIFTNet.
      # example: 'ou=shd,o=handsess,o=swift'
    ReachPlusGenericAttribute:
      $ref: '#/components/schemas/StringMax255'
      # description: Generic attribute column of REACHPLUS flatfile, containing a PMI-specific value.
    IdentifierType:
      description: Institution identifier type
      type: string
      minLength: 3
      maxLength: 20
      pattern: '^[A-Z][A-Z0-9-]+[A-Z0-9]$'
      example: DE-BLZ8
    IdentifierValue:
      description: Institution identifier value
      type: string
      minLength: 2
      maxLength: 20
      pattern: '^[A-Z0-9]{2,20}$'
      example: 01ERPZV3DOLNXY2MLB90
    IdentifierStatus:
      description: Status of an institution identifier
      type: string
      enum:
        - Current
        - History
      example: Current
    Error:
      description: Custom error schema to support detailed error message.
      required:
        - code
        - severity
        - text
      type: object
      properties:
        severity:
          description: Specifies the severity of the error.
          type: string
          enum:
            - Fatal
            - Transient
            - Logic
        code:
          description: Specifies the custom error code as defined by the service provider.
          type: string
          minLength: 3
          maxLength: 70
        text:
          $ref: '#/components/schemas/StringMax255'
          # description: Specifies the detail error message identifying the cause of the error.
        user_message:
          $ref: '#/components/schemas/StringMax255'
          # description: A human-readable text describing the error.
        more_info:
          description: Specifies an URL to find more information about the error.
          type: string
          format: uri
      xml:
        name: error
      additionalProperties: false
      example:
        code: REDA.API.CODE
        severity: Fatal
        text: Error description
        user_message: User-friendly error description
    Errors:
      # Source: "Swift API Design Guidelines from Bitbucket" section 9.2
      type: object
      required:
        - errors
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
          minItems: 1
      xml:
        name: errors
      additionalProperties: false
    Link:
      type: object
      description: Hypermedia link relation of the current resource/resources
      required:
        - href
        - rel
        - type
      properties:
        href:
          type: string
          format: uri
          description: URL representing resource/resources related to the current one/ones
        rel:
          type: string
          enum:
            - first
            - last
            - next
            - previous
            - self
            - describedby
          description: How this link is related to the current resource/resources
          # All possible values available at https://www.iana.org/assignments/link-relations/link-relations.xhtml
        type:
          type: string
          enum:
            - GET
          description: HTTP method to use with this link
      additionalProperties: false
      example:
        href: https://api.swift.com/swiftrefdata/v5/pmis/participants?offset=0&limit=20
        rel: first
        type: GET
    Address2:
      type: object
      required:
        - country_name
      properties:
        street_address:
          type: array
          items:
            $ref: '#/components/schemas/AddressLine'
          minItems: 1
          maxItems: 4
        city:
          $ref: '#/components/schemas/City'
        region:
          $ref: '#/components/schemas/StringMax70'
        postal_code:
          $ref: '#/components/schemas/PostalCode'
        country_name:
          $ref: '#/components/schemas/CountryName'
      additionalProperties: false
    UnstructuredAddress:
      type: object
      description: ISO-compliant unstructured address
      properties:
        address_line_1:
          $ref: '#/components/schemas/StringMax35'
        address_line_2:
          $ref: '#/components/schemas/StringMax35'
        address_line_3:
          $ref: '#/components/schemas/StringMax35'
      additionalProperties: false
      example:
        address_line_1: "ONE OXFORD CTR"
        address_line_2: "301 GRANT ST, STE 3000"
        address_line_3: "PITTSBURGH PA 15219, US"
    StructuredAddress:
      type: object
      description: ISO-compliant structured address
      required:
        - country_code
        - country_name
      properties:
        street_name:
          $ref: '#/components/schemas/StringMax70'
        building_number:
          $ref: '#/components/schemas/StringMax16'
        building_name:
          $ref: '#/components/schemas/StringMax35'
        post_box:
          $ref: '#/components/schemas/IsoPostOfficeIdentifier'
        floor:
          $ref: '#/components/schemas/StringMax70'
        room:
          $ref: '#/components/schemas/StringMax70'
        post_code:
          $ref: '#/components/schemas/IsoPostalCode'
        town_name:
          $ref: '#/components/schemas/StringMax35'
        town_location_name:
          $ref: '#/components/schemas/StringMax35'
        district_name:
          $ref: '#/components/schemas/StringMax35'
        country_subdivision_name:
          $ref: '#/components/schemas/StringMax35'
        country_subdivision_code:
          $ref: '#/components/schemas/StringMax35'
        country_code:
          $ref: '#/components/schemas/CountryCode'
        country_name:
          $ref: '#/components/schemas/CountryName'
      additionalProperties: false
      example:
        street_name: "GRANT ST"
        building_number: "301"
        building_name: "ONE OXFORD CTR"
        post_box: "PO BOX 867"
        room: "STE 3000"
        post_code: "15219"
        town_name: "PITTSBURGH"
        country_subdivision_name: "PENNSYLVANIA"
        country_subdivision_code: "PA"
        country_code: "US"
        country_name: "UNITED STATES OF AMERICA"
    SwiftSubtypeIndicator:
      type: string
      pattern: '^[0-9A-Z]{4}$'
      description: Swift subtype indicator
      example: SUPE
    LanguageCode:
      type: string
      pattern: '^[A-Z]{3}$'
      description: ISO 639-2 code (three letters) of language
      example: CHI
    LanguageScript:
      type: string
      description: Language script, based on ISO 15924 (four letters) and some additional values (e.g. SWIFTX)
      maxLength: 10
      example: HANS
    TimeOffset:
      type: string
      pattern: '^[±+-]\d\d:\d\d$'
      description: Difference in hours and minutes between two places
    SwiftService:
      description: Swift service code and name
      type: object
      xml:
        name: swift_service
      required:
        - code
        - name
      properties:
        code:
          type: string
          pattern: '^[A-Z]{2}[A-Z+]$'
          description: Code given by the service provider (Swift) to uniquely identify a service it offers
        name:
          $ref: '#/components/schemas/StringMax105'
          # description: Name given by the service provider (Swift) to uniquely identify a service it offers
      example:
        code: TGT
        name: TARGET2 DIRECT PARTICIPANTS
      additionalProperties: false
    SwiftConnectivity:
      description: Institution connection to SWIFTNet messaging services
      type: object
      required:
        - fin
        - interact
        - fileact
      properties:
        fin:
          type: boolean
          description: True if connected to Swift FIN, false otherwise
        finplus:
          type: object
          description: FINplus Distinguished Names (DN), used to uniquely identify an entity that sends or receives messages over SWIFTNet.
          properties:
            future:
              $ref: '#/components/schemas/FinPlusDistinguishedName'
            live:
              $ref: '#/components/schemas/FinPlusDistinguishedName'
            pilot:
              $ref: '#/components/schemas/FinPlusDistinguishedName'
          additionalProperties: false
        interact:
          type: boolean
          description: True if used in at least one service on SWIFTNet InterAct, false otherwise
        fileact:
          type: boolean
          description: True if used in at least one service on SWIFTNet FileAct, false otherwise
      additionalProperties: false
      example:
        fin: true
        finplus:
          future: 'ou=shd,o=handsess,o=swift'
          live: 'ou=shd,o=handsess,o=swift'
          pilot: 'ou=shd,o=handsess,o=swift'
        interact: false
        fileact: false
    SepaPaymentChannel:
      type: object
      required:
        - id
        - member_type
      properties:
        id:
          type: string
          pattern: '^([A-Z0-9]{4}|Unknown)$'
          description: The ID of the payment channel (SEPA-compliant CSM)
        member_type:
          type: string
          enum:
            - DRCT
            - IDRC
            - UKWN
          description: A payment channel has a member_type, the member_type has one of the codes DRCT, IDRC or UKWN (direct, indirect, unknown)
        direct_participant:
          $ref: '#/components/schemas/Bic'
          # description: The BIC of the direct participant through which the indirectly reachable BIC can be reached; it may only be present if the payment channel's member is an indirect participant
      additionalProperties: false
    NationalIdDetails:
      type: object
      required:
        - national_id
        - id_type
        - name
        - structured_address
      properties:
        national_id:
          $ref: '#/components/schemas/NationalIdCode'
          # description: National ID for which details were requested
        id_type:
          $ref: '#/components/schemas/BankNationalIdScheme'
        national_id_type:
          $ref: '#/components/schemas/BdpNationalIdScheme'
        iso_clc_type:
          $ref: '#/components/schemas/Iso5NationalIdScheme'
        language_code:
          $ref: '#/components/schemas/LanguageCode'
        language_script:
          $ref: '#/components/schemas/LanguageScript'
        office_type:
          $ref: '#/components/schemas/OfficeType'
        name:
          $ref: '#/components/schemas/InstitutionName'
          # description: Name by which a party is known and which is usually used to identify that party
        department:
          $ref: '#/components/schemas/InstitutionDepartment'
        sub_department:
          $ref: '#/components/schemas/InstitutionDepartment'
        unstructured_address:
          $ref: '#/components/schemas/UnstructuredAddress'
        structured_address:
          $ref: '#/components/schemas/StructuredAddress'
        utc_offset:
          $ref: '#/components/schemas/TimeOffset'
      additionalProperties: false
      example:
        national_id: '043000300'
        id_type: 'AS-ABA9'
        national_id_type: 'ABA'
        iso_clc_type: 'USABA'
        office_type: 'DB'
        name: 'Federal Reserve Bank of Cleveland'
        department: 'Pittsburgh'
        unstructured_address:
          address_line_1: 'ONE OXFORD CTR'
          address_line_2: '301 GRANT ST, STE 3000'
          address_line_3: 'PITTSBURGH PA 15219, US'
        structured_address:
          street_name: 'GRANT ST'
          building_number: '301'
          building_name: 'ONE OXFORD CTR'
          post_box: 'PO BOX 867'
          room: 'STE 3000'
          post_code: '15219'
          town_name: 'PITTSBURGH'
          country_subdivision_name: 'PENNSYLVANIA'
          country_subdivision_code: 'PA'
          country_code: 'US'
          country_name: 'UNITED STATES OF AMERICA'
        utc_offset: "-05:00"
    NationalIdCode:
      description: National identifier of the institution or branch.
      type: string
      minLength: 2
      maxLength: 15
      pattern: '^[0-9A-Z]{2,15}$'
      example: '50070010'
    NationalId:
      type: object
      required:
        - id
      properties:
        id:
          $ref: '#/components/schemas/NationalIdCode'
          # description: The National ID (a synonym for clearing code, routing code, sort code, bank and branch ID) of the institution or branch
        id_type:
          $ref: '#/components/schemas/BankNationalIdScheme'
        national_id_type:
          $ref: '#/components/schemas/BdpNationalIdScheme'
        iso_clc_type:
          $ref: '#/components/schemas/Iso5NationalIdScheme'
      additionalProperties: false
      example:
        id: '50070010'
        id_type: 'DE-BLZ8'
        national_id_type: BLZ
        iso_clc_type: DEBLZ
    Ssi:
      type: object
      required:
        - owner
        - iso_currency_code
        - asset_category
        - account_holding_institution
      properties:
        owner:
          type: object
          required:
            - bic
            - institution_name
            - iso_country_code
          properties:
            bic:
              $ref: '#/components/schemas/Bic'
            institution_name:
              $ref: '#/components/schemas/InstitutionName'
            iso_country_code:
              $ref: '#/components/schemas/CountryCode'
            city:
              $ref: '#/components/schemas/City'
        iso_currency_code:
          $ref: '#/components/schemas/CurrencyCode'
          # description: The ISO 3166-1 alpha-2 code of the country of the owner institution/branch.
        asset_category:
          $ref: '#/components/schemas/SsiAssetCategory'
        account_holding_institution:
          type: object
          required:
            - bic
            - institution_name
            - iso_country_code
            - institution_type
          properties:
            bic:
              $ref: '#/components/schemas/Bic'
            institution_name:
              $ref: '#/components/schemas/InstitutionName'
            iso_country_code:
              $ref: '#/components/schemas/CountryCode'
            city:
              $ref: '#/components/schemas/City'
            account_number:
              $ref: '#/components/schemas/FullAccountNumber'
              # description: Account number of the owner BIC with the account holding institution.
            preferred:
              type: boolean
              description: Whether the account holding institution is a preferred correspondent.
            institution_type:
              type: string
              enum:
                - CORRESPONDENT
                - LOCAL CORRESPONDENT
              description: Whether the account holding institution is a local (account holder not located in the country of the currency) or a final correspondent (account holder located in the country of the currency).
        traffic_flag:
          type: boolean
          description: Whether the SSI has been seen within traffic over the previous 12 months, i.e. it has left behind fingerprints in the Swift messaging traffic (particularly MT 202 and MT 940/950).
        traffic_date:
          type: string
          format: date
          description: Optional field, currently not used.
        update_date:
          type: string
          format: date
          description: When the SSI was last updated by the customer or the SwiftRef data collection team.
        start_date:
          type: string
          format: date
          description: When the SSI becomes effective.
        stop_date:
          type: string
          format: date
          description: When the SSI expires.
      example:
        owner:
          bic: DEUTDEFFXXX
          institution_name: Deutsche Bank AG
          city: FRANKFURT AM MAIN
          iso_country_code: DE
        iso_currency_code: USD
        asset_category: MMKT
        account_holding_institution:
          bic: CITIUS33XXX
          institution_name: CITIBANK N.A.
          iso_country_code: US
          account_number: '7892398045980'
          preferred: true
          institution_type: CORRESPONDENT
        traffic_flag: true
        traffic_date: '2021-02-28'
        update_date: '2021-06-30'
        start_date: '2021-01-01'
        stop_date: '2021-12-31'
    Country:
      type: object
      required:
        - name
        - iso_2a_code
      properties:
        name:
          $ref: '#/components/schemas/CountryName'
          # description: The ISO country name
        iso_2a_code:
          $ref: '#/components/schemas/TwoLetterCode'
          # description: The ISO 2-letters country code
        iso_3a_code:
          $ref: '#/components/schemas/ThreeLetterCode'
          # description: The ISO 3-letters country code
        iso_3n_code:
          $ref: '#/components/schemas/ThreeDigitCode'
          # description: The ISO 3-digits country code
        currencies:
          type: array
          items:
            type: object
            required:
              - name
              - iso_3a_code
            properties:
              name:
                $ref: '#/components/schemas/CurrencyName'
                # description: The ISO currency name
              iso_3a_code:
                $ref: '#/components/schemas/ThreeLetterCode'
                # description: The ISO 3-letters currency code
              iso_3n_code:
                $ref: '#/components/schemas/ThreeDigitCode'
                # description: The ISO 3-digits currency code
          description: A list of currencies used by the country
      example:
        name: ITALY
        iso_2a_code: IT
        iso_3a_code: ITA
        iso_3n_code: '380'
        currencies:
          - iso_3a_code: EUR
            iso_3n_code: '978'
            name: EURO
    Currency:
      type: object
      required:
        - name
        - iso_3a_code
      properties:
        name:
          $ref: '#/components/schemas/CurrencyName'
          # description: The ISO currency name
        iso_3a_code:
          $ref: '#/components/schemas/ThreeLetterCode'
          # description: The ISO 3-letters currency code
        iso_3n_code:
          $ref: '#/components/schemas/ThreeDigitCode'
          # description: The ISO 3-digits currency code
        fractional_digits:
          type: integer
          minimum: 0
          maximum: 5
          description: The number of fractional digits to use
        countries:
          type: array
          items:
            type: object
            required:
              - name
              - iso_2a_code
            properties:
              name:
                $ref: '#/components/schemas/CountryName'
                # description: The ISO country name
              iso_2a_code:
                $ref: '#/components/schemas/TwoLetterCode'
                # description: The ISO 2-letters country code
              iso_3a_code:
                $ref: '#/components/schemas/ThreeLetterCode'
                # description: The ISO 3-letters country code
              iso_3n_code:
                $ref: '#/components/schemas/ThreeDigitCode'
                # description: The ISO 3-digits country code
          description: A list of countries where the currency is used
      example:
        name: US DOLLAR
        iso_3a_code: USD
        iso_3n_code: '840'
        fractional_digits: 2
        countries:
          - iso_2a_code: AS
            iso_3a_code: ASM
            iso_3n_code: '016'
            name: AMERICAN SAMOA
          - iso_2a_code: BQ
            iso_3a_code: BES
            iso_3n_code: '535'
            name: BONAIRE, SINT EUSTATIUS AND SABA
    LeiDetails:
      type: object
      required:
        - lei
        - legal_name
      properties:
        lei:
          $ref: '#/components/schemas/Lei'
        legal_name:
          type: string
          minLength: 1
          maxLength: 350
        address:
          $ref: '#/components/schemas/Address2'
        head_quarters_address:
          $ref: '#/components/schemas/Address2'
        legal_jurisdiction:
          type: string
          minLength: 1
          maxLength: 10
        legal_form:
          $ref: '#/components/schemas/StringMax255'
        entity_legal_form_code:
          $ref: '#/components/schemas/StringMax255'
        entity_status:
          type: string
          enum:
            - ACTIVE
            - INACTIVE
        initial_registration_date:
          type: string
          format: date
        last_update_date:
          type: string
          format: date
        registration_status:
          type: string
          minLength: 1
          maxLength: 30
        associated:
          type: object
          properties:
            entity_type:
              $ref: '#/components/schemas/StringMax20'
            lei:
              $ref: '#/components/schemas/Lei'
            entity_name:
              $ref: '#/components/schemas/EntityName'
        entity_expiration:
          type: object
          properties:
            date:
              type: string
              format: date
            reason:
              $ref: '#/components/schemas/StringMax70'
        successor:
          type: object
          properties:
            lei:
              $ref: '#/components/schemas/Lei'
            name:
              $ref: '#/components/schemas/EntityName'
      xml:
        name: lei
      example:
        lei: BFXS5XCH7N0Y05NIXW11
        legal_name: ABN AMRO Bank N.V.
        address:
          street_address:
            - Gustav Mahlerlaan 10
          city: Amsterdam
          region: NL-NH
          postal_code: 1082 PP
          country_name: NETHERLANDS
        head_quarters_address:
          street_address:
            - Gustav Mahlerlaan 10
          city: Amsterdam
          region: NL-NH
          postal_code: 1082 PP
          country_name: NETHERLANDS
        legal_jurisdiction: NL
        legal_form: NAAMLOZE VENNOOTSCHAP
        entity_legal_form_code: B5PM
        entity_status: ACTIVE
        initial_registration_date: '2012-06-06'
        last_update_date: '2018-08-16'
        registration_status: ISSUED
        associated:
          entity_type: FUND_FAMILY
          lei: W51AX6427FJZJFPF8H34
          entity_name: EUROAGENTES GESTION SGIIC, S.A.
        entity_expiration:
          date: '2018-04-17'
          reason: DISSOLVED
        successor:
          lei: CYZ5AAG3SVPY3KMG6Q07
          name: Specialplast Wensbo AB
    IbanElement:
      type: object
      required:
        - field_position
        - field_name
        - field_length
        - is_max_length
        - is_mandatory
      properties:
        field_position:
          type: number
          minimum: 1
          maximum: 34
          description: 1-based position of the element within an IBAN
          example: 3
        field_name:
          type: string
          pattern: '^[a-z0-9_]{1,64}$'
          description: Machine-friendly element identifier
          example: national_check_digit
        label_en:
          $ref: '#/components/schemas/StringMax255'
          # description: English name of the element
          # example: National check digit
        label_local:
          $ref: '#/components/schemas/StringMax255'
          # description: Local language name of the element
          # example: CIN
        field_length:
          type: number
          minimum: 1
          maximum: 30
          example: 1
        is_max_length:
          type: boolean
          description: If true, the element can be supplied shorter than how stated by field_length and it is left-padded with zeroes
          example: false
        is_mandatory:
          type: boolean
          description: If false, IBAN constructor can find its value
          example: false
      xml:
        name: element
      additionalProperties: false
      example:
        field_position: 5
        field_length: 12
        field_name: account_number
        label_en: Account number
        label_local: Numero di conto
        is_max_length: true
        is_mandatory: true
    BbanElementCombination:
      description: Combination of BBAN elements that can be used as input of IBAN constructor for a specific country. Each BBAN element is described by name, length, mandatory/optional flag, position within BBAN.
      type: array
      minItems: 1
      items:
        $ref: '#/components/schemas/IbanElement'
      xml:
        name: elements
        wrapped: true
      example:
        - field_position: 3
          field_length: 1
          field_name: national_check_digit
          label_en: National check digit
          label_local: CIN
          is_max_length: false
          is_mandatory: false
        - field_position: 4
          field_length: 5
          field_name: bank_code
          label_en: Bank code
          label_local: ABI
          is_max_length: false
          is_mandatory: true
        - field_position: 5
          field_length: 5
          field_name: branch_code
          label_en: Branch code
          label_local: CAB
          is_max_length: false
          is_mandatory: true
        - field_position: 6
          field_length: 12
          field_name: account_number
          label_en: Account number
          label_local: Numero di conto
          is_max_length: true
          is_mandatory: true
    Iban:
      type: string
      minLength: 5
      maxLength: 34
      pattern: '^[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{1,30}$'
      description: IBAN (International Bank Account Number)
      example: IT60X0542811101000000123456
    Bic:
      type: string
      description: Bank Identifier Code - ISO 9362
      pattern: '^[A-Z]{6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3})?$'
      example: SWHTBEBBXXX
    Lei:
      type: string
      description: Legal Entity Identifier - ISO 17442
      pattern: '^[0-9A-Z]{18}[0-9]{2}$'
      example: 7LTWFZYICNSX8D621K86
    CountryCode:
      type: string
      pattern: '^[a-zA-Z]{2}$'
      description: 2-character ISO 3166-1 country code
      example: DE
    CountryCodeExtended:
      type: string
      pattern: '^([a-zA-Z]{2,3}|[0-9]{3})$'
      description: 2-letters, 3-letters or 3-digits country code
      example: DE
    CurrencyCode:
      type: string
      pattern: '^[a-zA-Z]{3}$'
      description: 3-character ISO 4217 currency code
      example: EUR
    CurrencyCodeExtended:
      type: string
      pattern: '^([a-zA-Z]{3}|[0-9]{3})$'
      description: 3-letters or 3-digits currency code
      example: EUR
    SsiAssetCategory:
      type: string
      pattern: '^[a-zA-Z0-9]{4}$'
      description: Product area to which an SSI applies
      example: COPA
    PmiParticipant:
      type: object
      description: PMI participant general information
      required:
        - service_id
        - participant_id
        - links
      properties:
        service_id:
          $ref: '#/components/schemas/PmiServiceId'
        alternative_service_ids:
          type: array
          items:
            $ref: '#/components/schemas/PmiServiceId'
        participant_id:
          $ref: '#/components/schemas/ReachPlusGenericAttribute'
          # description: The unique identifier of the PMI participant, whose format is specific to the PMI. Not to be confused with participant record ID.
          # examples:
          #   - o=tdomcatt,o=swift
          #   - SWHQBEBBXXX
          #   - SWHQBEBB
          #   - 1234567890
        participant_name:
          $ref: '#/components/schemas/ReachPlusGenericAttribute'
          # description: Payment Market Infrastructure participant name
        country_code:
          # description: The 2-character ISO 3166-1 country code of a Payment Market Infrastructure
          $ref: '#/components/schemas/CountryCode'
        links:
          type: array
          items:
            $ref: '#/components/schemas/Link'
          minItems: 1
      additionalProperties: false
    PmiParticipantDetails:
      type: object
      description: PMI participant details as reported within records of REACHPLUS flatfile
      required:
        - service_id
        - service_name
        - participant_id
      properties:
        service_id:
          $ref: '#/components/schemas/PmiServiceId'
        service_name:
          $ref: '#/components/schemas/StringMax105'
          # description: Service name of a Payment Market Infrastructure
          # example: SWIFTNet Bulk Payments Generic SnF
        participant_id:
          $ref: '#/components/schemas/ReachPlusGenericAttribute'
          # description: The unique identifier of the PMI participant, whose format is specific to the PMI. Not to be confused with participant record ID.
          # examples:
          #   - o=tdomcatt,o=swift
          #   - SWHQBEBBXXX
          #   - SWHQBEBB
          #   - 1234567890
        attribute_1:
          $ref: '#/components/schemas/ReachPlusGenericAttribute'
        attribute_2:
          $ref: '#/components/schemas/ReachPlusGenericAttribute'
        attribute_3:
          $ref: '#/components/schemas/ReachPlusGenericAttribute'
        attribute_4:
          $ref: '#/components/schemas/ReachPlusGenericAttribute'
        attribute_5:
          $ref: '#/components/schemas/ReachPlusGenericAttribute'
        attribute_6:
          $ref: '#/components/schemas/ReachPlusGenericAttribute'
        attribute_7:
          $ref: '#/components/schemas/ReachPlusGenericAttribute'
        attribute_8:
          $ref: '#/components/schemas/ReachPlusGenericAttribute'
        attribute_9:
          $ref: '#/components/schemas/ReachPlusGenericAttribute'
        attribute_10:
          $ref: '#/components/schemas/ReachPlusGenericAttribute'
        attribute_11:
          $ref: '#/components/schemas/ReachPlusGenericAttribute'
        attribute_12:
          $ref: '#/components/schemas/ReachPlusGenericAttribute'
        attribute_13:
          $ref: '#/components/schemas/ReachPlusGenericAttribute'
        attribute_14:
          $ref: '#/components/schemas/ReachPlusGenericAttribute'
        attribute_15:
          $ref: '#/components/schemas/ReachPlusGenericAttribute'
        attribute_16:
          $ref: '#/components/schemas/ReachPlusGenericAttribute'
        attribute_17:
          $ref: '#/components/schemas/ReachPlusGenericAttribute'
        attribute_18:
          $ref: '#/components/schemas/ReachPlusGenericAttribute'
        attribute_19:
          $ref: '#/components/schemas/ReachPlusGenericAttribute'
        attribute_20:
          $ref: '#/components/schemas/ReachPlusGenericAttribute'
        activation_date:
          type: string
          format: date
          description: The date of activation of an added record, in case it is different from the monthly publication date
          example: '2021-07-23'
        links:
          type: array
          items:
            $ref: '#/components/schemas/Link'
          minItems: 1
      xml:
        name: participant
      additionalProperties: false
      example:
        service_id: BULKP_RT
        service_name: SWIFTNet Bulk Payments Generic
        participant_id: ou=fileactlive,o=wfbius6s,o=swift
        attribute_2: WFBIUS6S
        attribute_3: WELLS FARGO BANK, N.A.
        attribute_4: swift.bulkp.generic.rt
        attribute_5: RT
        attribute_6: L
        attribute_7: FA
        attribute_8: bulkpuser
        links:
          - href: https://api.swift.com/swiftrefdata/v5/pmis/BULKP_RT/structure
            rel: describedby
            type: GET
    PmiServiceId:
      $ref: '#/components/schemas/StringMax20'
      # description: Identifier of a Payment Market Infrastructure
      # example: CN CNAPS
    PmiParticipantStructureItem:
      description: Description of each participant record field related to a Payment Market Infrastructure in the REACHPLUS file.
      type: object
      required:
        - platform
        - generic_field_name
        - always_present
      properties:
        platform:
          $ref: '#/components/schemas/StringMax20'
          # description: Acronym for the service platform that operates one or multiple services.
        generic_field_name:
          type: string
          enum:
            - platform
            - service_id
            - service_name
            - participant_id
            - attribute_1
            - attribute_2
            - attribute_3
            - attribute_4
            - attribute_5
            - attribute_6
            - attribute_7
            - attribute_8
            - attribute_9
            - attribute_10
            - attribute_11
            - attribute_12
            - attribute_13
            - attribute_14
            - attribute_15
            - attribute_16
            - attribute_17
            - attribute_18
            - attribute_19
            - attribute_20
            - activation_date
            - field_a
            - field_b
            - field_c
          description: Title of the data field in the REACHPLUS data file
          example: attribute_5
        specific_field_name:
          $ref: '#/components/schemas/StringMax255'
          # description: Platform-specific title of the data field in the REACHPLUS file.
        specific_field_description:
          type: string
          minLength: 1
          maxLength: 600
          description: Platform-specific meaning of the data field in the REACHPLUS file
          example: The SEPA scheme that the participant is able to process.
        specific_format:
          type: string
          minLength: 2
          maxLength: 8
          pattern: '^\d+(a|n|c|an)$'
          description: Platform-specific format of the data field in the REACHPLUS file
          example: 8c
        always_present:
          type: boolean
          description: The mandatory or optional presence of the data in the platform-specific data field in the REACHPLUS file
        allowed_values:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 128
          minItems: 1
          description: If the data in the platform-specific data field contains a fixed value or a range of fixed values for all records of the platform, then this field contains that fixed value (or the range of fixed values)
          example:
            - SCT
            - SCT INST
            - SDD B2B
            - SDD CORE
      additionalProperties: false
      example:
        platform: SEPA
        generic_field_name: attribute_5
        specific_field_name: SCHEME
        specific_field_description: The SEPA scheme that the participant is able to process.
        specific_format: 8c
        always_present: true
        allowed_values:
          - SCT
          - SCT INST
          - SDD B2B
          - SDD CORE
    OfficeType:
      type: string
      pattern: '^[A-Z0-9]{1,2}$'
      description: Status of the entity in the office hierarchy
      example: HO
      # Current possible values:
      #  - HO: Head Office
      #  - MP: Main Payments Office
      #  - DB: Domestic Branch/Department
      #  - SB: Sub-Domestic Branch/Department
      #  - FB: Foreign Branch
      #  - SF: Sub-Foreign Branch
      #  - UC: Unclassified
    IbanDetailsWithIsoFlag:
      type: object
      required:
        - iban
        - country_code
        - checksum
        - bank_id
        - account_number
        - length
        - is_iso
      properties:
        iban:
          $ref: '#/components/schemas/Iban'
          # description: The IBAN that was validated
        country_code:
          $ref: '#/components/schemas/CountryCode'
          # description: The ISO 3166-1 alpha-2 code of the country of the institution/branch.
        checksum:
          $ref: '#/components/schemas/TwoDigitCode'
          # description: The checksum extracted from the IBAN
        bank_id:
          $ref: '#/components/schemas/AlphaNumStringMax30'
          # description: The BANK ID extracted from the IBAN. Its structure (bank ID only or bank ID + branch ID) is as defined by the IBAN BIC LENGTH in the IBANSTRUCTURE file.
        branch_id:
          $ref: '#/components/schemas/AlphaNumStringMax30'
          # description: Unique and unambiguous identification of a branch of a financial institution.
        account_number:
          $ref: '#/components/schemas/AlphaNumStringMax30'
          # description: The remainder of the IBAN including the account number.
        length:
          type: integer
          minimum: 5
          maximum: 34
          description: The length of the IBAN
        is_iso:
          type: boolean
          description: Whether the IBAN format for the country has been officially registered with ISO (ISO 13616)
      xml:
        name: iban
      example:
        iban: DE04500700100532013000
        country_code: DE
        checksum: '04'
        bank_id: '50070010'
        account_number: '0532013000'
        length: 22
        is_iso: true
    IbanEnhancedDetails:
      allOf:
        - $ref: '#/components/schemas/IbanDetailsWithIsoFlag'
        - type: object
          properties:
            iban_bic:
              $ref: '#/components/schemas/BicIsoDetails'
      xml:
        name: iban
      example:
        iban: IT60X0542811101000000123456
        country_code: IT
        checksum: '60'
        bank_id: '05428'
        branch_id: '11101'
        account_number: '000000123456'
        length: 27
        is_iso: true
        iban_bic:
          bic: BCITITMMXXX
          office_type: HO
          name: INTESA SANPAOLO SPA
          department: HEAD OFFICE
          swift_type: SUPE
          utc_offset: '+01:00'
          unstructured_address:
            address_line_1: PIAZZA DELLA SCALA, 6
            address_line_3: 20121 MILANO (MI) IT
          structured_address:
            street_name: PIAZZA DELLA SCALA
            building_number: '6'
            post_code: '20121'
            town_name: MILANO
            country_subdivision_name: MILANO
            country_subdivision_code: MI
            country_code: IT
            country_name: ITALY
          swift_connectivity:
            fin: true
            interact: true
            fileact: true
            finplus:
              future: ou=xxx,o=bcititmm,o=swift
              live: ou=xxx,o=bcititmm,o=swift
              pilot: ou=xxx,o=bcititmm,o=swift
          swift_services:
            - code: EBA
              name: EBA CLEARING - EURO1
            - code: ERP
              name: EBA CLEARING - STEP1
            - code: FIN
              name: PUBLISH IN FIN BASIC SECTION (BLUE) IN BIC DIR
    BicIsoDetails:
      type: object
      required:
        - bic
        - name
        - structured_address
      properties:
        bic:
          $ref: '#/components/schemas/Bic'
          # description: The BIC of the institution on which more information is requested
        office_type:
          $ref: '#/components/schemas/OfficeType'
        name:
          $ref: '#/components/schemas/InstitutionName'
          # description: Name by which an institution is known and identified
        department:
          $ref: '#/components/schemas/InstitutionDepartment'
        sub_department:
          $ref: '#/components/schemas/InstitutionDepartment'
        unstructured_address:
          $ref: '#/components/schemas/UnstructuredAddress'
        structured_address:
          $ref: '#/components/schemas/StructuredAddress'
        swift_connectivity:
          $ref: '#/components/schemas/SwiftConnectivity'
          # description: BIC connectivity
        swift_services:
          type: array
          items:
            $ref: '#/components/schemas/SwiftService'
          xml:
            wrapped: true
          description: A list of 3-character codes and names of Swift FIN service codes (also called value added service codes)
        swift_type:
          $ref: '#/components/schemas/SwiftSubtypeIndicator'
        utc_offset:
          $ref: '#/components/schemas/TimeOffset'
      xml:
        name: bic
      example:
        bic: 'UBSWGB2LSBI'
        office_type: 'SF'
        name: 'UBS AG LONDON BRANCH'
        department: 'UBS WARBURG INTERNATIONAL LTD, FORMERLY SBCI INVESTMENT BANKING LTD'
        sub_department: 'BQCODES: BRA'
        unstructured_address:
          address_line_1: 'SWISS BANK HOUSE'
          address_line_2: '1 HIGH TIMBER STREET'
          address_line_3: 'LONDON, EC4V 3SB, GREATER LONDON GB'
        structured_address:
          street_name: 'HIGH TIMBER STREET'
          building_number: '1'
          building_name: 'SWISS BANK HOUSE'
          post_code: 'EC4V 3SB'
          town_name: 'LONDON'
          country_subdivision_name: 'GREATER LONDON'
          country_code: 'GB'
          country_name: 'UNITED KINGDOM'
        swift_connectivity:
          fin: true
          finplus:
            future: 'ou=sbi,o=ubswgb2l,o=swift'
            live: 'ou=sbi,o=ubswgb2l,o=swift'
            pilot: 'ou=sbi,o=ubswgb2l,o=swift'
          interact: false
          fileact: false
        swift_services:
          - code: 'FIN'
            name: 'Many-to-many FIN payment service'
        utc_offset: "±00:00"
    IbanValidity:
      type: object
      required:
        - iban
        - validity
      properties:
        iban:
          $ref: '#/components/schemas/Iban'
        validity:
          type: string
          enum:
            - IVAL
          description: The code IVAL if the IBAN is valid
      xml:
        name: validity
      additionalProperties: false
      example:
        iban: IT60X0542811101000000123456
        validity: IVAL
    IbansValidationAndBicRetrievalResult:
      description: Result of validation of a list of IBANs and their IBAN BICs derivation
      type: array
      minItems: 1
      items:
        oneOf:
          - type: object
            required:
              - iban
              - bic
            properties:
              iban:
                $ref: '#/components/schemas/Iban'
              bic:
                $ref: '#/components/schemas/Bic'
            additionalProperties: false
          - type: object
            required:
              - iban
              - errors
            properties:
              iban:
                $ref: '#/components/schemas/Iban'
              errors:
                type: array
                items:
                  $ref: '#/components/schemas/Error'
                minItems: 1
            additionalProperties: false
      xml:
        name: results
      example:
        - iban: IT60X0542811101000000123456
          bic: DEUTDEFFXXX
        - iban: XX8330001234567
          errors:
            - code: REDA.API.BINF
              severity: Fatal
              user_message: No corresponding BIC found
              text: The supplied IBAN does not exist or has no BIC associated
    IbanBic:
      type: object
      required:
        - bic
      properties:
        bic:
          $ref: '#/components/schemas/Bic'
          # description: The BIC associated with the IBAN
      xml:
        name: bic
      additionalProperties: false
      example:
        bic: DEUTDEFFXXX
    IbanBuilt:
      type: object
      required:
        - iban
      properties:
        iban:
          $ref: '#/components/schemas/Iban'
      xml:
        name: iban
      additionalProperties: false
      example:
        iban: IT60X0542811101000000123456
    IbanNationalIdBic:
      type: object
      required:
        - bic
      properties:
        bic:
          $ref: '#/components/schemas/Bic'
          # description: The BIC associated with the IBAN national ID
      xml:
        name: bic
      additionalProperties: false
      example:
        bic: DEUTDEFFXXX
    IbanOfBban:
      type: object
      required:
        - iban
      properties:
        iban:
          $ref: '#/components/schemas/Iban'
          # description: The corresponding IBAN
      xml:
        name: iban
      additionalProperties: false
      example:
        iban: DE04500700100532013000
    BbanElements:
      type: object
      required:
        - elements
      properties:
        elements:
          type: array
          items:
            $ref: '#/components/schemas/BbanElementCombination'
      xml:
        name: bban
      example:
        elements:
          - - field_position: 3
              field_length: 23
              field_name: bban
              label_en: Bank code and account number
              label_local: Numero di conto
              is_max_length: false
              is_mandatory: true
          - - field_position: 3
              field_length: 1
              field_name: checksum
              label_en: National checksum
              label_local: CIN
              is_max_length: false
              is_mandatory: false
            - field_position: 4
              field_length: 5
              field_name: bank_code
              label_en: Bank code
              label_local: ABI
              is_max_length: false
              is_mandatory: true
            - field_position: 5
              field_length: 5
              field_name: branch_code
              label_en: Branch code
              label_local: CAB
              is_max_length: false
              is_mandatory: true
            - field_position: 6
              field_length: 12
              field_name: account
              label_en: Account number
              label_local: Numero di conto corrente
              is_max_length: true
              is_mandatory: true
    BicValidity:
      type: object
      required:
        - bic
        - validity
        - effective_date
      properties:
        bic:
          $ref: '#/components/schemas/Bic'
          # description: The BIC that was validated
        validity:
          type: string
          enum:
            - VBIC
          description: The code VBIC if the BIC is valid
        effective_date:
          type: string
          pattern: '^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]Z$'
          description: A date in YYYY-MM-DD format to indicate explicitly on which date the BIC is confirmed to be valid; the timezone is always UTC, hence the "Z" suffix will always be present, in compliance with ISO 8601 / RFC 3339
      xml:
        name: validity
      additionalProperties: false
      example:
        bic: DEUTDEFFXXX
        validity: VBIC
        effective_date: '2019-07-23Z'
    LeiFound:
      type: object
      required:
        - lei
      properties:
        lei:
          $ref: '#/components/schemas/Lei'
          # description: The corresponding LEI for a given BIC
      xml:
        name: lei
      additionalProperties: false
      example:
        lei: 7LTWFZYICNSX8D621K86
    NationalIdsFound:
      type: object
      required:
        - national_ids
      properties:
        national_ids:
          type: array
          items:
            $ref: '#/components/schemas/NationalId'
      xml:
        name: national_ids
      additionalProperties: false
      example:
        national_ids:
          - id: '50070010'
            id_type: 'DE-BLZ8'
            national_id_type: BLZ
            iso_clc_type: DEBLZ
    BicReachabilityFound:
      type: object
      required:
        - payment_channels
      properties:
        payment_channels:
          type: array
          items:
            $ref: '#/components/schemas/SepaPaymentChannel'
          description: SEPA CSM through which the BIC is reachable for the supplied SEPA scheme
        adherence_bic:
          $ref: '#/components/schemas/Bic'
          # description: Adherence BIC11 of the reachable BIC
      xml:
        name: reachability
      additionalProperties: false
      example:
        payment_channels:
          - id: EBAS
            member_type: DRCT
    SsisFound:
      type: object
      required:
        - ssis
      properties:
        ssis:
          type: array
          items:
            $ref: '#/components/schemas/Ssi'
          minItems: 1
      xml:
        name: ssis
      additionalProperties: false
    ConnectedBicFound:
      type: object
      required:
        - connected_bic
      properties:
        connected_bic:
          $ref: '#/components/schemas/Bic'
      xml:
        name: connected_bic
      additionalProperties: false
      example:
        connected_bic: WELADEDDXXX
    LeiBic:
      type: object
      required:
        - bic
      properties:
        bic:
          $ref: '#/components/schemas/Bic'
          # description: The corresponding BIC for a given LEI
      xml:
        name: bic
      additionalProperties: false
      example:
        bic: DEUTDEFFXXX
    LeiValidity:
      type: object
      required:
        - lei
        - validity
      properties:
        lei:
          $ref: '#/components/schemas/Lei'
          # description: The LEI that was validated
        validity:
          type: string
          enum:
            - VLEI
          description: The code VLEI if the LEI is valid
      xml:
        name: validity
      additionalProperties: false
      example:
        lei: BFXS5XCH7N0Y05NIXW11
        validity: VLEI
    NationalIdDetailsFound:
      type: object
      required:
        - national_ids
      properties:
        national_ids:
          type: array
          items:
            $ref: '#/components/schemas/NationalIdDetails'
      xml:
        name: national_ids
      additionalProperties: false
      example:
        national_ids:
          - national_id: '043000300'
            id_type: 'AS-ABA9'
            national_id_type: 'ABA'
            iso_clc_type: 'USABA'
            office_type: 'DB'
            name: 'Federal Reserve Bank of Cleveland'
            department: 'Pittsburgh'
            unstructured_address:
              address_line_1: 'ONE OXFORD CTR'
              address_line_2: '301 GRANT ST, STE 3000'
              address_line_3: 'PITTSBURGH PA 15219, US'
            structured_address:
              street_name: 'GRANT ST'
              building_number: '301'
              building_name: 'ONE OXFORD CTR'
              post_box: 'PO BOX 867'
              room: 'STE 3000'
              post_code: '15219'
              town_name: 'PITTSBURGH'
              country_subdivision_name: 'PENNSYLVANIA'
              country_subdivision_code: 'PA'
              country_code: 'US'
              country_name: 'UNITED STATES OF AMERICA'
            utc_offset: "-05:00"
    ValidNationalIdWithValidityFlag:
      description: Valid National ID with a flag stating it really is.
      type: object
      required:
        - national_id
        - validity
      properties:
        national_id:
          $ref: '#/components/schemas/NationalIdCode'
          # description: The National ID that was validated
        id_type:
          $ref: '#/components/schemas/BankNationalIdScheme'
        national_id_type:
          $ref: '#/components/schemas/BdpNationalIdScheme'
        iso_clc_type:
          $ref: '#/components/schemas/Iso5NationalIdScheme'
        validity:
          type: string
          enum:
            - valid
          description: Contains the value "valid" if the National ID is valid in the provided scheme or country
      xml:
        name: validity
      additionalProperties: false
      example:
        national_id: '50070010'
        id_type: 'DE-BLZ8'
        national_id_type: BLZ
        iso_clc_type: DEBLZ
        validity: valid
    BicsFound:
      type: object
      required:
        - bics
      properties:
        bics:
          type: array
          items:
            $ref: '#/components/schemas/Bic'
          description: An array of the corresponding BICs
      xml:
        name: bics
      additionalProperties: false
      example:
        bics:
          - DEUTDEFFXXX
    CountryCodeValidity:
      type: object
      required:
        - country_code
        - validity
      properties:
        country_code:
          $ref: '#/components/schemas/CountryCodeExtended'
          # description: The country code that was validated
        validity:
          type: string
          enum:
            - VCOC
          description: The code VCOC if the country code is valid
      xml:
        name: validity
      additionalProperties: false
      example:
        country_code: IT
        validity: VCOC
    CurrencyCodeValidity:
      type: object
      required:
        - currency_code
        - validity
      properties:
        currency_code:
          $ref: '#/components/schemas/CurrencyCodeExtended'
          # description: The currency code that was validated
        validity:
          type: string
          enum:
            - VCUC
          description: The code VCUC if the currency code is valid
      xml:
        name: validity
      additionalProperties: false
      example:
        currency_code: EUR
        validity: VCUC
    CurrencyAmountValidity:
      type: object
      required:
        - amount
        - currency_code
        - validity
      properties:
        amount:
          type: string
          pattern: '^[0-9]*,[0-9]*$'
          description: The amount that was validated
        currency_code:
          $ref: '#/components/schemas/CurrencyCodeExtended'
          # description: The currency code of the amount that was validated
        validity:
          type: string
          enum:
            - VAMT
          description: The code VAMT if the amount is valid
      xml:
        name: amount_validity
      additionalProperties: false
      example:
        amount: '12,34'
        currency_code: EUR
        validity: VAMT
    AccountNumberValidity:
      type: object
      required:
        - account_number
        - validity
      properties:
        account_number:
          $ref: '#/components/schemas/FullAccountNumber'
          # description: The account number that was validated
        validity:
          type: string
          enum:
            - AVAL
          description: The code AVAL if the account number is valid
      xml:
        name: validity
      additionalProperties: false
      example:
        account_number: X0542811101000000123456
        validity: AVAL
    AccountNumberValidityAndInstitutionDetails:
      type: object
      required:
        - account_number
        - clearing_institution_name
        - calculated_bic
        - bic_verification_status
        - national_id
        - national_id_verification_status
        - country_code
      properties:
        account_number:
          $ref: '#/components/schemas/FullAccountNumber'
          # description: The account number that was validated
        clearing_institution_name:
          $ref: '#/components/schemas/InstitutionName'
          # description: The institution name of the account number that was validated
        calculated_bic:
          $ref: '#/components/schemas/Bic'
          # description: The BIC of the institution of the account number that was validated
        bic_verification_status:
          $ref: '#/components/schemas/StatusCode'
          # description: Code representing BIC validity
        national_id:
          $ref: '#/components/schemas/NationalIdCode'
          # description: The national ID of the institution of the account number that was validated
        national_id_verification_status:
          $ref: '#/components/schemas/StatusCode'
          # description: Code representing national ID validity
        country_code:
          $ref: '#/components/schemas/CountryCode'
          # description: The country code of the institution of the account number that was validated
      xml:
        name: validity-and-institution-details
      additionalProperties: false
      example:
        account_number: IT60X0542811101000000123456
        clearing_institution_name: UBI BANCA S.P.A.
        calculated_bic: BLOPIT22XXX
        bic_verification_status: 'REDA.API.VBIC'
        national_id: '0542811101'
        national_id_verification_status: 'REDA.API.VRID'
        country_code: IT
    PmiParticipants:
      type: object
      required:
        - data
        - links
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/PmiParticipant'
          minItems: 1
          maxItems: 1000
        links:
          type: array
          items:
            $ref: '#/components/schemas/Link'
          minItems: 1
          maxItems: 5
      xml:
        name: participants
      example:
        data:
          - participant_id: '021582837'
            participant_name: COOPERATIVA DE A Y C DE LA AAA
            country_code: US
            service_id: US FEDACH
            links:
              - href: https://api.swift.com/swiftrefdata/v5/pmis/participants/3061208
                rel: self
                type: GET
          - participant_id: '271291648'
            participant_name: AAA FEDERAL CREDIT UNION
            country_code: US
            service_id: US FEDACH
            links:
              - href: https://api.swift.com/swiftrefdata/v5/pmis/participants/3073811
                rel: self
                type: GET
        links:
          - href: https://api.swift.com/swiftrefdata/v5/pmis/participants?limit=10&participant_name_substring=aaa&offset=0
            rel: first
            type: GET
          - href: https://api.swift.com/swiftrefdata/v5/pmis/participants?limit=10&participant_name_substring=aaa&offset=0
            rel: last
            type: GET
          - href: https://api.swift.com/swiftrefdata/v5/pmis/participants?limit=10&participant_name_substring=aaa&offset=0
            rel: self
            type: GET
    PmiParticipantStructure:
      type: object
      required:
        - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/PmiParticipantStructureItem'
          minItems: 1
      xml:
        name: structure
    PmiDetails:
      type: object
      description: Details of a Payment Market Infrastructure
      required:
        - service_id
        - service_name
      properties:
        service_id:
          type: string
          description: The acronym of the clearing and settlement service, or the SWIFTNet service. It is usually prefixed with the ISO country code or the AREA code, which represents the land/area where the service is offered.
          maxLength: 20
          example: CN CNAPS
        alternative_service_ids:
          type: array
          items:
            type: string
            maxLength: 20
          description: The list of the various alternative IDs. The prefix and the alternative ID are separated by ":".
          example:
            - ISO5:CNAPS
            - ISO2:CN
        service_name:
          type: string
          description: The name of the Payment Market Infrastructure.
          maxLength: 105
          example: China National Advanced Payments System
        currency_codes:
          type: array
          items:
            $ref: '#/components/schemas/CurrencyCode'
          description: The list of currency codes cleared or settled on the service. Required only for platforms other than SWIFTNET.
          example:
            - CNY
        service_type:
          type: string
          description: If applicable, a comma-separated combination of ACH (automated clearing house), CHQ (cheque clearing system), RTGS (real-time gross settlement), RT-RPS (real-time retail payments service). Other services that are not in these categories have this field empty.
          maxLength: 50
          example: 'ACH,RT-RPS'
        areas:
          type: array
          items:
            type: string
            maxLength: 2
          description: A list of one or several countries, at times defining an official group of countries in which the service is made available.
          example:
            - CN
        coverage:
          type: string
          enum:
            - domestic
            - regional
            - international
          description: The reach/coverage the service provides.
          example: domestic
        high_low_value:
          type: string
          enum:
            - HV
            - LV
            - HV/LV
          description: The value of the transactions, one of HV (high value), LV (low value), HV/LV (high and low value).
          example: HV
        gross_net_settlement:
          type: string
          enum:
            - GS
            - NS
          description: The type of settlement, one of GS (gross settlement, each transaction is settled individually), NS (net settlement, the transactions are aggregated and settled in batch as net differences in amounts).
          example: GS
        execution_delay:
          type: string
          enum:
            - RT
            - 1H
            - 2H
            - 3H
            - 4H
            - 5H
            - 6H
            - 7H
            - 8H
            - 9H
            - SD
            - DF
          description: The maximum period necessary to execute the transaction, one of RT (real-time or instant), nH (a number of hours, for example 2H), SD (same day), DF (deferred, can take one or several days)
          example: RT
        transaction_types:
          type: array
          items:
            type: string
            maxLength: 2
          description: The types of transaction. A list of one or several of CQ (cheque transfer), CT (credit transfer), DT (debit transfer), DD (direct debit), IB (inter-bank transfer). Additional types may be added in the future.
          example:
            - IB
            - CT
        participant_id_type:
          type: string
          description: The type of identifier of the participant of the service. In most cases, it will either be a Swift BIC or a domestic routing/clearing number (with or without the branch code). These have a dedicated name in the related Bank Directory Plus file called the NATIONAL ID TYPE.
          maxLength: 50
          example: CNAPS
        iso_message_formats:
          type: array
          items:
            type: string
            maxLength: 50
          description: The comma-separated list of the ISO standards ID(s) for the type of messages used by the service, e.g. ISO15022 (as used in the FIN MTs), ISO20022, ISO8583.
          example:
            - ISO15022, ISO20022
        service_local_start_time:
          type: string
          pattern: '^\d\d:\d\d[\+\-]\d\d:\d\d$'
          description: The local time + UTC offset of the start of the daily operations of the service. This time is not adapted for Daylight Saving Time (DST).
          example: '08:30+08:00'
        service_local_cut_off_time:
          type: string
          pattern: '^\d\d:\d\d[\+\-]\d\d:\d\d$'
          description: The local time + UTC offset of the acceptance of the last transaction by the service. This time is not adapted for Daylight Saving Time (DST).
          example: '17:00+08:00'
        operating_days:
          type: string
          pattern: '^(SUN|MON|TUE|WED|THU|FRI|SAT)-(SUN|MON|TUE|WED|THU|FRI|SAT)$'
          description: A range of days (in acronyms) during which the service is operational.
          example: 'MON-FRI'
        cut_off_amount:
          type: string
          description: The maximum amount allowed in an ACH or RT-RPS-RPS (low value) and/or the minimum amount allowed in an RTGS (high value) service, with syntax min/max <amount> <currency>.
          maxLength: 255
          example: BEPS max CNY 50000, HVPS min CNY 50000
      additionalProperties: false
      xml:
        name: pmi
      example:
        service_name: China National Advanced Payments System
        alternative_service_ids:
          - 'ISO5:CNAPS'
          - 'ISO2:CN'
        currency_codes:
          - CNY
        service_type: RTGS
        areas:
          - CN
        coverage: domestic
        high_low_value: HV
        gross_net_settlement: GS
        execution_delay: RT
        transaction_types:
          - IB
          - CT
        participant_id_type: CNAPS
        iso_message_formats:
          - ISO20022
        service_local_start_time: '08:30+08:00'
        service_local_cut_off_time: '17:00+08:00'
        operating_days: 'MON-FRI'
        cut_off_amount: BEPS max CNY 50000, HVPS min CNY 50000
        service_id: CN CNAPS
    Pmis:
      type: object
      required:
        - pmis
      properties:
        pmis:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/PmiDetails'
      xml:
        name: pmis
    Identifiers:
      type: object
      required:
        - data
        - links
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Identifier'
          minItems: 1
          maxItems: 1000
        links:
          type: array
          items:
            $ref: '#/components/schemas/Link'
          minItems: 1
          maxItems: 5
      xml:
        name: identifiers
      additionalProperties: false
      example:
        data:
          - id_value: 'UBSWGB2LSBI'
            id_type: 'BIC11'
            name: 'UBS AG LONDON BRANCH'
            status: 'Current'
            structured_address:
              street_name: 'HIGH TIMBER STREET'
              building_number: '1'
              building_name: 'SWISS BANK HOUSE'
              post_code: 'EC4V 3SB'
              town_name: 'LONDON'
              country_subdivision_name: 'GREATER LONDON'
              country_code: 'GB'
              country_name: 'UNITED KINGDOM'
            unstructured_address:
              address_line_1: 'SWISS BANK HOUSE'
              address_line_2: '1 HIGH TIMBER STREET'
              address_line_3: 'LONDON, EC4V 3SB, GREATER LONDON GB'
        links:
          - href: https://api.swift.com/swiftrefdata/v5/identifiers?query=ubs&offset=0&limit=20
            rel: first
            type: GET
          - href: https://api.swift.com/swiftrefdata/v5/identifiers?query=ubs&offset=0&limit=20
            rel: last
            type: GET
          - href: https://api.swift.com/swiftrefdata/v5/identifiers?query=ubs&offset=0&limit=20
            rel: self
            type: GET
    Identifier:
      description: Details of an institution identifier
      type: object
      required:
        - id_value
        - id_type
        - name
        - status
        - structured_address
      properties:
        id_value:
          $ref: '#/components/schemas/IdentifierValue'
          # description: Identifier of an institution
        id_type:
          $ref: '#/components/schemas/IdentifierType'
          # description: Type of the identifier of an institution
        name:
          $ref: '#/components/schemas/InstitutionName'
          # description: Name by which an institution is known and identified
        status:
          $ref: '#/components/schemas/IdentifierStatus'
          # description: Status of an institution identifier
        structured_address:
          $ref: '#/components/schemas/StructuredAddress'
        unstructured_address:
          $ref: '#/components/schemas/UnstructuredAddress'
    SplitResult:
      type: object
      required: [ town_name, town_name_confidence, country_code, country_code_confidence ]
      description: The 4-field output of the address split.
      properties:
        town_name:
          type: string
          maxLength: 35
          nullable: true
          description: |
            Extracted town or place name.
            Null when unresolved.
          example: "Novara"
        town_name_confidence:
          type: integer
          minimum: 0
          maximum: 100
          description: |
            Level of precision/confidence that the extracted name belongs to a real town that exists.
            Zero when town_name is null.
          example: 100
        country_code:
          type: string
          nullable: true
          pattern: "^[A-Z]{2}$"
          description: |
            ISO 3166-1 alpha-2 code of the country extracted from the input string.
            Null when no match.
          example: "IT"
        country_code_confidence:
          type: integer
          minimum: 0
          maximum: 100
          description: |
            Level of precision/confidence that the extracted country is a real country that exists.
            Zero when country_code is null.
            Town name extraction only runs at 80 or above.
          example: 100
      additionalProperties: false
      xml:
        name: town-name-and-country-code
      example:
        town_name: "Novara"
        town_name_confidence: 100
        country_code: "IT"
        country_code_confidence: 100
    # Request object schemas.
    RequestIban:
      type: object
      required:
        - iban
      properties:
        iban:
          $ref: '#/components/schemas/Iban'
      additionalProperties: false
    RequestIbanWithSepaFlag:
      type: object
      required:
        - iban
      properties:
        iban:
          $ref: '#/components/schemas/Iban'
        sepa_only:
          type: boolean
      additionalProperties: false
    RequestIbans:
      description: Input of endpoints that process multiple IBANs with a single request.
      type: object
      required:
        - ibans
      properties:
        ibans:
          type: array
          minItems: 1
          maxItems: 20000
          uniqueItems: true
          items:
            $ref: '#/components/schemas/Iban'
      additionalProperties: false
    RequestIbanConstruction:
      type: object
      required:
        - country_code
      properties:
        country_code:
          $ref: '#/components/schemas/CountryCode'
          # description: The 2-character ISO 3166-1 country code of an IBAN country
      additionalProperties:
        # Additional properties cannot be defined explicitly, since fully dynamic.
        $ref: '#/components/schemas/AlphaNumStringMax30'
      maxProperties: 10