Weavr Correspondent Bank Transfers API

Correspondent bank transfers allow financial institutions to initiate wire transfers on behalf of originators (third parties). These transfers comply with travel rule requirements by capturing and transmitting originator information.

OpenAPI Specification

weavr-correspondent-bank-transfers-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: v3
  title: Weavr Multi Product BackOffice Access Token Correspondent Bank Transfers API
  x-logo:
    url: https://storage.googleapis.com/weavr-cdn/weavr_logo-new.png
    backgroundColor: '#FFFFFF'
    altText: Weavr
  description: 'Weavr Multi Back Office API allows you, as an innovator, to perform various back office operations concerning

    identities and their instruments, without requiring the users to be logged in.


    A token is to be obtained through the `access_token` method, and this will allow relevant operations

    to be performed on behalf of this same identity.

    '
  contact:
    name: Weavr
    url: https://weavr.io
servers:
- description: Weavr Sandbox Environment
  url: https://sandbox.weavr.io/multi/backoffice
tags:
- name: Correspondent Bank Transfers
  description: 'Correspondent bank transfers allow financial institutions to initiate wire transfers on behalf of originators (third parties).

    These transfers comply with travel rule requirements by capturing and transmitting originator information.

    '
paths:
  /correspondent_bank_transfers:
    post:
      tags:
      - Correspondent Bank Transfers
      summary: Create a correspondent bank transfer
      operationId: correspondentBankTransferCreate
      description: 'Creates an outgoing wire transfer on behalf of an originator (correspondent banking).


        This endpoint is designed for correspondent banking use cases where a financial institution

        initiates a wire transfer on behalf of another party (the originator).


        The Outgoing Wire Transfer Profile (configured in the Multi Portal) specified determines the behaviour

        and restrictions of the transaction (for example, fees).

        '
      parameters:
      - $ref: '#/components/parameters/idempotency-ref'
      requestBody:
        $ref: '#/components/requestBodies/CorrespondentBankingOwtCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/CorrespondentBankingOwtResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          $ref: '#/components/responses/CorrespondentBankingOwtCreateConflict'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        default:
          $ref: '#/components/responses/Error'
      security:
      - auth_token: []
        api-key: []
    get:
      tags:
      - Correspondent Bank Transfers
      description: Retrieves all correspondent bank transfer transactions.
      summary: Get all correspondent bank transfer transactions
      operationId: correspondentBankTransfersGet
      parameters:
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/profileId'
      - $ref: '#/components/parameters/sourceInstrument_id'
      - $ref: '#/components/parameters/sourceInstrument_type'
      - name: createdFrom
        in: query
        required: false
        description: Filter for correspondent bank transfer transactions created after `createdFrom` timestamp, expressed in Epoch timestamp using millisecond precision.
        schema:
          type: integer
          format: int64
      - name: createdTo
        in: query
        required: false
        description: Filter for correspondent bank transfer transactions created before `createdTo` timestamp, expressed in Epoch timestamp using millisecond precision.
        schema:
          type: integer
          format: int64
      - name: executedFrom
        in: query
        required: false
        description: Filter for correspondent bank transfer transactions executed after `executedFrom` timestamp, expressed in Epoch timestamp using millisecond precision.
        schema:
          type: integer
          format: int64
      - name: executedTo
        in: query
        required: false
        description: Filter for correspondent bank transfer transactions executed before `executedTo` timestamp, expressed in Epoch timestamp using millisecond precision.
        schema:
          type: integer
          format: int64
      - name: tag
        in: query
        required: false
        description: Filter by the correspondent bank transfer tag. The exact tag must be provided, as wildcards are not supported.
        schema:
          type: string
      - name: state
        in: query
        required: false
        description: Filter by the state of the correspondent bank transfer transaction.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/CorrespondentBankingOwtState'
      - name: originator.name
        in: query
        required: false
        description: Filter by the originator name. Partial matches are supported.
        schema:
          type: string
      - name: originator.type
        in: query
        required: false
        description: Filter by the originator type.
        schema:
          type: string
          enum:
          - INDIVIDUAL
          - BUSINESS
      - name: originator.tag
        in: query
        required: false
        description: Filter by the originator tag.
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/CorrespondentBankingOwtsResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      security:
      - auth_token: []
        api-key: []
  /correspondent_bank_transfers/{id}:
    get:
      tags:
      - Correspondent Bank Transfers
      description: Retrieves the correspondent bank transfer identified by the `id` path parameter.
      summary: Get a correspondent bank transfer transaction
      operationId: correspondentBankTransferGet
      parameters:
      - name: id
        in: path
        required: true
        description: The unique identifier of the correspondent bank transfer transaction.
        schema:
          type: string
          pattern: ^[0-9]+$
      responses:
        '200':
          $ref: '#/components/responses/CorrespondentBankingOwtResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      security:
      - auth_token: []
        api-key: []
  /correspondent_bank_transfers/{id}/cancel:
    post:
      tags:
      - Correspondent Bank Transfers
      description: Cancel the correspondent bank transfer identified by the `id` path parameter.
      summary: Cancel a correspondent bank transfer transaction
      operationId: correspondentBankTransferCancel
      parameters:
      - name: id
        in: path
        required: true
        description: The unique identifier of the correspondent bank transfer transaction.
        schema:
          type: string
          pattern: ^[0-9]+$
      requestBody:
        $ref: '#/components/requestBodies/TransactionSingleCancelRequest'
      responses:
        '200':
          $ref: '#/components/responses/CorrespondentBankingOwtResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/CorrespondentBankingOwtCancelConflict'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      security:
      - auth_token: []
        api-key: []
  /correspondent_bank_transfers/{id}/confirm:
    post:
      tags:
      - Correspondent Bank Transfers
      description: Confirm the correspondent bank transfer identified by the `id` path parameter.
      summary: Confirm a correspondent bank transfer transaction
      operationId: correspondentBankTransferConfirm
      parameters:
      - name: id
        in: path
        required: true
        description: The unique identifier of the correspondent bank transfer transaction.
        schema:
          type: string
          pattern: ^[0-9]+$
      responses:
        '200':
          $ref: '#/components/responses/CorrespondentBankingOwtResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/CorrespondentBankingOwtConfirmConflict'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      security:
      - auth_token: []
        api-key: []
