> ## Documentation Index
> Fetch the complete documentation index at: https://docs.finventi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create SWIFT payment

> Creates a SWIFT payment for international transfers.

## Overview

This endpoint creates SWIFT payments for international wire transfers. The payment is validated and submitted to the correspondent banking network.

## Idempotent Endpoint

This endpoint supports idempotency to prevent duplicate transactions.

### How to Use

* Include an `Idempotency-Key` header with a unique value (UUID recommended)
* The API returns the existing transaction when you reuse the same key
* Retry requests safely without creating duplicates

### Key Features

* Supports multiple currencies
* Handles correspondent bank routing
* Validates BIC codes and account formats
* Provides transaction tracking


## OpenAPI

````yaml post /v2/transactions/swift
openapi: 3.1.0
info:
  description: >
    # General info

    ## Base API URL for environments:

    * TEST: https://api.pgw-sandbox.finventi.com

    * PROD: https://api.pgw.finventi.com


    # Authentication

    <b>NOTE:</b> IP whitelisting is mandatory to gain access to our APIs in both
    TEST and PROD environments. To register your IPs, please contact
    `connectors-support@inventi.lt`.


    Our API uses OAuth 2.0 for authentication. To access the API, you need to
    obtain a bearer token from the authorization server.


    ### Obtain a Bearer Token

    To get a bearer token, use the following cURL command:


    ```

    curl -X POST \

    --location
    '<auth-server-url>/realms/<client-name>/protocol/openid-connect/token' \

    --header 'Content-Type: application/x-www-form-urlencoded' \

    --data-urlencode 'grant_type=client_credentials' \

    --data-urlencode 'client_id=api-sepa-gateway-client' \

    --data-urlencode 'client_secret=<client-secret>'

    ```


    where:


    `<auth-server-url>` is either `https://auth.sandbox.finventi.com/` (TEST) or
    `https://auth.finventi.com/` (PROD).


    `<client-name>` is a value of TenantID that was assigned by INVENTI team
    during initial configuration and could be found in Configuration Matrix that
    was shared to your representative.


    `<client-secret>` is a value that can be obtained by logging into SEPA
    Dashboard UI and going to <i>User Management</i> -> <i>Clients</i> ->
    `api-sepa-gateway-client` -> <i>Credentials</i> -> <i>Client Secret</i>.


    <b>NOTE:</b> The token is valid for 45 minutes.


    ### Include the Bearer Token in Requests

    Include the obtained token in the `Authorization` header of your API
    requests with the `Bearer` prefix:


    ```

    Authorization: Bearer <bearer-token>

    ```


    ### Example Request:

    ```

    curl --location --request POST
    'https://api.pgw-sandbox.finventi.com/gateway/createSepaPmt' \

    --header 'Authorization: Bearer <bearer-token>' \

    ```


    # Idempotency

    In our API, we support idempotency for certain endpoints to ensure that
    repeated requests have the same effect as a single request.

    Idempotent endpoints allow you to safely retry requests without worrying
    about unintended side effects, such as duplicate resource creation or
    modification. \


    To achieve idempotency, you need to include the **Idempotency-Key** header
    in your requests to the supported endpoints.

    If the provided idempotency key corresponds to an existing database object,
    the response will retrieve the data of the existing object instead of
    creating a new one.

    ## Idempotency-Key Header

    The **Idempotency-Key** header is used to uniquely identify a request and
    associate it with a specific operation. While the header value can be any
    string, we recommend using a UUID (Universally Unique Identifier) for
    uniqueness within the scope of the endpoint. This allows you to easily
    generate a unique key for each request.

    ### Example Request

    ```

    curl --location --request POST
    'https://api.pgw-sandbox.finventi.com/gateway/createSepaPmt' \

    --header 'Idempotency-Key: 123e4567-e89b-12d3-a456-426655440000' \

    ```

    ## Supported endpoints:

    * /gateway/createSepaPmt


    # Webhooks

    ## Signature Verification


    ### Introduction

    To ensure the authenticity and integrity of webhooks sent from our system,
    each webhook includes a digital signature. This signature allows the
    receiver to verify that the payload has not been altered during
    transmission. Verifying the signature confirms the webhook's origin and
    ensures its data integrity.


    Each webhook includes the signature in the `finventi-signature-N` HTTP
    header, where `N` represents the version of the signature. The current
    version is `1` (`finventi-signature-1`). When public keys are rotated, new
    header versions are issued, ensuring backward compatibility for clients
    until their code is updated.


    The signature should be verified using the RSASSA-PKCS1-v1.5 algorithm and
    the appropriate public key, based on the environment.


    ### Environment Public Keys

    Use the corresponding public key based on the environment in which you are
    verifying the webhook (current version - `1`)

    #### Test Environment Public Key

    ```text

    -----BEGIN PUBLIC KEY-----

    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvoc7GrFbduCeSVxFPJ3l

    a0NRa0caUqBddQAOUxuHTOuShOvdKbxRYc5u1vb9YNLJWjx4XSHESp8Q7oocqXt8

    +weBFsk/kAtJ4zjbYPY1PvAOLe+WObdxxZtfwzpwVxbtP6GQk5aUi2HbITe3EDf/

    7WEmvnAcWm++Mo6+GSh2Ky1t6o4htrx1lH2gYVg0iRHx1W9lLXjMl/5oLi1C6dtx

    TnBmXMlN/NT5YYU4lVlXQBZzS7a8ZgwosfW+v1uCimzbGcWytmmcFISjSNqkYaeg

    IXDYwKLwlsWtm975ln6UL20KcSt7ia+Lpuv7cdxJlOY95y0ds/PCw1x0HEPxU+44

    swIDAQAB

    -----END PUBLIC KEY-----

    ```


    #### Production Environment Public Key

    ```text

    -----BEGIN PUBLIC KEY-----

    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1pTRk8oUoGAAgXE8Gni8

    xvG2MJz6uYkZcNlXhPTrsxfqD4W5uDZOhy7APLz47Plcv+XL45kO0BFgjYHDRASx

    IIb6K5+YVyf9p1biLdZgf047wxwuC65bT6ddhuSX9FrMEtgPvghltSSfTZjdwVck

    QNE2JEV7vcIfq3ke5US+SP+6AHIcPyXypslp50CtO8wpZG+pz7rSdOoiRFTMhzVZ

    efDetRcnFv6DoAdapOiNVG9MBPqnE+BT5mnAlgF6V551ZJFOMhFvm/cLtP3Gj2a9

    /zNeCT1ZXHIuqxwrBUy/R8RSKJJIBWUbJEHF+pcPite+MgJm529Bt6K4mGCv1Nzv

    GwIDAQAB

    -----END PUBLIC KEY-----

    ```


    ### Additional Headers


    Each webhook includes the following HTTP headers to assist in verifying the
    signature:

    * `finventi-signature-N`: Each webhook contains the signature.

    * `finventi-signature-timestamp`: A UNIX timestamp (UTC) indicating when the
    webhook was sent.

    * `finventi-receiver-tenant-id`: The tenant ID for the webhook recipient.


    These headers must be used during the signature verification process to
    ensure consistency.


    ### Signature Verification Process

    To verify the authenticity of the webhook, the following steps must be
    performed:

    1. Concatenate the following components in the specified order, separated by
    periods (.):
      * The request body
      * The tenant ID from `finventi-receiver-tenant-id`
      * The timestamp from `finventi-signature-timestamp`

    Example:

    ```text

    {"trx_id":10300003,"end_to_end_id":"NOTPROVIDED","type":"Payment","direction":"OUTBOUND","amount":1,"currency":"EUR","status":"Created","updated_at":"2024-09-20T13:46:32.092083Z"}.demo1.1726839992

    ```

    2. Hash the concatenated string using the SHA-256 algorithm.

    3. Base64 decode the received finventi-signature-v header to obtain the
    signature.

    4. Verify the signature using
    [RSASSA-PKCS1-v1_5](https://datatracker.ietf.org/doc/html/rfc8017#section-8.2.2)
    with the hashed data, decoded signature, and the latest public key.


    ### Code Example (Node.js)

    ```js

    const crypto = require('crypto');


    const signatureBase64 =
    "GtZFu1uNFqOir8eDkar7+d/S+FtwQpk4mPGCuByKhJG29K1u7ynbVhkrDF8c3TqyX9wYHxpOa94FsgW2I4CnLh+B24LqL7WVSuACOL6GoSjfKeXP00NSp0ps8QYbVaJ8Ys6E4FePhp+7piAACkIP5vZ91JCLQ8lz36KRJlOnByQMTBH6j924n1GwZiZfbMojOGmMhLA0h8jWgTIeuvYPswiZXZXp0vpqJfWmdoqiU1ldoausTNFyoVwFuuzkxPv1VHvWeEeWirObUv3wNpyAnLnqomDgR7pe/9dDV0bkq5r0JkRhnbPCEFE/zzHeDgZ957hv8Oq3wJkGJarZ0NvPLw=="

    const signature = Buffer.from(signatureBase64, 'base64');


    const publicKey = `-----BEGIN PUBLIC KEY-----

    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvoc7GrFbduCeSVxFPJ3l

    a0NRa0caUqBddQAOUxuHTOuShOvdKbxRYc5u1vb9YNLJWjx4XSHESp8Q7oocqXt8

    +weBFsk/kAtJ4zjbYPY1PvAOLe+WObdxxZtfwzpwVxbtP6GQk5aUi2HbITe3EDf/

    7WEmvnAcWm++Mo6+GSh2Ky1t6o4htrx1lH2gYVg0iRHx1W9lLXjMl/5oLi1C6dtx

    TnBmXMlN/NT5YYU4lVlXQBZzS7a8ZgwosfW+v1uCimzbGcWytmmcFISjSNqkYaeg

    IXDYwKLwlsWtm975ln6UL20KcSt7ia+Lpuv7cdxJlOY95y0ds/PCw1x0HEPxU+44

    swIDAQAB

    -----END PUBLIC KEY-----`;


    const body =
    `{"trx_id":10300003,"end_to_end_id":"NOTPROVIDED","type":"Payment","direction":"OUTBOUND","amount":1,"currency":"EUR","status":"Created","updated_at":"2024-09-20T13:46:32.092083Z"}`;

    const tenantId = "demo1"

    const timestamp = "1726839992";

    const dataToVerify = Buffer.from(body + '.' + tenantId + '.' + timestamp);


    const isVerified = crypto.verify(

    "sha256",

    dataToVerify,

    {
      key: publicKey,
      padding: crypto.constants.RSA_PKCS1_PADDING,
    },

    signature

    );

    console.log("Verification successful:", isVerified);

    ```

    ## Payment status change webhook

    Payment status changes can send notifications using webhook to clients
    provided HTTP POST endpoint.


    Notifications are sent when payment/payment return status changes to one of
    the following statuses: Created, To sign, Signed, Accepted, Completed, Some
    problems, Cancelled, Rejected.


    There is retry mechanism - if an endpoint fails, the notification will be
    repeatedly sent until it is successfully delivered. During this retry
    process, all other notifications will be held back and will only be
    delivered once the initially blocked notification is successfully sent.


    Request is sent in json format.

    ### Request Body Example:

    ```json

    {
      "trx_id": 2018845,
      "end_to_end_id": "2302231660139326",
      "type": "Payment",
      "direction": "OUTBOUND",
      "amount": 10657, (CENTS)
      "currency": "EUR",
      "status": "Created",
      "updated_at": "2023-02-23 07:49:37.524808" (date&time when status was updated),
      "debtor_iban": "LT543210010000000003",
      "creditor_iban": "LT123450010000000004"
    }

    ```


    | Body parameter | Type |

    |-------------------|-------|

    | **trx_id**            | **Integer** |

    | **end_to_end_id**     | **String** |

    | **type**              | **String** classifier.<br>  Available values:
    "Payment", "Payment return", "Payment cancellation", "CSM fees", "Reverse
    payment", "Adjustment" |

    | **direction**         | **Enum**.<br>  Available values: "INBOUND",
    "OUTBOUND" |

    | **amount**            | **Integer** |

    | **currency**          | **String** classifier.<br>  Available values:
    "EUR" |

    | **status**            | **String** classifier.<br>  Available values:
    "Created", "To sign", "Signed", "Accepted", "Completed", "Some problems",
    "Cancelled", "Rejected", "Pending confirmation" |

    | **updated_at**        | **DateTime** |

    | **debtor_iban**       | **String** |

    | **creditor_iban**     | **String** |

     ## Payment cancellation status change webhook
    Payment cancellation status changes can send notifications using webhook to
    clients provided HTTP POST endpoint.


    Notifications are sent when payment cancellation status changes to one of
    the following statuses: CANCELLATION_IN_PROGRESS, CANCELLATION_ACCEPTED,
    CANCELLATION_REJECTED, CANCELLATION_COMPLETED.


    There is retry mechanism - if an endpoint fails, the notification will be
    repeatedly sent until it is successfully delivered. During this retry
    process, all other notifications will be held back and will only be
    delivered once the initially blocked notification is successfully sent.


    Request is sent in json format.

    ### Request Body Example:

    ```json

    {
      "cancellationId": 102,
      "trxId": "2018845",
      "direction": "OUTBOUND",
      "reason": "CUST",
      "status": "CANCELLATION_IN_PROGRESS",
    }

    ```


    | Body parameter | Type |

    |-------------------|-------|

    | **cancellationId**    | **Integer** |

    | **trxId**            | **Integer** |

    | **direction**         | **Enum**.<br>  Available values: "INBOUND",
    "OUTBOUND" |

    | **reason**            | **Enum**.<br>  Available values: "DUPL", "CUST",
    "FRAD", "TECH", "AC03", "AM09", "AGNT", "COVR", "CURR", "CUTA", "DS24",
    "FRNA", "FRTR", "INDM", "SYAD", "UPAY","AC01", "AC04", "AC06", "AC13",
    "AG01", "AG02", "AM01", "AM04", "AM05", "CNOR", "DNOR", "MD01", "MD02",
    "MD07", "MS02", "MS03", "RC01", "RR01", "RR02", "RR04", "SL01", "BE05",
    "FF01", "DT01", "ED05", "PY01" |

    | **status**            | **Enum**.<br>  Available values:
    "CANCELLATION_CREATED", "CANCELLATION_IN_PROGRESS", "RETURNING", "REFUSING",
    "PAYMENT_RETURNED", "CANCELLATION_REFUSED", "PROCESSING_FAILED",
    "CANCELLATION_COMPLETED", "CANCELLATION_REJECTED", "CANCELLATION_ACCEPTED" |


    ### Cancellation request processing statuses

    The table below standardises how you track SEPA cancellation requests from
    start to finish. Each status maps to specific inbound/outbound ISO-20022
    messages, giving you clear, machine-readable checkpoints for monitoring and
    automating your cancellation workflow.


    | Status name | Description |

    | ----------- | ---------------- |

    | CANCELLATION_CREATED | Cancellation request successfully created and
    validated by the Payment Gateway system. |

    | CANCELLATION_IN_PROGRESS | The camt.056 payment cancellation request is
    received from the clearing system and waiting for the User activities. Can
    be accepted and payment will be returned or rejected. |

    | RETURNING | User decides to return the funds. The pacs.004 payment return
    message is sent to the initiator of the payment cancellation request. The
    intermediary cancellation request status, which doesn't allow to execute any
    actions until the final status of the payment return will be set. |

    | REFUSING | User rejects to return the funds. The camt.029 resolution of
    investigation message is sent to the initiator of the payment cancellation
    request. The intermediary cancellation request status, which doesn't allow
    to execute any actions until the final status of the resolution of
    investigation will be set. |

    | PAYMENT_RETURNED | Incoming cancellation: The pacs.004 payment return
    message successfully delivered to the beneficiary bank. This is the final
    processing status, which doest allow to perform any actions with the
    cancellation request. <br> Outgoing cancellation: The payment return
    pacs.004 message, following the sent cancellation request is received from
    the clearing system. The transaction based  on the payment return message is
    successfully created in system, its data linked with the respective
    cancellation request and the original outbound payment. |

    | CANCELLATION_REFUSED | Incoming cancellation: The camt.029 resolution of
    investigation message successfully delivered to the beneficiary bank. This
    is the final processing status, which doest allow to perform any actions
    with the cancellation request. <br> Outgoing cancellation: The resolution of
    investigation camt.029 message, following the sent cancellation request is
    received from the clearing system. The payment return refusal data are
    indicated for the related cancellation request. |

    | PROCESSING_FAILED | The state which indicates that there was an error
    during processing of the response for the cancellation request message. This
    state allows to reprocess the cancellation request after the errors will be
    eliminated. |

    | CANCELLATION_COMPLETED | Incoming cancellation: The payment return
    transaction completed successfully. If failed, the status will be changed to
    the CANCELLATION_IN_PROGRESS and it is possible to reprocess the
    cancellation request. <br> Outgoing cancellation: The pacs.004 payment
    return message following cancellation request is received from the clearing
    system. |

    | CANCELLATION_REJECTED | The payment cancellation request camt.056 message
    was rejected by the clearing system due to errors. The state allows to
    initiated additional cancellation request after the errors will be
    eliminated. |

    | CANCELLATION_ACCEPTED | The payment cancellation request camt.056 message
    successfully delivered to the beneficiary bank. |


    # External code sets
      ## Private identification codes

      | Identification code | Definition |
      |-------------------|-------|
      | **ARNU**    | **Number assigned by a social security agency to identify a non-resident person.** |
      | **CCPT**    | **Number assigned by an authority to identify the passport number of a person.** |
      | **CUST**    | **Number assigned by an issuer to identify a customer.** |
      | **DRLC**    | **Number assigned by an authority to identify a driver's license.** |
      | **EMPL**    | **Number assigned by a registration authority to an employee.** |
      | **NIDN**    | **Number assigned by an authority to identify the national identity number of a person.** |
      | **SOSE**    | **Number assigned by an authority to identify the social security number of a person.** |
      | **TXID**    | **Number assigned by a tax authority to identify a person.** |

      ## Organisation identification codes

      | Identification code | Definition |
      |-------------------|-------|
      | **BANK**    | **Unique and unambiguous assignment made by a specific bank or similar financial institution to identify a relationship as defined between the bank and its client.** |
      | **CBID**    | **A unique identification number assigned by a central bank to identify an organisation.** |
      | **CHID**    | **A unique identification number assigned by a clearing house to identify an organisation.** |
      | **CINC**    | **A unique identification number assigned by a designated authority to a certificate of incorporation and used to identify an organisation.** |
      | **COID**    | **Country authority given organisation identification (e.g., corporate registration number).** |
      | **CUST**    | **Number assigned by an issuer to identify a customer. Number assigned by a party to identify a creditor or debtor relationship.** |
      | **DUNS**    | **A unique identification number provided by Dun & Bradstreet to identify an organisation.** |
      | **EMPL**    | **Number assigned by a registration authority to an employer.** |
      | **GS1G**    | **Global Location Number. A non-significant reference number used to identify legal entities, functional entities, or physical entities according to GS1 numbering scheme rules.The number is used to retrieve detailed information that is linked to it.** |
      | **SREN**    | **The SIREN number is a 9 digit code assigned by INSEE, the French National Institute for Statistics and Economic Studies, to identify an organisation in France.** |
      | **SRET**    | **The SIRET number is a 14 digit code assigned by INSEE, the French National Institute for Statistics and Economic Studies, to identify an organisation unit in France. It consists of the SIREN number, followed by a five digit classification number, to identify the local geographical unit of that entity.** |
      | **TXID**    | **Number assigned by a tax authority to identify an organisation.** |
  title: SEPA Payment Gateway
  version: '1.0'
servers:
  - description: Payment Platform sandbox environment
    url: https://api.pgw-sandbox.finventi.com
security: []
tags:
  - description: >-
      Manage payment investigations. Supports two types: Claim Non-Receipt
      (camt.027) for outbound SEPA CT payments, and Payment Status Request
      (pacs.028) for outbound SEPA INST payments. Inbound investigations
      received from counterparties can be searched, viewed, and resolved via
      :resolve API (camt.029).
    name: Investigations
paths:
  /v2/transactions/swift:
    post:
      tags:
        - SWIFT Payment Transfer
      summary: Create Swift payment
      description: Creates a payment and sends it to CSM.
      operationId: createSwiftPayment
      parameters:
        - description: >-
            Unique identifier in scope of payment creation endpoints required to
            prevent unintended duplicate payments
          in: header
          name: Idempotency-Key
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSwiftPaymentRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateSwiftPaymentResponse'
          description: A new SWIFT payment has been created
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Tenant does not have an access to the resource
components:
  schemas:
    CreateSwiftPaymentRequest:
      default:
        amount: 1050299
        charges:
          agentBic: CHRGBICXXXX
          amount: 2550
          bearer: DEBT
          currency: EUR
        clearingChannel: RTGS
        creditor:
          agentBic: INVELT2XXXX
          name: Creditor Company Incorporated
          otherAccount:
            id: '9876543210'
            issuer: DEUTDEFF
            scheme: BBAN
        currency: EUR
        debtor:
          iban: LT121000011101001000
          name: Debtor Company Limited
        endToEndId: TXN123456789012345
        priority: HIGH
        remittance: 'Payment for invoice #INV-2025-001234'
        serviceLevel: URGP
        settlement:
          bic: DEUTDEFFXXX
          date: '2025-07-04'
          iban: GB29NWBK60161331926819
          method: INDA
      description: SWIFT payment request for creating cross-border payments
      properties:
        amount:
          description: Transaction amount in minor currency units
          example: 10102
          type: integer
        categoryPurposeCode:
          description: >-
            Category purpose code. Indicates the high-level purpose of the
            payment at a business level
                  for accounting inside the payer/beneficiary company and for interbank and regulatory interpretation.
                  Mutually exclusive with categoryPurposeProprietary.
          enum:
            - BONU
            - CASH
            - CBLK
            - CCRD
            - CORT
            - DCRD
            - DIVI
            - DVPM
            - EPAY
            - FCIN
            - FCOL
            - GOVT
            - HEDG
            - ICCP
            - IDCP
            - INTC
            - INTE
            - LOAN
            - MP2B
            - MP2P
            - OTHR
            - PENS
            - RPRE
            - RRCT
            - RVPM
            - SALA
            - SECU
            - SSBE
            - SUPP
            - TAXS
            - TRAD
            - TREA
            - VATX
            - WHLD
          type: string
        categoryPurposeProprietary:
          description: >-
            Category purpose proprietary value. Free text alternative to
            categoryPurposeCode for non-standard
                  category purposes. Mutually exclusive with categoryPurposeCode. Must contain at least one non-whitespace character.
                  Maximum length is 35 characters.
          maxLength: 35
          pattern: (\s*[^\s]\s*)+
          type: string
        charges:
          $ref: '#/components/schemas/Charges'
          description: Charge information (optional)
        clearingChannel:
          description: >-
            Clearing channel: BOOK (book transfer), MPNS (mass payment net
            system), RTGS (real-time gross settlement), RTNS (real-time net
            settlement) (optional)
          enum:
            - BOOK
            - MPNS
            - RTGS
            - RTNS
          type: string
        creditor:
          $ref: '#/components/schemas/Creditor'
          description: Creditor (beneficiary) information
        currency:
          description: >-
            Currency code (ISO 4217, 3-letter uppercase). Must have 0, 1 or 2
            fraction digits.
                  Unsupported: codes with no defined minor unit (XAU, XAG, XPT, XPD, XDR, XSU, XUA, XTS, XXX, XBA, XBB, XBC, XBD, XFO, XFU)
                  and codes with more than 2 fraction digits (BHD, IQD, JOD, KWD, LYD, OMR, TND, CLF) due to storage precision limits.
          example: EUR
          minLength: 1
          pattern: ^[A-Z]{3}$
          type: string
        debtor:
          $ref: '#/components/schemas/Debtor'
          description: Debtor (payer) information
        endToEndId:
          description: >-
            End-to-end identification assigned by the initiating party
            (optional, defaults to NOTPROVIDED if not provided)
          maxLength: 35
          minLength: 1
          pattern: ^[0-9a-zA-Z/\-?:().,'+\s]+$
          type: string
        priority:
          description: 'Instruction priority: NORM (normal), HIGH (high)'
          enum:
            - NORM
            - HIGH
          type: string
        purposeCode:
          description: |-
            Category purpose code. Allowed values:
                  'ADVA' - Advance payment, 'TAXS' - Tax payment, \
                  'CSDB' - Cash Disbursement/Cash Management, \
                  'GDSV' - Purchase Sale Of Goods And Services, 'GSCB' - Purchase Sale Of Goods And Services With Cash Back, \
                  'COMP' - Compensation Payment, 'FEES' - Payment Of Fees, 'ICCP' - Irrevocable Credit Card Payment, \
                  'IDCP' - Irrevocable Debit Card Payment, 'REFU' - Refund, 'RRCT' - Reimbursement Received Credit Transfer, \
                  'RRTP' - Related Request To Pay, 'GVEA' - Austrian Government Employees Category A, \
                  'GVEB' - Austrian Government Employees Category B, 'GVEC' - Austrian Government Employees Category C, \
                  'GVED' - Austrian Government Employees Category D
          enum:
            - ADVA
            - TAXS
            - CSDB
            - GDSV
            - GSCB
            - COMP
            - FEES
            - ICCP
            - IDCP
            - REFU
            - RRCT
            - RRTP
            - GVEA
            - GVEB
            - GVEC
            - GVED
          maxLength: 4
          minLength: 1
          type: string
        remittance:
          description: Unstructured remittance information (payment details)
          maxLength: 140
          type: string
        serviceLevel:
          description: >-
            Service level code: BKTR (book transfer), NUGP (non-urgent
            priority), NURG (non-urgent), SDVA (same day value), URGP (urgent
            payment), URNS (urgent net settlement) (optional)
          enum:
            - BKTR
            - NUGP
            - NURG
            - SDVA
            - URGP
            - URNS
          type: string
        settlement:
          $ref: '#/components/schemas/Settlement'
          description: Settlement information
      required:
        - amount
        - creditor
        - currency
        - debtor
        - priority
        - settlement
      type: object
    CreateSwiftPaymentResponse:
      description: SWIFT payment creation response
      properties:
        amount:
          description: Transaction amount in minor currency units
          type: integer
        createdAt:
          description: Transaction creation timestamp
          format: date-time
          type: string
        creditor:
          $ref: '#/components/schemas/CreditorResponse'
          description: Creditor information
        currency:
          description: Currency code
          type: string
        debtor:
          $ref: '#/components/schemas/DebtorResponse'
          description: Debtor information
        endToEndId:
          description: End-to-end identification
          type: string
        method:
          description: Transaction method (always SWIFT)
          enum:
            - SEPA
            - INST
            - SDD
            - SWIFT
            - T2
          type: string
        remittance:
          description: Remittance information
          type: string
        settlementDate:
          description: Settlement date
          format: date
          type: string
        status:
          description: Transaction status
          type: string
        transactionId:
          description: Unique transaction identifier
          format: int64
          type: integer
      required:
        - amount
        - createdAt
        - creditor
        - currency
        - debtor
        - endToEndId
        - method
        - settlementDate
        - status
        - transactionId
      type: object
    ErrorResponse:
      description: Error response
      properties:
        code:
          description: Code of error
          type: string
        data:
          $ref: '#/components/schemas/ErrorResponseData'
          description: 'Error data '
        message:
          description: Error message
          type: string
      required:
        - code
      type: object
    Charges:
      description: Charge information
      properties:
        agentBic:
          description: Charge agent BIC. Required when charge amount is provided.
          type: string
        agentClearingSystemIdentificationCode:
          description: >-
            Clearing system identification code for charge agent
            (ExternalClearingSystemIdentification1Code). Must be provided
            together with agentMemberIdentification.
          maxLength: 35
          minLength: 1
          type: string
        agentMemberIdentification:
          description: >-
            Clearing system member identification for charge agent. Must be
            provided together with agentClearingSystemIdentificationCode.
          maxLength: 35
          minLength: 1
          type: string
        amount:
          description: Charge amount in minor currency units
          example: 101
          format: int64
          type: integer
        bearer:
          default: SHAR
          description: >-
            Charge bearer: DEBT, CRED (mandatory if charges present), SHAR
            (default). Required when charge amount is provided. Must be CRED or
            DEBT when amount is specified.
          enum:
            - CRED
            - DEBT
            - SHAR
            - SLEV
          type: string
        currency:
          description: >-
            Charge currency code (ISO 4217, 3-letter uppercase). Required when
            charge amount is provided.
                  Same currency-support constraints as the top-level payment currency.
          example: EUR
          pattern: ^[A-Z]{3}$
          type: string
      type: object
    Creditor:
      description: Creditor information
      properties:
        address:
          $ref: '#/components/schemas/Address'
        agentAddress:
          $ref: '#/components/schemas/Address'
        agentBic:
          description: >-
            Creditor agent (bank) BIC. Optional — when not provided, will be
            resolved from IBAN. Required when IBAN is not provided or BIC
            resolution fails.
          type: string
        clearingSystemMemberId:
          $ref: '#/components/schemas/ClearingSystemMemberId'
          description: >-
            Clearing system member identification for creditor agent routing
            (e.g., ABA routing number, Sort Code)
        iban:
          description: >-
            Creditor IBAN. Mutually exclusive with otherAccount. Exactly one
            must be provided.
          type: string
        name:
          description: Creditor name
          maxLength: 140
          minLength: 1
          type: string
        organisationIdentification:
          $ref: '#/components/schemas/OrganisationIdentificationRequest'
          description: >-
            Unique and unambiguous way to identify an organisation. Mutually
            exclusive with privateIdentification.
        otherAccount:
          $ref: '#/components/schemas/OtherAccount'
        privateIdentification:
          $ref: '#/components/schemas/PrivateIdentificationRequest'
          description: >-
            Unique and unambiguous identification of a person. Mutually
            exclusive with organisationIdentification.
      required:
        - address
        - name
      type: object
    Debtor:
      description: Debtor information
      properties:
        accountCurrency:
          description: Debtor account currency code (ISO 4217, 3-letter uppercase)
          example: USD
          pattern: ^[A-Z]{3}$
          type: string
        accountName:
          description: Debtor account name
          maxLength: 70
          minLength: 1
          type: string
        address:
          $ref: '#/components/schemas/Address'
        iban:
          description: >-
            Debtor IBAN. Mutually exclusive with otherAccount. Exactly one must
            be provided.
          type: string
        name:
          description: Debtor name
          maxLength: 140
          minLength: 1
          type: string
        organisationIdentification:
          $ref: '#/components/schemas/DebtorOrganisationIdentificationRequest'
          description: >-
            Unique and unambiguous way to identify an organisation. Mutually
            exclusive with privateIdentification.
        otherAccount:
          $ref: '#/components/schemas/OtherAccount'
        privateIdentification:
          $ref: '#/components/schemas/DebtorPrivateIdentificationRequest'
          description: >-
            Unique and unambiguous identification of a person. Mutually
            exclusive with organisationIdentification.
      required:
        - address
        - name
      type: object
    Settlement:
      description: Settlement information
      properties:
        accountCurrency:
          description: Settlement account currency code (ISO 4217, 3-letter uppercase)
          example: EUR
          pattern: ^[A-Z]{3}$
          type: string
        bic:
          description: >-
            Receiver's BIC code (To institution). Optional, resolved if not
            provided
          type: string
        date:
          description: Settlement date - will be recalculated according to SWIFT algorithm
          format: date
          type: string
        iban:
          description: >-
            Settlement account IBAN. Mutually exclusive with otherAccount.
            Exactly one must be provided.
          type: string
        method:
          default: INDA
          description: >-
            Settlement method: INDA (instructing agent), INGA (instructed
            agent). Defaults to INDA if not provided
          enum:
            - INDA
            - INGA
          type: string
        otherAccount:
          $ref: '#/components/schemas/OtherAccount'
        priority:
          default: NORM
          description: >-
            Settlement priority: URGT (urgent), HIGH (high), NORM (normal).
            Defaults to NORM if not provided.
          enum:
            - URGT
            - HIGH
            - NORM
          type: string
      required:
        - date
        - method
      type: object
    CreditorResponse:
      description: Creditor response
      properties:
        agentBic:
          description: Creditor agent BIC
          type: string
        clearingSystemMemberId:
          $ref: '#/components/schemas/ClearingSystemMemberIdResponse'
          description: Clearing system member identification for creditor agent routing
        company:
          $ref: '#/components/schemas/OrganisationIdentificationResponse'
          description: Organisation identification
        iban:
          description: Creditor IBAN. Mutually exclusive with otherAccount.
          type: string
        name:
          description: Creditor name. Conditionally present for SWIFT scheme method.
          type: string
        otherAccount:
          $ref: '#/components/schemas/OtherAccountResponse'
          description: Other account identification. Mutually exclusive with IBAN.
        person:
          $ref: '#/components/schemas/PersonIdentificationResponse'
          description: Private person identification
      type: object
    DebtorResponse:
      description: Debtor response
      properties:
        agentBic:
          description: Debtor agent BIC
          type: string
        company:
          $ref: '#/components/schemas/OrganisationIdentificationResponse'
          description: Organisation identification
        iban:
          description: Debtor IBAN. Mutually exclusive with otherAccount.
          type: string
        name:
          description: Debtor name. Conditionally present for SWIFT scheme method.
          type: string
        otherAccount:
          $ref: '#/components/schemas/OtherAccountResponse'
          description: Other account identification. Mutually exclusive with IBAN.
        person:
          $ref: '#/components/schemas/PersonIdentificationResponse'
          description: Private person identification
      type: object
    ErrorResponseData:
      description: Error wrapper containing all occurred errors
      properties:
        errors:
          description: All occurred errors
          items:
            $ref: '#/components/schemas/ErrorResponseViolation'
          type: array
        message:
          description: Generic message for occurred errors
          type: string
      required:
        - errors
      type: object
    Address:
      description: Structured postal address
      properties:
        buildingName:
          description: Name of the building or house.
          maxLength: 35
          minLength: 1
          type: string
        buildingNumber:
          description: Number that identifies the position of a building on a street.
          maxLength: 16
          minLength: 1
          type: string
        country:
          description: ISO 3166-1 alpha-2 country code.
          maxLength: 2
          minLength: 1
          pattern: ^[A-Z]{2}$
          type: string
        countrySubDivision:
          description: >-
            Identifies a subdivision of a country, for instance state, region,
            county.
          maxLength: 35
          minLength: 1
          type: string
        department:
          description: Identification of a division of a large organisation or building.
          maxLength: 70
          minLength: 1
          type: string
        districtName:
          description: Identifies a subdivision of a country such as state, region, county.
          maxLength: 35
          minLength: 1
          type: string
        floor:
          description: Floor or storey within a building.
          maxLength: 70
          minLength: 1
          type: string
        postBox:
          description: Numbered box in a post office, assigned to a person or organisation.
          maxLength: 16
          minLength: 1
          type: string
        postCode:
          description: >-
            Identifier consisting of a group of letters and/or numbers added to
            a postal address to assist mail sorting.
          maxLength: 16
          minLength: 1
          type: string
        room:
          description: Building room number.
          maxLength: 70
          minLength: 1
          type: string
        streetName:
          description: Name of a street or thoroughfare.
          maxLength: 70
          minLength: 1
          type: string
        subDepartment:
          description: >-
            Identification of a sub-division of a large organisation or
            building.
          maxLength: 70
          minLength: 1
          type: string
        townLocationName:
          description: Specific location name within the town.
          maxLength: 35
          minLength: 1
          type: string
        townName:
          description: >-
            Name of a built-up area, with defined boundaries, and a local
            government.
          maxLength: 35
          minLength: 1
          type: string
      required:
        - country
        - townName
      type: object
    ClearingSystemMemberId:
      description: Clearing system member identification for routing payments
      properties:
        clearingSystemIdentificationCode:
          description: >-
            Clearing system identification code
            (ExternalClearingSystemIdentification1Code)
          enum:
            - AD
            - AE
            - AF
            - AI
            - AL
            - AM
            - AO
            - AR
            - AS
            - ATBLZ
            - AUBSB
            - AW
            - AZ
            - BA
            - BD
            - BG
            - BH
            - BI
            - BL
            - BM
            - BN
            - BO
            - BRISP
            - BS
            - BT
            - BW
            - BY
            - BZ
            - CACPA
            - CD
            - CEAAC
            - CEAPA
            - CHBCC
            - CHSIC
            - CL
            - CNAPS
            - CNCIP
            - CO
            - CR
            - CV
            - CW
            - CY
            - CZ
            - DEBLZ
            - DO
            - DZ
            - EC
            - EE
            - EGNCC
            - ESNCC
            - GBDSC
            - GE
            - GH
            - GN
            - GRBIC
            - GT
            - GY
            - HKNCC
            - HN
            - HR
            - HT
            - HU
            - ID
            - IENCC
            - IL
            - INFSC
            - IQ
            - IS
            - ITNCC
            - JM
            - JO
            - JPZGN
            - KE
            - KG
            - KH
            - KM
            - KRBOK
            - KW
            - KZ
            - LB
            - LK
            - LR
            - LS
            - LT
            - LV
            - LY
            - MA
            - MARAC
            - MARPA
            - MD
            - ME
            - MG
            - MK
            - MN
            - MO
            - MR
            - MT
            - MU
            - MW
            - MX
            - MY
            - MZBMO
            - NACSC
            - NG
            - NI
            - NP
            - NZNCC
            - NZRSA
            - OM
            - PA
            - PE
            - PG
            - PH
            - PK
            - PLKNR
            - PS
            - PTNCC
            - PY
            - QA
            - RO
            - RS
            - RSDAC
            - RSDPA
            - RSEAC
            - RSEPA
            - RUCBC
            - RW
            - SA
            - SC
            - SD
            - SESBA
            - SGIBG
            - SI
            - SK
            - SL
            - ST
            - SV
            - SZ
            - THCBC
            - TJ
            - TL
            - TM
            - TN
            - TR
            - TT
            - TWNCC
            - TZ
            - UA
            - UG
            - USABA
            - USPID
            - UY
            - UZ
            - VA
            - VE
            - VN
            - XK
            - ZANCC
            - ZM
            - ZWTSS
          type: string
        memberIdentification:
          description: Member identification within the clearing system
          maxLength: 35
          minLength: 1
          type: string
      required:
        - clearingSystemIdentificationCode
        - memberIdentification
      type: object
    OrganisationIdentificationRequest:
      description: Organisation identification
      properties:
        bic:
          description: Business identification code of the organisation.
          type: string
        lei:
          description: >-
            Legal entity identification as an alternate identification for a
            party.
          type: string
        otherIdentification:
          $ref: '#/components/schemas/OrganisationOtherIdentificationRequest'
          description: >-
            Unique identification of an organisation, as assigned by an
            institution, using an identification scheme.
      type: object
    OtherAccount:
      description: >-
        Other account identification. Mutually exclusive with iban. Exactly one
        must be provided.
      properties:
        id:
          description: Account identifier
          maxLength: 34
          minLength: 1
          type: string
        issuer:
          description: Issuer of the account identification
          maxLength: 35
          minLength: 1
          type: string
        scheme:
          description: Scheme name code (e.g., BBAN)
          maxLength: 35
          minLength: 1
          type: string
      required:
        - id
      type: object
    PrivateIdentificationRequest:
      description: Private (person) identification
      properties:
        birthInformation:
          $ref: '#/components/schemas/BirthInformationRequest'
          description: Date and place of birth of a person.
        otherIdentification:
          $ref: '#/components/schemas/PrivateOtherIdentificationRequest'
          description: >-
            Unique identification of a person, as assigned by an institution,
            using an identification scheme.
      type: object
    DebtorOrganisationIdentificationRequest:
      description: Debtor organisation identification
      properties:
        bic:
          description: Business identification code of the organisation.
          type: string
        lei:
          description: >-
            Legal entity identification as an alternate identification for a
            party.
          type: string
        otherIdentification:
          $ref: '#/components/schemas/DebtorOrganisationOtherIdentificationRequest'
          description: >-
            Unique identification of an organisation, as assigned by an
            institution, using an identification scheme.
      type: object
    DebtorPrivateIdentificationRequest:
      description: Debtor private (person) identification
      properties:
        birthInformation:
          $ref: '#/components/schemas/BirthInformationRequest'
          description: Date and place of birth of a person.
        otherIdentification:
          $ref: '#/components/schemas/DebtorPrivateOtherIdentificationRequest'
          description: >-
            Unique identification of a person, as assigned by an institution,
            using an identification scheme.
      type: object
    ClearingSystemMemberIdResponse:
      description: Clearing system member identification
      properties:
        clearingSystemIdentificationCode:
          description: >-
            Clearing system identification code
            (ExternalClearingSystemIdentification1Code)
          type: string
        memberIdentification:
          description: Member identification within the clearing system
          type: string
      required:
        - clearingSystemIdentificationCode
        - memberIdentification
      type: object
    OrganisationIdentificationResponse:
      description: Organisation identification
      properties:
        bic:
          description: Business identification code
          type: string
        id:
          description: Other identification
          type: string
        issuer:
          description: Issuer of the identification
          type: string
        lei:
          description: Legal entity identifier
          type: string
        scheme:
          $ref: '#/components/schemas/SchemeResponse'
          description: Identification scheme
      type: object
    OtherAccountResponse:
      description: Other account identification
      properties:
        id:
          description: Account identifier
          type: string
        issuer:
          description: Issuer of the account identification
          type: string
        scheme:
          description: Scheme name code (e.g., BBAN)
          type: string
      required:
        - id
      type: object
    PersonIdentificationResponse:
      description: Private person identification
      properties:
        birthInfo:
          $ref: '#/components/schemas/BirthInfoResponse'
          description: Date and place of birth
        id:
          description: Other identification
          type: string
        issuer:
          description: Issuer of the identification
          type: string
        scheme:
          $ref: '#/components/schemas/SchemeResponse'
          description: Identification scheme
      type: object
    ErrorResponseViolation:
      description: Single error wrapper
      properties:
        code:
          description: Error code
          type: string
        field_name:
          description: Field name which failed
          type: string
        message:
          description: Error message
          type: string
        value:
          description: Value which was invalid
          type: string
      type: object
    OrganisationOtherIdentificationRequest:
      description: Other identification scheme for organisation
      properties:
        id:
          description: Unique and unambiguous identification.
          maxLength: 35
          minLength: 1
          type: string
        issuer:
          description: Entity that assigns the identification.
          maxLength: 35
          minLength: 1
          type: string
        scheme:
          $ref: '#/components/schemas/OrganisationSchemeRequest'
          description: Name of the identification scheme.
      required:
        - id
        - scheme
      type: object
    BirthInformationRequest:
      description: Date and place of birth information
      properties:
        city:
          description: City where a person was born.
          maxLength: 35
          minLength: 1
          type: string
        country:
          description: Country where a person was born (ISO 3166-1 alpha-2).
          type: string
        date:
          description: Date on which a person is born.
          format: date
          type: string
        province:
          description: Province where a person was born.
          maxLength: 35
          minLength: 1
          type: string
      required:
        - city
        - country
        - date
      type: object
    PrivateOtherIdentificationRequest:
      description: Other identification scheme for private person
      properties:
        id:
          description: Unique and unambiguous identification.
          maxLength: 35
          minLength: 1
          type: string
        issuer:
          description: Entity that assigns the identification.
          maxLength: 35
          minLength: 1
          type: string
        scheme:
          $ref: '#/components/schemas/PrivateSchemeRequest'
          description: Name of the identification scheme.
      required:
        - id
        - scheme
      type: object
    DebtorOrganisationOtherIdentificationRequest:
      description: Other identification scheme for debtor organisation
      properties:
        id:
          description: Unique and unambiguous identification.
          maxLength: 35
          minLength: 1
          type: string
        issuer:
          description: Entity that assigns the identification.
          maxLength: 35
          minLength: 1
          type: string
        scheme:
          $ref: '#/components/schemas/DebtorOrganisationSchemeRequest'
          description: Name of the identification scheme.
      required:
        - id
        - scheme
      type: object
    DebtorPrivateOtherIdentificationRequest:
      description: Other identification scheme for debtor private person
      properties:
        id:
          description: Unique and unambiguous identification.
          maxLength: 35
          minLength: 1
          type: string
        issuer:
          description: Entity that assigns the identification.
          maxLength: 35
          minLength: 1
          type: string
        scheme:
          $ref: '#/components/schemas/DebtorPrivateSchemeRequest'
          description: Name of the identification scheme.
      required:
        - id
        - scheme
      type: object
    SchemeResponse:
      description: Identification scheme
      properties:
        code:
          description: Scheme code
          type: string
        proprietary:
          description: Proprietary scheme name
          type: string
      type: object
    BirthInfoResponse:
      description: Birth information
      properties:
        city:
          description: City of birth
          type: string
        country:
          description: Country of birth
          type: string
        date:
          description: Date of birth
          format: date
          type: string
        province:
          description: Province of birth
          type: string
      type: object
    OrganisationSchemeRequest:
      description: Code or proprietary identification scheme name for organisation
      properties:
        code:
          description: Name of the identification scheme, in a coded form.
          enum:
            - BANK
            - BDID
            - BOID
            - CBID
            - CHID
            - CINC
            - COID
            - CUST
            - DUNS
            - EMPL
            - GS1G
            - SREN
            - SRET
            - TXID
          type: string
        proprietary:
          description: Name of the identification scheme, in a free text form.
          maxLength: 35
          minLength: 1
          type: string
      type: object
    PrivateSchemeRequest:
      description: Code or proprietary identification scheme name for private person
      properties:
        code:
          description: Name of the identification scheme, in a coded form.
          enum:
            - ARNU
            - BANK
            - CCPT
            - CUST
            - DRLC
            - EMPL
            - NIDN
            - POID
            - SOSE
            - TELE
            - TXID
          type: string
        proprietary:
          description: Name of the identification scheme, in a free text form.
          maxLength: 35
          minLength: 1
          type: string
      type: object
    DebtorOrganisationSchemeRequest:
      description: Identification scheme name for debtor organisation
      properties:
        code:
          description: Name of the identification scheme, in a coded form.
          enum:
            - BANK
            - BDID
            - BOID
            - CBID
            - CHID
            - CINC
            - COID
            - CUST
            - DUNS
            - EMPL
            - GS1G
            - SREN
            - SRET
            - TXID
          type: string
      required:
        - code
      type: object
    DebtorPrivateSchemeRequest:
      description: Identification scheme name for debtor private person
      properties:
        code:
          description: Name of the identification scheme, in a coded form.
          enum:
            - ARNU
            - BANK
            - CCPT
            - CUST
            - DRLC
            - EMPL
            - NIDN
            - POID
            - SOSE
            - TELE
            - TXID
          type: string
      required:
        - code
      type: object

````