openapi: 3.0.2
info:
  title: Payment Pre-validation
  description: |-
    Enable your application to validate your cross-border payment instructions as early as possible in the payment process.

    **v2.4.1 Release Notes**

    As part of the continuous development of Payment Pre-validation API services, a new validation service is available as below. In addition, there are some minor changes to the descriptions and examples for the other existing services to align with the functional specification document.

      **Payment Instruction validation service** - This service provides a contextual payment validation. It is meant for a debtor bank or payment initiating end-customer who wants to validate a combination of payment elements, and that with one single API:
      * Debtor Agent Country
      * Creditor Agent Country
      * Creditor Account
      * Instructed Currency, and
      * Instructed Amount

      Based on the elements provided, the service orchestrates multiple validations (note that these validations remain as well available as individual services). This contextual validation service is designed as such, that new validations of additional elements can easily be integrated in the future.

      Further to this new validation service, updates have been made to the error response examples with the updated internal error codes.

      **Note**: When implementing the Data Provider API specifications, please make sure to follow the relevant onboarding guide and functional specification documents available here: https://www2.swift.com/knowledgecentre/products/Payment%20Pre-validation/publications
  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
  version: 2.4.1

servers:
- description: URL for Apigee (SDK consumer) Pilot.
  url: https://api-test.swiftnet.sipn.swift.com/swift-preval-pilot/v2
- description: URL for Apigee (SDK consumer) Live.
  url: https://api.swiftnet.sipn.swift.com/swift-preval/v2
- description: URL for Sandbox Environment.
  url: https://sandbox.swift.com/swift-preval/v2
- description: URL for Production Environment
  url: https://api.swift.com/swift-preval/v2
- description: URL for Test Environment
  url: https://api-pilot.swift.com/swift-preval-pilot/v2
- description: Extended availability Live environment
  url: https://api.common.swiftnet.sipn.swift.com/swift-preval-pilot/v2
- description: Extended availability Test environment
  url: https://api-pilot.common.swiftnet.sipn.swift.com/swift-preval/v2
externalDocs:
  description: To make a request to this API, the client must pass the access token
    obtained as a result of OAuth 2.0 flows. For more information please visit developer
    portal.
  url: https://developer.swift.com/oauth-overview
tags:
- name: Payment Pre-validation
paths:
  /accounts/verification:
    post:
      tags:
      - Payment Pre-validation
      summary: Verify that a beneficiary account could be able to receive incoming
        funds.
      description: |
          The service verifies that an account exists and is capable of receiving incoming funds. The service uses the beneficiary bank subscribed as data provider to perform the account verification that usually implies that the account is open, properly identified by the given number and, depending on the jurisdiction and market practices in use where the account is held, that the creditor name matches the name of the account holder. When the beneficiary bank did not subscribe as data provider, SWIFT will use pseudonymized account statistics to perform the account number verification that implies that the account exists and is likely to receive funds and the creditor name will not be verified. SWIFT and the beneficiary banks subscribed as data provider do not take liability for the response and do not provide any guarantee on the outcome of an actual transaction being sent to this account. The information provided is meant to be as accurate as possible at the time that the request was processed. The requester must pass the creditor name and the service provider can use this information as part of the verification or not.
      operationId: verifyBeneficiaryAccount
      parameters:
      - name: x-bic
        in: header
        description: |
          BIC of SWIFT or of the Payment Pre-validation Data Provider. The x-bic value must correspond to the BIC of the beneficiary bank subscribed to the service as Data Provider and performing the beneficiary account validation when the clients want to validate beneficiary account information exclusively with the beneficiary bank. The x- BIC value must be SWIFT BIC (swhqbebb) to use the beneficiary bank when it is subscribed to the service as data provider or to use the pseudonymized account statistics when the beneficiary bank is not subscribed to the service as data provider.
        required: true
        schema:
          pattern: ^[a-z]{6,6}[a-z2-9][a-np-z0-9]$
          type: string
          example: cclabebb
      - name: X-Request-ID
        description: |
          Unique end-to-end tracking identifier(ID) of the Payment Pre-validation API service request. Payment Pre-validation users are not required to fill it in for the Payment Pre-validation API request. SWIFT provide the tracking ID which is an uuid as described in IETF RFC 4122 Universally Unique Identifier (UUID) URN Namespace. Pattern - ^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$.
        in: header
        schema:
          type: string
          format: uuid
      - name: X-Request-Date-Time
        description: |
          The timestamp of the request, based on the client's clock. Request date time must be created and supplied at the time of request. The date-time must be represented as specified in RFC 7231. For example - Sun, 06 Nov 1994 08:49:37 GMT.
        in: header
        schema:
          type: string
          format: date-time
      security:
      - oauthBearerToken: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountVerificationRequest'
            examples:
              UseCase-1:
                $ref: '#/components/examples/BAVReqUseCase-1'
      responses:
        '200':
          description: |
            OK

            Get Account Details Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountVerificationResponse1'
              examples:
                DC_1.1.1_Account_Number_Matches_And_Name_Matching_Not_Applicable:
                  $ref: '#/components/examples/DC_1.1.1_Account_Number_Matches_And_Name_Matching_Not_Applicable'
                DC_1.1.2_Account_Number_Matches_And_Name_Matches:
                  $ref: '#/components/examples/DC_1.1.2_Account_Number_Matches_And_Name_Matches'
                DC_1.1.3_Account_Number_Matches_And_Name_Partially_Matches:
                  $ref: '#/components/examples/DC_1.1.3_Account_Number_Matches_And_Name_Partially_Matches'
                DC_1.1.4_Account_Number_Matches_But_Name_Does_Not_Match:
                  $ref: '#/components/examples/DC_1.1.4_Account_Number_Matches_But_Name_Does_Not_Match'
                DC_1.2.1_Account_Number_Matches_And_Name_Not_Checked_But_Will_Be_Checked_At_Processing_Time:
                  $ref: '#/components/examples/DC_1.2.1_Account_Number_Matches_And_Name_Not_Checked_But_Will_Be_Checked_At_Processing_Time'
                DC_1.2.2_Account_Number_Matches_And_Name_Partially_Matches:
                  $ref: '#/components/examples/DC_1.2.2_Account_Number_Matches_And_Name_Partially_Matches'
                DC_1.2.3_Account_Number_Matches_But_Name_Does_Not_Match:
                  $ref: '#/components/examples/DC_1.2.3_Account_Number_Matches_But_Name_Does_Not_Match'
                DC_1.3_Account_Type_Is_Out_Of_Scope_Of_The_Implementation_OR_Cannot_Be_Serviced:
                  $ref: '#/components/examples/DC_1.3_Account_Type_Is_Out_Of_Scope_Of_The_Implementation_OR_Cannot_Be_Serviced'
                DC_1.4.1_Account_Number_Can_Be_Reallocated_And_Name_Matching_Not_Applicable:
                  $ref: '#/components/examples/DC_1.4.1_Account_Number_Can_Be_Reallocated_And_Name_Matching_Not_Applicable'
                DC_1.4.2_Account_Number_Can_Be_Reallocated_And_Name_Not_Checked_But_Will_Be_Checked_At_Processing_Time:
                  $ref: '#/components/examples/DC_1.4.2_Account_Number_Can_Be_Reallocated_And_Name_Not_Checked_But_Will_Be_Checked_At_Processing_Time'
                DC_1.4.3_Account_Number_Can_Be_Reallocated_And_Name_Matches:
                  $ref: '#/components/examples/DC_1.4.3_Account_Number_Can_Be_Reallocated_And_Name_Matches'
                DC_1.4.4_Account_Number_Can_Be_Reallocated_And_Name_Partially_Matches:
                  $ref: '#/components/examples/DC_1.4.4_Account_Number_Can_Be_Reallocated_And_Name_Partially_Matches'
                DC_1.4.5_Account_Number_Can_Be_Reallocated_But_Name_Does_Not_Match:
                  $ref: '#/components/examples/DC_1.4.5_Account_Number_Can_Be_Reallocated_But_Name_Does_Not_Match'
                DC_2.1.1_Account_Number_Is_Not_Valid_And_Name_Matching_Not_Applicable:
                  $ref: '#/components/examples/DC_2.1.1_Account_Number_Is_Not_Valid_And_Name_Matching_Not_Applicable'
                DC_2.1.2_Account_Number_Is_Not_Valid_And_Name_Not_Checked_But_Will_Be_Checked_At_Processing_Time:
                  $ref: '#/components/examples/DC_2.1.2_Account_Number_Is_Not_Valid_And_Name_Not_Checked_But_Will_Be_Checked_At_Processing_Time'
                DC_2.2.1_Account_Number_Matches_And_Name_Partially_Matches:
                  $ref: '#/components/examples/DC_2.2.1_Account_Number_Matches_And_Name_Partially_Matches'
                DC_2.2.2_Account_Number_Matches_But_Names_Does_Not_Match:
                  $ref: '#/components/examples/DC_2.2.2_Account_Number_Matches_But_Names_Does_Not_Match'
                DC_3.1_Account_Found_For_Transactions_That_Did_Not_Fail_Due_To_Invalid_Account_Number:
                  $ref: '#/components/examples/DC_3.1_Account_Found_For_Transactions_That_Did_Not_Fail_Due_To_Invalid_Account_Number'
                DC_3.2_Account_Not_Found:
                  $ref: '#/components/examples/DC_3.2_Account_Not_Found'
                DC_3.3_Account_Found_For_Transactions_That_Fail_Due_To_Invalid_Account_Number:
                  $ref: '#/components/examples/DC_3.3_Account_Found_For_Transactions_That_Fail_Due_To_Invalid_Account_Number'
                DC_4.1_Account_Matches_With_Correlation_Id:
                  $ref: '#/components/examples/DC_4.1_Account_Matches_With_Correlation_Id'
                DC_5.1_Account_Matches_And_Disclose_Creditor_Name:
                  $ref: '#/components/examples/DC_5.1_Account_Matches_And_Disclose_Creditor_Name'
                DC_5.2_Account_Matches_And_Disclose_Creditor_Account:
                  $ref: '#/components/examples/DC_5.2_Account_Matches_And_Disclose_Creditor_Account'
                DC_5.3_Account_Matches_And_Disclose_Creditor_Account_Type:
                  $ref: '#/components/examples/DC_5.3_Account_Matches_And_Disclose_Creditor_Account_Type'
                DC_5.4_Account_Matches_And_Disclose_Creditor_Account_Address:
                  $ref: '#/components/examples/DC_5.4_Account_Matches_And_Disclose_Creditor_Account_Address'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                API_Request_Is_Malformed:
                  $ref: '#/components/examples/API_Request_Is_Malformed'
                Account_Out_Of_Scope_Of_The_Implementation_OR_Cannot_Be_Serviced:
                  $ref: '#/components/examples/Account_Out_Of_Scope_Of_The_Implementation_OR_Cannot_Be_Serviced'
                Data_Provider_Is_Not_Active:
                  $ref: '#/components/examples/Data_Provider_Is_Not_Active'
                Account_Error_Unsupported_Format:
                  $ref: '#/components/examples/Account_Error_Unsupported_Format'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_invalid_token:
                  $ref: '#/components/examples/InvalidToken'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Forbidden:
                  $ref: '#/components/examples/Forbidden'
                scenario_insufficient_scope:
                  $ref: '#/components/examples/InsufficientScope'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_not_found:
                  $ref: '#/components/examples/NotFound'
        '406':
          description: Not Acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Forbidden:
                  $ref: '#/components/examples/NotAcceptable'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_not_found:
                  $ref: '#/components/examples/TooManyRequest'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                InternalServerError:
                  $ref: '#/components/examples/InternalServerError'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                ServiceUnavailable:
                  $ref: '#/components/examples/ServiceUnavailable'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                GatewayTimeout:
                  $ref: '#/components/examples/GatewayTimeout'
        default:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                DefaultError:
                  $ref: '#/components/examples/DefaultError'
  /accounts/data-provider:
    post:
      tags:
      - Payment Pre-validation
      summary: Validates the instructed institution as Payment Pre-validation Data
        Provider.
      description: |
        Validates if the instructed institution is registered in the SWIFT reference data as Data Provider for Payment Pre-validation Data Provider API services. If no institution instructed for validation, provides all the registered Payment Pre-validation Data Providers.
      operationId: getDataProviderIdentityValidationStatus
      parameters:
      - name: x-bic
        in: header
        description: |
          BIC of SWIFT as SWIFT is performing the service, centrally. The x-bic value must be swhqbebb.
        required: true
        schema:
          pattern: ^[a-z]{6,6}[a-z2-9][a-np-z0-9]$
          type: string
        example: swhqbebb
      - name: X-Request-ID
        description: |
          Unique end-to-end tracking identifier(ID) of the Payment Pre-validation API service request. Payment Pre-validation Users are not required to fill it in for the Payment Pre-validation API request. SWIFT provide the tracking ID which is an uuid as described in IETF RFC 4122 Universally Unique Identifier (UUID) URN Namespace.Pattern - ^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$.
        in: header
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataProviderIdentityValidation1'
            examples:
              UseCase-1:
                $ref: '#/components/examples/DPReqUseCase-1'
              UseCase-2:
                $ref: '#/components/examples/DPReqUseCase-2'
              UseCase-3:
                $ref: '#/components/examples/DPReqUseCase-3'
              UseCase-4:
                $ref: '#/components/examples/DPReqUseCase-4'
              UseCase-5:
                $ref: '#/components/examples/DPReqUseCase-5'
              UseCase-6:
                $ref: '#/components/examples/DPReqUseCase-6'
      responses:
        '200':
          description: |
            OK

            Represents the response details that the Data Provider Identity validation service will provide to the service consumer (the "User").
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataProviderIdentityValidationStatus1'
              examples:
                UseCase-1:
                  $ref: '#/components/examples/DPResUseCase-1'
                UseCase-2:
                  $ref: '#/components/examples/DPResUseCase-2'
                UseCase-3:
                  $ref: '#/components/examples/DPResUseCase-3'
                UseCase-4:
                  $ref: '#/components/examples/DPResUseCase-4'
                UseCase-5:
                  $ref: '#/components/examples/DPResUseCase-5'
                UseCase-6:
                  $ref: '#/components/examples/DPResUseCase-6'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_invalid_token:
                  $ref: '#/components/examples/InvalidToken'
                scenario_insufficient_scope:
                  $ref: '#/components/examples/InsufficientScope'
                scenario_service_not_provisioned:
                  $ref: '#/components/examples/ServiceNotProvisioned'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Forbidden:
                  $ref: '#/components/examples/Forbidden'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_not_found:
                  $ref: '#/components/examples/NotFound'
        '406':
          description: Not Acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Forbidden:
                  $ref: '#/components/examples/NotAcceptable'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_not_found:
                  $ref: '#/components/examples/TooManyRequest'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                InternalServerError:
                  $ref: '#/components/examples/InternalServerError'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                ServiceUnavailable:
                  $ref: '#/components/examples/ServiceUnavailable'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                GatewayTimeout:
                  $ref: '#/components/examples/GatewayTimeout'
        default:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                DefaultError:
                  $ref: '#/components/examples/DefaultError'
  /payment/account-format:
    post:
      tags:
      - Payment Pre-validation
      summary: Validates the account format.
      description: |
        The service performs the format validation of the instructed account identifier against all the format that apply to the instructed context (country and/or the financial institution that holds the account).
      operationId: getAccountFormatValidationStatus
      parameters:
      - name: x-bic
        in: header
        description: |
          BIC of SWIFT as SWIFT is performing the service, centrally. The x-bic value must be swhqbebb.
        required: true
        schema:
          pattern: ^[a-z]{6,6}[a-z2-9][a-np-z0-9]$
          type: string
        example: swhqbebb
      - name: X-Request-ID
        description: |
          Unique end-to-end tracking identifier(ID) of the Payment Pre-validation API service request. Payment Pre-validation Users are not required to fill it in for the Payment Pre-validation API request. SWIFT provide the tracking ID which is an uuid as described in IETF RFC 4122 Universally Unique Identifier (UUID) URN Namespace. Pattern - ^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$.
        in: header
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountFormatValidation1'
            examples:
              UseCase-1:
                $ref: '#/components/examples/AFReqUseCase-1'
              UseCase-2:
                $ref: '#/components/examples/AFReqUseCase-2'
              UseCase-3:
                $ref: '#/components/examples/AFReqUseCase-3'
              UseCase-4:
                $ref: '#/components/examples/AFReqUseCase-4'
              UseCase-5:
                $ref: '#/components/examples/AFReqUseCase-5'
              UseCase-6:
                $ref: '#/components/examples/AFReqUseCase-6'
              UseCase-7:
                $ref: '#/components/examples/AFReqUseCase-7'
              UseCase-8:
                $ref: '#/components/examples/AFReqUseCase-8'
              UseCase-9:
                $ref: '#/components/examples/AFReqUseCase-9'
              UseCase-10:
                $ref: '#/components/examples/AFReqUseCase-10'
              UseCase-11:
                $ref: '#/components/examples/AFReqUseCase-11'
              UseCase-12:
                $ref: '#/components/examples/AFReqUseCase-12'
              UseCase-13:
                $ref: '#/components/examples/AFReqUseCase-13'
              UseCase-17:
                $ref: '#/components/examples/AFReqUseCase-14'
      responses:
        '200':
          description: |
            OK

            This represents the response details that the Account Format validation service will provide to the service consumer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountFormatValidationStatus1'
              examples:
                UseCase-1:
                  $ref: '#/components/examples/AFResUseCase-1'
                UseCase-2:
                  $ref: '#/components/examples/AFResUseCase-2'
                UseCase-3:
                  $ref: '#/components/examples/AFResUseCase-3'
                UseCase-4:
                  $ref: '#/components/examples/AFResUseCase-4'
                UseCase-5:
                  $ref: '#/components/examples/AFResUseCase-5'
                UseCase-6:
                  $ref: '#/components/examples/AFResUseCase-6'
                UseCase-7:
                  $ref: '#/components/examples/AFResUseCase-7'
                UseCase-8:
                  $ref: '#/components/examples/AFResUseCase-8'
                UseCase-9:
                  $ref: '#/components/examples/AFResUseCase-9'
                UseCase-10:
                  $ref: '#/components/examples/AFResUseCase-10'
                UseCase-11:
                  $ref: '#/components/examples/AFResUseCase-11'
                UseCase-12:
                  $ref: '#/components/examples/AFResUseCase-12'
                UseCase-13:
                  $ref: '#/components/examples/AFResUseCase-13'
                UseCase-17:
                  $ref: '#/components/examples/AFResUseCase-14'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                AFErrUseCase-1:
                  $ref: '#/components/examples/AFErrUseCase-1'
                AFErrUseCase-2:
                  $ref: '#/components/examples/AFErrUseCase-2'
                AFErrUseCase-3:
                  $ref: '#/components/examples/AFErrUseCase-3'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_invalid_token:
                  $ref: '#/components/examples/InvalidToken'
                scenario_insufficient_scope:
                  $ref: '#/components/examples/InsufficientScope'
                scenario_service_not_provisioned:
                  $ref: '#/components/examples/ServiceNotProvisioned'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Forbidden:
                  $ref: '#/components/examples/Forbidden'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_not_found:
                  $ref: '#/components/examples/NotFound'
        '406':
          description: Not Acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Forbidden:
                  $ref: '#/components/examples/NotAcceptable'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_not_found:
                  $ref: '#/components/examples/TooManyRequest'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                AFErrUseCase-4:
                  $ref: '#/components/examples/AFErrUseCase-4'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                AFErrUseCase-5:
                  $ref: '#/components/examples/AFErrUseCase-5'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                GatewayTimeout:
                  $ref: '#/components/examples/GatewayTimeout'
        default:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                DefaultError:
                  $ref: '#/components/examples/DefaultError'
  /payment/financial-institution-identity:
    post:
      tags:
      - Payment Pre-validation
      summary: Validates the instructed institution as financial institution.
      description: |
        Validates if the instructed institution is registered in the SWIFT reference data as financial institution.
      operationId: getFinancialInstitutionIdentityValidationStatus
      parameters:
      - name: x-bic
        in: header
        description: |
          BIC of SWIFT as SWIFT is performing the service, centrally. The x-bic value must be swhqbebb.
        required: true
        schema:
          pattern: ^[a-z]{6,6}[a-z2-9][a-np-z0-9]$
          type: string
        example: swhqbebb
      - name: X-Request-ID
        description: |
          Unique end-to-end tracking identifier(ID) of the Payment Pre-validation API service request. Payment Pre-validation Users are not required to fill it in for the Payment Pre-validation API request. SWIFT provide the tracking ID which is an uuid as described in IETF RFC 4122 Universally Unique Identifier (UUID) URN Namespace. Pattern - ^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$.
        in: header
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FinancialInstitutionIdentityValidation1'
            examples:
              UseCase-1:
                $ref: '#/components/examples/FIReqUseCase-1'
              UseCase-2:
                $ref: '#/components/examples/FIReqUseCase-2'
              UseCase-3:
                $ref: '#/components/examples/FIReqUseCase-3'
              UseCase-4:
                $ref: '#/components/examples/FIReqUseCase-4'
              UseCase-5:
                $ref: '#/components/examples/FIReqUseCase-5'
              UseCase-6:
                $ref: '#/components/examples/FIReqUseCase-6'
      responses:
        '200':
          description: |
            OK

            Represents the response details that the Financial Institution Identity validation service will provide to the service consumer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FinancialInstitutionIdentityValidationStatus1'
              examples:
                UseCase-1:
                  $ref: '#/components/examples/FIResUseCase-1'
                UseCase-2:
                  $ref: '#/components/examples/FIResUseCase-2'
                UseCase-3:
                  $ref: '#/components/examples/FIResUseCase-3'
                UseCase-4:
                  $ref: '#/components/examples/FIResUseCase-4'
                UseCase-5:
                  $ref: '#/components/examples/FIResUseCase-5'
                UseCase-6:
                  $ref: '#/components/examples/FIResUseCase-6'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_invalid_token:
                  $ref: '#/components/examples/InvalidToken'
                scenario_insufficient_scope:
                  $ref: '#/components/examples/InsufficientScope'
                scenario_service_not_provisioned:
                  $ref: '#/components/examples/ServiceNotProvisioned'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Forbidden:
                  $ref: '#/components/examples/Forbidden'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_not_found:
                  $ref: '#/components/examples/NotFound'
        '406':
          description: Not Acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Forbidden:
                  $ref: '#/components/examples/NotAcceptable'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_not_found:
                  $ref: '#/components/examples/TooManyRequest'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                InternalServerError:
                  $ref: '#/components/examples/InternalServerError'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                ServiceUnavailable:
                  $ref: '#/components/examples/ServiceUnavailable'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                GatewayTimeout:
                  $ref: '#/components/examples/GatewayTimeout'
        default:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                DefaultError:
                  $ref: '#/components/examples/DefaultError'
  /payment/purpose-code:
    post:
      tags:
      - Payment Pre-validation
      summary: Validates the purpose code.
      description: |
        This request validates the payment purpose code against the list of payment purpose codes available in the SWIFT referential data for the instructed country.
      operationId: getPaymentPurposeCodeValidationStatus
      parameters:
      - name: x-bic
        in: header
        description: |
          BIC of SWIFT as SWIFT is performing the service, centrally. The x-bic value must be swhqbebb.
        required: true
        schema:
          pattern: ^[a-z]{6,6}[a-z2-9][a-np-z0-9]$
          type: string
        example: swhqbebb
      - name: X-Request-ID
        description: |
          Unique end-to-end tracking identifier(ID) of the Payment Pre-validation API service request. Payment Pre-validation Users are not required to fill it in for the Payment Pre-validation API request. SWIFT provide the tracking ID which is an uuid as described in IETF RFC 4122 Universally Unique Identifier (UUID) URN Namespace. Pattern - ^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$.
        in: header
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentPurposeCodeValidation1'
            examples:
              UseCase-1:
                $ref: '#/components/examples/PCReqUseCase-1'
              UseCase-2:
                $ref: '#/components/examples/PCReqUseCase-2'
              UseCase-3:
                $ref: '#/components/examples/PCReqUseCase-3'
              UseCase-4:
                $ref: '#/components/examples/PCReqUseCase-4'
      responses:
        '200':
          description: |
            OK

            This represents the response details that the Payment Purpose Code validation service will provide to the service consumer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentPurposeCodeValidationStatus1'
              examples:
                UseCase-1:
                  $ref: '#/components/examples/PCResUseCase-1'
                UseCase-2:
                  $ref: '#/components/examples/PCResUseCase-2'
                UseCase-3:
                  $ref: '#/components/examples/PCResUseCase-3'
                UseCase-4:
                  $ref: '#/components/examples/PCResUseCase-4'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_invalid_token:
                  $ref: '#/components/examples/InvalidToken'
                scenario_insufficient_scope:
                  $ref: '#/components/examples/InsufficientScope'
                scenario_service_not_provisioned:
                  $ref: '#/components/examples/ServiceNotProvisioned'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Forbidden:
                  $ref: '#/components/examples/Forbidden'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_not_found:
                  $ref: '#/components/examples/NotFound'
        '406':
          description: Not Acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Forbidden:
                  $ref: '#/components/examples/NotAcceptable'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_not_found:
                  $ref: '#/components/examples/TooManyRequest'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                InternalServerError:
                  $ref: '#/components/examples/InternalServerError'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                ServiceUnavailable:
                  $ref: '#/components/examples/ServiceUnavailable'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                GatewayTimeout:
                  $ref: '#/components/examples/GatewayTimeout'
        default:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                DefaultError:
                  $ref: '#/components/examples/DefaultError'
  /payment/payment-purpose:
    post:
      tags:
      - Payment Pre-validation
      summary: Validates the payment purpose.
      description: |
        This request validates the instructed information regarding the purpose of the payment (purpose code, purpose description) based on the specific requirements available in the SWIFT repository, for the instructed payment context (creditor country, creditor account currency and local payment market infrastructure).
      operationId: getPaymentPurposeValidationStatus
      parameters:
      - name: x-bic
        in: header
        description: |
          BIC of SWIFT as SWIFT is performing the service, centrally. The x-bic value must be swhqbebb.
        required: true
        schema:
          pattern: ^[a-z]{6,6}[a-z2-9][a-np-z0-9]$
          type: string
        example: swhqbebb
      - name: X-Request-ID
        description: |
          Unique end-to-end tracking identifier(ID) of the Payment Pre-validation API service request. Payment Pre-validation Users are not required to fill it in for the Payment Pre-validation API request. SWIFT provide the tracking ID which is an uuid as described in IETF RFC 4122 Universally Unique Identifier (UUID) URN Namespace.Pattern - ^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$.
        in: header
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentPurposeValidation1'
            examples:
              UseCase-1:
                $ref: '#/components/examples/PPReqUseCase-1'
              UseCase-2:
                $ref: '#/components/examples/PPReqUseCase-2'
              UseCase-3:
                $ref: '#/components/examples/PPReqUseCase-3'
              UseCase-4:
                $ref: '#/components/examples/PPReqUseCase-4'
              UseCase-5:
                $ref: '#/components/examples/PPReqUseCase-5'
              UseCase-6:
                $ref: '#/components/examples/PPReqUseCase-6'
              UseCase-7:
                $ref: '#/components/examples/PPReqUseCase-7'
              UseCase-8:
                $ref: '#/components/examples/PPReqUseCase-8'
              UseCase-9:
                $ref: '#/components/examples/PPReqUseCase-9'
              UseCase-10:
                $ref: '#/components/examples/PPReqUseCase-10'
      responses:
        '200':
          description: |
            OK

            This represents the response details that the Payment Purpose validation service will provide to the service consumer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentPurposeValidationStatus1'
              examples:
                UseCase-1:
                  $ref: '#/components/examples/PPResUseCase-1'
                UseCase-2:
                  $ref: '#/components/examples/PPResUseCase-2'
                UseCase-3:
                  $ref: '#/components/examples/PPResUseCase-3'
                UseCase-4:
                  $ref: '#/components/examples/PPResUseCase-4'
                UseCase-5:
                  $ref: '#/components/examples/PPResUseCase-5'
                UseCase-6:
                  $ref: '#/components/examples/PPResUseCase-6'
                UseCase-7:
                  $ref: '#/components/examples/PPResUseCase-7'
                UseCase-8:
                  $ref: '#/components/examples/PPResUseCase-8'
                UseCase-9:
                  $ref: '#/components/examples/PPResUseCase-9'
                UseCase-10:
                  $ref: '#/components/examples/PPResUseCase-10'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_invalid_token:
                  $ref: '#/components/examples/InvalidToken'
                scenario_insufficient_scope:
                  $ref: '#/components/examples/InsufficientScope'
                scenario_service_not_provisioned:
                  $ref: '#/components/examples/ServiceNotProvisioned'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Forbidden:
                  $ref: '#/components/examples/Forbidden'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_not_found:
                  $ref: '#/components/examples/NotFound'
        '406':
          description: Not Acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Forbidden:
                  $ref: '#/components/examples/NotAcceptable'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_not_found:
                  $ref: '#/components/examples/TooManyRequest'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                InternalServerError:
                  $ref: '#/components/examples/InternalServerError'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                ServiceUnavailable:
                  $ref: '#/components/examples/ServiceUnavailable'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                GatewayTimeout:
                  $ref: '#/components/examples/GatewayTimeout'
        default:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                DefaultError:
                  $ref: '#/components/examples/DefaultError'
  /payment/category-purpose:
    post:
      tags:
      - Payment Pre-validation
      summary: Validates the category purpose.
      description: |
        This request validates the instructed category purpose code against the list of category purpose codes available in the SWIFT reference data for the instructed payment context (creditor country).
      operationId: getCategoryPurposeValidationStatus
      parameters:
      - name: x-bic
        in: header
        description: |
          BIC of SWIFT as SWIFT is performing the service, centrally. The x-bic value must be swhqbebb.
        required: true
        schema:
          pattern: ^[a-z]{6,6}[a-z2-9][a-np-z0-9]$
          type: string
        example: swhqbebb
      - name: X-Request-ID
        description: |
          Unique end-to-end tracking identifier(ID) of the Payment Pre-validation API service request. Payment Pre-validation Users are not required to fill it in for the Payment Pre-validation API request. SWIFT provide the tracking ID which is an uuid as described in IETF RFC 4122 Universally Unique Identifier (UUID) URN Namespace.Pattern - ^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$.
        in: header
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CategoryPurposeValidation1'
            examples:
              UseCase-1:
                $ref: '#/components/examples/CPReqUseCase-1'
              UseCase-2:
                $ref: '#/components/examples/CPReqUseCase-2'
              UseCase-3:
                $ref: '#/components/examples/CPReqUseCase-3'
              UseCase-4:
                $ref: '#/components/examples/CPReqUseCase-4'
      responses:
        '200':
          description: |
            OK

            This represents the response details that the Category Purpose Validation service will provide to the service consumer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryPurposeValidationStatus1'
              examples:
                UseCase-1:
                  $ref: '#/components/examples/CPResUseCase-1'
                UseCase-2:
                  $ref: '#/components/examples/CPResUseCase-2'
                UseCase-3:
                  $ref: '#/components/examples/CPResUseCase-3'
                UseCase-4:
                  $ref: '#/components/examples/CPResUseCase-4'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_invalid_token:
                  $ref: '#/components/examples/InvalidToken'
                scenario_insufficient_scope:
                  $ref: '#/components/examples/InsufficientScope'
                scenario_service_not_provisioned:
                  $ref: '#/components/examples/ServiceNotProvisioned'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Forbidden:
                  $ref: '#/components/examples/Forbidden'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_not_found:
                  $ref: '#/components/examples/NotFound'
        '406':
          description: Not Acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Forbidden:
                  $ref: '#/components/examples/NotAcceptable'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_not_found:
                  $ref: '#/components/examples/TooManyRequest'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                InternalServerError:
                  $ref: '#/components/examples/InternalServerError'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                ServiceUnavailable:
                  $ref: '#/components/examples/ServiceUnavailable'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                GatewayTimeout:
                  $ref: '#/components/examples/GatewayTimeout'
        default:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                DefaultError:
                  $ref: '#/components/examples/DefaultError'

  /payment/amount:
    post:
      tags:
      - Payment Pre-validation
      summary: Validates the instructed amount.
      description: |
        Validates the instructed amount against the requirements available in the SWIFT reference data for the instructed country and payment market infrastructure.
      operationId: getAmountValidationStatus
      parameters:
      - name: x-bic
        in: header
        description: |
          BIC of SWIFT as SWIFT is performing the service, centrally. The x-bic value must be swhqbebb.
        required: true
        schema:
          pattern: ^[a-z]{6,6}[a-z2-9][a-np-z0-9]$
          type: string
        example: swhqbebb
      - name: X-Request-ID
        description: |
          Unique end-to-end tracking identifier(ID) of the Payment Pre-validation API service request. Payment Pre-validation Users are not required to fill it in for the Payment Pre-validation API request. SWIFT provide the tracking ID which is an uuid as described in IETF RFC 4122 Universally Unique Identifier (UUID) URN Namespace.Pattern - ^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$.
        in: header
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AmountValidation1'
            examples:
              UseCase-1:
                $ref: '#/components/examples/AMReqUseCase-1'
              UseCase-2:
                $ref: '#/components/examples/AMReqUseCase-2'
              UseCase-3:
                $ref: '#/components/examples/AMReqUseCase-3'
              UseCase-4:
                $ref: '#/components/examples/AMReqUseCase-4'
              UseCase-5:
                $ref: '#/components/examples/AMReqUseCase-5'
      responses:
        '200':
          description: |
            OK

            This represents the response details that the Amount Validation service will provide to the service consumer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AmountValidationStatus1'
              examples:
                UseCase-1:
                  $ref: '#/components/examples/AMResUseCase-1'
                UseCase-2:
                  $ref: '#/components/examples/AMResUseCase-2'
                UseCase-3:
                  $ref: '#/components/examples/AMResUseCase-3'
                UseCase-4:
                  $ref: '#/components/examples/AMResUseCase-4'
                UseCase-5:
                  $ref: '#/components/examples/AMResUseCase-5'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_invalid_token:
                  $ref: '#/components/examples/InvalidToken'
                scenario_insufficient_scope:
                  $ref: '#/components/examples/InsufficientScope'
                scenario_service_not_provisioned:
                  $ref: '#/components/examples/ServiceNotProvisioned'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Forbidden:
                  $ref: '#/components/examples/Forbidden'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_not_found:
                  $ref: '#/components/examples/NotFound'
        '406':
          description: Not Acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Forbidden:
                  $ref: '#/components/examples/NotAcceptable'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_not_found:
                  $ref: '#/components/examples/TooManyRequest'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                InternalServerError:
                  $ref: '#/components/examples/InternalServerError'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                ServiceUnavailable:
                  $ref: '#/components/examples/ServiceUnavailable'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                GatewayTimeout:
                  $ref: '#/components/examples/GatewayTimeout'
        default:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                DefaultError:
                  $ref: '#/components/examples/DefaultError'
  /payment/eligibility-check:
    post:
      tags:
      - Payment Pre-validation
      summary: Verify the payment for Rulebook eligibility and obtain payment predictability.
      description: |
        This service validates whether the given payment information satisfies the Rulebook eligibility requirements for the payment. The validation happens on the amount and the currency and whether a valid route exists for the payment to be processed as per the applicable Rulebook.

        In addition to validating payment information, this eligibility service also returns payment predictability information such as routing options and payment’s time to creditor, in order for financial institutions to support the payment originators and increase the predictability of the execution of payments.

        This service supports SWIFT Go only.

        Note - The data in the request and response examples are fictitious.
      operationId: getEligibilityCheckStatus
      parameters:
      - name: x-bic
        in: header
        description: |
          BIC of SWIFT as SWIFT is performing the service, centrally. The x-bic value must be swhqbebb.
        required: true
        schema:
          pattern: ^[a-z]{6,6}[a-z2-9][a-np-z0-9]$
          type: string
        example: swhqbebb
      - name: X-Request-ID
        description: |
          Unique end-to-end tracking identifier(ID) of the Payment Pre-validation API service request. Payment Pre-validation Users are not required to fill it in for the Payment Pre-validation API request. SWIFT provide the tracking ID which is an uuid as described in IETF RFC 4122 Universally Unique Identifier (UUID) URN Namespace.Pattern - ^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$.
        in: header
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EligibilityCheck1'
            examples:
              UseCase-1:
                $ref: '#/components/examples/SWGoRequest1'
      responses:
        '200':
          description: |
            OK

            Represents the response that the eligibility service will provide to the service consumer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EligibilityCheckStatus1'
              examples:
                success_single_route:
                  $ref: '#/components/examples/SWGoResponseScenario1'
                success_single_route_multiple_channels:
                  $ref: '#/components/examples/SWGoResponseScenario2'
                success_multiple_routes_multiple_channels:
                  $ref: '#/components/examples/SWGoResponseScenario3'
                failure_invalid_threshold_with_routes_found:
                  $ref: '#/components/examples/SWGoResponseScenario4'
                failure_invalid_threshold_with_no_routes_found:
                  $ref: '#/components/examples/SWGoResponseScenario5'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_invalid_token:
                  $ref: '#/components/examples/InvalidToken'
                scenario_insufficient_scope:
                  $ref: '#/components/examples/InsufficientScope'
                scenario_service_not_provisioned:
                  $ref: '#/components/examples/ServiceNotProvisioned'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Forbidden:
                  $ref: '#/components/examples/Forbidden'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_not_found:
                  $ref: '#/components/examples/NotFound'
        '406':
          description: Not Acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Forbidden:
                  $ref: '#/components/examples/NotAcceptable'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_not_found:
                  $ref: '#/components/examples/TooManyRequest'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                InternalServerError:
                  $ref: '#/components/examples/InternalServerError'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                ServiceUnavailable:
                  $ref: '#/components/examples/ServiceUnavailable'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                GatewayTimeout:
                  $ref: '#/components/examples/GatewayTimeout'
        default:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                DefaultError:
                  $ref: '#/components/examples/DefaultError'
  /payment/payment-instruction:
    post:
      tags:
      - Payment Pre-validation
      summary: Validates the payment instruction.
      description: |
        This service validates various elements of the payment instruction whether it is a partial or complete payment instruction. And provides a comprehensive response with the result of the individual validations performed as well as the overall result of the validation.
      operationId: getPaymentInstructionValidation
      parameters:
        # Header
        - $ref: '#/components/parameters/x-bic'
        - $ref: '#/components/parameters/X-Request-ID'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentInstruction'
            examples:
              payment-validation-with-ALL-VALID-result:
                $ref: '#/components/examples/PayValReq1'
              payment-validation-with-WARNING-result:
                $ref: '#/components/examples/PayValReq2'
              payment-validation-corridor-with-payment-purpose-mandatory-ERROR-result:
                $ref: '#/components/examples/PayValReq3'
      responses:
        '200':
          description: |
            OK

            Represents the response that the payment instruction validation service will provide to the service consumer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentInstructionValidation'
              examples:
                payment-validation-with-ALL-VALID-result:
                  $ref: '#/components/examples/PayValRes1'
                payment-validation-with-WARNING-result:
                  $ref: '#/components/examples/PayValRes2'
                payment-validation-corridor-with-payment-purpose-mandatory-ERROR-result:
                  $ref: '#/components/examples/PayValRes3'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_invalid_token:
                  $ref: '#/components/examples/InvalidToken'
                scenario_insufficient_scope:
                  $ref: '#/components/examples/InsufficientScope'
                scenario_service_not_provisioned:
                  $ref: '#/components/examples/ServiceNotProvisioned'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Forbidden:
                  $ref: '#/components/examples/Forbidden'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_not_found:
                  $ref: '#/components/examples/NotFound'
        '406':
          description: Not Acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                Forbidden:
                  $ref: '#/components/examples/NotAcceptable'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                scenario_not_found:
                  $ref: '#/components/examples/TooManyRequest'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                InternalServerError:
                  $ref: '#/components/examples/InternalServerError'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                ServiceUnavailable:
                  $ref: '#/components/examples/ServiceUnavailable'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                GatewayTimeout:
                  $ref: '#/components/examples/GatewayTimeout'
        default:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
              examples:
                DefaultError:
                  $ref: '#/components/examples/DefaultError'