components:
  schemas:
    CorrespondentBankingRIXBeneficiary:
      required:
      - name
      - iban
      - address
      type: object
      description: CBT-specific beneficiary details for RIX wire transfers with Banking Circle FI-to-FI field limits.
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 35
          description: 'The beneficiary''s full name. >= 1 character and <= 35 characters.

            An extended character set is accepted to cater for all European languages.

            If RIX does not support a particular character, it is automatically

            converted to an acceptable alternative.

            '
        iban:
          type: string
          minLength: 15
          maxLength: 34
          pattern: ^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$
          description: International Bank Account Number, required for wire transfer over RIX.
        bankIdentifierCode:
          type: string
          minLength: 8
          maxLength: 11
          pattern: ^[a-zA-Z0-9]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}[a-zA-Z0-9]{0,3}$
          description: BIC (Bank Identifier Code) for wire transfer over RIX.
        address:
          maxLength: 105
          minLength: 1
          type: string
          description: 'The beneficiary''s address. Required for correspondent banking transfers.

            Maximum 105 characters (split into 3x35-char lines by the provider).

            '
        bankName:
          type: string
          maxLength: 150
          description: The beneficiary's bank name.
        bankAddress:
          maxLength: 150
          minLength: 1
          type: string
          description: The beneficiary's bank address.
        bankCountry:
          type: string
          description: The beneficiary's bank country in ISO 3166 alpha-2 format.
          maxLength: 2
          minLength: 2
          pattern: ^[A-Z]{2}$
        nationality:
          $ref: '#/components/schemas/Nationality'
        dateOfBirth:
          $ref: '#/components/schemas/DateOfBirth'
    CurrencyAmount:
      required:
      - currency
      - amount
      type: object
      properties:
        currency:
          $ref: '#/components/schemas/Currency'
        amount:
          type: integer
          format: int64
          description: 'The monetary amount, scaled to the lowest denomination of the currency.


            Example, an amount of 1000 for a EUR currency is actually 1000 Euro cents or EUR 10.00.

            '
      description: The object representing a monetary amount in a particular currency.
    CorrespondentBankingOwtState:
      description: "The state of the correspondent bank transfer transaction, as follows:\n  - INVALID: The transfer has failed initial validation checks.\n  - PENDING_CHALLENGE: The transfer requires the completion of a transaction confirmation challenge before it can be submitted.\n  - SUBMITTED: The transfer has been submitted to the sending financial institution for processing.\n  - REJECTED: The transfer that was submitted was rejected.\n  - APPROVED: The transfer that was submitted has been approved and is being processed by the sending financial institution.\n  - FAILED: There was an issue with the transfer, and the transaction has failed.\n  - COMPLETED: The requested funds have been sent from the source instrument.\n  - RETURNED: The transfer has been returned to the sender.\n  - SCHEDULED: The transfer will be executed at the scheduled time.\n  - CANCELLED: The scheduled transfer has been cancelled.\n  - PENDING_CONFIRMATION: The transfer requires a manual confirmation by the user before proceeding.\n"
      type: string
      enum:
      - INVALID
      - PENDING_CHALLENGE
      - SUBMITTED
      - REJECTED
      - APPROVED
      - FAILED
      - COMPLETED
      - RETURNED
      - SCHEDULED
      - CANCELLED
      - PENDING_CONFIRMATION
    TransactionCancellationReason:
      type: string
      pattern: ^[ a-zA-Z0-9_-]+$
      maxLength: 50
      description: The reason the scheduled transaction was cancelled.
    CorrespondentBankingExternalData:
      type: object
      description: External data key-value pair.
      required:
      - name
      - value
      properties:
        name:
          type: string
          maxLength: 50
          description: Name/key of the external data.
        value:
          type: string
          maxLength: 255
          description: Value of the external data.
    SyntaxError:
      type: object
      description: Is returned as part of an HTTP error response whenever a syntax error is detected. A list of the fields together with their syntax error will be provided.
      properties:
        invalidFields:
          type: array
          items:
            type: object
            properties:
              params:
                type: array
                items:
                  type: string
              fieldName:
                type: string
              error:
                type: string
                enum:
                - REQUIRED
                - HAS_TEXT
                - REQUIRES
                - SIZE
                - RANGE
                - IN
                - NOT_IN
                - REGEX
                - EXACTLY
                - AT_LEAST
                - AT_MOST
                - ALL_OR_NONE
    CorrespondentBankingOwtValidationOutcome:
      type: object
      required:
      - category
      - categoryResult
      properties:
        category:
          type: string
          enum:
          - SEPA_VERIFICATION_OF_PAYEE
          - UK_CONFIRMATION_OF_PAYEE
        categoryResult:
          oneOf:
          - $ref: '#/components/schemas/SEPAVerificationOfPayeeResult'
          - $ref: '#/components/schemas/UKConfirmationOfPayeeResult'
    UKConfirmationOfPayeeResult:
      type: object
      required:
      - match
      properties:
        match:
          type: string
          description: The result of matching performed by the UK Confirmation of Payee responder
          enum:
          - EXACT_MATCH
          - CLOSE_MATCH
          - NO_MATCH
          - NOT_POSSIBLE
        reasonCode:
          type: string
          description: "The reason why the matching failed at the UK Confirmation of Payee responder:\n\n  - ANNM: The CoP responder confirms that the account `name` provided does not match;\n  - MBAM: The CoP responder indicates that the account `name` provided closely matches the actual account in its records, the actual account name is returned in the `accountName` field;\n  - BANM: The account `type` that the user specified is 'PERSONAL', but the CoP responder indicates that the actual account matching the `name` provided is actually BUSINESS;\n  - PANM: The account `type` that the user specified is 'BUSINESS', but the CoP responder indicates that the actual account matching the `name` provided is actually PERSONAL;\n  - BAMM: The account `type` that the user specified is 'PERSONAL', but the CoP responder indicates that an account closely matching the `name` provided is BUSINESS;\n  - PAMM: The account `type` that the user specified is 'BUSINESS', but the CoP responder indicates that an account closely matching the `name` provided is PERSONAL;\n  - AC01: The account does not exist in the CoP responders books, the `accountNumber` specified is likely incorrect; \n  - IVCR: The CoP responder was unable to locate an account based on the `secondaryReference` field;\n  - ACNS: The account is not supported for CoP by the CoP responder;\n  - OPTO: The owner of the account has opted out of CoP service by the CoP responder;\n  - CASS: The account has been switched using the Current Account Switch Service;\n  - SCNS: The `sortCode` provided is not supported at endpoint;\n"
          enum:
          - ANNM
          - MBAM
          - BANM
          - PANM
          - BAMM
          - PAMM
          - AC01
          - IVCR
          - ACNS
          - OPTO
          - CASS
          - SCNS
        accountName:
          type: string
          description: 'CoP: Returned when the `match` is a `CLOSE_MATCH` and the `reasonCode` is MBAM, BAMM or PAMM

            VoP: Returned when the `match` is a `CLOSE_MATCH`

            '
    CorrespondentBankingIndividualAddressAndBirthInfo:
      required:
      - dateOfBirth
      - placeOfBirth
      type: object
      description: Birth information for an individual originator.
      properties:
        dateOfBirth:
          type: string
          format: date
          description: Date of birth in YYYY-MM-DD format.
        placeOfBirth:
          type: string
          maxLength: 140
          description: Place of birth - city and country.
    TransactionSingleCancelRequest:
      type: object
      properties:
        cancellationReason:
          $ref: '#/components/schemas/TransactionCancellationReason'
    ScheduledTimestamp:
      pattern: ^[0-9]+$
      type: string
      description: The epoch timestamp at which the transaction is scheduled to be executed.
    CorrespondentBankingOwtCreateRequest:
      required:
      - profileId
      - sourceInstrument
      - amount
      - originator
      - beneficiary
      - purpose
      type: object
      properties:
        profileId:
          $ref: '#/components/schemas/ProfileId'
        tag:
          $ref: '#/components/schemas/Tag'
        sourceInstrument:
          description: The managed account from which funds will be collected.
          required:
          - type
          - id
          type: object
          properties:
            type:
              type: string
              enum:
              - managed_accounts
            id:
              type: string
              pattern: ^[0-9]+$
        amount:
          description: The amount to transfer.
          $ref: '#/components/schemas/CurrencyAmount'
        originator:
          oneOf:
          - $ref: '#/components/schemas/CorrespondentBankingIndividualOriginator'
          - $ref: '#/components/schemas/CorrespondentBankingBusinessOriginator'
        beneficiary:
          oneOf:
          - $ref: '#/components/schemas/CorrespondentBankingSEPABeneficiary'
          - $ref: '#/components/schemas/CorrespondentBankingRIXBeneficiary'
          - $ref: '#/components/schemas/CorrespondentBankingFasterPaymentsBeneficiary'
        purpose:
          type: string
          maxLength: 255
          description: The purpose of the payment.
        description:
          maxLength: 35
          type: string
          description: 'These details are passed to the beneficiary as the `reference`. This field is mandatory for wire transfers executed over `SEPA`. The allowed length is dependent on the payment type:


            `SEPA` <= `35` characters. An extended character set is accepted to cater for all European languages. If `SEPA` does not support a particular character, it is automatically converted to an acceptable alternative, in line with `SEPA` scheme guidance.


            `Faster Payments` <= `18` characters

            '
        externalData:
          type: array
          description: Additional external data as key-value pairs.
          items:
            $ref: '#/components/schemas/CorrespondentBankingExternalData'
        scheduledTimestamp:
          $ref: '#/components/schemas/ScheduledTimestamp'
    CorrespondentBankingOwt:
      required:
      - id
      - profileId
      - creationTimestamp
      - sourceInstrument
      - amount
      - originator
      - beneficiary
      - purpose
      - state
      type: object
      properties:
        id:
          type: string
          pattern: ^[0-9]+$
          description: The unique identifier of the Correspondent Banking OWT.
        profileId:
          $ref: '#/components/schemas/ProfileId'
        tag:
          $ref: '#/components/schemas/Tag'
        sourceInstrument:
          required:
          - type
          - id
          type: object
          description: The source managed account from where the funds were taken.
          properties:
            type:
              type: string
              enum:
              - managed_accounts
            id:
              type: string
              pattern: ^[0-9]+$
        amount:
          description: The amount transferred.
          $ref: '#/components/schemas/CurrencyAmount'
        originator:
          oneOf:
          - $ref: '#/components/schemas/CorrespondentBankingIndividualOriginator'
          - $ref: '#/components/schemas/CorrespondentBankingBusinessOriginator'
        beneficiary:
          oneOf:
          - $ref: '#/components/schemas/CorrespondentBankingSEPABeneficiary'
          - $ref: '#/components/schemas/CorrespondentBankingRIXBeneficiary'
          - $ref: '#/components/schemas/CorrespondentBankingFasterPaymentsBeneficiary'
        purpose:
          type: string
          maxLength: 255
          description: The purpose of the payment.
        description:
          maxLength: 35
          type: string
          description: 'These details are passed to the beneficiary as the `reference`. This field is mandatory for wire transfers executed over `SEPA`. The allowed length is dependent on the payment type:


            `SEPA` <= `35` characters. An extended character set is accepted to cater for all European languages. If `SEPA` does not support a particular character, it is automatically converted to an acceptable alternative, in line with `SEPA` scheme guidance.


            `Faster Payments` <= `18` characters

            '
        externalData:
          type: array
          description: Additional external data as key-value pairs.
          items:
            $ref: '#/components/schemas/CorrespondentBankingExternalData'
        state:
          $ref: '#/components/schemas/CorrespondentBankingOwtState'
        creationTimestamp:
          type: integer
          format: int64
          description: The time when the transaction was created, expressed in Epoch timestamp using millisecond precision.
        scheduledTimestamp:
          $ref: '#/components/schemas/ScheduledTimestamp'
        cancellationReason:
          $ref: '#/components/schemas/TransactionCancellationReason'
        validationOutcomes:
          type: array
          items:
            $ref: '#/components/schemas/CorrespondentBankingOwtValidationOutcome'
    CorrespondentBankingBusinessOriginator:
      required:
      - name
      - registrationAddress
      - registrationCountry
      - bankAccountDetails
      type: object
      description: 'A business (legal entity) originator of the transfer.


        Travel Rule Requirements:

        - Mandatory: Full legal name and account number (via bankAccountDetails)

        - Mandatory: Registered address and business identification (LEI, registration number, or tax ID)

        '
      properties:
        tag:
          $ref: '#/components/schemas/Tag'
        name:
          type: string
          maxLength: 140
          description: Full legal name of the business entity.
        registrationAddress:
          type: string
          maxLength: 255
          description: Registered address of the business entity.
        registrationCountry:
          type: string
          minLength: 2
          maxLength: 2
          pattern: ^[A-Z]{2}$
          description: ISO 3166-1 alpha-2 country code of registration.
        bankAccountDetails:
          $ref: '#/components/schemas/CorrespondentBankingBankAccountDetails'
          description: Account and financial institution details of the originator (travel rule mandatory).
        supplementaryInformation:
          $ref: '#/components/schemas/CorrespondentBankingBusinessAddressAndIdInfo'
    CorrespondentBankingIndividualAddressAndIdInfo:
      required:
      - documentType
      - documentNumber
      type: object
      description: Personal identification for an individual originator.
      properties:
        documentType:
          type: string
          enum:
          - NATIONAL_ID
          - PASSPORT
          - TAX_ID
          - OTHER
          description: Type of personal identification document.
        documentNumber:
          type: string
          maxLength: 35
          description: Personal identification document number.
    DateOfBirth:
      type: string
      format: date
      description: The date of birth in ISO 8601 format (YYYY-MM-DD).
    SEPAVerificationOfPayeeResult:
      type: object
      required:
      - match
      properties:
        match:
          type: string
          description: The result of the SEPA Verification of Payee check performed by the responding PSP.
          enum:
          - MATCH
          - NO_MATCH
          - CLOSE_MATCH
          - NOT_POSSIBLE
        accountName:
          type: string
          description: 'The name of the account holder as registered with the responding PSP.

            Returned when the match result is CLOSE_MATCH to help the payer verify the payee.

            '
    ProfileId:
      type: string
      description: 'The profile Id which a specific identity, instrument or transaction type is linked to.


        Profiles contain configuration and determine behavioral aspects of the newly created transaction, for example, fees that may apply.


        You can have one or more profiles linked to your application, and these can be used to drive different behaviors according to your product''s needs.


        Profile Ids can be found in the Multi Portal, in the API Credentials page.

        '
      pattern: ^[0-9]+$
    Currency:
      type: string
      description: 'The currency expressed in ISO-4217 code. Example: GBP, EUR, USD.'
      maxLength: 3
      minLength: 3
      pattern: ^[A-Z]*$
    CorrespondentBankingSEPABeneficiary:
      required:
      - name
      - iban
      - address
      type: object
      description: CBT-specific beneficiary details for SEPA/IBAN wire transfers with Banking Circle FI-to-FI field limits.
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 35
          description: 'The beneficiary''s full name. >= 1 character and <= 35 characters.

            An extended character set is accepted to cater for all European languages.

            If SEPA does not support a particular character, it is automatically

            converted to an acceptable alternative, in line with SEPA scheme guidance.

            '
        iban:
          type: string
          minLength: 15
          maxLength: 34
          pattern: ^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$
          description: International Bank Account Number, required for wire transfer over SEPA.
        bankIdentifierCode:
          type: string
          minLength: 8
          maxLength: 11
          pattern: ^[a-zA-Z0-9]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}[a-zA-Z0-9]{0,3}$
          description: BIC (Bank Identifier Code) for wire transfer over SEPA.
        address:
          maxLength: 105
          minLength: 1
          type: string
          description: 'The beneficiary''s address. Required for correspondent banking transfers.

            Maximum 105 characters (split into 3x35-char lines by the provider).

            '
        bankName:
          type: string
          maxLength: 150
          description: The beneficiary's bank name.
        bankAddress:
          maxLength: 150
          minLength: 1
          type: string
          description: The beneficiary's bank address.
        bankCountry:
          type: string
          description: The beneficiary's bank country in ISO 3166 alpha-2 format.
          maxLength: 2
          minLength: 2
          pattern: ^[A-Z]{2}$
        nationality:
          $ref: '#/components/schemas/Nationality'
        dateOfBirth:
          $ref: '#/components/schemas/DateOfBirth'
    Id:
      type: string
      pattern: ^[0-9]+$
    CorrespondentBankingIndividualOriginator:
      required:
      - name
      - address
      - country
      - bankAccountDetails
      type: object
      description: 'An individual (natural person) originator of the transfer.


        Travel Rule Requirements:

        - Mandatory: Full name and account number (via bankAccountDetails)

        - Mandatory: At least one supplementary information type (address + birth details, or address + official ID)

        '
      properties:
        tag:
          $ref: '#/components/schemas/Tag'
        name:
          type: string
          maxLength: 140
          description: Full name of the individual as documented on official ID.
        address:
          type: string
          maxLength: 255
          description: Full residential address of the individual.
        country:
          type: string
          minLength: 2
          maxLength: 2
          pattern: ^[A-Z]{2}$
          description: ISO 3166-1 alpha-2 country code.
        bankAccountDetails:
          $ref: '#/components/schemas/CorrespondentBankingBankAccountDetails'
          description: Account and financial institution details of the originator (travel rule mandatory).
        supplementaryInformation:
          oneOf:
          - $ref: '#/components/schemas/CorrespondentBankingIndividualAddressAndIdInfo'
          - $ref: '#/components/schemas/CorrespondentBankingIndividualAddressAndBirthInfo'
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
    CorrespondentBankingFasterPaymentsBeneficiary:
      required:
      - name
      - type
      - accountNumber
      - sortCode
      - address
      type: object
      description: CBT-specific beneficiary details for Faster Payments wire transfers with Banking Circle FI-to-FI field limits.
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 35
          pattern: ^[a-zA-Z0-9\/\-?:().,'+\s#=!"%&*<>;\{@\r\n]*$
          description: 'The beneficiary''s full name. >= 1 character and <= 35 characters.

            Note: the '' symbol is the unicode value U+2019 (right single quotation mark)

            and not the unicode value U+0027 (apostrophe).

            '
        type:
          type: string
          description: The type of beneficiary account. Required for Faster Payments.
          enum:
          - PERSONAL
          - BUSINESS
        accountNumber:
          type: string
          pattern: ^[0-9]{8}$
          description: Account number, required for wire transfer over Faster Payments.
        sortCode:
          type: string
          pattern: ^[0-9]{6}$
          description: Sort code, required for wire transfer over Faster Payments.
        secondaryReference:
          type: string
          descr

# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/weavr/refs/heads/main/openapi/weavr-correspondent-bank-transfers-api-openapi.yml