components:
  schemas:
    AccountFormatValidation1:
      type: object
      description: |
        This represents the details of Account Format Validation service
        request.
      additionalProperties: false
      properties:
        account_identification:
          $ref: '#/components/schemas/Max34Text'
        country_code:
          $ref: '#/components/schemas/CountryCode'
        financial_institution_identification:
          $ref: '#/components/schemas/Max35Text'
      required:
      - account_identification
    AccountFormatValidationCheck1:
      type: object
      description: |
        Details the outcome of each individual account format validation
        check.
      additionalProperties: false
      properties:
        code:
          $ref: '#/components/schemas/AccountFormatValidationCheck1Code'
        status:
          $ref: '#/components/schemas/AccountFormatValidationStatus1Code'
        reason:
          type: array
          items:
            $ref: '#/components/schemas/AccountFormatValidationReason1Code'
      required:
      - code
      - status
      - reason
    AccountFormatValidationCheck1Code:
      type: string
      description: |
        The list of unique identifiers for the individual account format validation checks.

        `BBFI_bban_and_financial_institution_check`-The unique identifier of the individual account format validation check that determines if the format of the instructed account is the BBAN format used by the instructed financial institution.

        `DOCO_domestic_bank_specific_account_and_country_check`-The unique identifier of the individual account format validation check that determines if the format of the instructed account matches the domestic, bank specific format rules identified in the instructed country.

        `DOFI_domestic_bank_specific_account_and_financial_institution_check`-The  unique identifier of the individual account format validation check that determines if the format of the instructed account matches  the domestic, bank specific format used by the instructed financial institution, in its country. The country of the financial institution can only be determined when the instructed financial institution is identified by BIC 8 or BIC 11, otherwise this individual account format validation check can not be performed.

        `IBCO_iban_and_country_check`-The unique identifier of the individual account format validation check that determines if the format of the instructed account is the IBAN format used in the instructed country.

        `IBFI_iban_and_financial_institution_check`-The unique identifier of the individual account format validation check that determines if the format of the instructed account is the IBAN format used by the instructed financial institution.

        `IBAN_iban_check`-The unique identifier of the individual account format validation check that determines if the format of the instructed account is an IBAN format.

        `DOCF_domestic_bank_specific_account_and_country_and_financial_institution_check`-The unique identifier of the individual account format validation check that determines if the format of the instructed account matches the domestic, bank specific format used by the instructed financial institution, in the instructed country. This individual account format validation check can be performed irrespective of the nature of financial institution identifier, if this is a BIC 8, BIC 11 or Clearing System Member Identifier.

        `BBCO_bban_and_country_check`-The unique identifier of the individual account format validation check that determines if the format of the instructed account is the BBAN format used in the instructed country.
      enum:
      - BBFI_bban_and_financial_institution_check
      - DOCO_domestic_bank_specific_account_and_country_check
      - DOFI_domestic_bank_specific_account_and_financial_institution_check
      - IBCO_iban_and_country_check
      - IBFI_iban_and_financial_institution_check
      - IBAN_iban_check
      - DOCF_domestic_bank_specific_account_and_country_and_financial_institution_check
      - BBCO_bban_and_country_check
    AccountFormatValidationReason1Code:
      type: string
      description: |
        The list of unique identifiers which describe the reasons for Account Format validation status.

        `VIBN_valid_iban`-The instructed account identifier subject to account format validation has a valid IBAN format for the instructed payment context.

        `VDOM_valid_domestic_bank_specific`-The instructed account identifier subject to account format validation has a valid domestic, bank specific format  (national domestic standard or bank specific standard) for the instructed payment context.

        `VBBN_valid_bban`-The instructed account identifier subject to account format validation has a valid Basic Bank Account Number (BBAN) format for the instructed payment context.

        `MCTY_missing_country_code`-Country code is missing from the payment context in order for the validation of the instructed payment information to be performed.

        `IIBN_invalid_iban`-The instructed account identifier subject to account format validation does not have a valid IBAN format for the instructed payment context.

        `IDOM_invalid_domestic_bank_specific`-The instructed account identifier subject to account format validation does not have a valid domestic, bank specific format  (nor national domestic standard nor bank specific standard) for the instructed payment context.

        `IBBN_invalid_bban`-The instructed account identifier subject to account format validation does not have a valid Basic Bank Account Number (BBAN) format for the instructed payment context.

        `IFIN_inconsistent_financial_institution_identification`-The instructed financial institution identifier does not match the  financial institution that owns the account that is the subject to the account format validation.

        `INCT_inconsistent_country`-The instructed country code does not match the country of the payment information that is subject to validation.

        `CFIN_consistent_financial_institution_identification`-The instructed financial institution matches the  financial institution that uses the account format of the instructed account.

        `CCTY_consistent_country`-The instructed country code matches the country of the payment information that is subject to validation.

        `AINP_account_data_collection_in_progress`-SWIFT account format data coverage index indicates that the account data collection process is in progress ( below 90% level of completion).

        `ICCH_check_not_applied`-The individual payment validation check has not been applied for the instructed context. Other individual payment validation checks are more relevant and will be applied instead.

        `UCSM_unrecognized_clearing_system_member_identification`-The instructed financial institution identifier subject to financial institution identity validation has not been found in the SWIFT directory for the instructed payment context.

        `IBIC_invalid_bic`-The instructed financial institution identifier subject to financial institution identity validation is not a valid BIC for the instructed payment context.

        `ICTY_invalid_country`-Instructed country code is not a valid country code on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code)

        `MFIN_missing_financial_institution_identifier`-Financial Institution Identifier is missing from the payment context in order for the validation of the instructed payment information to be performed.
      enum:
      - VIBN_valid_iban
      - VDOM_valid_domestic_bank_specific
      - VBBN_valid_bban
      - MCTY_missing_country_code
      - IIBN_invalid_iban
      - IDOM_invalid_domestic_bank_specific
      - IBBN_invalid_bban
      - IFIN_inconsistent_financial_institution_identification
      - INCT_inconsistent_country
      - CFIN_consistent_financial_institution_identification
      - CCTY_consistent_country
      - AINP_account_data_collection_in_progress
      - ICCH_check_not_applied
      - UCSM_unrecognized_clearing_system_member_identification
      - IBIC_invalid_bic
      - ICTY_invalid_country
      - MFIN_missing_financial_institution_identifier
    AccountFormatValidationStatus1:
      type: object
      description: |
        This represents the response details that the Account Format validation
        service will provide to the service consumer.
      additionalProperties: false
      properties:
        account_identification:
          $ref: '#/components/schemas/AccountIdentification4Choice'
        country_code:
          $ref: '#/components/schemas/CountryCode'
        financial_institution_identification:
          $ref: '#/components/schemas/FinancialInstitutionIdentification24'
        status:
          $ref: '#/components/schemas/AccountFormatValidationStatus1Code'
        reason:
          type: array
          items:
            $ref: '#/components/schemas/AccountFormatValidationReason1Code'
        validation_check:
          type: array
          items:
            $ref: '#/components/schemas/AccountFormatValidationCheck1'
      required:
      - status
      - reason
      - validation_check
    AccountFormatValidationStatus1Code:
      type: string
      description: |
        The list of unique status identifiers for the Account Format Validation service.

        `CVAL_valid_with_comments`-The payment information instructed for validation  is valid but the instructed payment context can be further improved.

        `NAVL_not_available`-The validation of the instructed payment information is not available in the instructed payment context, typically due to payment data collection process being in progress and insufficient data coverage.

        `IVAL_invalid`-The payment information instructed for validation it is not valid in the instructed payment context.

        `CNPR_could_not_perform`-The validation of the instructed payment information could not be performed in the instructed payment context typically due to missing payment context information.

        `FVAL_valid`-The payment information instructed for validation it is valid in the instructed payment context.

        `NOAP_not_applicable`-The validation of the instructed payment information has not been applied because didn't make sense for the given context.
      enum:
      - CVAL_valid_with_comments
      - NAVL_not_available
      - IVAL_invalid
      - CNPR_could_not_perform
      - FVAL_valid
      - NOAP_not_applicable
    AccountIdentification4Choice:
      type: object
      description: |
        Specifies the unique identification of an account as assigned by
        the account servicer.
      additionalProperties: false
      properties:
        iban:
          $ref: '#/components/schemas/IBAN2007Identifier'
        other:
          $ref: '#/components/schemas/GenericAccountIdentification1'
      oneOf:
      - required:
        - iban
      - required:
        - other
    AccountSchemeName1Choice:
      type: object
      description: |
        Sets of elements to identify a name of the identification scheme.
      additionalProperties: false
      properties:
        code:
          $ref: '#/components/schemas/ExternalAccountIdentification1Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      oneOf:
      - required:
        - code
      - required:
        - proprietary
    AccountType2Code:
      type: string
      description: |
        `PRIV`-This account is registered for private usage

        `BUSI`-This account is registered for business usage.
      enum:
      - PRIV
      - BUSI
    AccountValidationCheckContext1Code:
      type: string
      description: |
        >
        *`BENR`-Request is in the scope of a beneficiary registration validation.
        *`PAYM`-Request is in the scope of the payment initiation.
        *`RFPP`-Request is in the scope of a request for a payment initiation.
      enum:
      - BENR
      - PAYM
      - RFPP
    AccountValidationResponse1Code:
      type: string
      description: |-
        `MTCH`-Matched validation check.

        `NMTC`-Unmatched validation check.

        `NOAP`-Validation check is not applicable.

        `NOTC`-Validation check has not been carried out.
      enum:
      - MTCH
      - NMTC
      - NOAP
      - NOTC
    AccountValidationResponse2Code:
      type: string
      description: |
        `MTCH`-Matched creditor account.

        `NMTC`-No match for creditor account.
      enum:
      - MTCH
      - NMTC
    AccountValidationResponse3Code:
      type: string
      description: |
        `FAIL`-The account identification provided was not successfully validated to an account that can receive funds.

        `INCO`-The account identification provided was successfully validated to an account that can receive funds, however, some additional account checks will be performed at transaction time.

        `PASS`-The account identification was successfully validated to an account that can receive funds.

        `WARN`-The account identification was not successfully validated to an account that can receive funds, however, the responder lacks some information to provide a definite answer.
      enum:
      - FAIL
      - INCO
      - PASS
      - WARN
    AccountValidationResponse4Code:
      type: string
      description: |
        `MTCH`-Matched validation check.

        `MBAM`-The beneficiary bank has determined that the provided creditor name closely resembles the account holder name. However, it is not an exact match. The beneficiary bank can choose to disclose the actual account holder name for the payment sender to verify or update its records.

        `NMTC`-Unmatched validation check.

        `NOAP`-Validation check is not applicable.

        `NOTC`-Validation check has not been carried out.
      enum:
      - MTCH
      - MBAM
      - NMTC
      - NOAP
      - NOTC
    AccountValidationSource1Code:
      type: string
      description: |
        `ACSV`-The responder is the financial institution servicing this account, basing its decision on its account holding system.

        `HIST`-The responder is SWIFT, basing its decision on SWIFT past transactions (successful or failed) made to this account.

        `OBSP`-The responder is a third-party system to which the account servicer delegated implementation of the API, basing its decision on data fed by the account servicer. The data feed frequency can vary from one implementation to another.
      enum:
      - ACSV
      - HIST
      - OBSP
    AccountVerificationRequest:
      type: object
      description: 'Beneficiary account verification request.'
      additionalProperties: false
      properties:
        correlation_identifier:
          $ref: '#/components/schemas/Max50Text'
        context:
          $ref: '#/components/schemas/AccountValidationCheckContext1Code'
        uetr:
          $ref: '#/components/schemas/UUIDv4Identifier'
        creditor_account:
          $ref: '#/components/schemas/Max34Text'
        creditor_name:
          $ref: '#/components/schemas/Max140Text'
        creditor_address:
          $ref: '#/components/schemas/PostalAddress24'
        creditor_organisation_identification:
          $ref: '#/components/schemas/OrganisationIdentification8'
        creditor_agent:
          $ref: '#/components/schemas/FinancialInstitutionIdentification20'
        creditor_agent_branch_identification:
          $ref: '#/components/schemas/Max35Text'
      required:
      - context
      - creditor_account
      - creditor_name
    AccountVerificationResponse1:
      type: object
      description: 'Get Account Details Response'
      additionalProperties: false
      properties:
        correlation_identifier:
          $ref: '#/components/schemas/Max50Text'
        response:
          $ref: '#/components/schemas/ValidationCheckResponse2'
      required:
      - response
    ActiveCurrencyAndAmount:
      type: object
      description: |
        A number of monetary units specified in an active currency where
        the unit of currency is explicit and compliant with ISO 4217.
      additionalProperties: false
      properties:
        currency:
          $ref: '#/components/schemas/ActiveCurrencyCode'
        amount:
          type: string
          maxLength: 18
          pattern: ^0*(([0-9]{0,13}\.[0-9]{1,5})|([0-9]{0,14}\.[0-9]{1,4})|([0-9]{0,15}\.[0-9]{1,3})|([0-9]{0,16}\.[0-9]{1,2})|([0-9]{0,17}\.[0-9]{1,1})|0*|([0-9]{0,18}))$
    ActiveCurrencyCode:
      type: string
      pattern: ^[A-Z]{3,3}$
      description: |
        A code allocated to a currency by a Maintenance Agency under
        an international identification scheme as described in the latest edition
        of the international standard ISO 4217 "Codes for the representation of currencies and funds".
    AddressType2Code:
      type: string
      description: |-
        Specifies the type of address.

        `ADDR`-Address is the complete postal address.

        `PBOX`-Address is a postal office (PO) box.

        `HOME`-Address is the home address.

        `BIZZ`-Address is the business address.

        `MLTO`-Address is the address to which mail is sent.

        `DLVY`-Address is the address to which delivery is to take place.
      enum:
      - ADDR
      - PBOX
      - HOME
      - BIZZ
      - MLTO
      - DLVY
    AddressType3Choice:
      type: object
      description: |
        Choice of formats for the type of address.
      additionalProperties: false
      properties:
        code:
          $ref: '#/components/schemas/AddressType2Code'
        proprietary:
          $ref: '#/components/schemas/GenericIdentification30'
      oneOf:
      - required:
        - code
      - required:
        - proprietary
    Amount3:
      type: object
      description: |
        Amount and currency to be transferred in the transaction.
      additionalProperties: false
      properties:
        value:
          #  Value of the amount.
          $ref: '#/components/schemas/AmountText'
        currency:
          #  Currency of the amount.
          $ref: '#/components/schemas/ActiveCurrencyCode'
      required:
      - value
      - currency
      example:
        value: '5'
        currency: USD
    AmountText:
      type: string
      description: |
        Amount as text that will be validated by the Payment Pre-Validation API services.
      maxLength: 20
      pattern: ^^-?0*(([0-9]{0,5}[\,\.][0-9]{1,13})|([0-9]{0,6}[\,\.][0-9]{1,12})|([0-9]{0,7}[\,\.][0-9]{1,11})|([0-9]{0,8}[\,\.][0-9]{1,10})|([0-9]{0,9}[\,\.][0-9]{1,9})|([0-9]{0,10}[\,\.][0-9]{1,8})|([0-9]{0,11}[\,\.][0-9]{1,7})|([0-9]{0,12}[\,\.][0-9]{1,6})|([0-9]{0,13}[\,\.][0-9]{1,5})|([0-9]{0,14}[\,\.][0-9]{1,4})|([0-9]{0,15}[\,\.][0-9]{1,3})|([0-9]{0,16}[\,\.][0-9]{1,2})|([0-9]{0,17}[\,\.][0-9]{1,1})0*|([0-9]{0,18}))$$
      example:
        value: '3500,345'
    AmountValidation1:
      type: object
      description: |
        Represents the details of Amount Validation service request.
      additionalProperties: false
      properties:
        amount:
          $ref: '#/components/schemas/AmountText'
        currency_code:
          $ref: '#/components/schemas/ActiveCurrencyCode'
        clearing_system_identification:
          $ref: '#/components/schemas/Max35Text'
      required:
      - amount
      - currency_code
    AmountValidationReason1Code:
      type: string
      description: |
        The list of unique identifiers to describe the reasons for Amount validation status.

        `DBCD_amount_decimals_match_currency_decimals`-Instructed amount has a number of decimals that matches exactly the number of decimals advised for the instructed currency.

        `DACD_amount_decimals_do_not_match_currency_decimals`-Instructed amount has a number of decimals that is different from the number of decimals advised for the instructed currency.

        `ABLP_amount_below_pmi_limit_per_payment`-The instructed amount subject to validation is below the per-transaction limit imposed by the instructed PMI (Payment Market Infrastructure).

        `AALP_amount_above_pmi_limit_per_payment`-The instructed amount subject to validation has exceeded the per-transaction limit imposed by the instructed PMI (Payment Market Infrastructure).

        `ICCY_invalid_currency_code`-Instructed currency code is not a valid ISO currency code.

        `UCSI_unrecognized_clearing_system_identification`-Instructed clearing system identifier has not been found in the SWIFT directory for the instructed payment context.

        `PMIP_pmi_data_collection_in_progress`-SWIFT is in the process of collecting additional data with regards to the instructed Payment Market Infrastructure.
        `AWPL_amount_within_pmi_limits`-The instructed amount subject to validation is within the per-transaction limits imposed by the instructed context.
      enum:
      - DBCD_amount_decimals_match_currency_decimals
      - DACD_amount_decimals_do_not_match_currency_decimals
      - ABLP_amount_below_pmi_limit_per_payment
      - AALP_amount_above_pmi_limit_per_payment
      - ICCY_invalid_currency_code
      - UCSI_unrecognized_clearing_system_identification
      - PMIP_pmi_data_collection_in_progress
      - AWPL_amount_within_pmi_limits
    AmountValidationStatus1:
      type: object
      description: |
        This represents the response details that the Amount Validation
        service will provide to the service consumer.
      additionalProperties: false
      properties:
        status:
          $ref: '#/components/schemas/AmountValidationStatus1Code'
        reason:
          type: array
          items:
            $ref: '#/components/schemas/AmountValidationReason1Code'
        amount:
          $ref: '#/components/schemas/ActiveCurrencyAndAmount'
        clearing_system_identification:
          $ref: '#/components/schemas/ClearingSystemIdentification2Choice'
      required:
      - status
      - reason
    AmountValidationStatus1Code:
      type: string
      description: |
        The list of unique identifiers to describe the status of the Amount validation.

        `FVAL_valid`-The payment information instructed for validation it is valid in the instructed payment context.

        `CVAL_valid_with_comments`-The payment information instructed for validation  is valid but the instructed payment context can be further improved.

        `IVAL_invalid`-The payment information instructed for validation it is not valid in the instructed payment context.

        `CNPR_could_not_perform`-The validation of the instructed payment information could not be performed in the instructed payment context typically due to missing payment context information.

        `NAVL_not_available`-The validation of the instructed payment information is not available in the instructed payment context, typically due to payment data collection process being in progress and insufficient data coverage.
      enum:
      - FVAL_valid
      - CVAL_valid_with_comments
      - IVAL_invalid
      - CNPR_could_not_perform
      - NAVL_not_available
    AnyBICIdentifier:
      type: string
      description: |
        Code allocated to a financial or non-financial institution by the
        ISO 9362 Registration Authority, as described in ISO 9362 "Banking - Banking
        telecommunication messages - Business identifier code (BIC)".
      pattern: ^[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}$
    BICFIDec2014Identifier:
      type: string
      description: |
        Code allocated to a financial institution by the ISO 9362 Registration
        Authority as described in ISO 9362: 2014 - "Banking - Banking telecommunication  messages - Business identifier code (BIC)".
      pattern: ^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}$
    BranchAndFinancialInstitutionIdentification8:
      type: object
      description: |
        Unique and unambiguous identification of a financial institution or a branch of a financial institution.
      additionalProperties: false
      properties:
        financial_institution_identification:
          $ref: '#/components/schemas/FinancialInstitutionIdentification24'
        branch_identification:
          $ref: '#/components/schemas/BranchData3'
        contact_data:
          $ref: '#/components/schemas/Contact10'
        connectivity_data:
          $ref: '#/components/schemas/GenericConnectivityChoice'
        office_type:
          $ref: '#/components/schemas/Max4Text'
      required:
      - financial_institution_identification
    BranchData3:
      type: object
      description: |
        Information that locates and identifies a specific branch of a financial institution.
      additionalProperties: false
      properties:
        identification:
          $ref: '#/components/schemas/Max35Text'
        lei:
          $ref: '#/components/schemas/LEIIdentifier'
        name:
          $ref: '#/components/schemas/Max140Text'
        postal_address:
          $ref: '#/components/schemas/PostalAddress24'
    CategoryPaymentValidationReason1Code:
      type: string
      description: |
        The list of unique identifiers which describe the reasons for Category Purpose Code validation status.

        `UPCP_unrecognized_category_purpose`-The instructed payment category purpose subject to validation could not be found in the payment category purpose data available in the SWIFT repository for the instructed payment context.

        `VPCP_valid_category_purpose`-The instructed payment category purpose subject has been successfully validated for the instructed payment context.

        `ICTY_invalid_country`-Instructed country code is not a valid country code on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code)

        `CINP_no_category_purpose_data_available`-No category purpose data available in the SWIFT repository for the instructed context. This may relate to the country specific requirements not mandating category purpose codes for the instructed context.
      enum:
      - UPCP_unrecognized_category_purpose
      - VPCP_valid_category_purpose
      - ICTY_invalid_country
      - CINP_no_category_purpose_data_available
    CategoryPurposeValidation1:
      type: object
      description: |
        This represents the details of Category Purpose Validation service request.
      additionalProperties: false
      properties:
        category_purpose_code:
          $ref: '#/components/schemas/Max35Text'
        country_code:
          $ref: '#/components/schemas/CountryCode'
      required:
      - category_purpose_code
      - country_code
    CategoryPurposeValidationStatus1:
      type: object
      description: |
        This represents the response details that the Category Purpose Validation service will provide to the service consumer.
      additionalProperties: false
      properties:
        status:
          $ref: '#/components/schemas/CategoryPurposeValidationStatus1Code'
        reason:
          type: array
          items:
            $ref: '#/components/schemas/CategoryPaymentValidationReason1Code'
        category_purpose_code:
          $ref: '#/components/schemas/GenericCodeIdentification1'
        country_code:
          $ref: '#/components/schemas/CountryCode'
      required:
      - status
      - reason
    CategoryPurposeValidationStatus1Code:
      type: string
      description: |
        The list of unique identifiers which describe the status of the Category Purpose validation.

        `FVAL_valid`-The payment information instructed for validation it is valid in the instructed payment context.

        `UNRE_unrecognised`-The payment information instructed for validation has not been found in the SWIFT repository for the instructed payment context.

        `NAVL_not_available`-The validation of the instructed payment information is not available in the instructed payment context, typically due to payment data collection process being in progress and insufficient data coverage.

        `CNPR_could_not_perform`-The validation of the instructed payment information could not be performed in the instructed payment context typically due to missing payment context information.
      enum:
      - FVAL_valid
      - UNRE_unrecognised
      - NAVL_not_available
      - CNPR_could_not_perform
    ClearingSystemIdentification2Choice:
      type: object
      description: Choice of a clearing system identifier.
      additionalProperties: true
      oneOf:
      - type: object
        additionalProperties: false
        properties:
          code:
            #  Identification of a clearing system, in a coded form as published in an external list.
            $ref: '#/components/schemas/ExternalClearingSystemIdentification1Code'
        required:
        - code
      - type: object
        additionalProperties: false
        properties:
          proprietary:
            #  Identification code for a clearing system, that has not yet been identified in the list of clearing systems.
            $ref: '#/components/schemas/Max35Text'
        required:
        - proprietary
    ClearingSystemMemberIdentification2:
      type: object
      description: |
        Unique identification, as assigned by a clearing system, to unambiguously identify a member of the clearing system.
      additionalProperties: false
      properties:
        clearing_system_identification:
          #  Specification of a pre-agreed offering between clearing agents or the channel through which the payment instruction is processed.
          $ref: '#/components/schemas/ClearingSystemIdentification2Choice'
        member_identification:
          #  Identification of a member of a clearing system.
          $ref: '#/components/schemas/Max35Text'
      required:
      - member_identification
    Contact10:
      type: object
      description: Specifies the details of a contact person.
      additionalProperties: false
      properties:
        phone_number:
          $ref: '#/components/schemas/PhoneNumber'
        mobile_number:
          $ref: '#/components/schemas/PhoneNumber'
        fax_number:
          $ref: '#/components/schemas/PhoneNumber'
        email_address:
          $ref: '#/components/schemas/Max2048Text'
        url:
          $ref: '#/components/schemas/Max256Text'
    CountryCode:
      type: string
      pattern: ^[A-Z]{2,2}$
      description: |
        Code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).
    DataProviderDetails1:
      type: object
      description: |
        Identification of the Data Provider for the Payment Pre-validation services, with details about the Data Provider implementation.
      additionalProperties: false
      properties:
        institution_identification:
          $ref: '#/components/schemas/DataProviderIdentification1'
        implementation_details:
          type: array
          items:
            $ref: '#/components/schemas/DataProviderImplementation1'
      required:
      - institution_identification
      - implementation_details
    DataProviderEnvironment:
      type: string
      description: |
        Indicates the environment where the Data Provider for Payment Pre-validation Data Provider API services is implemented.

        `PILO_pilot`-Environment where the Data Provider is carrying Payment Pre-validation Data Provider API test and training activities.

        `LIVE_live`-Environment where the Data Provider is live with Payment Pre-validation Data Provider API services.
      enum:
      - PILO_pilot
      - LIVE_live
    DataProviderIdentification1:
      type: object
      description: Identification of the Data Provider for the Payment Pre-validation
        services
      additionalProperties: false
      properties:
        bicfi:
          $ref: '#/components/schemas/BICFIDec2014Identifier'
        name:
          $ref: '#/components/schemas/Max140Text'
      required:
      - bicfi
    DataProviderIdentityValidation1:
      type: object
      description: Represents the details of Data Provider Identity validation service request.
      additionalProperties: false
      properties:
        bic_institution:
          $ref: '#/components/schemas/BICFIDec2014Identifier'
        implementation_details:
          type: array
          items:
            $ref: '#/components/schemas/DataProviderImplementation1'
    DataProviderIdentityValidationReason1Code:
      type: string
      description: |
        The list of unique identifiers which describe the reasons for the Data Provider Identity validation status.

        `BNRD_bic_not_registered_as_data_provider`-BIC of the instructed institution is not registered as Payment Pre-validation Data Provider.

        `BRDD_bic_not_registered_with_these_details_as_data_provider`-BIC of the instructed institution is not registered with these details as Payment Pre-validation Data Provider.

        `BRDP_bic_registered_as_data_provider`-BIC of the instructed institution is registered as Payment Pre-validation Data Provider.

        `MITV_missing_bic`-No BIC instructed for validation.
      enum:
      - BNRD_bic_not_registered_as_data_provider
      - BRDD_bic_not_registered_with_these_details_as_data_provider
      - BRDP_bic_registered_as_data_provider
      - MITV_missing_bic
    DataProviderIdentityValidationStatus1:
      type: object
      description: |
        Represents the response details that the Data Provider Identity validation service will provide to the service consumer (the "User").
      additionalProperties: false
      properties:
        status:
          $ref: '#/components/schemas/DataProviderIdentityValidationStatus1Code'
        reason:
          type: array
          items:
            $ref: '#/components/schemas/DataProviderIdentityValidationReason1Code'
        registered_data_provider:
          type: array
          items:
            $ref: '#/components/schemas/DataProviderRegistration1'
      required:
      - status
      - reason
    DataProviderIdentityValidationStatus1Code:
      type: string
      description: |
        The list of unique status identifiers for the Data Provider Identity validation service.

        `CNPR_could_not_perform`-The validation of the instructed payment information could not be performed in the instructed payment context typically due to missing payment context information.

        `IVAL_invalid`-The payment information instructed for validation it is not valid in the instructed payment context.

        `FVAL_valid`-The payment information instructed for validation it is valid in the instructed payment context.
      enum:
      - CNPR_could_not_perform
      - IVAL_invalid
      - FVAL_valid
    DataProviderImplementation1:
      type: object
      description: |
        Provides details about the implementation of the Data Provider for the Payment Pre-validation Data Provider API services.
      additionalProperties: false
      properties:
        environment:
          $ref: '#/components/schemas/DataProviderEnvironment'
        status:
          $ref: '#/components/schemas/DataProviderStatus'
      required:
      - environment
      - status
    DataProviderRegistration1:
      type: object
      description: |
        Details about the registration of an institution as Payment Pre-validation data provider.
      additionalProperties: false
      properties:
        data_provider_details:
          $ref: '#/components/schemas/DataProviderDetails1'
        related_institution:
          type: array
          items:
            $ref: '#/components/schemas/DataProviderDetails1'
    DataProviderStatus:
      type: string
      description: |
        Implementation status for the Data Provider on the Payment Pre-validation Data Provider services,

        `ACTI_active`-Data Provider implementation of Payment Pre-validation Data Provider API services is active in the specified environment.

        `INAC_inactive`-Data Provider implementation of Payment Pre-validation Data Provider services has is not in the specified environment.
      enum:
      - ACTI_active
      - INAC_inactive
    EligibilityCheck1:
      type: object
      description: |
        Represents the request details that the Eligibility service consumer will provide.
      additionalProperties: false
      properties:
        requestor_agent:
          #  Set of elements used to identify the financial institution requesting eligibility check.
          $ref: '#/components/schemas/FinancialInstitutionIdentification20'
        creditor_agent:
          #  Set of elements used to identify the financial institution of the creditor agent.
          $ref: '#/components/schemas/FinancialInstitutionIdentification20'
        amount:
          #  Amount and currency of the payment.
          $ref: '#/components/schemas/Amount3'
        route_sorting:
          $ref: '#/components/schemas/RouteSorting1'
      required:
      - requestor_agent
      - creditor_agent
      - amount
    EligibilityCheckStatus1:
      type: object
      description: |
        Represents the response that the Eligibility service will provide to the service consumer.
      additionalProperties: false
      properties:
        status:
          #  This provides the overall status of the payment eligibility check: "FVAL" - when all eligibility validation checks succeed, "IVAL" - when at least one eligibility validation check failed.
          $ref: '#/components/schemas/Max4Text'
        threshold:
          #  Threshold validation status for payment.
          $ref: '#/components/schemas/SwiftGoPaymentThresholdStatus1'
        routes:
          type: array
          #  Available Routes.
          items:
            $ref: '#/components/schemas/SwiftGoRoutes1'
      required:
      - status
      - threshold
      example:
        status: FVAL
        threshold:
          amount:
            value: '5'
        routes:
          servicing_agent:
            clearing_system_member_identification:
              clearing_system_identification: {}
          channel:
            type: FPMI
            id: 'TGT'
            cut_off_time: '2022-05-14T15:30:00Z'
            optimum_cut_off_time: '2022-05-14T10:30:00Z'
          estimated_time_to_creditor_minutes:
            minimum: '1'
            average: '10'
            maximum: '150'
          minimum_number_of_agents_involved: '3'
    EstimatedTimeToCreditor1:
      type: object
      description: "Estimated time (in minutes) to creditor account computed using statistics."
      additionalProperties: false
      properties:
        minimum:
          $ref: '#/components/schemas/nonNegativeInteger'
        average:
          $ref: '#/components/schemas/nonNegativeInteger'
        maximum:
          $ref: '#/components/schemas/nonNegativeInteger'
      required:
      - minimum
      - average
      - maximum
      example:
        minimum: '1'
        average: '10'
        maximum: '150'
    Exact3AlphaNumericText:
      type: string
      description: |
        Specifies an alphanumeric string with a length of exact 3 characters.
      pattern: ^[a-zA-Z0-9]{3}$
    Exact4AlphaNumericText:
      type: string
      description: |
        Specifies an alphanumeric string with a length of 4 characters.
      pattern: ^[a-zA-Z0-9]{4}$
    ExternalAccountIdentification1Code:
      type: string
      minLength: 1
      maxLength: 4
      description: |
        Specifies the external account identification scheme name code in the format of character string with a maximum length of 4 characters. The list of valid codes is an external code list published separately. External code sets can be downloaded from www.iso20022.org.
    ExternalClearingSystemIdentification1Code:
      type: string
      minLength: 1
      maxLength: 5
      description: |
        Specifies the clearing system identification code, as published in an external clearing system identification code list. External code sets can be downloaded from www.iso20022.org.
    ExternalOrganisationIdentification1Code:
      type: string
      minLength: 1
      maxLength: 4
      description: |
        Specifies the external organisation identification scheme name code in the format of character string with a maximum length of 4 characters. The list of valid codes is an external code list published separately. External code sets can be downloaded from www.iso20022.org.
    FinancialInstitutionIdentification20:
      type: object
      description: Set of elements used to identify a financial institution.
      additionalProperties: false
      properties:
        bicfi:
          #  Code allocated to a financial institution by the ISO 9362 Registration Authority as described in ISO 9362 "Banking - Banking telecommunication messages - Business identifier code (BIC)".
          $ref: '#/components/schemas/BICFIDec2014Identifier'
        clearing_system_member_identification:
          #  Information used to identify a member within a clearing system.
          $ref: '#/components/schemas/ClearingSystemMemberIdentification2'
    FinancialInstitutionIdentification24:
      type: object
      description: Specifies the details to identify a financial institution.
      additionalProperties: false
      properties:
        bicfi:
          $ref: '#/components/schemas/BICFIDec2014Identifier'
        clearing_system_member_identification:
          $ref: '#/components/schemas/ClearingSystemMemberIdentification2'
        name:
          $ref: '#/components/schemas/Max140Text'
        postal_address:
          $ref: '#/components/schemas/PostalAddress24'
    FinancialInstitutionIdentityValidation1:
      type: object
      description: |
        Represents the details of Account Format Validation service request.
      additionalProperties: false
      properties:
        financial_institution_identification:
          $ref: '#/components/schemas/Max35Text'
        country_code:
          $ref: '#/components/schemas/CountryCode'
      required:
      - financial_institution_identification
    FinancialInstitutionIdentityValidationReason1Code:
      type: string
      description: |
        The list of unique identifiers which describe the reasons for Financial Institution Identity validation status.

        `VBIC_valid_bic`-The instructed financial institution identifier subject to financial institution identity validation is a valid BIC for the instructed payment context.

        `IBIC_invalid_bic`-The instructed financial institution identifier subject to financial institution identity validation is not a  valid BIC for the instructed payment context.

        `INCT_inconsistent_country`-The instructed country code does not match the country of the payment information that is subject to validation.

        `CCTY_consistent_country`-The instructed country code matches the country of the payment information that is subject to validation.

        `VCSM_valid_clearing_system_member_identification`-The instructed financial institution identifier subject to financial institution identity validation is a valid clearing system member identifier for the instructed payment context.

        `UCSM_unrecognized_clearing_system_member_identification`-The instructed financial institution identifier subject to financial institution identity validation has not been found in the SWIFT directory for the instructed payment context.

        `ICTY_invalid_country`-Instructed country code is not a valid country code on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code)

        `MCTY_missing_country_code`-Country code is missing from the payment context in order for the validation of the instructed payment information to be performed.
      enum:
      - VBIC_valid_bic
      - IBIC_invalid_bic
      - INCT_inconsistent_country
      - CCTY_consistent_country
      - VCSM_valid_clearing_system_member_identification
      - UCSM_unrecognized_clearing_system_member_identification
      - ICTY_invalid_country
      - MCTY_missing_country_code
    FinancialInstitutionIdentityValidationStatus1:
      type: object
      description: |
        Represents the response details that the Financial Institution Identity validation service will provide to the service consumer.
      additionalProperties: false
      properties:
        country_code:
          $ref: '#/components/schemas/CountryCode'
        financial_institution_identification:
          $ref: '#/components/schemas/BranchAndFinancialInstitutionIdentification8'
        status:
          $ref: '#/components/schemas/FinancialInstitutionIdentityValidationStatus1Code'
        reason:
          type: array
          items:
            $ref: '#/components/schemas/FinancialInstitutionIdentityValidationReason1Code'
      required:
      - status
      - reason
    FinancialInstitutionIdentityValidationStatus1Code:
      type: string
      description: |
        The list of unique identifiers which describe the status of the Financial Institution Identity validation.

        `NAVL_not_available`-The validation of the instructed payment information is not available in the instructed payment context, typically due to payment data collection process being in progress and insufficient data coverage.

        `FVAL_valid`-The payment information instructed for validation it is valid in the instructed payment context.

        `CVAL_valid_with_comments`-The payment information instructed for validation  is valid but the instructed payment context can be further improved.

        `IVAL_invalid`-The payment information instructed for validation it is not valid in  the instructed payment context.

        `CNPR_could_not_perform`-The validation of the instructed payment information could not be performed in the instructed payment context typically due to missing payment context information.

        `UNRE_unrecognised`-The payment information instructed for validation has not been found in the SWIFT repository for the instructed payment context.
      enum:
      - NAVL_not_available
      - FVAL_valid
      - CVAL_valid_with_comments
      - IVAL_invalid
      - CNPR_could_not_perform
      - UNRE_unrecognised
    GenericAccountIdentification1:
      type: object
      description: Information related to a generic account identification.
      additionalProperties: false
      properties:
        identification:
          $ref: '#/components/schemas/Max34Text'
        scheme_name:
          $ref: '#/components/schemas/AccountSchemeName1Choice'
        issuer:
          $ref: '#/components/schemas/Max35Text'
      required:
      - identification
    GenericCodeIdentification1:
      type: object
      description: Information for the identification of a code use in the payment
        validation.
      additionalProperties: false
      properties:
        id:
          $ref: '#/components/schemas/Max35Text'
        description_english:
          $ref: '#/components/schemas/Max20000Text'
        name_english:
          $ref: '#/components/schemas/Max1000Text'
        name_local_language:
          $ref: '#/components/schemas/Max1000Text'
        description_local_language:
          $ref: '#/components/schemas/Max20000Text'
      required:
      - id
      - name_english
    GenericConnectivityChoice:
      type: object
      description: Information for the identification of a SWIFT connectivity.
      additionalProperties: false
      properties:
        fin:
          $ref: '#/components/schemas/YesNoIndicator'
        interact:
          $ref: '#/components/schemas/YesNoIndicator'
        file_act:
          $ref: '#/components/schemas/YesNoIndicator'
      required:
      - fin
      - interact
      - file_act
    GenericIdentification30:
      type: object
      description: Information related to an identification, for example, party identification or account identification.
      additionalProperties: false
      properties:
        identification:
          $ref: '#/components/schemas/Exact4AlphaNumericText'
        issuer:
          $ref: '#/components/schemas/Max35Text'
        scheme_name:
          $ref: '#/components/schemas/Max35Text'
      required:
      - identification
      - issuer
    GenericOrganisationIdentification1:
      type: object
      description: Information related to an identification of an organisation.
      additionalProperties: false
      properties:
        identification:
          $ref: '#/components/schemas/Max35Text'
        scheme_name:
          $ref: '#/components/schemas/OrganisationIdentificationSchemeName1Choice'
        issuer:
          $ref: '#/components/schemas/Max35Text'
      required:
      - identification
    GpiDirectoryChannelType1Code:
      type: string
      description: |
        The channel through which the participant is reachable for gpi payment instructions for one of its gpi currencies.

        `DICO`-Direct or Cover

        `INTR`-Intermediary

        `NPMI`-Non FIN PMI

        `FPMI`-FIN compatible PMI
      enum:
      - DICO
      - INTR
      - NPMI
      - FPMI
    IBAN2007Identifier:
      type: string
      description: |
        An identifier used internationally by financial institutions to
        uniquely identify the account of a customer at a financial institution, as
        described in the latest edition of the international standard ISO 13616: 2007
        - "Banking and related financial services - International Bank Account Number
        (IBAN)".
      pattern: ^[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}$
    ISODateTime:
      type: string
      description: |
        A particular point in the progression of time defined by a mandatory date and a mandatory time component, expressed in either UTC time format (YYYY-MM-DDThh:mm:ss.sssZ), local time with UTC offset format (YYYY-MM-DDThh:mm:ss.sss+/-hh:mm), or local time format (YYYY-MM-DDThh:mm:ss.sss). These representations are defined in "XML Schema Part 2: Datatypes Second Edition - W3C Recommendation 28 October 2004" which is aligned with ISO 8601.
        Note on the time format:
        1) beginning / end of calendar day
        00:00:00 = the beginning of a calendar day
        24:00:00 = the end of a calendar day
        2) fractions of second in time format
        Decimal fractions of seconds may be included. In this case, the involved parties shall agree on the maximum number of digits that are allowed.
      pattern: ^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)-02-29)T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.[0-9]+)?(?:Z|[+-][01]\d:[0-5]\d)?$
    LEIIdentifier:
      type: string
      description: Legal Entity Identifier is a code allocated to a party as described
        in ISO 17442 "Financial Services - Legal Entity Identifier (LEI)".
      pattern: ^[A-Z0-9]{18,18}[0-9]{2,2}$
    Max1000Text:
      type: string
      description: Specifies a character string with a maximum length of 1000 characters.
      minLength: 1
      maxLength: 1000
    Max140Text:
      type: string
      description: Specifies a character string with a maximum length of 140 characters.
      minLength: 1
      maxLength: 140
    Max16Text:
      type: string
      description: Specifies a character string with a maximum length of 16 characters.
      minLength: 1
      maxLength: 16
    Max20000Text:
      type: string
      description: Specifies a character string with a maximum length of 20, 000 characters.
      minLength: 1
      maxLength: 20000
    Max2048Text:
      type: string
      description: Specifies a character string with a maximum length of 2048 characters.
      minLength: 1
      maxLength: 2048
    Max256Text:
      type: string
      description: Specifies a character string with a maximum length of 256 characters.
      minLength: 1
      maxLength: 256
    Max34Text:
      type: string
      description: Specifies a character string with a maximum length of 34 characters.
      minLength: 1
      maxLength: 34
    Max35Text:
      type: string
      description: Specifies a character string with a maximum length of 35 characters.
      minLength: 1
      maxLength: 35
    Max4Text:
      type: string
      description: Specifies a character string with a maximum length of 4 characters.
      minLength: 1
      maxLength: 4
    Max50Text:
      type: string
      description: Specifies a character string with a maximum length of 50 characters.
      minLength: 1
      maxLength: 50
    Max70Text:
      type: string
      description: Specifies a character string with a maximum length of 70characters.
      minLength: 1
      maxLength: 70
    OrganisationIdentification8:
      type: object
      description: Unique and unambiguous way to identify an organisation.
      additionalProperties: false
      properties:
        any_bic:
          $ref: '#/components/schemas/AnyBICIdentifier'
        other:
          type: array
          items:
            $ref: '#/components/schemas/GenericOrganisationIdentification1'
    OrganisationIdentificationSchemeName1Choice:
      type: object
      description: Sets of elements to identify a name of the organisation identification
        scheme.
      additionalProperties: false
      properties:
        code:
          $ref: '#/components/schemas/ExternalOrganisationIdentification1Code'
        proprietary:
          $ref: '#/components/schemas/Max35Text'
      oneOf:
      - required:
        - code
      - required:
        - proprietary
    PaymentPurposeCodeValidation1:
      type: object
      description: This represents the details of Payment Purpose Code Validation
        service request.
      additionalProperties: false
      properties:
        purpose_code:
          $ref: '#/components/schemas/Max35Text'
        country_code:
          $ref: '#/components/schemas/CountryCode'
      required:
      - purpose_code
      - country_code
    PaymentPurposeCodeValidationReason1Code:
      type: string
      description: |
        The list of unique identifiers which describe the reasons for Payment Purpose Code validation status.

        `UPPC_unrecognized_purpose_code`-The instructed payment purpose code subject to validation could not be found in the purpose code data available in the SWIFT repository for the instructed payment context.

        `VPPC_valid_purpose_code`-The instructed payment purpose code has been successfully validated against the purpose  code list(s) available in the SWIFT repository for the instructed payment context.

        `ICTY_invalid_country`-Instructed country code is not a valid country code on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code)

        `PINP_no_purpose_code_data_available`-No purpose code data available in the SWIFT repository for the instructed context. This may relate to the country specific requirements not mandating purpose codes for the instructed context.
      enum:
      - UPPC_unrecognized_purpose_code
      - VPPC_valid_purpose_code
      - ICTY_invalid_country
      - PINP_no_purpose_code_data_available
    PaymentPurposeCodeValidationStatus1:
      type: object
      description: |
        This represents the response details that the Payment Purpose Code validation service will provide to the service consumer.
      additionalProperties: false
      properties:
        status:
          $ref: '#/components/schemas/PaymentPurposeCodeValidationStatus1Code'
        reason:
          type: array
          items:
            $ref: '#/components/schemas/PaymentPurposeCodeValidationReason1Code'
        purpose_code:
          $ref: '#/components/schemas/GenericCodeIdentification1'
        country_code:
          $ref: '#/components/schemas/CountryCode'
      required:
      - status
      - reason
    PaymentPurposeCodeValidationStatus1Code:
      type: string
      description: |
        The list of unique status identifiers for the Payment Purpose Code Validation service.

        `FVAL_valid`-The payment information instructed for validation it is valid in the instructed payment context.

        `UNRE_unrecognised`-The payment information instructed for validation has not been found in the SWIFT repository for the instructed payment context.

        `CNPR_could_not_perform`-The validation of the instructed payment information could not be performed in the instructed payment context typically due to missing payment context information.

        `NAVL_not_available`-The validation of the instructed payment information is not available in the instructed payment context, typically due to payment data collection process being in progress and insufficient data coverage.
      enum:
      - FVAL_valid
      - UNRE_unrecognised
      - CNPR_could_not_perform
      - NAVL_not_available
    PaymentPurposeValidation1:
      type: object
      description: |
        This represents the details of Payment Purpose Validation service request.
      additionalProperties: false
      properties:
        purpose_code:
          $ref: '#/components/schemas/Max35Text'
        country_code:
          $ref: '#/components/schemas/CountryCode'
        purpose_description:
          $ref: '#/components/schemas/Max140Text'
        clearing_system_identification:
          $ref: '#/components/schemas/Max35Text'
        currency_code:
          $ref: '#/components/schemas/ActiveCurrencyCode'
      required:
      - country_code
    PaymentPurposeValidationCheck1:
      type: object
      description: |
        Details the outcome of each individual payment purpose validation check.
      additionalProperties: false
      properties:
        code:
          $ref: '#/components/schemas/PaymentPurposeValidationCheckCode'
        description:
          $ref: '#/components/schemas/Max256Text'
        status:
          $ref: '#/components/schemas/PaymentPurposeValidationStatus1Code'
        reason:
          type: array
          items:
            $ref: '#/components/schemas/PaymentPurposeValidationReason1Code'
        severity:
          $ref: '#/components/schemas/PaymentValidationSeverity1'
        validated_payment_information:
          type: array
          items:
            $ref: '#/components/schemas/PaymentValidationInputParameter1'
      required:
      - code
      - status
      - reason
      - severity
    PaymentPurposeValidationCheckCode:
      type: string
      description: |
        The list of unique identifiers for the individual payment purpose validation checks.

        `PCCT_purpose_and_country`-The unique identifier of the individual payment purpose validation check  that validates the instructed payment purpose information against the payment purpose requirements available in the SWIFT repository for the instructed creditor country.

        `PCCC_purpose_and_country_and_currency`-The unique identifier of the individual payment purpose validation check that validates the instructed payment purpose information against the payment purpose requirements available in the SWIFT repository for the instructed creditor country and creditor account currency

        `PCCP_purpose_and_country_and_currency_and_clearing_system`-The unique identifier of the individual payment purpose validation check that validates the instructed payment purpose information against the payment purpose requirements available in the SWIFT repository for the instructed creditor country, creditor account currency and local clearing system.

        `PCCS_purpose_and_country_and_clearing_system`-The unique identifier of the individual payment purpose validation check  that validates the instructed payment purpose information against the payment purpose requirements available in the SWIFT repository for the instructed creditor country and the instructed clearing system.
      enum:
      - PCCT_purpose_and_country
      - PCCC_purpose_and_country_and_currency
      - PCCP_purpose_and_country_and_currency_and_clearing_system
      - PCCS_purpose_and_country_and_clearing_system
    PaymentPurposeValidationReason1Code:
      type: string
      description: |
        The list of unique identifiers which describe the reasons for Payment Purpose validation status.

        `PINP_no_purpose_code_data_available`-No purpose code data available in the SWIFT repository for the instructed context. This may relate to the country specific requirements not mandating purpose codes for the instructed context.

        `VPPD_valid_purpose_description`-The instructed payment purpose description has been successfully validated according to the specific requirements available in the SWIFT repository for the instructed context.

        `MPPD_missing_purpose_description`-There are specific rules for the provided context that require the presence of the payment purpose description which is missing from the payment purpose validation request.

        `PCME_purpose_code_description_max_length_exceeded`-Instructed payment purpose code description has exceeded the mandated maximum length registered in the SWIFT repository for the given  context

        `UPPC_unrecognized_purpose_code`-The instructed payment purpose code subject to validation could not be found in the purpose code data available in the SWIFT repository for the instructed payment context.

        `VPPC_valid_purpose_code`-The instructed payment purpose code has been successfully validated against the purpose  code list(s) available in the SWIFT repository for the instructed payment context.

        `ICTY_invalid_country`-Instructed country code is not a valid country code on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code)

        `UCSI_unrecognized_clearing_system_identification`-Instructed clearing system identifier has not been found in the SWIFT directory for the instructed payment context.

        `MPPC_missing_payment_purpose_code`-Payment Purpose code has not been instructed for the payment validation to be performed.

        `ICCY_invalid_currency_code`-Instructed currency code is not a valid ISO currency code

        `MCSI_missing_clearing_system_identifier`-Clearing system identifier  is missing from the payment context in order for the validation of the instructed payment information to be performed.

        `MCCC_missing_currency_code`-Currency code  is missing from the payment context in order for the validation of the instructed payment information to be performed.

        `ICCH_check_not_applied`-The individual payment validation check has not been applied for the instructed context. Other individual payment validation checks are more relevant and will be applied instead.
      enum:
      - PINP_no_purpose_code_data_available
      - VPPD_valid_purpose_description
      - MPPD_missing_purpose_description
      - PCME_purpose_code_description_max_length_exceeded
      - UPPC_unrecognized_purpose_code
      - VPPC_valid_purpose_code
      - ICTY_invalid_country
      - UCSI_unrecognized_clearing_system_identification
      - MPPC_missing_payment_purpose_code
      - ICCY_invalid_currency_code
      - MCSI_missing_clearing_system_identifier
      - MCCC_missing_currency_code
      - ICCH_check_not_applied
    PaymentPurposeValidationStatus1:
      type: object
      description: |
        This represents the response details that the Payment Purpose validation service will provide to the service consumer.
      additionalProperties: false
      properties:
        status:
          $ref: '#/components/schemas/PaymentPurposeValidationStatus1Code'
        reason:
          type: array
          items:
            $ref: '#/components/schemas/PaymentPurposeValidationReason1Code'
        validation_check:
          type: array
          items:
            $ref: '#/components/schemas/PaymentPurposeValidationCheck1'
        available_purpose_code:
          type: array
          items:
            $ref: '#/components/schemas/GenericCodeIdentification1'
        purpose_code:
          $ref: '#/components/schemas/GenericCodeIdentification1'
        country_code:
          $ref: '#/components/schemas/CountryCode'
        purpose_description:
          $ref: '#/components/schemas/Max140Text'
        clearing_system_identification:
          $ref: '#/components/schemas/ClearingSystemIdentification2Choice'
        currency_code:
          $ref: '#/components/schemas/ActiveCurrencyCode'
      required:
      - status
      - reason
    PaymentPurposeValidationStatus1Code:
      type: string
      description: |
        The list of unique status identifiers for the Payment Purpose Validation service.

        `IVAL_invalid`-The payment information instructed for validation it is not valid in  the instructed payment context.

        `FVAL_valid`-The payment information instructed for validation it is valid in the instructed payment context.

        `UNRE_unrecognised`-The payment information instructed for validation has not been found in the SWIFT repository for the instructed payment context.

        `CVAL_valid_with_comments`-The payment information instructed for validation  is valid but the instructed payment context can be further improved.

        `NAVL_not_available`-The validation of the instructed payment information is not available in the instructed payment context, typically due to payment data collection process being in progress and insufficient data coverage.

        `CNPR_could_not_perform`-The validation of the instructed payment information could not be performed in the instructed payment context typically due to missing payment context information.

        `NOAP_not_applicable`-The validation of the instructed payment information has not been applied because didn't make sense for the given context.
      enum:
      - IVAL_invalid
      - FVAL_valid
      - UNRE_unrecognised
      - CVAL_valid_with_comments
      - NAVL_not_available
      - CNPR_could_not_perform
      - NOAP_not_applicable
    PaymentValidationInputParameter1:
      type: string
      description: |
        The list of unique identifiers which describe the request parameters for Payment Validation service suite.

        `PPCO_payment_purpose_code`-Payment purpose code subject to the instructed Payment Validation service.

        `PDCO_payment_purpose_description`-Payment purpose description subject to the instructed Payment Validation service.
      enum:
      - PPCO_payment_purpose_code
      - PDCO_payment_purpose_description
    PaymentValidationSeverity1:
      type: string
      description: |
        Severity of the payment validation between error, warning and informative

        `ERRO_error`-Payment validation status indicates an error

        `INFO_info`-Payment validation status is informative

        `WARN_warning`-Payment validation status represents a warning
      enum:
      - ERRO_error
      - INFO_info
      - WARN_warning
    PhoneNumber:
      type: string
      description: |-
        The collection of information which identifies a specific phone or FAX number as defined by telecom services.
        It consists of a "+" followed by the country code (from 1 to 3 characters) then a "-" and finally, any combination of numbers, "(", ")", "+" and "-" (up to 30 characters).
      pattern: ^\+[0-9]{1,3}-[0-9()+\-]{1,30}$
    PostalAddress24:
      type: object
      description: Information that locates and identifies a specific address, as
        defined by postal services.
      additionalProperties: false
      properties:
        address_type:
          $ref: '#/components/schemas/AddressType3Choice'
        department:
          $ref: '#/components/schemas/Max70Text'
        sub_department:
          $ref: '#/components/schemas/Max70Text'
        street_name:
          $ref: '#/components/schemas/Max70Text'
        building_number:
          $ref: '#/components/schemas/Max16Text'
        building_name:
          $ref: '#/components/schemas/Max35Text'
        floor:
          $ref: '#/components/schemas/Max70Text'
        post_box:
          $ref: '#/components/schemas/Max16Text'
        room:
          $ref: '#/components/schemas/Max70Text'
        post_code:
          $ref: '#/components/schemas/Max16Text'
        town_name:
          $ref: '#/components/schemas/Max35Text'
        town_location_name:
          $ref: '#/components/schemas/Max35Text'
        district_name:
          $ref: '#/components/schemas/Max35Text'
        country_sub_division:
          $ref: '#/components/schemas/Max35Text'
        country:
          $ref: '#/components/schemas/CountryCode'
        address_line:
          type: array
          maxItems: 7
          items:
            $ref: '#/components/schemas/Max70Text'
    RouteSorting1:
      type: object
      description: Sorting of the list of payment routes returned, by a given criteria such as cut-off time, minimum number of agents involved, etc and the order in which the results should be returned, e.g. ascending order or descending order.
      additionalProperties: false
      properties:
        sorting_criteria:
          #  Sorting criteria for the routes such as cut-off time, minimum route length, alphabetical order of the Servicing Agent BIC, minimum estimated time to creditor, etc.
          $ref: '#/components/schemas/Max35Text'
        sorting_order:
          #  Sorting order of the results returned. By default the results will be returned in an ascending (ASC) order.
          $ref: '#/components/schemas/SortingOrder'
      required:
      - sorting_criteria
    ServicingAgentChannel1:
      type: object
      description: Channel as defined in the gpi directory between the Requestor Agent and the Servicing Agent.
      additionalProperties: false
      properties:
        type:
          #  'The channel through which the participant is reachable for gpi payment instructions for one of its gpi currencies. '
          $ref: '#/components/schemas/GpiDirectoryChannelType1Code'
        id:
          #  The id of the Market Infrastructure (MI), present only if the channel type is an MI (Fin PMI or Non Fin PMI).
          $ref: '#/components/schemas/Exact3AlphaNumericText'
        fee:
          #  Fee for the payment, taken from the fee repository (sender is requestor agent BIC and receiver is servicing agent BIC).  It will either be the bilateral fee or the default fee.
          $ref: '#/components/schemas/SwiftGoFee1'
        cut_off_time:
          #  Cut off time of the servicing agent for sending a SWIFT Go payment. This is taken from the GPI directory where the participant_id is servicing_agent.
          $ref: '#/components/schemas/ISODateTime'
        optimum_cut_off_time:
          #  The optimum cut off time to send a SWIFT Go payment, computed taking the full end to end transaction chain into account.
          $ref: '#/components/schemas/ISODateTime'
      required:
      - type
    SortingOrder:
      type: string
      description: |-
        Sorting Order of the returned results.
        *`ASC`-Sorted in ascending order.
        *`DSC`-Sorted in descending order.
      enum:
      - ASC
      - DSC
    SwiftGoFee1:
      type: object
      description: |
        Fee for the payment, taken from the fee repository (sender is requestor agent BIC and receiver is servicing agent BIC).

        It will either be the bilateral fee or the default fee.
      additionalProperties: false
      properties:
        stp_fee:
          #  STP (Straight Through Processing) fee entry from the fee repository for the relationship.
          $ref: '#/components/schemas/Amount3'
        nstp_fee:
          #  NSTP (Non-Straight Through Processing) fee entry from the fee repository for the relationship.
          $ref: '#/components/schemas/Amount3'
        fee_expiration:
          #  Expiration date and time of the fee defined by the servicing agent for the payment.
          $ref: '#/components/schemas/ISODateTime'
      required:
      - stp_fee
      example:
        stp_fee:
          value: '5'
          currency: USD
        nstp_fee:
          value: '5'
          currency: USD
        fee_expiration: '2023-12-31T00:00:00Z'
    SwiftGoPaymentThresholdStatus1:
      type: object
      description: |
        Validation of the Amount and Currency received from the payment validation request. The gpi tracker checks against the existing threshold verification for traffic.
      additionalProperties: false
      properties:
        validation_check:
        # This provides status of the threshold validation for the currency provided in the request. Below string will be returned corresponding to the outcome FVAL - when the currency can be used and the amount is below the threshold for that currency IVAL - when the currency cannot be used or when the amount is above the threshold for that currency.
          $ref: '#/components/schemas/Max4Text'
        amount:
          #  Threshold for Payment in a given currency.
          $ref: '#/components/schemas/Amount3'
      required:
      - validation_check
      example:
        validation_check: FVAL
        amount:
          value: '5'
          currency: USD
    SwiftGoRoutes1:
      type: object
      description: List of all possible routes returned by the routing algorithm.
      additionalProperties: false
      properties:
        servicing_agent:
          #  BIC or Financial Institution ID of the servicing agent found by the routing algorithm.
          $ref: '#/components/schemas/FinancialInstitutionIdentification20'
        channel:
          type: array
          #  'Channel that the requestor agent can use to reach the servicing agent. All possible channels are provided if there are more than one available. No channel is provided if there is no related entry in the GPI directory. '
          items:
            $ref: '#/components/schemas/ServicingAgentChannel1'
        estimated_time_to_creditor_minutes:
          #  Estimated time taken to send the payment to the creditor account (in minutes), computed using statistics.
          $ref: '#/components/schemas/EstimatedTimeToCreditor1'
        minimum_number_of_agents_involved:
          #  Minimum number of agents involved in the end to end payment chain. There can be several possible routes going through this servicing agent to reach the creditor agent.
          $ref: '#/components/schemas/positiveInteger'
      required:
      - servicing_agent
      - minimum_number_of_agents_involved
    UUIDv4Identifier:
      type: string
      description: Universally Unique IDentifier (UUID) version 4, as described in
        IETC RFC 4122 "Universally Unique IDentifier (UUID) URN Namespace".
      pattern: ^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$
    ValidationCheckResponse2:
      type: object
      description: |
        This represents the response details that the Creditor Account validation service will provide to the service consumer with regards to the creditor account validation performed by the creditor account.
      additionalProperties: false
      properties:
        account_validation_status:
          $ref: '#/components/schemas/AccountValidationResponse3Code'
        creditor_account_match:
          $ref: '#/components/schemas/AccountValidationResponse2Code'
        creditor_name_match:
          $ref: '#/components/schemas/AccountValidationResponse4Code'
        creditor_address_match:
          $ref: '#/components/schemas/AccountValidationResponse1Code'
        creditor_organisation_identification_match:
          $ref: '#/components/schemas/AccountValidationResponse1Code'
        creditor_account:
          $ref: '#/components/schemas/Max34Text'
        creditor_account_type:
          $ref: '#/components/schemas/AccountType2Code'
        creditor_name:
          $ref: '#/components/schemas/Max140Text'
        creditor_address:
          $ref: '#/components/schemas/PostalAddress24'
        validation_source:
          $ref: '#/components/schemas/AccountValidationSource1Code'
      required:
      - account_validation_status
      - creditor_account_match
      - creditor_name_match
      - creditor_address_match
      - creditor_organisation_identification_match
    YesNoIndicator:
      type: boolean
      description: Indicates a "Yes" or "No" type of answer for an element.
    nonNegativeInteger:
      type: string
      description: W3C XML Schema Built-in datatype "nonNegativeInteger".
    positiveInteger:
      type: string
      description: W3C XML Schema Built-in datatype "positiveInteger".
    ErrorMessage:
      description: "Custom error schema to support detailed error message."
      type: object
      readOnly: true
      additionalProperties: false
      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:
          description: "Specifies the detail error message identifying the cause of the error."
          type: string
          minLength: 1
          maxLength: 255
        user_message:
          description: "A human-readable text describing the error."
          type: string
          minLength: 1
          maxLength: 255
        more_info:
          description: "Specifies an URL to find more information about the error."
          type: string
          format: uri
      required:
        - code
        - severity
        - text
    ClearingSystemIdentificationChoice:
      type: object
      description: |
        Choice of a clearing system identifier.
      additionalProperties: true
      oneOf:
      - type: object
        additionalProperties: false
        properties:
          code:
            x-MXComponent: ExternalClearingSystemIdentification1Code
            description:  |
              Specifies the clearing system identification code, as published in an external clearing system identification code list. External code sets can be downloaded from www.iso20022.org..
            type: string
            minLength: 1
            maxLength: 5
        required:
        - code
      - type: object
        additionalProperties: false
        properties:
          proprietary:
            description:  |
              Identification code for a clearing system, that has not yet been identified in the list of clearing systems.
            type: string
            minLength: 1
            maxLength: 35
        required:
        - proprietary
    ClearingSystemMemberIdentification:
      type: object
      description: |
        Unique identification, as assigned by a clearing system, to unambiguously identify a member of the clearing system.
      additionalProperties: false
      properties:
        clearing_system_identification:
          #  Specification of a pre-agreed offering between clearing agents or the channel through which the payment instruction is processed.
          $ref: '#/components/schemas/ClearingSystemIdentificationChoice'
        member_identification:
          description:  |
            Identification of a member of a clearing system.
          type: string
          minLength: 1
          maxLength: 35
      required:
      - member_identification
    CurrencyAmount:
      type: object
      description: |
        Amount of money to be moved between the debtor and the creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.    Usage: Specify the amount in this field when the amount to be received by the beneficiary is known in the creditor currency.
      additionalProperties: false
      properties:
        currency_code:
          x-MXComponent: ActiveOrHistoricCurrencyCode
          x-Validation: true
          x-ValidationType: Algorithmic, ReferenceData
          x-Error: ErrorCode:Sw.Stds.D00006, ErrorText:Invalid currency code., SWIFTNetValidation:true, Severity:Fatal
          description:  |
            ISO three character currency code.  The Currency Code must be registered, or have already been registered. Valid active or historic currency codes are registered with the ISO 4217 Maintenance Agency, consist of three (3) contiguous letters, and may be or not be withdrawn on the day the message containing the Currency is exchanged.
          type: string
          pattern: ^[A-Z]{3,3}$
        amount:
          x-MXComponent: ActiveOrHistoricCurrencyAndAmount
          x-Validation: true
          x-ValidationType: Algorithmic
          x-Error: ErrorCode:Sw.Stds.D00007, ErrorText:Too many decimal digits., SWIFTNetValidation:true  Severity:Fatal
          description: |
            The amount with fractional digit.  The number of fractional digits (or minor unit of currency) must comply with ISO 4217. Note: The decimal separator is a dot.
            Usage:
              minInclusive: 0
              totalDigits: 18
              fractionDigits: 5
          type: string
          maxLength: 19
          pattern: ^0*(([0-9]{0,13}\.[0-9]{1,5})|([0-9]{0,14}\.[0-9]{1,4})|([0-9]{0,15}\.[0-9]{1,3})|([0-9]{0,16}\.[0-9]{1,2})|([0-9]{0,17}\.[0-9]{1,1})|([0-9]{0,18}\.)|0*|([0-9]{0,18}))$
      required:
      - currency_code
      - amount
    FinancialInstitutionIdentification:
      type: object
      description: |
        Specifies the details to identify a financial institution.
      additionalProperties: false
      properties:
        bicfi:
          x-MXComponent: BICFIDec2014Identifier
          x-Validation: true
          x-ValidationType: Algorithmic
          x-Error: ErrorCode:Sw.Stds.D00008, ErrorText:Invalid BIC., SWIFTNetValidation:true  Severity:Fatal
          description:  |
            Code allocated to a financial institution by the ISO 9362 Registration Authority as described in ISO 9362 "Banking - Banking telecommunication messages - Business identifier code (BIC)".
          type: string
          pattern: ^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}$
        clearing_system_member_identification:
          #  Information used to identify a member within a clearing system.
          $ref: '#/components/schemas/ClearingSystemMemberIdentification'
    GenericOrganisationIdentification:
      type: object
      description: |
        Information related to an identification of an organisation.
      additionalProperties: false
      properties:
        identification:
          description:  |
            Identification assigned by an institution.
          type: string
          minLength: 1
          maxLength: 35
        scheme_name:
          #  Name of the identification scheme.
          $ref: '#/components/schemas/OrganisationIdentificationSchemeNameChoice'
        issuer:
          description:  |
            Entity that assigns the identification.
          type: string
          minLength: 1
          maxLength: 35
      required:
      - identification
    OrganisationIdentification:
      type: object
      description: |
        Unique and unambiguous way to identify an organisation.
      additionalProperties: false
      properties:
        bic:
          x-MXComponent: AnyBICDec2014Identifier
          x-Validation: true
          x-ValidationType: Algorithmic
          x-Error: ErrorCode:Sw.Stds.D00008, ErrorText:Invalid BIC., SWIFTNetValidation:true  Severity:Fatal
          description: |
            Business identification code of the organisation. Code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority, as described in ISO 9362: 2014 - "Banking - Banking telecommunication messages - Business identifier code (BIC)".
          type: string
          pattern: ^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}$
        other:
          type: array
          maxItems: 2
          #  Unique identification of an organisation, as assigned by an institution, using an identification scheme.
          items:
            $ref: '#/components/schemas/GenericOrganisationIdentification'
    OrganisationIdentificationSchemeNameChoice:
      type: object
      description: |
        Sets of elements to identify a name of the organisation identification scheme.
      additionalProperties: true
      oneOf:
      - type: object
        additionalProperties: false
        properties:
          code:
            x-MXComponent: ExternalOrganisationIdentification1Code
            description:  |
              Specifies the external organisation identification scheme name code in the format of character string with a maximum length of 4 characters. The list of valid codes is an external code list published separately. External code sets can be downloaded from www.iso20022.org.
            type: string
            minLength: 1
            maxLength: 4
        required:
        - code
      - type: object
        additionalProperties: false
        properties:
          proprietary:
            description:  |
              Name of the identification scheme, in a free text form.
            type: string
            minLength: 1
            maxLength: 35
        required:
        - proprietary
    PartyIdentification:
      type: object
      description: |
        Specifies the identification of a person or an organisation.
      additionalProperties: false
      properties:
        name:
          description:  |
            Name by which a party is known and which is usually used to identify that party.
          type: string
          minLength: 1
          maxLength: 140
        postal_address:
          #  'Information that locates and identifies a specific address, as defined by postal services.  RECOMMENDATION IN ORDER OF PREFERENCE:  * Use only structured address with mandatory Town Name and Country   * When using unstructured address, (Address Line), max 7 occurrence with 70 character text is allowed.  * Address Line must not contain Country which must be included in the dedicated Country element in the unstructured address.'
          $ref: '#/components/schemas/PostalAddressChoice'
        identification:
          description: |
            Unique and unambiguous identification of a party.
          type: object
          additionalProperties: false
          properties:
            organisation_identification:
              #  Unique and unambiguous way to identify an organisation.
              $ref: '#/components/schemas/OrganisationIdentification'
    PaymentInstruction:
      type: object
      description: |
        Payment instruction with the data elements forming a partial or complete payment instruction. Validation is carried out on the data elements that are present.
      additionalProperties: false
      properties:
        uetr:
          description: |
            Unique end to end transaction reference of a payment. The type is Universally Unique Identifier (UUID) version 4, as described in IETC RFC 4122 "Universally Unique Identifier (UUID) URN Namespace".
          type: string
          format: uuid
          example: b56a093a-5d34-4bdb-9137-a337fe74b938
        instructed_amount:
          # Amount of money to be moved between the debtor and the creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.
          $ref: '#/components/schemas/CurrencyAmount'
        clearing_system_identification:
          description: |
            The market infrastructure over which the payment instruction will be/is intended to be cleared.
          type: string
          minLength: 1
          maxLength: 35
        debtor_agent_country:
          x-Validation: true
          x-ValidationType: Algorithmic, ReferenceData
          x-Error: ErrorCode:Sw.Stds.D00004, ErrorText:Invalid Country Code., SWIFTNetValidation:true,  Severity:Fatal
          description: |
            Country of the Financial institution servicing an account for the debtor expressed in 2 character ISO code.
          type: string
          minLength: 2
          maxLength: 2
          pattern: ^[A-Z]{2,2}$
        creditor_agent:
          #  Financial institution servicing an account for the creditor.
          $ref: '#/components/schemas/FinancialInstitutionIdentification'
        creditor_agent_country:
          x-Validation: true
          x-ValidationType: Algorithmic, ReferenceData
          x-Error: ErrorCode:Sw.Stds.D00004, ErrorText:Invalid Country Code., SWIFTNetValidation:true,  Severity:Fatal
          description: |
            Country of the Financial institution servicing an account for the creditor expressed in 2 character ISO code.
          type: string
          minLength: 2
          maxLength: 2
          pattern: ^[A-Z]{2,2}$
        creditor_agent_branch_identification:
          description: |
            Branch Identification of the Financial institution servicing an account for the creditor.
          type: string
          minLength: 1
          maxLength: 35
        creditor:
          #  Party to which an amount of money is due.
          $ref: '#/components/schemas/PartyIdentification'
        creditor_account:
          description: |
            Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.
          type: string
          minLength: 1
          maxLength: 34
        purpose_code:
          description:  |
            Underlying reason for the payment transaction. Usage: Purpose is used by the end-customers, that is initiating party, (ultimate) debtor, (ultimate) creditor to provide information concerning the nature of the payment.
          type: string
          minLength: 1
          maxLength: 35
        purpose_description:
          description:  |
            Description of the Underlying reason for the payment transaction, including any further regulatory reporting information that should accompany the payment.
          type: string
          minLength: 1
          maxLength: 140
        category_purpose_code:
          description: |
            Specifies the high level purpose of the instruction based on a set of pre-defined categories.  Usage: This is used by the initiating party to provide information concerning the processing of the payment. It is likely to trigger special processing by any of the agents involved in the payment chain.
          type: string
          minLength: 1
          maxLength: 35
      required:
      - instructed_amount
      - debtor_agent_country
      - creditor_agent_country
      - creditor_account
    PaymentInstructionValidation:
      type: object
      description: |
        Payment instruction validation providing a comprehensive view of the overall payment, including the results of the individual validations performed.
      additionalProperties: false
      properties:
        uetr:
          description: |
            Unique end to end transaction reference of a payment. The type is Universally Unique Identifier (UUID) version 4, as described in IETC RFC 4122 "Universally Unique Identifier (UUID) URN Namespace".
          type: string
          format: uuid
          example: 7dca010b-fc3b-496c-b8a4-36ffd78f674
        payment_instruction_validation_result:
          type: string
          description:  |
            This is the overall payment level result of the validations performed. It can have one of the below values

            `ERROR` - validations performed, resulting in at least one error response from the underlying data element validations.

            `WARNING` - validations performed, resulting in at least one warning from the underlying data element validations but no errors returned.

            `ALL_VALID` - all validations in the scope of this service, that were performed on the data elements, were successful.

            `PARTIALLY_VALIDATED` - some validations performed were successful. However, some validations could not be performed as source data was not available. But there were no errors returned for any of the underlying data element validations.

            `N/A` - Could not validate the payment instruction data elements, in the scope of this service, as source data was not available to perform any of the validations.
          enum:
          - ERROR
          - WARNING
          - ALL_VALID
          - PARTIALLY_VALIDATED
          - N/A
        validation_summary:
          description: |
            Summary of results of the validations performed.
          type: object
          additionalProperties: false
          properties:
            ERROR_count:
              description: |
                Number of unsuccessful validations returned as a result of validating the payment instruction data elements.

                W3C XML Schema Built-in datatype "nonNegativeInteger".
              type: string
            WARNING_count:
              description: |
                Number of warnings returned as a result of validating the payment instruction data elements.

                W3C XML Schema Built-in datatype "nonNegativeInteger".
              type: string
            VALID_count:
              description: |
                Number of successful validations returned as a result of validating the payment instruction data elements.

                W3C XML Schema Built-in datatype "nonNegativeInteger".
              type: string
            N/A_count:
              description: |
                Number of validations that could not be performed as source data was not available.

                W3C XML Schema Built-in datatype "nonNegativeInteger".
              type: string
            service_error_count:
              description: |
                Number of technical errors resulting in a HTTP 400/500 response. These are the back-end service errors encountered when performing a validation and eventually the validation hasn't been performed. These service errors will not be considered for deriving the overall 'payment_instruction_validation_result'.

                W3C XML Schema Built-in datatype "nonNegativeInteger".
              type: string
          required:
          - ERROR_count
          - WARNING_count
          - VALID_count
          - N/A_count
          - service_error_count
        validations:
          type: array
          #  Details the outcome of each individual checks performed in the scope of the Payment validation service.
          items:
            $ref: '#/components/schemas/ValidationCheck'
      required:
      - payment_instruction_validation_result
      - validation_summary
    PostalAddress:
      type: object
      description: Information that locates and identifies a specific address.
      additionalProperties: false
      required:
        - town_name
        - country
      properties:
        department:
          description: Identification of a division of a large organisation or building.
          type: string
          minLength: 1
          maxLength: 70
        sub_department:
          description: Identification of a sub-division of a large organisation or building.
          type: string
          minLength: 1
          maxLength: 70
        street_name:
          description: Name of a street or thoroughfare.
          type: string
          minLength: 1
          maxLength: 70
        building_number:
          description: Number that identifies the position of a building on a street.
          type: string
          minLength: 1
          maxLength: 16
        building_name:
          description: Name of the building or house.
          type: string
          minLength: 1
          maxLength: 35
        floor:
          description: Floor or storey within a building.
          type: string
          minLength: 1
          maxLength: 70
        post_box:
          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
        room:
          description: Building room number.
          type: string
          minLength: 1
          maxLength: 70
        post_code:
          description: Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail.
          type: string
          minLength: 1
          maxLength: 16
        town_name:
          description: Name of a built-up area, with defined boundaries, and a local government.
          type: string
          minLength: 1
          maxLength: 35
        town_location_name:
          description: Specific location name within the town.
          type: string
          minLength: 1
          maxLength: 35
        district_name:
          description: Identifies a subdivision within a country sub-division.
          type: string
          minLength: 1
          maxLength: 35
        country_sub_division:
          description: Identifies a subdivision of a country such as state, region, county.
          type: string
          minLength: 1
          maxLength: 35
        country:
          x-Validation: true
          x-ValidationType: Algorithmic, ReferenceData
          x-Error: ErrorCode:Sw.Stds.D00004, ErrorText:Invalid Country Code., SWIFTNetValidation:true,  Severity:Fatal
          description: Nation with its own government.
          type: string
          minLength: 2
          maxLength: 2
          pattern: ^[A-Z]{2,2}$
    PostalAddressChoice:
      type: object
      description: |
        Postal Address Structured or Unstructured
      additionalProperties: true
      oneOf:
      - type: object
        additionalProperties: false
        properties:
          structured:
            #  Postal Address Structured
            $ref: '#/components/schemas/PostalAddress'
        required:
          - structured
      - type: object
        additionalProperties: false
        properties:
          unstructured:
            #  Postal Address Unstructured
            $ref: '#/components/schemas/PostalAddressUnstructured'
        required:
          - unstructured
    PostalAddressUnstructured:
      type: object
      description: |
        Information that locates and identifies a specific address in an unstructured format.
      additionalProperties: false
      required:
        - address_line
        - country
      properties:
        address_line:
          description: |
            Information that locates and identifies a specific address, as defined by postal services, presented in free format text.
          type: array
          maxItems: 7
          items:
            type: string
            minLength: 1
            maxLength: 70
        country:
          x-Validation: true
          x-ValidationType: Algorithmic, ReferenceData
          x-Error: ErrorCode:Sw.Stds.D00004, ErrorText:Invalid Country Code., SWIFTNetValidation:true,  Severity:Fatal
          description:  Nation with its own government.
          type: string
          minLength: 2
          maxLength: 2
          pattern: ^[A-Z]{2,2}$
    ValidationCheck:
      type: object
      description: |
        Details of the outcome of each individual checks performed.
      additionalProperties: false
      properties:
        check_type:
          type: string
          description: |
            Identifies uniquely the Validation check being performed.

            `Account_Format_Validation` - validates the format of the instructed account identifier against all the formats that apply to the instructed context (country or/and the financial institution that holds the account)

            `Beneficiary_Account_Verification` - verifies that an account exists and is capable of receiving incoming funds. The service uses the beneficiary bank subscribed as data provider to perform the account verification (BAV) that usually implies that the account is open, properly identified by the given number and, depending on the jurisdiction and market practices in use where the account is held, that the creditor name matches the name of the account holder. When the beneficiary bank is not subscribed as data provider, SWIFT will use the pseudonymized account statistics (CBAV) to perform the account number verification that implies that the account exists and is likely to receive funds. SWIFT and the beneficiary banks subscribed as data provider do not take liability for the response and do not provide any guarantee on the outcome of an actual transaction being sent to this account. The information provided is meant to be as accurate as possible at the time that the request was processed.

            `Category_Purpose_Validation` - validates the instructed category purpose code against the list of category purpose codes available in the SWIFT reference data for the instructed payment context (creditor country).

            `Financial_Institution_Identity_Validation` - validates if the instructed institution is registered in the SWIFT reference data as financial institution.

            `Instructed_Amount_Validation` - validates the instructed amount against the requirements available in the SWIFT reference data for the instructed creditor agent country and payment market infrastructure.

            `Payment_Purpose_Validation` - validates the instructed information regarding the purpose of the payment based on the specific requirements available in the SWIFT repository, for the instructed payment context (creditor agent country, currency and local payment instrument).
          enum:
          - Account_Format_Validation
          - Beneficiary_Account_Verification
          - Category_Purpose_Validation
          - Financial_Institution_Identity_Validation
          - Instructed_Amount_Validation
          - Payment_Purpose_Validation
        validated_by:
          type: string
          description: |
            Indicates who is performing the check - if the check is performed by SWIFT centrally, or in collaboration with other institution, which in the payment validation case are the creditor agents.
          enum:
          - SWIFT_CENTRALLY
          - CREDITOR_AGENT
        status:
          type: string
          description: |
            Indicates the status of the individual payment validation check.

            `FVAL_valid` - The payment information instructed for validation is valid in the instructed payment context.

            `CVAL_valid_with_comments` - The payment information instructed for validation is valid but the instructed payment context can be further improved.

            `IVAL_invalid` - The payment information instructed for validation is not valid in the instructed payment context.

            `NAVL_not_available` - The validation of the instructed payment information is not available in the instructed payment context, typically due to payment data collection process being in progress and insufficient data coverage.

            `CNPR_could_not_perform` - The validation of the instructed payment information could not be performed in the instructed payment context typically due to missing payment context information.

            `NOAP_not_applicable` - The validation of the instructed payment information has not been applied because it is not applicable for the given context.

            `NOMN_not_mandated` - There is no mandate regarding the instructed payment information registered in the SWIFT repository for the given context.

            `UNRE_unrecognised` - The payment information instructed for validation has not been found in the SWIFT repository for the instructed payment context.

            `ISMN_is_mandated` - There is a mandate regarding the instructed payment information registered in the SWIFT repository for the given context.


            Below status are specific to *Beneficiary Account Verification* check, wherein the beneficiary bank is the data provider and has provided the response. Hence, the below status should be interpreted in the context of 'validated_by' indicator having the value as 'CREDITOR_AGENT'.

            `FAIL` - The account identification provided was not successfully validated to an account that can receive funds.

            `INCO` - The account identification provided was successfully validated to an account that can receive funds, however, some additional account checks will be performed at transaction time.

            `PASS` - The account identification was successfully validated to an account that can receive funds.

            `WARN` - The account identification was not successfully validated to an account that can receive funds, however, the responder lacks some information to provide a definite answer.


            Below status are specific to *Central Beneficiary Account Verification* or CBAV, wherein the beneficiary bank is not a data provider and SWIFT has used the pseudonymized account statistics to perform the account number verification, that implies that the account exists and is likely to receive funds. Hence, the below status should be interpreted in the context of 'validated_by' indicator having the value as 'SWIFT_CENTRALLY'.

            `INCO` - Transactions with this beneficiary account were found in the transaction history and all these transaction were successful or did not fail due to invalid beneficiary account details.

            `WARN` - In the history there are transactions with this beneficiary account that were rejected due to a problem related to the account.

            `NAVL` - No transactions with this account found in the transaction history.
          enum:
          - FVAL_valid
          - CVAL_valid_with_comments
          - IVAL_invalid
          - NAVL_not_available
          - CNPR_could_not_perform
          - NOAP_not_applicable
          - NOMN_not_mandated
          - UNRE_unrecognised
          - ISMN_is_mandated
          - FAIL
          - INCO
          - PASS
          - WARN
          - NAVL
        reason:
          type: array
          description:  |
            The reason(s) behind the status of the individual payment purpose validation check.

            Below reasons are for *Account_Format_Validation* check:

            *AINP_account_data_collection_in_progress* - SWIFT account format data coverage index indicates that the account data collection process is in progress (below 90% level of completion).

            *CCTY_consistent_country* - The instructed country code matches the country of the payment information that is subject to validation.

            *CFIN_consistent_financial_institution_identification* - The instructed financial institution matches the financial institution that uses the account format of the instructed account.

            *INCT_inconsistent_country* - The instructed country code does not match the country of the payment information that is subject to validation.

            *IFIN_inconsistent_financial_institution_identification* - The instructed financial institution identifier does not match the  financial institution that owns the account that is the subject to the account format validation.

            *IBBN_invalid_bban* - The instructed account identifier subject to account format validation does not have a valid Basic Bank Account Number (BBAN) format for the instructed payment context.

            *IBIC_invalid_bic* - The instructed financial institution identifier subject to financial institution identity validation is not a  valid BIC for the instructed payment context.

            *ICTY_invalid_country* - Instructed country code is not a valid country code on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

            *IDOM_invalid_domestic_bank_specific* - The instructed account identifier subject to account format validation does not have a valid domestic, bank specific format (nor national domestic standard nor bank specific standard) for the instructed payment context.

            *IIBN_invalid_iban* - The instructed account identifier subject to account format validation does not have a valid IBAN format for the instructed payment context.

            *ICCH_check_not_applied* - The individual payment validation check has not been applied for the instructed context. Other individual payment validation checks are more relevant and will be applied instead.

            *MCTY_missing_country_code* - Country code is missing from the payment context in order for the validation of the instructed payment information to be performed.

            *MFIN_missing_financial_institution_identifier* - Financial Institution Identifier is missing from the payment context in order for the validation of the instructed payment information to be performed.

            *UCSM_unrecognized_clearing_system_member_identification* - The instructed financial institution identifier subject to financial institution identity validation has not been found in the SWIFT directory for the instructed payment context.

            *VBBN_valid_bban* - The instructed account identifier subject to account format validation has a valid Basic Bank Account Number (BBAN) format for the instructed payment context.

            *VDOM_valid_domestic_bank_specific* - The instructed account identifier subject to account format validation has a valid domestic, bank specific format (national domestic standard or bank specific standard) for the instructed payment context.

            *VIBN_valid_iban* - The instructed account identifier subject to account format validation has a valid IBAN format for the instructed payment context.


            Below reasons are for *Beneficiary_Account_Verification* check, wherein the beneficiary bank is the data provider (BAV) and has provided the response:

            BAV:

            *creditor_account_match = MTCH/NMTC* - the creditor account match response code.

            *creditor_name_match = MTCH/MBAM/NMTC/NOAP/NOTC* - the creditor name match response code.

            *creditor_address_match =  NOAP/NOTC* - the creditor address match response code.

            *creditor_organisation_identification_match =  MTCH/NMTC/NOAP/NOTC* - the creditor organisation identification match response code.
            (MTCH-Match, NMTC-No match, MBAM-Maybe a match, NOAP-Not applicable, NOTC-Not checked)


            Below reasons are for *Beneficiary_Account_Verification* check, wherein the beneficiary bank is NOT a data provider and SWIFT has used the pseudonymized account statistics (CBAV) to perform the account number verification:

            CBAV:

            *INCO, Transactions with this beneficiary account were found in the transaction history and all these transaction were successful or did not fail due to invalid beneficiary account details*

            *WARN, In the history there are transactions with this beneficiary account that were rejected due to a problem related to the account*

            *NAVL, No transactions with this account found in the transaction history*


            Below reasons are for *Category_Purpose_Validation* check:

            *CINP_no_category_purpose_data_available* - No category purpose data available in the SWIFT repository for the instructed context. This may relate to the country specific requirements not mandating category purpose codes for the instructed context.

            *ICTY_invalid_country* - Instructed country code is not a valid country code on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

            *UPCP_unrecognized_category_purpose* - The instructed payment category purpose subject to validation could not be found in the payment category purpose data available in the SWIFT repository for the instructed payment context.

            *VPCP_valid_category_purpose* - The instructed payment category purpose subject has been successfully validated for the instructed payment context.


            Below reasons are for *Financial_Institution_Identity_Validation* check:

            *CCTY_consistent_country* - The instructed country code matches the country of the payment information that is subject to validation.

            *INCT_inconsistent_country* - The instructed country code does not match the country of the payment information that is subject to validation.

            *IBIC_invalid_bic* - The instructed financial institution identifier subject to financial institution identity validation is not a  valid BIC for the instructed payment context.

            *ICTY_invalid_country* - Instructed country code is not a valid country code on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

            *MCTY_missing_country_code* - Country code is missing from the payment context in order for the validation of the instructed payment information to be performed.

            *UCSM_unrecognized_clearing_system_member_identification* - The instructed financial institution identifier subject to financial institution identity validation has not been found in the SWIFT directory for the instructed payment context.

            *VBIC_valid_bic* - The instructed financial institution identifier subject to financial institution identity validation is a valid BIC for the instructed payment context.

            *VCSM_valid_clearing_system_member_identification* - The instructed financial institution identifier subject to financial institution identity validation is a valid clearing system member identifier for the instructed payment context.


            Below reasons are for *Instructed_Amount_Validation* check:

            *AALP_amount_above_pmi_limit_per_payment* - The instructed amount subject to validation has exceeded the per-transaction limit imposed by the Payment Market Infrastructure (PMI).

            *ABLP_amount_below_pmi_limit_per_payment* - The instructed amount subject to validation is below the per-transaction limit imposed by the Payment Market Infrastructure (PMI).

            *DACD_amount_decimals_do_not_match_currency_decimals* - Instructed amount has a number of decimals that is different from the number of decimals advised for the instructed currency.

            *DBCD_amount_decimals_match_currency_decimals* - Instructed amount has a number of decimals that matches exactly the number of decimals advised for the instructed currency.

            *AWPL_amount_within_pmi_limits* - The instructed amount subject to validation is within the per-transaction limits imposed by the instruct context.

            *ICCY_invalid_currency_code* - Instructed currency code is not a valid ISO currency code.

            *PMIP_pmi_data_collection_in_progress* - SWIFT is in the process of collecting additional data with regards to the instructed Payment Market Infrastructure.

            *UCSI_unrecognized_clearing_system_identification* - Instructed clearing system identifier has not been found in the SWIFT directory for the instructed payment context.


            Below reasons are for *Payment_Purpose_Validation* check:

            *ICCH_check_not_applied* - The individual payment validation check has not been applied for the instructed context. Other individual payment validation checks are more relevant and will be applied instead.

            *ICCY_invalid_currency_code* - Instructed currency code is not a valid ISO currency code.

            *ICTY_invalid_country* - Instructed country code is not a valid country code on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).

            *MCCC_missing_currency_code* - Currency code  is missing from the payment context in order for the validation of the instructed payment information to be performed.

            *MCSI_missing_clearing_system_identifier* - Clearing system identifier  is missing from the payment context in order for the validation of the instructed payment information to be performed.

            *MPPC_missing_payment_purpose_code* - Payment Purpose code has not been instructed for the payment validation to be performed.

            *MPPD_missing_purpose_description* - There are specific rules for the provided context that require the presence of the payment purpose description which is missing from the payment purpose validation request.

            *PCME_purpose_code_description_max_length_exceeded* - Instructed payment purpose code description has exceeded the mandated maximum length registered in the SWIFT repository for the given context.

            *PINP_no_purpose_code_data_available* - No purpose code data available in the SWIFT repository for the instructed context. This may relate to the country specific requirements not mandating purpose codes for the instructed context.

            *PPNM_payment_purpose_not_mandatory* - Payment purpose code or description is not mandatory.

            *PPNR_payment_purpose_not_mandatory_but_recommended* - Payment purpose code or description is not mandatory but one or both are recommended.

            *PPMT_payment_purpose_mandatory_above_pmi_amount_threshold* - Payment purpose code or description is mandatory if the instructed amount is above the amount threshold set by the PMI (Payment Market Infrastructure).

            *UCSI_unrecognized_clearing_system_identification* - Instructed clearing system identifier has not been found in the SWIFT directory for the instructed payment context.

            *UPPC_unrecognized_purpose_code* - The instructed payment purpose code subject to validation could not be found in the purpose code data available in the SWIFT repository for the instructed payment context.

            *VPPC_valid_purpose_code* - The instructed payment purpose code has been successfully validated against the purpose  code list(s) available in the SWIFT repository for the instructed payment context.

            *VPPD_valid_purpose_description* - The instructed payment purpose description has been successfully validated according to the specific requirements available in the SWIFT repository for the instructed context.
          items:
            type: string
            minLength: 1
            maxLength: 280
        result:
          type: string
          description: |
            Result of the validation check.

            `ERROR` - The validation performed resulted in invalid result.

            `WARNING` - Not completely valid, something is missing or inconsistent.

            `N/A` - SWIFT has no data available to validate against.

            `VALID` - It has been validated, there is no error nor any missing information.

            `service_error` - There was a technical error resulting in a HTTP 400/500 response. These are the back-end service errors encountered when performing a validation and eventually the validation hasn't been performed.
          enum:
          - ERROR
          - WARNING
          - N/A
          - VALID
          - service_error
        validated_payment_elements:
          type: array
          description: |
            Details about the specific data elements of the payment instruction that has been validated. This can have the below values:
            "instructed_amount"
            "clearing_system_identification"
            "debtor_agent_country"
            "creditor_agent.bicfi"
            "creditor_agent.clearing_system_member_identification"
            "creditor_agent_country"
            "creditor_agent_branch_identification"
            "creditor.name"
            "creditor.postal_address"
            "creditor.identification"
            "creditor_account"
            "purpose_code"
            "purpose_description"
            "category_purpose_code"
          items:
            type: string
            minLength: 1
            maxLength: 140
        additional_information:
          type: string
          description: |
            This is a generic field to return any other relevant detail for the validation performed. One of the use cases identified is for the Beneficiary Account Verification in the Payment Instruction validation service, wherein this field would include the actual Creditor Name from the Creditor Agent if the Creditor Agent verified the name provided in the request.
          minLength: 1
          maxLength: 2048
          example:
            "creditor.name = ABC Limited; credtor.postal_address = 123 Park Street, London, GB; creditor.identification = 12321321"
      required:
      - check_type
      - validated_by
      - status
      - reason
      - result
  securitySchemes:
    oauthBearerToken:
      type: http
      scheme: bearer
      bearerFormat: opaque OAuth 2.0
      description: |
        The access token obtained as a result of OAuth 2.0 flows. SWIFT supports the below OAuth grant type for the two environments where the API is exposed.

        * MV-SIPN - jwt-bearer grant type [RFC 7523](https://tools.ietf.org/html/rfc7523) with Signed JWT assertion
        * Internet - jwt-bearer grant type [RFC 7523](https://tools.ietf.org/html/rfc7523) with Signed JWT assertion

        This API uses JWT-Bearer grant type.

        Please visit [SWIFT OAuth Token API](https://developer.swift.com/swift-oauth-token-api) page for more information and examples on how to generate an OAuth token.

        In this declaration only the basic security element to transport the bearer token of an OAuth2 process is declared.
  parameters:
    x-bic:
      description: |
        BIC of SWIFT as SWIFT is performing the service, centrally.
        The x-bic value must be swhqbebb.
      name: x-bic
      in: header
      required: true
      schema:
        pattern: ^[a-z]{6,6}[a-z2-9][a-np-z0-9]$
        type: string
      example: swhqbebb
    X-Request-ID:
      description: |
        Unique end-to-end tracking identifier(ID) of the Payment Pre-validation API service request. Payment Pre-validation Users are not required to fill it in for the Payment Pre-validation API request. SWIFT provide the tracking ID which is an uuid as described in IETF RFC 4122 Universally Unique Identifier (UUID) URN Namespace.Pattern - ^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$.
      name: X-Request-ID
      in: header
      schema:
        type: string
        format: uuid
  examples:
    DPReqUseCase-1:
      summary: Institution registered as Data Provider that is Live and Active
      value:
        bic_institution: TGBATRIS
    DPReqUseCase-2:
      summary: Institution registered as Data Provider that is Live but Inactive
      value:
        bic_institution: HBUKGB4B
        implementation_details:
        - environment: LIVE_live
          status: INAC_inactive
    DPReqUseCase-3:
      summary: Institution registered as Data Provider that is Active in Pilot mode
      value:
        bic_institution: PIRBGRAA
        implementation_details:
        - environment: PILO_pilot
          status: ACTI_active
    DPReqUseCase-4:
      summary: All institutions registered as Data Provider that are Live and Active
      value:
        implementation_details:
        - environment: LIVE_live
          status: ACTI_active
    DPReqUseCase-5:
      summary: Institution not registered as Data Provider
      value:
        bic_institution: PIRBGRDD
    DPReqUseCase-6:
      summary: Institution not registered as Data Provider that is Live and Active
      value:
        bic_institution: PIRBGRAA
        implementation_details:
        - environment: LIVE_live
          status: ACTI_active
    DPResUseCase-1:
      summary: Institution registered as Data Provider that is Live and Active
      value:
        status: FVAL_valid
        reason:
        - BRDP_bic_registered_as_data_provider
        registered_data_provider:
        - data_provider_details:
            institution_identification:
              bicfi: TGBATRIS
              name: GARANTI Bank
            implementation_details:
            - environment: PILO_pilot
              status: ACTI_active
            - environment: LIVE_live
              status: ACTI_active
          related_institution:
          - institution_identification:
              bicfi: TGBAMTMT
              name: GARANTI Bank
            implementation_details:
            - environment: PILO_pilot
              status: ACTI_active
            - environment: LIVE_live
              status: ACTI_active
    DPResUseCase-2:
      summary: Institution registered as Data Provider that is Live but Inactive
      value:
        status: FVAL_valid
        reason:
        - BRDP_bic_registered_as_data_provider
        registered_data_provider:
        - data_provider_details:
            institution_identification:
              bicfi: HBUKGB4B
              name: HSBC
            implementation_details:
            - environment: LIVE_live
              status: INAC_inactive
          related_institution:
          - institution_identification:
              bicfi: MIDLGB22
              name: HSBC
            implementation_details:
            - environment: LIVE_live
              status: INAC_inactive
          - institution_identification:
              bicfi: HSBCHKHH
              name: HSBC
            implementation_details:
            - environment: LIVE_live
              status: INAC_inactive
          - institution_identification:
              bicfi: BBMEAEAD
              name: HSBC
            implementation_details:
            - environment: LIVE_live
              status: INAC_inactive
          - institution_identification:
              bicfi: MRMDUS33
              name: HSBC
            implementation_details:
            - environment: LIVE_live
              status: INAC_inactive
    DPResUseCase-3:
      summary: Institution registered as Data Provider that is Active in Pilot mode
      value:
        status: FVAL_valid
        reason:
        - BRDP_bic_registered_as_data_provider
        registered_data_provider:
        - data_provider_details:
            institution_identification:
              bicfi: PIRBGRAA
              name: Piraeus Bank
            implementation_details:
            - environment: PILO_pilot
              status: ACTI_active
    DPResUseCase-4:
      summary: All institutions registered as Data Provider that are Live and Active
      value:
        status: CNPR_could_not_perform
        reason:
        - MITV_missing_bic
        registered_data_provider:
        - data_provider_details:
            institution_identification:
              bicfi: TGBATRIS
              name: GARANTI Bank
            implementation_details:
            - environment: LIVE_live
              status: ACTI_active
          related_institution:
          - institution_identification:
              bicfi: TGBAMTMT
              name: GARANTI Bank
            implementation_details:
            - environment: LIVE_live
              status: ACTI_active
    DPResUseCase-5:
      summary: Institution not registered as Data Provider
      value:
        status: IVAL_invalid
        reason:
        - BNRD_bic_not_registered_as_data_provider
    DPResUseCase-6:
      summary: Institution not registered as Data Provider that is Live and Active
      value:
        status: IVAL_invalid
        reason:
        - BRDD_bic_not_registered_with_these_details_as_data_provider
    AFReqUseCase-1:
      summary: Valid IBAN
      value:
        account_identification: DE41500105170123456789
    AFReqUseCase-2:
      summary: Valid IBAN, consistent country code
      value:
        account_identification: DE41500105170123456789
        country_code: DE
    AFReqUseCase-3:
      summary: Valid IBAN, inconsistent country code
      value:
        account_identification: DE41500105170123456789
        country_code: BE
    AFReqUseCase-4:
      summary: Valid IBAN, consistent financial institution
      value:
        account_identification: DE41500105170123456789
        financial_institution_identification: INGDDEFFXXX
    AFReqUseCase-5:
      summary: Valid IBAN, inconsistent financial institution
      value:
        account_identification: DE41500105170123456789
        financial_institution_identification: RGGDDEFFXXX
    AFReqUseCase-6:
      summary: Valid IBAN, consistent country code, consistent financial institution
      value:
        account_identification: DE41500105170123456789
        country_code: DE
        financial_institution_identification: INGDDEFFXXX
    AFReqUseCase-7:
      summary: Valid IBAN, inconsistent country code, consistent financial institution
      value:
        account_identification: DE41500105170123456789
        country_code: BE
        financial_institution_identification: INGDDEFFXXX
    AFReqUseCase-8:
      summary: Valid IBAN, inconsistent country code, inconsistent financial institution
      value:
        account_identification: DE41500105170123456789
        country_code: BE
        financial_institution_identification: RGGDDEFFXXX
    AFReqUseCase-9:
      summary: Valid IBAN, consistent country, inconsistent financial institution
      value:
        account_identification: DE41500105170123456789
        country_code: DE
        financial_institution_identification: '50010511'
    AFReqUseCase-10:
      summary: Valid BBAN, consistent country code
      value:
        account_identification: '500105170123456789'
        country_code: DE
    AFReqUseCase-11:
      summary: Invalid IBAN, Invalid BBAN, Invalid bank specific account format
      value:
        account_identification: '500105170123456789'
        country_code: BE
    AFReqUseCase-12:
      summary: Valid BBAN, consistent country, consistent financial institution
      value:
        account_identification: '500105170123456789'
        country_code: DE
        financial_institution_identification: INGDDEFFXXX
    AFReqUseCase-13:
      summary: Valid BBAN, consistent country code, inconsistent financial institution
      value:
        account_identification: '500105170123456789'
        country_code: DE
        financial_institution_identification: RGGDDEFFXXX
    AFReqUseCase-14:
      summary: Valid bank specific account format, consistent country, consistent
        financial institution
      value:
        account_identification: '000000123456'
        country_code: IT
        financial_institution_identification: BCITITMMXXX
    AFResUseCase-1:
      summary: Valid IBAN
      value:
        account_identification:
          iban: DE41500105170123456789
        status: FVAL_valid
        reason:
        - VIBN_valid_iban
        validation_check:
        - code: IBAN_iban_check
          status: FVAL_valid
          reason:
          - VIBN_valid_iban
        - code: IBCO_iban_and_country_check
          status: CNPR_could_not_perform
          reason:
          - MCTY_missing_country_code
        - code: IBFI_iban_and_financial_institution_check
          status: CNPR_could_not_perform
          reason:
          - MFIN_missing_financial_institution_identifier
        - code: BBCO_bban_and_country_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: BBFI_bban_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOCO_domestic_bank_specific_account_and_country_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOFI_domestic_bank_specific_account_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOCF_domestic_bank_specific_account_and_country_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
    AFResUseCase-2:
      summary: Valid IBAN, consistent country code
      value:
        account_identification:
          iban: DE41500105170123456789
        country_code: DE
        status: FVAL_valid
        reason:
        - VIBN_valid_iban
        - CCTY_consistent_country
        validation_check:
        - code: IBAN_iban_check
          status: FVAL_valid
          reason:
          - VIBN_valid_iban
        - code: IBCO_iban_and_country_check
          status: FVAL_valid
          reason:
          - CCTY_consistent_country
        - code: IBFI_iban_and_financial_institution_check
          status: CNPR_could_not_perform
          reason:
          - MFIN_missing_financial_institution_identifier
        - code: BBCO_bban_and_country_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: BBFI_bban_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOCO_domestic_bank_specific_account_and_country_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOFI_domestic_bank_specific_account_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOCF_domestic_bank_specific_account_and_country_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
    AFResUseCase-3:
      summary: Valid IBAN, inconsistent country code
      value:
        account_identification:
          iban: DE41500105170123456789
        country_code: DE
        status: CVAL_valid_with_comments
        reason:
        - VIBN_valid_iban
        - INCT_inconsistent_country
        validation_check:
        - code: IBAN_iban_check
          status: FVAL_valid
          reason:
          - VIBN_valid_iban
        - code: IBCO_iban_and_country_check
          status: CVAL_valid_with_comments
          reason:
          - VIBN_valid_iban
          - INCT_inconsistent_country
        - code: IBFI_iban_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - MFIN_missing_financial_institution_identifier
        - code: BBCO_bban_and_country_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: BBFI_bban_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOCO_domestic_bank_specific_account_and_country_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOFI_domestic_bank_specific_account_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOCF_domestic_bank_specific_account_and_country_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
    AFResUseCase-4:
      summary: Valid IBAN, consistent financial institution
      value:
        account_identification:
          iban: DE41500105170123456789
        financial_institution_identification:
          bicfi: INGDDEFFXXX
          name: ING-DIBA AG (RETAIL BANKING)
          postal_address:
            post_code: '60486'
            town_name: FRANKFURT AM MAIN
            country: DE
            address_line:
            - THEODOR-HEUSS-ALLEE 2
        status: FVAL_valid
        reason:
        - VIBN_valid_iban
        - CFIN_consistent_financial_institution_identification
        validation_check:
        - code: IBAN_iban_check
          status: FVAL_valid
          reason:
          - VIBN_valid_iban
        - code: IBCO_iban_and_country_check
          status: CNPR_could_not_perform
          reason:
          - MCTY_missing_country_code
        - code: IBFI_iban_and_financial_institution_check
          status: FVAL_valid
          reason:
          - CFIN_consistent_financial_institution_identification
        - code: BBCO_bban_and_country_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: BBFI_bban_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOCO_domestic_bank_specific_account_and_country_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOFI_domestic_bank_specific_account_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOCF_domestic_bank_specific_account_and_country_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
    AFResUseCase-5:
      summary: Valid IBAN, inconsistent financial institution
      value:
        account_identification:
          iban: DE41500105170123456789
        financial_institution_identification:
          bicfi: INGDDEFFXXX
          name: ING-DIBA AG (RETAIL BANKING)
          postal_address:
            post_code: '60486'
            town_name: FRANKFURT AM MAIN
            country: DE
            address_line:
            - THEODOR-HEUSS-ALLEE 2
        status: CVAL_valid_with_comments
        reason:
        - VIBN_valid_iban
        - IFIN_inconsistent_financial_institution_identification
        validation_check:
        - code: IBAN_iban_check
          status: FVAL_valid
          reason:
          - VIBN_valid_iban
        - code: IBCO_iban_and_country_check
          status: CNPR_could_not_perform
          reason:
          - MCTY_missing_country_code
        - code: IBFI_iban_and_financial_institution_check
          status: IVAL_invalid
          reason:
          - IFIN_inconsistent_financial_institution_identification
        - code: BBCO_bban_and_country_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: BBFI_bban_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOCO_domestic_bank_specific_account_and_country_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOFI_domestic_bank_specific_account_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOCF_domestic_bank_specific_account_and_country_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
    AFResUseCase-6:
      summary: Valid IBAN, consistent country code, consistent financial institution
      value:
        account_identification:
          iban: DE41500105170123456789
        country_code: DE
        financial_institution_identification:
          bicfi: INGDDEFFXXX
          name: ING-DIBA AG (RETAIL BANKING)
          postal_address:
            post_code: '60486'
            town_name: FRANKFURT AM MAIN
            country: DE
            address_line:
            - THEODOR-HEUSS-ALLEE 2
        status: FVAL_valid
        reason:
        - VIBN_valid_iban
        - CCTY_consistent_country
        - CFIN_consistent_financial_institution_identification
        validation_check:
        - code: IBAN_iban_check
          status: FVAL_valid
          reason:
          - VIBN_valid_iban
        - code: IBCO_iban_and_country_check
          status: FVAL_valid
          reason:
          - CCTY_consistent_country
        - code: IBFI_iban_and_financial_institution_check
          status: FVAL_valid
          reason:
          - CFIN_consistent_financial_institution_identification
        - code: BBCO_bban_and_country_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: BBFI_bban_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOCO_domestic_bank_specific_account_and_country_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOFI_domestic_bank_specific_account_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOCF_domestic_bank_specific_account_and_country_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
    AFResUseCase-7:
      summary: Valid IBAN, inconsistent country code, consistent financial institution
      value:
        account_identification:
          iban: DE41500105170123456789
        country_code: DE
        financial_institution_identification:
          bicfi: INGDDEFFXXX
          name: ING-DIBA AG (RETAIL BANKING)
          postal_address:
            post_code: '60486'
            town_name: FRANKFURT AM MAIN
            country: DE
            address_line:
            - THEODOR-HEUSS-ALLEE 2
        status: CVAL_valid_with_comments
        reason:
        - VIBN_valid_iban
        - INCT_inconsistent_country
        - CFIN_consistent_financial_institution_identification
        validation_check:
        - code: IBAN_iban_check
          status: FVAL_valid
          reason:
          - VIBN_valid_iban
        - code: IBCO_iban_and_country_check
          status: CVAL_valid_with_comments
          reason:
          - INCT_inconsistent_country
        - code: IBFI_iban_and_financial_institution_check
          status: FVAL_valid
          reason:
          - CFIN_consistent_financial_institution_identification
        - code: BBCO_bban_and_country_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: BBFI_bban_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOCO_domestic_bank_specific_account_and_country_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOFI_domestic_bank_specific_account_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOCF_domestic_bank_specific_account_and_country_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
    AFResUseCase-8:
      summary: Valid IBAN, inconsistent country code, inconsistent financial institution
      value:
        account_identification:
          iban: DE41500105170123456789
        country_code: DE
        financial_institution_identification:
          bicfi: INGDDEFFXXX
          name: ING-DIBA AG (RETAIL BANKING)
          postal_address:
            post_code: '60486'
            town_name: FRANKFURT AM MAIN
            country: DE
            address_line:
            - THEODOR-HEUSS-ALLEE 2
        status: CVAL_valid_with_comments
        reason:
        - VIBN_valid_iban
        - INCT_inconsistent_country
        - IFIN_inconsistent_financial_institution_identification
        validation_check:
        - code: IBAN_iban_check
          status: FVAL_valid
          reason:
          - VIBN_valid_iban
        - code: IBCO_iban_and_country_check
          status: CVAL_valid_with_comments
          reason:
          - INCT_inconsistent_country
        - code: IBFI_iban_and_financial_institution_check
          status: CVAL_valid_with_comments
          reason:
          - IFIN_inconsistent_financial_institution_identification
        - code: BBCO_bban_and_country_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: BBFI_bban_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOCO_domestic_bank_specific_account_and_country_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOFI_domestic_bank_specific_account_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOCF_domestic_bank_specific_account_and_country_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
    AFResUseCase-9:
      summary: Valid IBAN, consistent country, inconsistent financial institution
      value:
        account_identification:
          iban: DE41500105170123456789
        country_code: DE
        financial_institution_identification:
          bicfi: INGDDEFFXXX
          name: ING-DIBA AG (RETAIL BANKING)
          postal_address:
            post_code: '60486'
            town_name: FRANKFURT AM MAIN
            country: DE
            address_line:
            - THEODOR-HEUSS-ALLEE 2
        status: CVAL_valid_with_comments
        reason:
        - VIBN_valid_iban
        - CCTY_consistent_country
        - IFIN_inconsistent_financial_institution_identification
        validation_check:
        - code: IBAN_iban_check
          status: FVAL_valid
          reason:
          - VIBN_valid_iban
        - code: IBCO_iban_and_country_check
          status: FVAL_valid
          reason:
          - CCTY_consistent_country
        - code: IBFI_iban_and_financial_institution_check
          status: IVAL_invalid
          reason:
          - IFIN_inconsistent_financial_institution_identification
        - code: BBCO_bban_and_country_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: BBFI_bban_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOCO_domestic_bank_specific_account_and_country_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOFI_domestic_bank_specific_account_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
        - code: DOCF_domestic_bank_specific_account_and_country_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VIBN_valid_iban
    AFResUseCase-10:
      summary: Valid BBAN, consistent country code
      value:
        account_identification:
          other:
            identification: '500105170123456789'
        country_code: DE
        status: FVAL_valid
        reason:
        - VBBN_valid_bban
        - CCTY_consistent_country
        validation_check:
        - code: IBAN_iban_check
          status: IVAL_invalid
          reason:
          - IIBN_invalid_iban
        - code: IBCO_iban_and_country_check
          status: CNPR_could_not_perform
          reason:
          - IIBN_invalid_iban
        - code: IBFI_iban_and_financial_institution_check
          status: CNPR_could_not_perform
          reason:
          - IIBN_invalid_iban
          - MFIN_missing_financial_institution_identifier
        - code: BBCO_bban_and_country_check
          status: FVAL_valid
          reason:
          - VBBN_valid_bban
          - CCTY_consistent_country
        - code: BBFI_bban_and_financial_institution_check
          status: CNPR_could_not_perform
          reason:
          - MFIN_missing_financial_institution_identifier
        - code: DOCO_domestic_bank_specific_account_and_country_check
          status: NOAP_not_applicable
          reason:
          - VBBN_valid_bban
        - code: DOFI_domestic_bank_specific_account_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VBBN_valid_bban
        - code: DOCF_domestic_bank_specific_account_and_country_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VBBN_valid_bban
    AFResUseCase-11:
      summary: Invalid IBAN, Invalid BBAN, Invalid bank specific account format
      value:
        status: IVAL_invalid
        reason:
        - IIBN_invalid_iban
        - IBBN_invalid_bban
        - IDOM_invalid_domestic_bank_specific
        validation_check:
        - code: IBAN_iban_check
          status: IVAL_invalid
          reason:
          - IIBN_invalid_iban
        - code: IBCO_iban_and_country_check
          status: CNPR_could_not_perform
          reason:
          - IIBN_invalid_iban
        - code: IBFI_iban_and_financial_institution_check
          status: CNPR_could_not_perform
          reason:
          - IIBN_invalid_iban
        - code: BBCO_bban_and_country_check
          status: IVAL_invalid
          reason:
          - IBBN_invalid_bban
        - code: BBFI_bban_and_financial_institution_check
          status: CNPR_could_not_perform
          reason:
          - IBBN_invalid_bban
        - code: DOCO_domestic_bank_specific_account_and_country_check
          status: IVAL_invalid
          reason:
          - IDOM_invalid_domestic_bank_specific
        - code: DOFI_domestic_bank_specific_account_and_financial_institution_check
          status: CNPR_could_not_perform
          reason:
          - MFIN_missing_financial_institution_identifier
        - code: DOCF_domestic_bank_specific_account_and_country_and_financial_institution_check
          status: CNPR_could_not_perform
          reason:
          - MFIN_missing_financial_institution_identifier
    AFResUseCase-12:
      summary: Valid BBAN, consistent country, consistent financial institution
      value:
        account_identification:
          other:
            identification: '500105170123456789'
        country_code: DE
        financial_institution_identification:
          bicfi: INGDDEFFXXX
          name: ING-DIBA AG (RETAIL BANKING)
          postal_address:
            post_code: '60486'
            town_name: FRANKFURT AM MAIN
            country: DE
            address_line:
            - THEODOR-HEUSS-ALLEE 2
        status: FVAL_valid
        reason:
        - VBBN_valid_bban
        - CCTY_consistent_country
        - CFIN_consistent_financial_institution_identification
        validation_check:
        - code: IBAN_iban_check
          status: IVAL_invalid
          reason:
          - IIBN_invalid_iban
        - code: IBCO_iban_and_country_check
          status: CNPR_could_not_perform
          reason:
          - IIBN_invalid_iban
        - code: IBFI_iban_and_financial_institution_check
          status: CNPR_could_not_perform
          reason:
          - IIBN_invalid_iban
        - code: BBCO_bban_and_country_check
          status: FVAL_valid
          reason:
          - VBBN_valid_bban
          - CCTY_consistent_country
        - code: BBFI_bban_and_financial_institution_check
          status: FVAL_valid
          reason:
          - CFIN_consistent_financial_institution_identification
        - code: DOCO_domestic_bank_specific_account_and_country_check
          status: NOAP_not_applicable
          reason:
          - VBBN_valid_bban
        - code: DOFI_domestic_bank_specific_account_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VBBN_valid_bban
        - code: DOCF_domestic_bank_specific_account_and_country_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VBBN_valid_bban
    AFResUseCase-13:
      summary: Valid BBAN, consistent country code, inconsistent financial institution
      value:
        account_identification:
          other:
            identification: '500105170123456789'
        country_code: DE
        status: CVAL_valid_with_comments
        reason:
        - VBBN_valid_bban
        - CCTY_consistent_country
        - IFIN_inconsistent_financial_institution_identification
        validation_check:
        - code: IBAN_iban_check
          status: IVAL_invalid
          reason:
          - IIBN_invalid_iban
        - code: IBCO_iban_and_country_check
          status: CNPR_could_not_perform
          reason:
          - IIBN_invalid_iban
        - code: IBFI_iban_and_financial_institution_check
          status: CNPR_could_not_perform
          reason:
          - IIBN_invalid_iban
        - code: BBCO_bban_and_country_check
          status: FVAL_valid
          reason:
          - VBBN_valid_bban
          - CCTY_consistent_country
        - code: BBFI_bban_and_financial_institution_check
          status: IVAL_invalid
          reason:
          - IFIN_inconsistent_financial_institution_identification
        - code: DOCO_domestic_bank_specific_account_and_country_check
          status: NOAP_not_applicable
          reason:
          - VBBN_valid_bban
        - code: DOFI_domestic_bank_specific_account_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VBBN_valid_bban
        - code: DOCF_domestic_bank_specific_account_and_country_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - VBBN_valid_bban
    AFResUseCase-14:
      summary: Valid bank specific account format, consistent country, consistent
        financial institution
      value:
        account_identification:
          other:
            identification: '000000123456'
        country_code: IT
        financial_institution_identification:
          bicfi: BCITITMMXXX
          name: INTESA SANPAOLO SPA
          postal_address:
            post_code: '20121'
            town_name: MILANO
            country: IT
            address_line:
            - PIAZZA DELLA SCALA 6
        status: FVAL_valid
        reason:
        - VDOM_valid_domestic_bank_specific
        - CCTY_consistent_country
        - CFIN_consistent_financial_institution_identification
        validation_check:
        - code: IBAN_iban_check
          status: IVAL_invalid
          reason:
          - IIBN_invalid_iban
        - code: IBCO_iban_and_country_check
          status: CNPR_could_not_perform
          reason:
          - IIBN_invalid_iban
        - code: IBFI_iban_and_financial_institution_check
          status: CNPR_could_not_perform
          reason:
          - IIBN_invalid_iban
        - code: BBCO_bban_and_country_check
          status: IVAL_invalid
          reason:
          - IBBN_invalid_bban
        - code: BBFI_bban_and_financial_institution_check
          status: CNPR_could_not_perform
          reason:
          - IBBN_invalid_bban
        - code: DOCO_domestic_bank_specific_account_and_country_check
          status: NOAP_not_applicable
          reason:
          - ICCH_check_not_applied
        - code: DOFI_domestic_bank_specific_account_and_financial_institution_check
          status: NOAP_not_applicable
          reason:
          - ICCH_check_not_applied
        - code: DOCF_domestic_bank_specific_account_and_country_and_financial_institution_check
          status: FVAL_valid
          reason:
          - VDOM_valid_domestic_bank_specific
          - CCTY_consistent_country
          - CFIN_consistent_financial_institution_identification
    AFErrUseCase-1:
      summary: Bad syntax - Account identification max length exceeded
      value:
        severity: Fatal
        code: CANT
        text: account_identification exceeds maximum length of 34
    AFErrUseCase-2:
      summary: Bad syntax - country code
      value:
        severity: Fatal
        code: CANT
        text: country_code has invalid format
    AFErrUseCase-3:
      summary: Bad syntax - financial institution identifier
      value:
        severity: Fatal
        code: CANT
        text: financial_institution_identification  has invalid format
    AFErrUseCase-4:
      summary: DN check or CRL check failed
      value:
        severity: Transient
        code: SwAP599
        text: Server encountered an unexpected condition and cannot fulfill the request
    AFErrUseCase-5:
      summary: SWIFTREF API call failed
      value:
        severity: Transient
        code: SwAP590
        text: Service is temporary unavailable (header Retry-After indicates how long
          to wait before making a follow-up request)
    FIReqUseCase-1:
      summary: Valid BIC
      value:
        financial_institution_identification: INGDDEFFXXX
    FIReqUseCase-2:
      summary: Valid BIC, consistent country
      value:
        financial_institution_identification: INGDDEFFXXX
        country_code: DE
    FIReqUseCase-3:
      summary: Valid BIC, inconsistent country
      value:
        financial_institution_identification: INGDDEFFXXX
        country_code: BE
    FIReqUseCase-4:
      summary: Invalid BIC, missing country code
      value:
        financial_institution_identification: TXFDDEGFXXX
    FIReqUseCase-5:
      summary: Valid national identifier
      value:
        financial_institution_identification: '127310101'
        country_code: AE
    FIReqUseCase-6:
      summary: Invalid BIC, Unrecognized national identifier
      value:
        financial_institution_identification: '127310101'
        country_code: GB
    FIResUseCase-1:
      summary: Valid BIC
      value:
        country_code: DE
        financial_institution_identification:
          financial_institution_identification:
            bicfi: INGDDEFFXXX
            name: ING-DIBA AG (RETAIL BANKING)
            postal_address:
              post_code: '60486'
              town_name: FRANKFURT AM MAIN
              country: DE
              address_line:
              - THEODOR-HEUSS-ALLEE 2
          office_type: HO
        status: FVAL_valid
        reason:
        - VBIC_valid_bic
    FIResUseCase-2:
      summary: Valid BIC, consistent country
      value:
        country_code: DE
        financial_institution_identification:
          financial_institution_identification:
            bicfi: INGDDEFFXXX
            name: ING-DIBA AG (RETAIL BANKING)
            postal_address:
              post_code: '60486'
              town_name: FRANKFURT AM MAIN
              country: DE
              address_line:
              - THEODOR-HEUSS-ALLEE 2
          office_type: HO
        status: FVAL_valid
        reason:
        - VBIC_valid_bic
        - CCTY_consistent_country
    FIResUseCase-3:
      summary: Valid BIC, inconsistent country
      value:
        country_code: DE
        financial_institution_identification:
          financial_institution_identification:
            bicfi: INGDDEFFXXX
            name: ING-DIBA AG (RETAIL BANKING)
            postal_address:
              post_code: '60486'
              town_name: FRANKFURT AM MAIN
              country: DE
              address_line:
              - THEODOR-HEUSS-ALLEE 2
          office_type: HO
        status: CVAL_valid_with_comments
        reason:
        - VBIC_valid_bic
        - INCT_inconsistent_country
    FIResUseCase-4:
      summary: Invalid BIC, missing country code
      value:
        status: CNPR_could_not_perform
        reason:
        - IBIC_invalid_bic
        - MCTY_missing_country_code
    FIResUseCase-5:
      summary: Valid national identifier
      value:
        country_code: AE
        financial_institution_identification:
          financial_institution_identification:
            clearing_system_member_identification:
              member_identification: '127310101'
            name: National Exchange Co.
            postal_address:
              country: AE
          office_type: DB
        status: FVAL_valid
        reason:
        - VCSM_valid_clearing_system_member_identification
    FIResUseCase-6:
      summary: Invalid BIC, Unrecognized national identifier
      value:
        status: UNRE_unrecognised
        reason:
        - IBIC_invalid_bic
        - UCSM_unrecognized_clearing_system_member_identification
    PCReqUseCase-1:
      summary: Valid purpose code
      value:
        purpose_code: DEPT
        country_code: GB
    PCReqUseCase-2:
      summary: Service could not perform, invalid country code
      value:
        purpose_code: '120056'
        country_code: YY
    PCReqUseCase-3:
      summary: Service not available, no purpose code data available
      value:
        purpose_code: '1230405'
        country_code: DE
    PCReqUseCase-4:
      summary: Unrecognized purpose code
      value:
        purpose_code: '1122'
        country_code: GB
    PCResUseCase-1:
      summary: Valid purpose code
      value:
        status: FVAL_valid
        reason:
        - VPPC_valid_purpose_code
        purpose_code:
          id: DEPT
          description_english: Transaction is related to a payment of deposit.
          name_english: Cash Management > Finance > Depositt
        country_code: GB
    PCResUseCase-2:
      summary: Service could not perform, invalid country code
      value:
        status: CNPR_could_not_perform
        reason:
        - ICTY_invalid_country
    PCResUseCase-3:
      summary: Service not available, no purpose code data available
      value:
        status: NAVL_not_available
        reason:
        - PINP_no_purpose_code_data_available
    PCResUseCase-4:
      summary: Unrecognized purpose code
      value:
        status: UNRE_unrecognised
        reason:
        - UPPC_unrecognized_purpose_code
    PPReqUseCase-1:
      summary: Valid payment purpose information, with comments - Valid purpose  code
        by country ; missing purpose description (optional)
      value:
        purpose_code: COM
        country_code: AE
    PPReqUseCase-2:
      summary: Valid payment purpose information- Valid purpose code by country, valid
        purpose description (mandatory)
      value:
        purpose_code: '318170'
        country_code: TH
        purpose_description: Some description in English
    PPReqUseCase-3:
      summary: Incomplete payment purpose information - Valid purpose  code by country,
        missing purpose description(mandatory)
      value:
        purpose_code: '2012'
        country_code: ID
    PPReqUseCase-4:
      summary: Incomplete payment purpose information -  Valid purpose  code by country
        and currency, missing purpose description (mandatory)
      value:
        purpose_code: '318170'
        country_code: TH
        currency_code: THB
    PPReqUseCase-5:
      summary: Valid payment purpose information  - Valid purpose  code by country
        and clearing system; missing purpose description ( recommended)
      value:
        purpose_code: DLF
        country_code: AE
        clearing_system_identification: AE UAEFTS
        currency_code: AED
    PPReqUseCase-6:
      summary: Valid payment purpose information, with comments - Valid purpose  code
        by country, currency and clearing system;  missing purpose description (recommended)
      value:
        purpose_code: DLF
        country_code: AE
        clearing_system_identification: AE UAESWITCH
        currency_code: AED
    PPReqUseCase-7:
      summary: Valid payment purpose information, with comments - Unrecognized purpose
        code by country (optional); missing purpose description (recommended)
      value:
        purpose_code: ANNB
        country_code: US
    PPReqUseCase-8:
      summary: No purpose code to validate, retrieve the purpose codes available in
        the SWIFT repository
      value:
        country_code: US
    PPReqUseCase-9:
      summary: Service could not perform, invalid country code
      value:
        purpose_code: INV
        country_code: YY
        purpose_description: Some text.
    PPReqUseCase-10:
      summary: Service not available, no purpose data available in SWIFT repository
      value:
        purpose_code: INV
        country_code: IT
        purpose_description: Some text.
    PPResUseCase-1:
      summary: Valid payment purpose information, with comments - Valid purpose code
        by country; missing purpose description (optional)
      value:
        status: CVAL_valid_with_comments
        reason:
        - VPPC_valid_purpose_code
        - MPPD_missing_purpose_description
        validation_check:
        - code: PCCT_purpose_and_country
          description: Validation of the instructed payment purpose information against
            the country specific requirements.
          status: CVAL_valid_with_comments
          reason:
          - VPPC_valid_purpose_code
          - MPPD_missing_purpose_description
          severity: WARN_warning
          validated_payment_information:
          - PPCO_payment_purpose_code
        - code: PCCC_purpose_and_country_and_currency
          description: Validation of the instructed payment purpose information against
            the country specific requirements for the instructed country and currency.
          status: CNPR_could_not_perform
          reason:
          - MCCC_missing_currency_code
          severity: WARN_warning
        - code: PCCP_purpose_and_country_and_currency_and_clearing_system
          description: Validation of the instructed payment purpose information against
            the country specific requirements for the instructed country and clearing
            system.
          status: CNPR_could_not_perform
          reason:
          - MCSI_missing_clearing_system_identifier
          - MCCC_missing_currency_code
          severity: WARN_warning
        - code: PCCS_purpose_and_country_and_clearing_system
          description: Validation of the instructed payment purpose information against
            the country specific requirements for the instructed country , currency
            and clearing system.
          status: CNPR_could_not_perform
          reason:
          - MCSI_missing_clearing_system_identifier
          severity: WARN_warning
        purpose_code:
          id: COM
          name_english: Commission > Cross Border & Domestic >
        country_code: AE
    PPResUseCase-2:
      summary: Valid payment purpose information - Valid purpose code by country, valid
        purpose description (mandatory)
      value:
        status: FVAL_valid
        reason:
        - VPPC_valid_purpose_code
        - VPPD_valid_purpose_description
        validation_check:
        - code: PCCT_purpose_and_country
          description: Validation of the instructed payment purpose information against
            the country specific requirements.
          status: FVAL_valid
          reason:
          - VPPC_valid_purpose_code
          - VPPD_valid_purpose_description
          severity: INFO_info
          validated_payment_information:
          - PPCO_payment_purpose_code
          - PDCO_payment_purpose_description
        - code: PCCC_purpose_and_country_and_currency
          description: Validation of the instructed payment purpose information against
            the country specific requirements for the instructed country and currency
          status: CNPR_could_not_perform
          reason:
          - MCCC_missing_currency_code
          severity: INFO_info
        - code: PCCP_purpose_and_country_and_currency_and_clearing_system
          description: Validation of the instructed payment purpose information against
            the country specific requirements for the instructed country , currency
            and clearing system
          status: CNPR_could_not_perform
          reason:
          - MCCC_missing_currency_code
          - MCSI_missing_clearing_system_identifier
          severity: INFO_info
        - code: PCCS_purpose_and_country_and_clearing_system
          description: Validation of the instructed payment purpose information against
            the country specific requirements for the instructed country and clearing
            system
          status: CNPR_could_not_perform
          reason:
          - MCSI_missing_clearing_system_identifier
          severity: INFO_info
        purpose_code:
          id: '318170'
          description_english: In the case of an overseas bank withdraws Thai baht banknotes from the Thai baht account of a person who lives outside of their own country To send or take out of the country
          name_english: Withdraw > TH Banknotes > Abroad > Thai baht banknotes and deposit accounts > Withdraw Thai baht banknote to take out of the country
          name_local_language: อื่น ๆ > ธนบัตรเงินบาทและบัญชีเงินฝาก > ถอนธนบัตรเงินบาทเพื่อนำออกนอกประเทศ
          description_local_language: กรณีธนาคารที่ตั้งอยู่ในต่างประเทศถอนธนบัตรเงินบาทจากบัญชีเงินบาทของบุคคลที่มีถิ่นที่อยู่นอกประเทศของตนเอง เพื่อส่งหรือนำออกนอกประเทศ
        country_code: TH
        purpose_description: Some description in Russian
    PPResUseCase-3:
      summary: Incomplete payment purpose information - Valid purpose code by country,
        missing purpose description (mandatory)
      value:
        status: IVAL_invalid
        reason:
        - VPPC_valid_purpose_code
        - MPPD_missing_purpose_description
        validation_check:
        - code: PCCT_purpose_and_country
          description: Validation of the instructed payment purpose information against
            the country specific requirements for the instructed country.
          status: IVAL_invalid
          reason:
          - VPPC_valid_purpose_code
          - MPPD_missing_purpose_description
          severity: ERRO_error
          validated_payment_information:
          - PPCO_payment_purpose_code
        - code: PCCC_purpose_and_country_and_currency
          description: Validation of the instructed payment purpose information against
            the country specific requirements for the instructed country and currency.
          status: CNPR_could_not_perform
          reason:
          - MCCC_missing_currency_code
          severity: ERRO_error
        - code: PCCP_purpose_and_country_and_currency_and_clearing_system
          description: Validation of the instructed payment purpose information against
            the country specific requirements for the instructed country , currency
            and clearing system.
          status: CNPR_could_not_perform
          reason:
          - MCCC_missing_currency_code
          - MCSI_missing_clearing_system_identifier
          severity: ERRO_error
        - code: PCCS_purpose_and_country_and_clearing_system
          description: Validation of the instructed payment purpose information against
            the country specific requirements for the instructed country and clearing
            system.
          status: CNPR_could_not_perform
          reason:
          - MCSI_missing_clearing_system_identifier
          severity: ERRO_error
        purpose_code:
          id: '2012'
          description_english: Shipment of merchandise into Indonesia
          name_english: MERCHANDISE TRANSACTIONS > Exports/Imports > Imports, f.o.b.
            >
        country_code: ID
    PPResUseCase-4:
      summary: Incomplete payment purpose information -  Valid purpose  code by country
        and currency, missing purpose description (mandatory)
      value:
        status: IVAL_invalid
        reason:
        - VPPC_valid_purpose_code
        - MPPD_missing_purpose_description
        validation_check:
        - code: PCCT_purpose_and_country
          description: Validation of the instructed payment purpose information against
            the country specific requirements for the instructed country.
          status: NOAP_not_applicable
          reason:
          - ICCH_check_not_applied
          severity: ERRO_error
        - code: PCCC_purpose_and_country_and_currency
          description: Validation of the instructed payment purpose information against
            the country specific requirements for the instructed country and currency.
          status: IVAL_invalid
          reason:
          - VPPC_valid_purpose_code
          - MPPD_missing_purpose_description
          severity: ERRO_error
          validated_payment_information:
          - PPCO_payment_purpose_code
        - code: PCCP_purpose_and_country_and_currency_and_clearing_system
          description: Validation of the instructed payment purpose information against
            the country specific requirements for the instructed country , currency
            and clearing system.
          status: CNPR_could_not_perform
          reason:
          - MCSI_missing_clearing_system_identifier
          severity: ERRO_error
        - code: PCCS_purpose_and_country_and_clearing_system
          description: Validation of the instructed payment purpose information against
            the country specific requirements for the instructed country and clearing
            system.
          status: CNPR_could_not_perform
          reason:
          - MCSI_missing_clearing_system_identifier
          severity: ERRO_error
        purpose_code:
          id: '318170'
          description_english: In the case of an overseas bank withdraws Thai baht banknotes from the Thai baht account of a person who lives outside of their own country To send or take out of the country
          name_english: Withdraw > TH Banknotes > Abroad > Thai baht banknotes and deposit accounts > Withdraw Thai baht banknote to take out of the country
          name_local_language: อื่น ๆ > ธนบัตรเงินบาทและบัญชีเงินฝาก > ถอนธนบัตรเงินบาทเพื่อนำออกนอกประเทศ
          description_local_language: กรณีธนาคารที่ตั้งอยู่ในต่างประเทศถอนธนบัตรเงินบาทจากบัญชีเงินบาทของบุคคลที่มีถิ่นที่อยู่นอกประเทศของตนเอง เพื่อส่งหรือนำออกนอกประเทศ
        country_code: TH
        currency_code: THB
    PPResUseCase-5:
      summary: Valid payment purpose information - Valid purpose code by country
        and clearing system; missing purpose description (recommended)
      value:
        status: CVAL_valid_with_comments
        reason:
        - VPPC_valid_purpose_code
        - MPPD_missing_purpose_description
        validation_check:
        - code: PCCT_purpose_and_country
          description: Validation of the instructed payment purpose information against
            the country specific requirements.
          status: NOAP_not_applicable
          reason:
          - ICCH_check_not_applied
          severity: WARN_warning
        - code: PCCC_purpose_and_country_and_currency
          description: Validation of the instructed payment purpose information against
            the country specific requirements for the instructed country and currency.
          status: NOAP_not_applicable
          reason:
          - ICCH_check_not_applied
          severity: WARN_warning
        - code: PCCP_purpose_and_country_and_currency_and_clearing_system
          description: Validation of the instructed payment purpose information against
            the country specific requirements for the instructed country , currency
            and clearing system.
          status: CVAL_valid_with_comments
          reason:
          - VPPC_valid_purpose_code
          - MPPD_missing_purpose_description
          severity: WARN_warning
          validated_payment_information:
          - PPCO_payment_purpose_code
        - code: PCCS_purpose_and_country_and_clearing_system
          description: Validation of the instructed payment purpose information against
            the country specific requirements for the instructed country and clearing
            system.
          status: NOAP_not_applicable
          reason:
          - ICCH_check_not_applied
          severity: WARN_warning
        purpose_code:
          id: DLF
          name_english: Debt instruments intragroup loans, foreign deposits >
        country_code: AE
        currency_code: AED
    PPResUseCase-6:
      summary: Valid payment purpose information, with comments - Valid purpose code
        by country, currency and clearing system;  missing purpose description (recommended)
      value:
        status: CVAL_valid_with_comments
        reason:
        - VPPC_valid_purpose_code
        - MPPD_missing_purpose_description
        validation_check:
        - code: PCCT_purpose_and_country
          description: Validation of the instructed payment purpose information against
            the country specific requirements.
          status: NOAP_not_applicable
          reason:
          - ICCH_check_not_applied
          severity: WARN_warning
        - code: PCCC_purpose_and_country_and_currency
          description: Validation of the instructed payment purpose information against
            the country specific requirements for the instructed country and currency.
          status: NOAP_not_applicable
          reason:
          - ICCH_check_not_applied
          severity: WARN_warning
        - code: PCCP_purpose_and_country_and_currency_and_clearing_system
          description: Validation of the instructed payment purpose information against
            the country specific requirements for the instructed country , currency
            and clearing system.
          status: CVAL_valid_with_comments
          reason:
          - VPPC_valid_purpose_code
          - MPPD_missing_purpose_description
          severity: WARN_warning
          validated_payment_information:
          - PPCO_payment_purpose_code
        - code: PCCS_purpose_and_country_and_clearing_system
          description: Validation of the instructed payment purpose information against
            the country specific requirements for the instructed country and clearing
            system.
          status: NOAP_not_applicable
          reason:
          - ICCH_check_not_applied
          severity: WARN_warning
        purpose_code:
          id: DLF
          name_english: Debt instruments intragroup loans, foreign deposits >
        country_code: AE
        currency_code: AED
    PPResUseCase-7:
      summary: Valid payment purpose information, with comments - Unrecognized purpose
        code by country (optional); missing purpose description (recommended)
      value:
        status: CVAL_valid_with_comments
        reason:
        - PINP_no_purpose_code_data_available
        - MPPD_missing_purpose_description
        validation_check:
        - code: PCCT_purpose_and_country
          description: Validation of the instructed payment purpose information against
            the country specific requirements.
          status: CVAL_valid_with_comments
          reason:
          - UPPC_unrecognized_purpose_code
          - MPPD_missing_purpose_description
          severity: WARN_warning
          validated_payment_information:
          - PPCO_payment_purpose_code
        - code: PCCC_purpose_and_country_and_currency
          description: Validation of the instructed payment purpose information against
            the country specific requirements for the instructed country and currency
          status: CNPR_could_not_perform
          reason:
          - MCCC_missing_currency_code
          severity: WARN_warning
        - code: PCCP_purpose_and_country_and_currency_and_clearing_system
          description: Validation of the instructed payment purpose information against
            the country specific requirements for the instructed country , currency
            and clearing system
          status: CNPR_could_not_perform
          reason:
          - MCCC_missing_currency_code
          - MCSI_missing_clearing_system_identifier
          severity: WARN_warning
        - code: PCCS_purpose_and_country_and_clearing_system
          description: Validation of the instructed payment purpose information against
            the country specific requirements for the instructed country and clearing
            system
          status: CNPR_could_not_perform
          reason:
          - MCSI_missing_clearing_system_identifier
          severity: WARN_warning
        available_purpose_code:
        - id: ANN
          name_english: Annuity >
        - id: BUS
          name_english: Business/Commercial >
        - id: DEP
          name_english: Deposit>
        - id: LOA
          name_english: Loan>
        - id: MIS
          name_english: Miscellaneous >
        - id: MOR
          name_english: Mortgage >
        - id: PEN
          name_english: Pension >
        - id: REM
          name_english: Remittance >
        - id: RLS
          name_english: Rent/Lease >
        - id: SAL
          name_english: Salary/Payroll >
        - id: TAX
          name_english: Tax >
        country_code: US
    PPResUseCase-8:
      summary: No purpose code to validate, retrieve the purpose codes available in
        the SWIFT repository
      value:
        status: CNPR_could_not_perform
        reason:
        - ICCH_check_not_applied
        - MPPC_missing_payment_purpose_code
        - MPPD_missing_purpose_description
        available_purpose_code:
        - id: ANN
          name_english: Annuity
        - id: BUS
          name_english: Business/Commercial
        - id: DEP
          name_english: Deposit
        - id: LOA
          name_english: Loan
        - id: MIS
          name_english: Miscellaneous
        - id: MOR
          name_english: Mortgage
        - id: PEN
          name_english: Pension
        - id: REM
          name_english: Remittance
        - id: RLS
          name_english: Rent/Lease
        - id: SAL
          name_english: Salary/Payroll
        - id: TAX
          name_english: Tax
        country_code: US
    PPResUseCase-9:
      summary: Service could not perform, invalid country code
      value:
        status: CNPR_could_not_perform
        reason:
        - ICTY_invalid_country
        validation_check:
        - code: PCCT_purpose_and_country
          description: Validation of the instructed payment purpose information against
            the country specific requirements.
          status: CNPR_could_not_perform
          reason:
          - ICCH_check_not_applied
          severity: WARN_warning
          validated_payment_information:
          - PPCO_payment_purpose_code
          - PDCO_payment_purpose_description
        - code: PCCC_purpose_and_country_and_currency
          description: Validation of the instructed payment purpose information against the country specific requirements for the instructed country and currency.
          status: CNPR_could_not_perform
          reason:
          - MCCC_missing_currency_code
          severity: WARN_warning
        - code: PCCP_purpose_and_country_and_currency_and_clearing_system
          description: Validation of the instructed payment purpose information against the country specific requirements for the instructed country and clearing system.
          status: CNPR_could_not_perform
          reason:
          - MCSI_missing_clearing_system_identifier
          - MCCC_missing_currency_code
          severity: WARN_warning
        - code: PCCS_purpose_and_country_and_clearing_system
          description: Validation of the instructed payment purpose information against the country specific requirements for the instructed country , currency and clearing system.
          status: CNPR_could_not_perform
          reason:
          - MCSI_missing_clearing_system_identifier
          severity: WARN_warning
    PPResUseCase-10:
      summary: Service not available, no purpose data available in SWIFT repository
      value:
        status: NAVL_not_available
        reason:
        - PINP_no_purpose_code_data_available
        - VPPD_valid_purpose_description
        validation_check:
        - code: PCCT_purpose_and_country
          description: Validation of the instructed payment purpose information against
            the country specific requirements.
          status: NAVL_not_available
          reason:
          - PINP_no_purpose_code_data_available
          - VPPD_valid_purpose_description
          severity: ERRO_error
          validated_payment_information:
          - PPCO_payment_purpose_code
          - PDCO_payment_purpose_description
        - code: PCCC_purpose_and_country_and_currency
          description: Validation of the instructed payment purpose information against the country specific requirements for the instructed country and currency.
          status: CNPR_could_not_perform
          reason:
          - MCCC_missing_currency_code
          severity: ERRO_error
        - code: PCCP_purpose_and_country_and_currency_and_clearing_system
          description: Validation of the instructed payment purpose information against the country specific requirements for the instructed country and clearing system.
          status: CNPR_could_not_perform
          reason:
          - MCSI_missing_clearing_system_identifier
          - MCCC_missing_currency_code
          severity: ERRO_error
        - code: PCCS_purpose_and_country_and_clearing_system
          description: Validation of the instructed payment purpose information against the country specific requirements for the instructed country , currency and clearing system.
          status: CNPR_could_not_perform
          reason:
          - MCSI_missing_clearing_system_identifier
          severity: ERRO_error
    CPReqUseCase-1:
      summary: Valid category purpose
      value:
        category_purpose_code: GDSV
        country_code: SG
    CPReqUseCase-2:
      summary: Valid category purpose
      value:
        category_purpose_code: CASH
        country_code: EG
    CPReqUseCase-3:
      summary: Service could not perform, invalid country code
      value:
        category_purpose_code: VO130405
        country_code: YY
    CPReqUseCase-4:
      summary: Service not available, no category purpose data available
      value:
        category_purpose_code: RRCTV
        country_code: DE
    CPResUseCase-1:
      summary: Valid category purpose
      value:
        status: FVAL_valid
        reason:
        - VPCP_valid_category_purpose
        category_purpose_code:
          id: GDSV
          description_english: Transaction is related to purchase and sale of goods and services.
          name_english: Commercial > Purchase > Sale Of Goods And Services
        country_code: SG
    CPResUseCase-2:
      summary: Valid category purpose
      value:
        status: FVAL_valid
        reason:
        - VPCP_valid_category_purpose
        category_purpose_code:
          id: CASH
          name_english: Remittance or any other general Payment
        country_code: EG
    CPResUseCase-3:
      summary: Service could not perform, invalid country code
      value:
        status: CNPR_could_not_perform
        reason:
        - ICTY_invalid_country
    CPResUseCase-4:
      summary: Service not available, no category purpose data available
      value:
        status: NAVL_not_available
        reason:
        - CINP_no_category_purpose_data_available
    BAVReqUseCase-1:
      summary: Beneficiary Account Verification request
      value:
        correlation_identifier: '112211221122'
        context: BENR
        uetr: 97ed4827-7b6f-4491-a06f-b548d5a7512d
        creditor_account: '7892368367'
        creditor_name: DEF Electronics
        creditor_address:
          address_type:
            code: ADDR
          department: Head Office
          sub_department: Retail Department
          street_name: 1 Park Avenue
          building_name: Empire State Building
          floor: '1'
          post_code: '11232'
          town_name: New York City
          country_sub_division: New York
          country: US
        creditor_organisation_identification:
          other:
          - identification: '887766'
            scheme_name:
              code: TIN
            issuer: US IRS
        creditor_agent:
          bicfi: AAAAUS2L
        creditor_agent_branch_identification: NY8877888
    DC_1.1.1_Account_Number_Matches_And_Name_Matching_Not_Applicable:
      description: |
        A payment transaction to this account number with this creditor name will succeed. The account exists with the creditor agent and can receive funds. The jurisdiction and the market practices in use do not require the creditor agent to check whether the creditor name matches the account holder name. The creditor agent processes the incoming payment without checking that the creditor name corresponds to the account holder name.
      value:
        correlation_identifier: DC-1.1.1
        response:
          account_validation_status: PASS
          creditor_account_match: MTCH
          creditor_name_match: NOAP
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          validation_source: ACSV
    DC_1.1.2_Account_Number_Matches_And_Name_Matches:
      description: |
        A payment transaction to this account number with this creditor name will succeed. The account exists with the creditor agent and can receive funds. The name provided matches the account holder name.
      value:
        correlation_identifier: DC-1.1.2
        response:
          account_validation_status: PASS
          creditor_account_match: MTCH
          creditor_name_match: MTCH
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          validation_source: ACSV
    DC_1.1.3_Account_Number_Matches_And_Name_Partially_Matches:
      description: |
        A payment transaction to this account number with this creditor name will succeed. The account exists with the creditor agent and can receive funds. The account holder matches closely the name provided.
      value:
        correlation_identifier: DC-1.1.3
        response:
          account_validation_status: PASS
          creditor_account_match: MTCH
          creditor_name_match: MBAM
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          validation_source: ACSV
    DC_1.1.4_Account_Number_Matches_But_Name_Does_Not_Match:
      description: |
        A payment transaction to this account number with this creditor name will succeed. The account exists with the creditor agent and can receive funds. The account holder does not match the name provided; however creditor agent will not verify the creditor name when processing the payment.
      value:
        correlation_identifier: DC-1.1.4
        response:
          account_validation_status: PASS
          creditor_account_match: MTCH
          creditor_name_match: NMTC
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          validation_source: ACSV
    DC_1.2.1_Account_Number_Matches_And_Name_Not_Checked_But_Will_Be_Checked_At_Processing_Time:
      description: |
        A payment transaction to this account number with this creditor name may succeed. The account exists with the creditor agent and is open. Some additional checks, for instance the name check, will be performed at transaction time. Those verifications might still result in the payment not being processed STP. The creditor name was not checked. However, name validation will apply to a payment transaction sent to this account number.
      value:
        correlation_identifier: DC-1.2.1
        response:
          account_validation_status: INCO
          creditor_account_match: MTCH
          creditor_name_match: NOTC
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          validation_source: ACSV
    DC_1.2.2_Account_Number_Matches_And_Name_Partially_Matches:
      description: |
        A payment transaction to this account number with this creditor name may succeed. The account exists with the creditor agent and is open. Some additional checks, for instance the name check, will be performed at transaction time. Those verifications might still result in the payment not being processed STP. The account holder matches closely the name provided.
      value:
        correlation_identifier: DC-1.2.2
        response:
          account_validation_status: INCO
          creditor_account_match: MTCH
          creditor_name_match: MBAM
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          validation_source: ACSV
    DC_1.2.3_Account_Number_Matches_But_Name_Does_Not_Match:
      description: |
        A payment transaction to this account number with this creditor name may succeed. The account exists with the creditor agent and is open. Some additional checks, for instance the name check, will be performed at transaction time. Those verifications might still result in the payment not being processed STP. The account holder does not match the name provided.
      value:
        correlation_identifier: DC-1.2.3
        response:
          account_validation_status: INCO
          creditor_account_match: MTCH
          creditor_name_match: NMTC
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          validation_source: ACSV
    DC_1.3_Account_Type_Is_Out_Of_Scope_Of_The_Implementation_OR_Cannot_Be_Serviced:
      description: |
        A payment transaction to this account number with this creditor name may succeed. The account probably exists with the creditor agent but it was not verified. Some data providers may not perform account verification for all accounts (for example, retail accounts may not be in scope of the account verification) or may decide to not verify the account. The creditor name validation is not applicable.
      value:
        correlation_identifier: DC-1.3
        response:
          account_validation_status: INCO
          creditor_account_match: NMTC
          creditor_name_match: NOAP
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          validation_source: ACSV
    DC_1.4.1_Account_Number_Can_Be_Reallocated_And_Name_Matching_Not_Applicable:
      description: |
        A payment transaction to this account number may succeed. Either the account does not exist, or it is not of the right type, or it is blocked or closed. However, there is a high probability that the payment can be reallocated by creditor agent to an alternative appropriate account from the same account holder. The creditor name validation is not applicable.
      value:
        correlation_identifier: DC-1.4.1
        response:
          account_validation_status: WARN
          creditor_account_match: NMTC
          creditor_name_match: NOAP
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          validation_source: ACSV
    DC_1.4.2_Account_Number_Can_Be_Reallocated_And_Name_Not_Checked_But_Will_Be_Checked_At_Processing_Time:
      description: |
        A payment transaction to this account number may succeed. Either the account does not exist, or it is not of the right type, or it is blocked or closed. However, there is a high probability that the payment can be reallocated by creditor agent to an alternative appropriate account from the same account holder. The creditor name was not checked. However, name validation will apply to a payment transaction sent to this account number.
      value:
        correlation_identifier: DC-1.4.2
        response:
          account_validation_status: WARN
          creditor_account_match: NMTC
          creditor_name_match: NOTC
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          validation_source: ACSV
    DC_1.4.3_Account_Number_Can_Be_Reallocated_And_Name_Matches:
      description: |
        A payment transaction to this account number may succeed. Either the account does not exist, or it is not of the right type, or it is blocked or closed. However, there is a high probability that the payment can be reallocated by creditor agent to an alternative appropriate account from the same account holder. The name provided matches the account holder name.
      value:
        correlation_identifier: DC-1.4.3
        response:
          account_validation_status: WARN
          creditor_account_match: NMTC
          creditor_name_match: MTCH
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          validation_source: ACSV
    DC_1.4.4_Account_Number_Can_Be_Reallocated_And_Name_Partially_Matches:
      description: |
        A payment transaction to this account number may succeed. Either the account does not exist, or it is not of the right type, or it is blocked or closed. However, there is a high probability that the payment can be reallocated by creditor agent to an alternative appropriate account from the same account holder. The account holder matches closely the name provided.
      value:
        correlation_identifier: DC-1.4.4
        response:
          account_validation_status: WARN
          creditor_account_match: NMTC
          creditor_name_match: MBAM
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          validation_source: ACSV
    DC_1.4.5_Account_Number_Can_Be_Reallocated_But_Name_Does_Not_Match:
      description: |
        A payment transaction to this account number may succeed. Either the account does not exist, or it is not of the right type, or it is blocked or closed. However, there is a high probability that the payment can be reallocated by creditor agent to an alternative appropriate account from the same account holder. The name provided matches the account holder name. The account holder does not match the name provided.
      value:
        correlation_identifier: DC-1.4.5
        response:
          account_validation_status: WARN
          creditor_account_match: NMTC
          creditor_name_match: NMTC
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          validation_source: ACSV
    DC_2.1.1_Account_Number_Is_Not_Valid_And_Name_Matching_Not_Applicable:
      description: |
        A payment transaction to this account number will fail. There is a problem with the account due to which it cannot receive funds. Either the account does not exist, or it is not of the right type (for example, mortgage account), or it is blocked or closed. The creditor name validation is not applicable.
      value:
        correlation_identifier: DC-2.1.1
        response:
          account_validation_status: FAIL
          creditor_account_match: NMTC
          creditor_name_match: NOAP
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          validation_source: ACSV
    DC_2.1.2_Account_Number_Is_Not_Valid_And_Name_Not_Checked_But_Will_Be_Checked_At_Processing_Time:
      description: |
        A payment transaction to this account number will fail. There is a problem with the account due to which it cannot receive funds. Either the account does not exist, or it is not of the right type (for example, mortgage account), or it is blocked or closed. The creditor name was not checked. However, name validation will apply to a payment transaction sent to this account number.
      value:
        correlation_identifier: DC-2.1.2
        response:
          account_validation_status: FAIL
          creditor_account_match: NMTC
          creditor_name_match: NOTC
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          validation_source: ACSV
    DC_2.2.1_Account_Number_Matches_And_Name_Partially_Matches:
      description: |
        A payment transaction to this account number and name will fail. There is no problem with the account, but with creditor name. The jurisdiction, the market practices in use or internal bank rules require the creditor agent to check whether the creditor name matches the account holder name. The creditor agent performed the check, and the names do not correspond. The name provided partially matches the account holder name. As exact name match is required for the creditor agent, the payment will fail or not be processed STP.
      value:
        correlation_identifier: DC-2.2.1
        response:
          account_validation_status: FAIL
          creditor_account_match: MTCH
          creditor_name_match: MBAM
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          validation_source: ACSV
    DC_2.2.2_Account_Number_Matches_But_Names_Does_Not_Match:
      description: |
        A payment transaction to this account number and name will fail. There is no problem with the account, but with creditor name. The jurisdiction, the market practices in use or internal bank rules require the creditor agent to check whether the creditor name matches the account holder name. The creditor agent performed the check, and the names do not correspond. The name provided does not match the account holder name. As name match is required for the creditor agent, the payment will fail or not be processed STP.
      value:
        correlation_identifier: DC-2.2.2
        response:
          account_validation_status: FAIL
          creditor_account_match: MTCH
          creditor_name_match: NMTC
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          validation_source: ACSV
    DC_3.1_Account_Found_For_Transactions_That_Did_Not_Fail_Due_To_Invalid_Account_Number:
      description: |
        A payment transaction to this account number with this creditor name may succeed. The account has been found in the transaction history as a debtor or as a creditor account. If it was as a creditor account, past transactions with this account were successful or did not fail due to invalid beneficiary account details. In the API response, incomplete (INCO) means that the account number only was validated and other validations (for example, the account holder name) were not performed by CBAV and can be performed by the creditor agent when processing the transaction.
      value:
        correlation_identifier: DC-3.1
        response:
          account_validation_status: INCO
          creditor_account_match: MTCH
          creditor_name_match: NOAP
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          validation_source: HIST
    DC_3.2_Account_Not_Found:
      description: |
        A payment transaction to this account number with this creditor name may succeed even though the account has not been found in transaction history for various reasons like a new account or it was excluded from transaction history.
      value:
        correlation_identifier: DC-3.2
        response:
          account_validation_status: INCO
          creditor_account_match: NMTC
          creditor_name_match: NOAP
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          validation_source: HIST
    DC_3.3_Account_Found_For_Transactions_That_Fail_Due_To_Invalid_Account_Number:
      description: |
        A payment transaction to this account number with this creditor name may fail. The account has been found in the transaction history and all past transactions with this account used as beneficiary account failed due to invalid beneficiary account details. Based on such response, the requesting bank may verify creditor account number before sending the transaction for execution.
      value:
        correlation_identifier: DC-3.3
        response:
          account_validation_status: WARN
          creditor_account_match: MTCH
          creditor_name_match: NOAP
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          validation_source: HIST
    DC_4.1_Account_Matches_With_Correlation_Id:
      description: |-
        If the data consumer sets the correlation ID in the API request,  the same correlation ID must be returned in the API response.
      value:
        correlation_identifier: 2bcb053d-3c8b-43f0-8c76-e676407378c4
        response:
          account_validation_status: PASS
          creditor_account_match: MTCH
          creditor_name_match: MTCH
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          validation_source: ACSV
    DC_5.1_Account_Matches_And_Disclose_Creditor_Name:
      description: |
        Data providers can provide the account holder name in the API response to the data consumer. Most data providers said they might provide the account holder name in case of partial match, but they can provide in any case. Data providers can send initials, full name, or a combination of initial and full name (for example, J D or Jane D or J Doe or Jane Doe).
      value:
        correlation_identifier: DC-5.1
        response:
          account_validation_status: PASS
          creditor_account_match: MTCH
          creditor_name_match: NOAP
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          creditor_name: DEF Electronics
          validation_source: ACSV
    DC_5.2_Account_Matches_And_Disclose_Creditor_Account:
      description: |
        Disclose creditor account. Data providers can provide an account in the API response to the data consumer. Some data providers can identify that the account is not in the expected account format and choose to return the account in the correct account format. For example, a data consumer sending a BBAN account (00240240 C012 9986 5) to a Switzerland data provider could receive in the API response the same account in the IBAN format (CH250024 0240 C012 9986 5).
      value:
        response:
          account_validation_status: PASS
          creditor_account_match: MTCH
          creditor_name_match: NOAP
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          creditor_account: CH2500240240C01299865
          validation_source: ACSV
    DC_5.3_Account_Matches_And_Disclose_Creditor_Account_Type:
      description: |
        Data providers can provide the account type in the API response to the data consumer. The account type has 2 values: PRIV when the account is registered for private usage and BUSI when account is registered for business usage. Some data providers can identify the type and choose to return it in the API response.
      value:
        response:
          account_validation_status: PASS
          creditor_account_match: MTCH
          creditor_name_match: NOAP
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          creditor_account_type: BUSI
          validation_source: ACSV
    DC_5.4_Account_Matches_And_Disclose_Creditor_Account_Address:
      description: |
        Data providers can provide the account holder address in the API response to the data consumer. They can choose to provide the address either as unstructured (address_line) or structured (the rest of the creditor_address elements). Swift recommends data providers to not disclose the address at this stage as the address matching is not in scope.
      value:
        response:
          account_validation_status: PASS
          creditor_account_match: MTCH
          creditor_name_match: NOAP
          creditor_address_match: NOAP
          creditor_organisation_identification_match: NOAP
          creditor_address:
            address_type:
              code: ADDR
            department: Head Office
            sub_department: Retail Department
            street_name: 1 Park Avenue
            building_name: Empire State Building
            floor: '1'
            post_code: '11232'
            town_name: New York City
            country_sub_division: New York
            country: US
          validation_source: ACSV
    AMReqUseCase-1:
      summary: Valid amount format (decimal places) for transfers in West African
        CFA francs.
      value:
        amount: '6545'
        currency_code: XOF
    AMReqUseCase-2:
      summary: Valid amount for transfers in Bahraini Dinar through payment market
        infrastructure:BH Fawateer.
      value:
        amount: 3500,345
        currency_code: BHD
        clearing_system_identification: BH FAWATEER
    AMReqUseCase-3:
      summary: Valid amount, with comments, for transfers in Guinean franc,through payment
        market infrastructure:SIT-Guinee.
      value:
        amount: '10000000.98'
        currency_code: GNF
        clearing_system_identification: GN SIT
    AMReqUseCase-4:
      summary: Amount format (number of decimals) different from the standard currency decimals advised for transfers in Rial Omani.
      value:
        amount: '21000.3459'
        currency_code: OMR
    AMReqUseCase-5:
      summary: Invalid amount for transfers in Barbados dollar, through payment market infrastructure:Barbados Automated Clearing House.
      value:
        amount: '160000.3459'
        currency_code: BBD
        clearing_system_identification: BB BACHSI
    AMResUseCase-1:
      summary: Valid amount format (number of decimals) for transfers in West African
        CFA francs.
      value:
        status: FVAL_valid
        reason:
        - DBCD_amount_decimals_match_currency_decimals
        amount:
          currency: XOF
          amount: '6545'
    AMResUseCase-2:
      summary: Valid amount for transfers in Bahraini Dinar through payment market
        infrastructure:BH Fawateer.
      value:
        status: FVAL_valid
        reason:
        - DBCD_amount_decimals_match_currency_decimals
        - AWPL_amount_within_pmi_limits
        amount:
          currency: BHD
          amount: '3500.345'
    AMResUseCase-3:
      summary: Valid amount, with comments, for transfers in Guinean franc,through payment
        market infrastructure:SIT-Guinee.
      value:
        status: CVAL_valid_with_comments
        reason:
        - DACD_amount_decimals_do_not_match_currency_decimals
        - AWPL_amount_within_pmi_limits
        amount:
          currency: GNF
          amount: '10000000.98'
    AMResUseCase-4:
      summary: Amount format (number of decimals) different from the standard currency
        decimals advised for transfers in Rial Omani.
      value:
        status: CVAL_valid_with_comments
        reason:
        - DACD_amount_decimals_do_not_match_currency_decimals
    AMResUseCase-5:
      summary: 'Invalid amount for transfers in Barbados dollar, through payment market
        infrastructure: Barbados Automated Clearing House.'
      value:
        status: IVAL_invalid
        reason:
        - DACD_amount_decimals_do_not_match_currency_decimals
        - AALP_amount_above_pmi_limit_per_payment
    SWGoRequest1:
      value:
        requestor_agent:
          bicfi: CCLABEBB
        creditor_agent:
          bicfi: BANKUS33
          clearing_system_member_identification:
            clearing_system_identification:
              code: USABA
            member_identification: '122000002'
        amount:
          value: '5000'
          currency: EUR
        route_sorting:
          sorting_criteria: cut-off-time
          sorting_order: ASC
    SWGoResponseScenario1:
      value:
        status: FVAL
        threshold:
          validation_check: FVAL
          amount:
            value: '10000'
            currency: EUR
        routes:
        - servicing_agent:
            bicfi: CCLABEBB
          channel:
          - type: FPMI
            id: TGT
            cut_off_time: '2022-05-14T15:30:00Z'
            optimum_cut_off_time: '2022-05-14T10:30:00Z'
          estimated_time_to_creditor_minutes:
            minimum: '1'
            average: '10'
            maximum: '150'
          minimum_number_of_agents_involved: '3'
    SWGoResponseScenario2:
      value:
        status: FVAL
        threshold:
          validation_check: FVAL
          amount:
            value: '10000'
            currency: EUR
        routes:
        - servicing_agent:
            bicfi: CCLABEBB
          channel:
          - type: FPMI
            id: TGT
            cut_off_time: '2022-05-14T15:30:00Z'
            optimum_cut_off_time: '2022-05-14T10:30:00Z'
          - type: FPMI
            id: EBA
            cut_off_time: '2022-05-14T15:30:00Z'
            optimum_cut_off_time: '2022-05-14T10:30:00Z'
          - type: DICO
            cut_off_time: '2022-05-14T15:30:00Z'
            optimum_cut_off_time: '2022-05-14T10:30:00Z'
          - type: INTR
            cut_off_time: '2022-05-14T15:30:00Z'
            optimum_cut_off_time: '2022-05-14T10:30:00Z'
          estimated_time_to_creditor_minutes:
            minimum: '1'
            average: '10'
            maximum: '150'
          minimum_number_of_agents_involved: '3'
    SWGoResponseScenario3:
      value:
        status: FVAL
        threshold:
          validation_check: FVAL
          amount:
            value: '10000'
            currency: EUR
        routes:
        - servicing_agent:
            bicfi: CCLABEBB
          channel:
          - type: FPMI
            id: TGT
            cut_off_time: '2022-05-14T15:30:00Z'
            optimum_cut_off_time: '2022-05-14T10:30:00Z'
          - type: FPMI
            id: EBA
            cut_off_time: '2022-05-14T15:30:00Z'
            optimum_cut_off_time: '2022-05-14T10:30:00Z'
          - type: DICO
            cut_off_time: '2022-05-14T15:30:00Z'
            optimum_cut_off_time: '2022-05-14T10:30:00Z'
          - type: INTR
            cut_off_time: '2022-05-14T15:30:00Z'
            optimum_cut_off_time: '2022-05-14T10:30:00Z'
          estimated_time_to_creditor_minutes:
            minimum: '1'
            average: '10'
            maximum: '150'
          minimum_number_of_agents_involved: '3'
        - servicing_agent:
            bicfi: BANKUS33
          channel:
          - type: NPMI
            id: FDA
            cut_off_time: '2022-05-14T15:30:00Z'
            optimum_cut_off_time: '2022-05-14T10:30:00Z'
          - type: NPMI
            id: EPN
            cut_off_time: '2022-05-14T15:30:00Z'
            optimum_cut_off_time: '2022-05-14T10:30:00Z'
          - type: DICO
            cut_off_time: '2022-05-14T15:30:00Z'
            optimum_cut_off_time: '2022-05-14T10:30:00Z'
          estimated_time_to_creditor_minutes:
            minimum: '1'
            average: '10'
            maximum: '150'
          minimum_number_of_agents_involved: '4'
    SWGoResponseScenario4:
      value:
        status: IVAL
        threshold:
          validation_check: IVAL
          amount:
            value: '10000'
            currency: USD
        routes:
        - servicing_agent:
            bicfi: CCLABEBB
          channel:
          - type: DICO
            cut_off_time: '2022-05-14T15:30:00Z'
            optimum_cut_off_time: '2022-05-14T10:30:00Z'
          estimated_time_to_creditor_minutes:
            minimum: '2'
            average: '10'
            maximum: '100'
          minimum_number_of_agents_involved: '3'
    SWGoResponseScenario5:
      value:
        status: IVAL
        threshold:
          validation_check: IVAL
          amount:
            value: '10000'
            currency: EUR
    PayValReq1:
      description: |
        This example returns an overall 'ALL VALID' result and the beneficiary bank is a Data Provider.
      summary: Payment validation - ALL VALID result
      value:
        uetr: 97ed4827-7b6f-4491-a06f-b548d5a7512d
        instructed_amount:
          currency_code: CNY
          amount: '100000.55'
        clearing_system_identification: CIPS
        debtor_agent_country: GB
        creditor_agent:
          bicfi: DEUTCNBJ
        creditor_agent_country: CN
        creditor_agent_branch_identification: '111'
        creditor:
          name: DEF Electronics
          postal_address:
            structured:
              street_name: 1 Main Street
              building_name: Global Trade Centre
              floor: 50th Floor
              post_code: '10117'
              town_name: Beijing
              country: CN
          identification:
            organisation_identification:
              other:
              - identification: '123456789'
                scheme_name:
                  code: CUST
                issuer: DEF Group
        creditor_account: '78923683674565776767'
        purpose_code: '02116'
        purpose_description: Capital item related Payment
    PayValReq2:
      description: |
        This example returns an overall 'WARNING' result and the beneficiary bank is not a Data Provider.
      summary: Payment validation - WARNING result
      value:
        instructed_amount:
          currency_code: SGD
          amount: '100.55'
        clearing_system_identification: SG IBG
        debtor_agent_country: GB
        creditor_agent:
          bicfi: ANZBSGSX
        creditor_agent_country: SG
        creditor:
          name: ABC Holdings
          postal_address:
            unstructured:
              address_line:
              - 1 Marina Bay
              - Central Plaza
              - Singapore
              - '121323'
              country: SG
        creditor_account: '60988381235470'
        purpose_code: IVPT
    PayValReq3:
      description: |
        This example returns an overall 'ERROR' result as in this scenario payment purpose is mandatory.
      summary: Payment validation for corridor with payment purpose mandatory - ERROR result
      value:
        instructed_amount:
          currency_code: INR
          amount: '1000.00'
        clearing_system_identification: UPI
        debtor_agent_country: BE
        creditor_agent:
          bicfi: IDIBINBB
        creditor_agent_country: IN
        creditor:
          name: BCD Limited
          postal_address:
            unstructured:
              address_line:
              - 1 Nariman Point
              - Central Plaza
              - Mumbai
              - '400001'
              country: IN
        creditor_account: '12336836617'
    PayValRes1:
      description: |
        This example returns an overall 'ALL VALID' result due to all of the underlying individual validations returning a valid response.

        In this example for a payment to China, along with the central validations, the creditor account is assumed to be being validated by the creditor agent (BAV) and it is an existing account that is able to receive funds.
      summary: Payment validation - ALL VALID result
      value:
        uetr: 97ed4827-7b6f-4491-a06f-b548d5a7512d
        payment_instruction_validation_result: ALL_VALID
        validation_summary:
          ERROR_count: '0'
          WARNING_count: '0'
          VALID_count: '4'
          N/A_count: '0'
          service_error_count: '0'
        validations:
        - check_type: Instructed_Amount_Validation
          validated_by: SWIFT_CENTRALLY
          status: FVAL_valid
          reason:
          - DBCD_amount_decimals_match_currency_decimals
          - AWPL_amount_within_pmi_limits
          result: VALID
          validated_payment_elements:
          - instructed_amount.currency_code
          - instructed_amount.amount
          - clearing_system_identification
        - check_type: Financial_Institution_Identity_Validation
          validated_by: SWIFT_CENTRALLY
          status: FVAL_valid
          reason:
          - CCTY_consistent_country
          - VBIC_valid_bic
          result: VALID
          validated_payment_elements:
          - creditor_agent.bicfi
          - creditor_agent_country
        - check_type: Payment_Purpose_Validation
          validated_by: SWIFT_CENTRALLY
          status: FVAL_valid
          reason:
          - VPPC_valid_purpose_code
          - VPPD_valid_purpose_description
          result: VALID
          validated_payment_elements:
          - purpose_code
          - purpose_description
          - creditor_agent_country
        - check_type: Beneficiary_Account_Verification
          validated_by: CREDITOR_AGENT
          status: PASS
          reason:
          - account_validation_status = PASS
          - creditor_account_match = MTCH
          - creditor_name_match = MTCH
          - creditor_address_match = NOAP
          - creditor_organisation_identification_match = NOAP
          result: VALID
          validated_payment_elements:
          - creditor_account
          - creditor.name
          - creditor_agent.bicfi
          additional_information: creditor.name = DEF Electronics Limited
    PayValRes2:
      description: |
        This example returns an overall 'WARNING' result due to some of the underlying individual element validations returning a warning and others returning a valid or not available result. None of the individual element validations resulted in an actual error.

        In this example, the beneficiary bank is assumed to be not a live data provider. Consequently, the creditor account (it's existence) is being validated centrally by SWIFT using the pseudonymized account statistics. In this example, we are assuming that the account was found in the pseudonymized account statistics. In this case, the format of the provided creditor account is also separately validated.

        For Singapore, a reason for payment (purpose description) is recommended. If it is missing then the Payment Purpose validation will result in a warning.
      summary: Payment validation - WARNING result
      value:
        payment_instruction_validation_result: WARNING
        validation_summary:
          ERROR_count: '0'
          WARNING_count: '2'
          VALID_count: '3'
          N/A_count: '0'
          service_error_count: '0'
        validations:
        - check_type: Account_Format_Validation
          validated_by: SWIFT_CENTRALLY
          status: CVAL_valid_with_comments
          reason:
          - VDOM_valid_domestic_bank_specific
          - CCTY_consistent_country
          - IFIN_inconsistent_financial_institution_identification
          result: WARNING
          validated_payment_elements:
          - creditor_account
          - creditor_agent_country
          - creditor_agent.bicfi
        - check_type: Instructed_Amount_Validation
          validated_by: SWIFT_CENTRALLY
          status: FVAL_valid
          reason:
          - DBCD_amount_decimals_match_currency_decimals
          - AWPL_amount_within_pmi_limits
          result: VALID
          validated_payment_elements:
          - instructed_amount.currency_code
          - instructed_amount.amount
          - clearing_system_identification
        - check_type: Financial_Institution_Identity_Validation
          validated_by: SWIFT_CENTRALLY
          status: FVAL_valid
          reason:
          - VBIC_valid_bic
          - CCTY_consistent_country
          result: VALID
          validated_payment_elements:
          - creditor_agent.bicfi
          - creditor_agent_country
        - check_type: Payment_Purpose_Validation
          validated_by: SWIFT_CENTRALLY
          status: CVAL_valid_with_comments
          reason:
          - VPPC_valid_purpose_code
          - MPPD_missing_purpose_description
          result: WARNING
          validated_payment_elements:
          - creditor_agent_country
          - purpose_code
          - purpose_description
          - instructed_amount.currency_code
        - check_type: Beneficiary_Account_Verification
          validated_by: SWIFT_CENTRALLY
          status: INCO
          reason:
          - INCO, Transactions with this beneficiary account were found in the transaction history and all these transaction were successful or did not fail due to invalid beneficiary account details
          result: VALID
    PayValRes3:
      description: |
        This example returns an overall 'ERROR' result due to at least one of the underlying individual element validations resulting in an error. Here, the payment purpose validation failed. For India, both a payment purpose code and a payment purpose description are required. Both elements are missing in the provided context.

        The creditor agent IDIBINBB, in this example, is assumed to be a live data provider. So, the validator tried to validate the creditor account directly with the creditor agent using the beneficiary account validation service. Unfortunately, this service returned a technical error as the data provider is assumed to be down or unavailable for some reason. And hence in Validation Summary, the ‘service error count’ is shown as ‘1’.

        Note also that no central validation was applied on the account/account format as the data provider is a live data provider.
      summary: Payment validation for corridor with payment purpose mandatory - ERROR result
      value:
        payment_instruction_validation_result: ERROR
        validation_summary:
          ERROR_count: '1'
          WARNING_count: '1'
          VALID_count: '2'
          N/A_count: '0'
          service_error_count: '1'
        validations:
        - check_type: Account_Format_Validation
          validated_by: SWIFT_CENTRALLY
          status: CVAL_valid_with_comments
          reason:
          - VDOM_valid_domestic_bank_specific
          - CCTY_consistent_country
          - IFIN_inconsistent_financial_institution_identification
          result: WARNING
          validated_payment_elements:
          - creditor_account
          - creditor_agent_country
          - creditor_agent.bicfi
        - check_type: Instructed_Amount_Validation
          validated_by: SWIFT_CENTRALLY
          status: FVAL_valid
          reason:
          - DBCD_amount_decimals_match_currency_decimals
          - AWPL_amount_within_pmi_limits
          result: VALID
          validated_payment_elements:
          - instructed_amount.currency_code
          - instructed_amount.amount
          - clearing_system_identification
        - check_type: Financial_Institution_Identity_Validation
          validated_by: SWIFT_CENTRALLY
          status: FVAL_valid
          reason:
          - VBIC_valid_bic
          - CCTY_consistent_country
          result: VALID
          validated_payment_elements:
          - creditor_agent.bicfi
          - creditor_agent_country
        - check_type: Payment_Purpose_Validation
          validated_by: SWIFT_CENTRALLY
          status: IVAL_invalid
          reason:
          - MPPD_missing_purpose_description
          - MPPC_missing_purpose_code
          result: ERROR
          validated_payment_elements:
          - creditor_agent_country
    Account_Out_Of_Scope_Of_The_Implementation_OR_Cannot_Be_Serviced:
      summary: Account Out Of Scope Of The Implmentation OR Cannot Be Serviced
      value:
        severity: Fatal
        code: CANT
        text: Account requested cannot be verified because of non-existence of integration with the book system where this account is maintained.
    Data_Provider_Is_Not_Active:
      summary: Data Provider Is Not Active
      value:
        severity: Fatal
        code: CANT
        text: The request cannot be processed. The x-bic value provided is not valid.
    API_Request_Is_Malformed:
      summary: API Request Is Malformed
      value:
        severity: Fatal
        code: sw.payVal.badRequest
        text: API request is malformed.
    Account_Error_Unsupported_Format:
      summary: Account Error Unsupported Format
      value:
        severity: Fatal
        code: CANT
        text: Account number format is not supported.
    BadRequest:
      summary: Bad Request
      value:
        severity: Fatal
        code: sw.payVal.badRequest
        text: API request is malformed.
    InvalidToken:
      summary: Invalid Token
      value:
        severity: Fatal
        code: SwAP502
        text: Invalid OAuth access token.
    InsufficientScope:
      summary: Insufficient Scope
      value:
        severity: Fatal
        code: SwAP503
        text: OAuth access token has insufficient scope for the requested service.
    ServiceNotProvisioned:
      summary: Service Not Provisioned
      value:
        severity: Fatal
        code: SwAP506
        text: API service not provisioned.
    Forbidden:
      summary: Forbidden
      value:
        severity: Fatal
        code: sw.payVal.forbidden
        text: Unauthorized to perform the requested operation.
    NotAcceptable:
      summary: Not Acceptable
      value:
        severity: Fatal
        code: sw.payVal.notAcceptable
        text: The API only supports application/json.
    NotFound:
      summary: Not Found
      value:
        severity: Fatal
        code: sw.payVal.notFound
        text: Resource does not exist.
    TooManyRequest:
      summary: Too Many Request
      value:
        severity: Transient
        code: SwAP507
        text: Request cannot be processed at this time. Please try again.
    InternalServerError:
      summary: Internal Server Error
      value:
        severity: Transient
        code: sw.payVal.internalServerError
        text: Server encountered an unexpected condition and cannot fulfill the request.
    ServiceUnavailable:
      summary: Service Unavailable
      value:
        severity: Transient
        code: SwAP590
        text: Service is temporarily unavailable.
    GatewayTimeout:
      summary: Gateway Timeout
      value:
        severity: Transient
        code: SwAP591
        text: Service Provider time out.
    DefaultError:
      summary: Default Error
      value:
        severity: Fatal
        code: sw.payVal.defaultError
        text: Service is temporarily unavailable.

security:
- oauthBearerToken: []
