> ## 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 SEPA payment

> Creates a SEPA Credit Transfer or SEPA Instant payment and submits it to the clearing system.

Set `instant` to `true` for a SEPA Instant payment. Omit it or set it to `false` for a SEPA Credit Transfer.

## Idempotency

Send a UUID v4 in the `Idempotency-Key` header. If you need to retry the request, reuse the same key. The API returns the original payment instead of creating a duplicate.

## Remittance information

Send either `purpose` for unstructured remittance information or `structuredReference` for a structured creditor reference. Do not send both fields in the same request. The API returns `400 Bad Request` when both are present.

## Financial category purposes

When you set `categoryPurposeCode` to `FCIN`, `FCOL`, or `INTE`:

* Set `structuredReference.reference`.
* Set `debtor.organisationIdentification.bic` and `creditor.organisationIdentification.bic`.
* Omit `purpose`, `ultimateDebtor`, and `ultimateCreditor`.

The API returns `400 Bad Request` when these requirements are not met.

## Address formats

You can omit an address. When you provide one, include `country` and `town`, then choose one of these formats:

* **Fully structured:** Set `structured` and omit `line`.
* **Hybrid:** Set one `line` and omit `structured`.

EPC SR2026 requires structured or hybrid addresses from November 15, 2026. It no longer permits fully unstructured addresses, so PGW rejects an address without `country` or `town` and rejects requests containing both `line` and `structured`.

### Fully structured address

```json theme={null}
{
  "instant": false,
  "amount": 12550,
  "currencyCode": "EUR",
  "debtor": {
    "name": "Payer Ltd",
    "account": { "iban": "LT961010012345678901" },
    "address": {
      "country": "LT",
      "town": "Vilnius",
      "structured": {
        "street": "Upes g.",
        "buildingNumber": "5",
        "buildingName": "Quadrum North",
        "postCode": "08303",
        "countrySubDivision": "Vilniaus apskritis"
      }
    }
  },
  "creditor": {
    "name": "Recipient Ltd",
    "account": { "iban": "LT123450010000000004" }
  }
}
```

### Hybrid address

```json theme={null}
{
  "instant": true,
  "amount": 10657,
  "currencyCode": "EUR",
  "debtor": {
    "name": "Sender Name",
    "account": { "iban": "LT543210010000000003" }
  },
  "creditor": {
    "name": "Janis Berzins",
    "account": { "iban": "LV06PERF0000000000001" },
    "address": {
      "country": "LV",
      "town": "Riga",
      "line": "Brivibas iela 1-2, LV-1010"
    }
  }
}
```

The API accepts one hybrid `line` of up to 140 characters and preserves it as one line in the payment resource. In the outgoing clearing message, PGW splits it into at most two lines of 70 characters each.

## Migrate from v0

Replace `POST /gateway/createSepaPmt` with `POST /v3/payments/sepa` and map the request as follows:

| Legacy `createSepaPmt` field                                                       | v3 field                                                                                                                                              |
| ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| `inst: true`                                                                       | `instant: true`                                                                                                                                       |
| `dr_amount` / `cr_amount` pair                                                     | `amount`                                                                                                                                              |
| `dr_ccy_isocode` / `cr_ccy_isocode`                                                | Single `currencyCode`                                                                                                                                 |
| `dr_acc`                                                                           | `debtor.account.iban`                                                                                                                                 |
| `dr_name`                                                                          | `debtor.name`                                                                                                                                         |
| `dr_bank_bic`                                                                      | `debtor.agent.bic`                                                                                                                                    |
| `dr_address`                                                                       | `debtor.address.line` (hybrid, maximum 140 characters) or `debtor.address.structured.*`                                                               |
| `dr_address_city` / `dr_address_country`                                           | `debtor.address.town` / `debtor.address.country`                                                                                                      |
| `dr_code_person` + `dr_code_issuer`                                                | `debtor.privateIdentification.otherIdentifications[0]`                                                                                                |
| `dr_code_company` + `dr_code_issuer`                                               | `debtor.organisationIdentification.otherIdentifications[0]`                                                                                           |
| `dr_alt_code_company` + `dr_alt_code_company_issuer`                               | `debtor.organisationIdentification.otherIdentifications[1]` (stored and returned by PGW, but not forwarded to clearing, matching legacy behavior)     |
| `dr_bic_company`                                                                   | `debtor.organisationIdentification.bic`                                                                                                               |
| `cr_*` (same set)                                                                  | `creditor.*`, with the same mapping as `dr_*` to `debtor.*`                                                                                           |
| `trx_purpose`                                                                      | `purpose`                                                                                                                                             |
| `trx_purpose_information`                                                          | `purposeCode`                                                                                                                                         |
| `trx_purpose_structured_ref` / `trx_purpose_structured_issuer`                     | `structuredReference.reference` / `structuredReference.issuer`                                                                                        |
| `ctgy_purp_cd`                                                                     | `categoryPurposeCode`                                                                                                                                 |
| `ctgy_purp_prtry`                                                                  | `categoryPurposeProprietary`                                                                                                                          |
| `end_to_end_id`                                                                    | `endToEndId`                                                                                                                                          |
| `trx_settlement_date`                                                              | `settlementDate`                                                                                                                                      |
| `metadata`                                                                         | `metadata`                                                                                                                                            |
| `udr_name` / `ucr_name`                                                            | `ultimateDebtor.name` / `ultimateCreditor.name`                                                                                                       |
| `udr_id_type` (`1` = company, `2` = person)                                        | Select `organisationIdentification` or `privateIdentification`                                                                                        |
| `udr_identification` + `udr_issuer` + `udr_scheme_code` / `udr_scheme_proprietary` | `ultimateDebtor` identification `otherIdentifications[0]` (`id`, `issuer`, and `scheme`)                                                              |
| `udr_organisation_bic`                                                             | `ultimateDebtor.organisationIdentification.bic`                                                                                                       |
| `udr_address` / `udr_address_city` / `udr_address_country`                         | Not carried over because the legacy endpoint accepts but does not use these fields; they are dropped before clearing and remain absent from responses |
| `udr_private_birth` / `_city` / `_country` / `_province`                           | `ultimateDebtor.privateIdentification.birthInformation` (`date`, `city`, `country`, and `province`)                                                   |

Send a UUID v4 as the `Idempotency-Key`. The v3 endpoint returns `201 Created` with the complete v3 payment representation instead of the legacy `result.id` and `result.status` response.

## Response

The response body uses the same payment representation as [`GET /v3/payments/{id}`](/payments/api/accounts/get-payment).


## OpenAPI

````yaml post /v3/payments/sepa
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
  - description: >-
      Cancel outbound payments. One endpoint for every cancellation schema —
      SEPA CT/INST, SEPA DD, SWIFT CBPR+ and T2 — with the schema derived from
      the referenced payments.
    name: Payment cancellations
paths:
  /v3/payments/sepa:
    post:
      tags:
        - SEPA Credit Transfer / SEPA Instant Credit Transfer
      summary: Create a SEPA payment
      description: >-

        Creates either a SEPA Credit Transfer (`instant=false`) or SEPA Instant
        payment (`instant=true`).


        The response uses exactly the same representation as `GET
        /v3/payments/{id}`.
            
      operationId: createSepaPaymentV3
      parameters:
        - description: UUID v4 used to return the same transaction for an idempotent retry
          in: header
          name: Idempotency-Key
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            examples:
              fullyStructuredAddress:
                description: fullyStructuredAddress
                summary: SEPA Credit Transfer with a fully structured debtor address
                value:
                  amount: 12550
                  creditor:
                    account:
                      iban: LT029990200000000001
                    name: Recipient Ltd
                  currencyCode: EUR
                  debtor:
                    account:
                      iban: LT409990100000000001
                    address:
                      country: LT
                      structured:
                        buildingName: Quadrum North
                        buildingNumber: '5'
                        countrySubDivision: Vilniaus apskritis
                        postCode: '08303'
                        street: Upes g.
                      town: Vilnius
                    name: Payer Ltd
                  instant: false
              hybridAddress:
                description: hybridAddress
                summary: SEPA Instant payment with a hybrid creditor address
                value:
                  amount: 10657
                  creditor:
                    account:
                      iban: EE720400990400000011
                    address:
                      country: EE
                      line: Tartu mnt 2, 10145 Tallinn
                      town: Tallinn
                    name: Recipient Ltd
                  currencyCode: EUR
                  debtor:
                    account:
                      iban: LT409990100000000001
                    name: Sender Ltd
                  instant: true
            schema:
              $ref: '#/components/schemas/CreateSepaPaymentV3Request'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPaymentV3Response'
          description: Payment created
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Validation error
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Payment initiation is disabled or access is denied
components:
  schemas:
    CreateSepaPaymentV3Request:
      description: SEPA Credit Transfer or SEPA Instant payment creation request
      properties:
        amount:
          description: Payment amount in minor currency units
          example: 12550
          minimum: 0
          type:
            - integer
            - 'null'
        categoryPurposeCode:
          description: >-
            ISO 20022 category purpose code. `FCIN`, `FCOL`, and `INTE` require
            `structuredReference.reference` and organisation BICs for both
            debtor and creditor. For these codes, omit `purpose`,
            `ultimateDebtor`, and `ultimateCreditor`.
          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
            - 'null'
        categoryPurposeProprietary:
          description: Proprietary category purpose
          maxLength: 35
          minLength: 1
          pattern: (\s*[^\s]\s*)+
          type:
            - string
            - 'null'
        creditor:
          oneOf:
            - $ref: '#/components/schemas/CreateSepaPaymentV3Party'
            - type: 'null'
        currencyCode:
          description: Payment currency. SEPA payments support EUR only
          example: EUR
          pattern: EUR
          type:
            - string
            - 'null'
        debtor:
          oneOf:
            - $ref: '#/components/schemas/CreateSepaPaymentV3Party'
            - type: 'null'
        endToEndId:
          description: End-to-end identifier; defaults to NOTPROVIDED
          maxLength: 35
          minLength: 1
          type:
            - string
            - 'null'
        instant:
          default: false
          description: >-
            Creates a SEPA Instant payment when true; otherwise creates a SEPA
            Credit Transfer
          type: boolean
        metadata:
          items:
            maxLength: 140
            type: string
          maxItems: 10
          minItems: 0
          type: array
        purpose:
          description: >-
            Unstructured remittance information. Mutually exclusive with
            `structuredReference`
          maxLength: 140
          minLength: 1
          type:
            - string
            - 'null'
        purposeCode:
          description: ISO 20022 purpose code
          oneOf:
            - $ref: '#/components/schemas/CategoryPurposeCodeRequest'
            - type: 'null'
        settlementDate:
          description: Requested settlement date. For Instant it must be omitted or today
          format: date
          type:
            - string
            - 'null'
        structuredReference:
          description: Structured remittance reference. Mutually exclusive with `purpose`
          oneOf:
            - $ref: '#/components/schemas/CreateSepaPaymentV3StructuredReference'
            - type: 'null'
        ultimateCreditor:
          oneOf:
            - $ref: '#/components/schemas/CreateSepaPaymentV3UltimateParty'
            - type: 'null'
        ultimateDebtor:
          oneOf:
            - $ref: '#/components/schemas/CreateSepaPaymentV3UltimateParty'
            - type: 'null'
      required:
        - amount
        - creditor
        - currencyCode
        - debtor
      type: object
    GetPaymentV3Response:
      properties:
        categoryPurposeCode:
          description: Category purpose code (e.g. SALA, TAXS, GOVT)
          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
            - 'null'
        categoryPurposeProprietary:
          description: Proprietary category purpose
          type:
            - string
            - 'null'
        chargesAndAdjustments:
          description: >-
            Return-only charges and adjustments. Populated only for
            payment_return / payment_cancellation transactions; absent
            otherwise.
          oneOf:
            - $ref: '#/components/schemas/ChargesAndAdjustments'
            - type: 'null'
        createdAt:
          description: Time and date when the payment was created (UTC)
          example: '2025-11-21T12:46:54.321667Z'
          format: date-time
          type: string
        creditTransferType:
          description: Credit transfer type for T2 payments
          enum:
            - CUSTOMER
            - FINANCIAL_INSTITUTION
          type:
            - string
            - 'null'
        creditor:
          $ref: '#/components/schemas/Party'
          description: Creditor (recipient) party information
        debtor:
          $ref: '#/components/schemas/Party'
          description: Debtor (sender) party information
        directDebit:
          description: SEPA direct debit fields, present only for SDD payments
          oneOf:
            - $ref: '#/components/schemas/DirectDebit'
            - type: 'null'
        direction:
          $ref: '#/components/schemas/TransactionDirection'
          description: Payment direction
          example: OUTBOUND
        endToEndId:
          description: End-to-end identifier assigned by the originator
          type: string
        id:
          description: Unique payment identifier
          example: 10300007
          format: int64
          type: integer
        instructedAmount:
          description: Instructed payment amount in minor currency units (cents)
          example: 100
          type: integer
        instructedCurrency:
          description: Instructed payment currency ISO code
          example: EUR
          type: string
        instructionId:
          description: Instruction identifier
          type:
            - string
            - 'null'
        messageId:
          description: Message identifier
          type:
            - string
            - 'null'
        metadata:
          description: Client-defined metadata values assigned when the payment was created
          items:
            type: string
          type: array
        originBic:
          description: Return / rejection originator BIC
          type:
            - string
            - 'null'
        originName:
          description: Return / rejection originator name
          type:
            - string
            - 'null'
        originReasonCode:
          description: Return / rejection reason code
          example: AC04
          type:
            - string
            - 'null'
        originReasonInfo:
          description: Return / rejection reason information
          type:
            - string
            - 'null'
        parentPaymentId:
          description: >-
            Parent payment identifier, present for returns / reversals /
            cancellations
          format: int64
          type:
            - integer
            - 'null'
        parentTransactionAmount:
          description: Original (parent) transaction amount in minor currency units (cents)
          type:
            - integer
            - 'null'
        purpose:
          description: Unstructured remittance information (free text)
          example: 'Invoice #12345'
          type:
            - string
            - 'null'
        purposeCode:
          description: >-
            ISO 20022 purpose code or proprietary purpose value (e.g. SUPP,
            SALA, TAXS)
          type:
            - string
            - 'null'
        scheme:
          description: >-
            Payment scheme. `SEPA_CT` — SEPA Credit Transfer, `SEPA_INST` — SEPA
            Instant Credit Transfer, `SEPA_DD` — SEPA Direct Debit, `SWIFT` —
            SWIFT cross-border payment.
          enum:
            - SEPA_CT
            - SEPA_INST
            - SEPA_DD
            - SWIFT
            - T2
          example: SEPA_CT
          type: string
        settlementAmount:
          description: Settlement amount in minor currency units (cents)
          example: 100
          type: integer
        settlementCurrency:
          description: Settlement currency ISO code
          example: EUR
          type: string
        settlementDate:
          description: Settlement date
          format: date
          type:
            - string
            - 'null'
        status:
          description: Current payment status
          enum:
            - CREATED
            - TO_SIGN
            - SIGNED
            - SENT_TO_CLEAR
            - COMPLETED
            - CANCELLED
            - REJECTED
            - ACCEPTED
            - SOME_PROBLEMS
            - PENDING_CONFIRMATION
          example: COMPLETED
          type: string
        statusReason:
          description: Reason for the current status
          oneOf:
            - $ref: '#/components/schemas/StatusReason'
            - type: 'null'
        structuredReference:
          description: Structured remittance reference
          oneOf:
            - $ref: '#/components/schemas/StructuredReference'
            - type: 'null'
        swift:
          description: SWIFT-specific fields, present only for SWIFT payments
          oneOf:
            - $ref: '#/components/schemas/Swift'
            - type: 'null'
        t2:
          description: T2-specific fields, present only for T2 payments
          oneOf:
            - $ref: '#/components/schemas/T2'
            - type: 'null'
        type:
          description: Payment type
          enum:
            - PAYMENT
            - PAYMENT_CANCELLATION
            - PAYMENT_RETURN
            - REVERSE_PAYMENT
            - CSM_FEES
            - ADJUSTMENT
          example: PAYMENT
          type: string
        ultimateCreditor:
          description: Ultimate creditor party information
          oneOf:
            - $ref: '#/components/schemas/UltimateParty'
            - type: 'null'
        ultimateDebtor:
          description: Ultimate debtor party information
          oneOf:
            - $ref: '#/components/schemas/UltimateParty'
            - type: 'null'
        updatedAt:
          description: Time and date when the payment was last updated (UTC)
          example: '2025-11-21T12:46:54.612954Z'
          format: date-time
          type:
            - string
            - 'null'
      required:
        - createdAt
        - creditor
        - debtor
        - direction
        - endToEndId
        - id
        - instructedAmount
        - instructedCurrency
        - metadata
        - scheme
        - settlementAmount
        - settlementCurrency
        - status
        - type
      type: object
    ErrorResponse:
      description: Error response
      properties:
        code:
          description: Code of error
          type: string
        data:
          description: 'Error data '
          oneOf:
            - $ref: '#/components/schemas/ErrorResponseData'
            - type: 'null'
        message:
          description: Error message
          type:
            - string
            - 'null'
      required:
        - code
      type: object
    CreateSepaPaymentV3Party:
      properties:
        account:
          oneOf:
            - $ref: '#/components/schemas/CreateSepaPaymentV3Account'
            - type: 'null'
        address:
          description: >-

            Optional postal address. When supplied, `town` and `country` are
            required. EPC SR2026 requires

            structured or hybrid addresses from November 15, 2026, and no longer
            permits fully unstructured

            addresses. A hybrid address uses one `line` of up to 140 characters;
            PGW preserves that line in the

            payment resource and splits it into at most two 70-character lines
            only in the clearing message. A

            fully structured address uses `structured` instead. `line` and
            `structured` are mutually exclusive.
                
          oneOf:
            - $ref: '#/components/schemas/CreateSepaPaymentV3Address'
            - type: 'null'
        agent:
          oneOf:
            - $ref: '#/components/schemas/CreateSepaPaymentV3Agent'
            - type: 'null'
        name:
          maxLength: 70
          minLength: 1
          type:
            - string
            - 'null'
        organisationIdentification:
          oneOf:
            - $ref: >-
                #/components/schemas/CreateSepaPaymentV3OrganisationIdentification
            - type: 'null'
        privateIdentification:
          oneOf:
            - $ref: '#/components/schemas/CreateSepaPaymentV3PrivateIdentification'
            - type: 'null'
      required:
        - account
        - name
      type: object
    CategoryPurposeCodeRequest:
      enum:
        - ADVA
        - TAXS
        - CSDB
        - GDSV
        - GSCB
        - COMP
        - FEES
        - ICCP
        - IDCP
        - REFU
        - RRCT
        - RRTP
        - GVEA
        - GVEB
        - GVEC
        - GVED
      type: string
    CreateSepaPaymentV3StructuredReference:
      properties:
        issuer:
          maxLength: 35
          minLength: 1
          type:
            - string
            - 'null'
        reference:
          maxLength: 35
          minLength: 1
          type:
            - string
            - 'null'
      type: object
    CreateSepaPaymentV3UltimateParty:
      properties:
        name:
          maxLength: 70
          minLength: 1
          type:
            - string
            - 'null'
        organisationIdentification:
          oneOf:
            - $ref: >-
                #/components/schemas/CreateSepaPaymentV3UltimateOrganisationIdentification
            - type: 'null'
        privateIdentification:
          oneOf:
            - $ref: '#/components/schemas/CreateSepaPaymentV3PrivateIdentification'
            - type: 'null'
      type: object
    ChargesAndAdjustments:
      properties:
        compensation:
          description: Compensation amount in minor currency units (cents)
          example: 25
          type:
            - integer
            - 'null'
        returnCharges:
          description: Return charges amount in minor currency units (cents)
          example: 50
          type:
            - integer
            - 'null'
        unaccountedTax:
          description: Unaccounted tax amount in minor currency units (cents)
          type:
            - integer
            - 'null'
      type: object
    Party:
      properties:
        account:
          $ref: '#/components/schemas/Account'
          description: Party account — either iban or other (mutually exclusive)
        address:
          description: Party postal address
          oneOf:
            - $ref: '#/components/schemas/Address'
            - type: 'null'
        agent:
          $ref: '#/components/schemas/Agent'
          description: Party agent (bank / EMI / payment institution)
        name:
          description: Party name
          type:
            - string
            - 'null'
        organisationIdentification:
          description: >-
            Organisation identification (mutually exclusive with
            privateIdentification)
          oneOf:
            - $ref: '#/components/schemas/OrganisationIdentification'
            - type: 'null'
        privateIdentification:
          description: >-
            Private identification (mutually exclusive with
            organisationIdentification)
          oneOf:
            - $ref: '#/components/schemas/PrivateIdentification'
            - type: 'null'
      required:
        - account
        - agent
      type: object
    DirectDebit:
      properties:
        amendmentIndicator:
          description: Indicates whether the mandate has been amended
          type:
            - boolean
            - 'null'
        amendmentInformationDetails:
          description: Mandate amendment details, present when amendmentIndicator is true
          oneOf:
            - $ref: '#/components/schemas/MandateAmendmentDetails'
            - type: 'null'
        eSignature:
          type:
            - string
            - 'null'
          writeOnly: true
        esignature:
          type: string
        mandateId:
          description: Mandate identifier
          example: MANDATE-2026-001
          type:
            - string
            - 'null'
        sequenceType:
          description: Mandate sequence type
          enum:
            - FRST
            - RCUR
            - FNAL
            - OOFF
          example: RCUR
          type:
            - string
            - 'null'
        signatureDate:
          description: Mandate signature date
          example: '2026-01-15'
          format: date
          type:
            - string
            - 'null'
      type: object
    TransactionDirection:
      enum:
        - OUTBOUND
        - INBOUND
      type: string
    StatusReason:
      properties:
        code:
          description: Status reason code
          example: ACSC
          type:
            - string
            - 'null'
        message:
          description: Status reason message
          example: Accepted settlement completed
          type:
            - string
            - 'null'
      type: object
    StructuredReference:
      properties:
        issuer:
          description: Reference issuer
          example: ISO
          type:
            - string
            - 'null'
        reference:
          description: Reference code
          example: RF123456
          type:
            - string
            - 'null'
      type: object
    Swift:
      properties:
        businessMessageId:
          description: Business message identifier
          example: BIZ-MSG-001
          type:
            - string
            - 'null'
        charges:
          description: Charges information
          oneOf:
            - $ref: '#/components/schemas/SwiftCharges'
            - type: 'null'
        messageDefinition:
          description: Message definition identifier
          example: pacs.008.001.08
          type:
            - string
            - 'null'
        receiverBic:
          description: Receiver BIC
          type:
            - string
            - 'null'
        senderBic:
          description: Sender BIC
          type:
            - string
            - 'null'
        settlementAccount:
          description: Settlement account (SttlmAcct) — IBAN or other identification
          oneOf:
            - $ref: '#/components/schemas/SettlementAccount'
            - type: 'null'
        settlementMethod:
          description: Settlement method (INDA, INGA, COVE)
          enum:
            - INDA
            - INGA
            - COVE
          type:
            - string
            - 'null'
        uetr:
          description: Universally unique end-to-end transaction reference
          type:
            - string
            - 'null'
      type: object
    T2:
      properties:
        priority:
          description: Settlement priority
          enum:
            - HIGH
            - NORM
          example: HIGH
          type:
            - string
            - 'null'
        uetr:
          description: >-
            UETR of the payment. For payment returns, contains the UETR of the
            original payment being returned.
          example: a1b2c3d4-1111-4222-8333-000000000001
          type:
            - string
            - 'null'
      type: object
    UltimateParty:
      properties:
        name:
          description: Ultimate party name
          type:
            - string
            - 'null'
        organisationIdentification:
          description: >-
            Organisation identification (mutually exclusive with
            privateIdentification)
          oneOf:
            - $ref: '#/components/schemas/OrganisationIdentification'
            - type: 'null'
        privateIdentification:
          description: >-
            Private identification (mutually exclusive with
            organisationIdentification)
          oneOf:
            - $ref: '#/components/schemas/PrivateIdentification'
            - type: 'null'
      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
            - 'null'
      required:
        - errors
      type: object
    CreateSepaPaymentV3Account:
      properties:
        iban:
          minLength: 1
          type:
            - string
            - 'null'
      required:
        - iban
      type: object
    CreateSepaPaymentV3Address:
      properties:
        country:
          maxLength: 2
          minLength: 2
          type:
            - string
            - 'null'
        line:
          maxLength: 140
          minLength: 1
          type:
            - string
            - 'null'
        structured:
          oneOf:
            - $ref: '#/components/schemas/CreateSepaPaymentV3StructuredAddress'
            - type: 'null'
        town:
          maxLength: 35
          minLength: 1
          type:
            - string
            - 'null'
      required:
        - country
        - town
      type: object
    CreateSepaPaymentV3Agent:
      properties:
        bic:
          type:
            - string
            - 'null'
      type: object
    CreateSepaPaymentV3OrganisationIdentification:
      properties:
        bic:
          type:
            - string
            - 'null'
        lei:
          maxLength: 35
          minLength: 1
          pattern: '[A-Z0-9]{18}[0-9]{2}'
          type:
            - string
            - 'null'
        otherIdentifications:
          description: >-
            The first entry is used for clearing. A second entry is stored and
            returned by PGW but is not forwarded to clearing, matching legacy
            behavior
          items:
            $ref: >-
              #/components/schemas/CreateSepaPaymentV3OrganisationOtherIdentification
          maxItems: 2
          minItems: 0
          type: array
      type: object
    CreateSepaPaymentV3PrivateIdentification:
      properties:
        birthInformation:
          oneOf:
            - $ref: '#/components/schemas/CreateSepaPaymentV3BirthInformation'
            - type: 'null'
        otherIdentifications:
          items:
            $ref: '#/components/schemas/CreateSepaPaymentV3PrivateOtherIdentification'
          maxItems: 1
          minItems: 0
          type: array
      type: object
    CreateSepaPaymentV3UltimateOrganisationIdentification:
      properties:
        bic:
          type:
            - string
            - 'null'
        lei:
          maxLength: 35
          minLength: 1
          pattern: '[A-Z0-9]{18}[0-9]{2}'
          type:
            - string
            - 'null'
        otherIdentifications:
          items:
            $ref: >-
              #/components/schemas/CreateSepaPaymentV3OrganisationOtherIdentification
          maxItems: 1
          minItems: 0
          type: array
      type: object
    Account:
      properties:
        iban:
          description: International Bank Account Number
          type:
            - string
            - 'null'
        other:
          description: Non-IBAN account identification
          oneOf:
            - $ref: '#/components/schemas/OtherAccount'
            - type: 'null'
      type: object
    Address:
      properties:
        country:
          description: Country ISO code
          example: LT
          type:
            - string
            - 'null'
        line:
          description: Unstructured address line
          type:
            - string
            - 'null'
        structured:
          description: Additional structured address elements
          oneOf:
            - $ref: '#/components/schemas/StructuredAddress'
            - type: 'null'
        town:
          description: Town / city name
          example: Vilnius
          type:
            - string
            - 'null'
      type: object
    Agent:
      properties:
        bic:
          description: Bank Identifier Code (BIC)
          example: DEMOLT1XXXX
          type:
            - string
            - 'null'
        name:
          description: Agent name
          type:
            - string
            - 'null'
      type: object
    OrganisationIdentification:
      properties:
        bic:
          description: BIC code
          type:
            - string
            - 'null'
        lei:
          description: Legal Entity Identifier
          type:
            - string
            - 'null'
        otherIdentifications:
          description: Other identifications
          items:
            $ref: '#/components/schemas/OtherIdentification'
          type: array
      required:
        - otherIdentifications
      type: object
    PrivateIdentification:
      properties:
        birthInformation:
          description: Birth information
          oneOf:
            - $ref: '#/components/schemas/BirthInformation'
            - type: 'null'
        otherIdentifications:
          description: Other identifications (e.g. national ID)
          items:
            $ref: '#/components/schemas/OtherIdentification'
          type: array
      required:
        - otherIdentifications
      type: object
    MandateAmendmentDetails:
      properties:
        originalCreditorSchemeId:
          description: Original creditor scheme identifier
          type:
            - string
            - 'null'
        originalDebtorAccount:
          description: Original debtor IBAN
          type:
            - string
            - 'null'
        originalMandateId:
          description: Original mandate identifier
          type:
            - string
            - 'null'
      type: object
    SwiftCharges:
      properties:
        bearer:
          description: Charge bearer (SHAR, DEBT, CRED, SLEV)
          enum:
            - CRED
            - DEBT
            - SHAR
            - SLEV
          example: SHAR
          type:
            - string
            - 'null'
        items:
          description: Charge items
          items:
            $ref: '#/components/schemas/SwiftChargeItem'
          type: array
      required:
        - items
      type: object
    SettlementAccount:
      properties:
        currency:
          description: Settlement account currency ISO code
          example: EUR
          type:
            - string
            - 'null'
        iban:
          description: Settlement account IBAN — mutually exclusive with other
          type:
            - string
            - 'null'
        other:
          description: >-
            Non-IBAN settlement account identification — mutually exclusive with
            iban
          oneOf:
            - $ref: '#/components/schemas/OtherAccount'
            - type: 'null'
      type: object
    ErrorResponseViolation:
      description: Single error wrapper
      properties:
        code:
          description: Error code
          type:
            - string
            - 'null'
        field_name:
          description: Field name which failed
          type: string
        message:
          description: Error message
          type:
            - string
            - 'null'
        value:
          description: Value which was invalid
          type:
            - string
            - 'null'
      type: object
    CreateSepaPaymentV3StructuredAddress:
      properties:
        buildingName:
          maxLength: 35
          minLength: 1
          type:
            - string
            - 'null'
        buildingNumber:
          maxLength: 16
          minLength: 1
          type:
            - string
            - 'null'
        countrySubDivision:
          maxLength: 35
          minLength: 1
          type:
            - string
            - 'null'
        department:
          maxLength: 70
          minLength: 1
          type:
            - string
            - 'null'
        districtName:
          maxLength: 35
          minLength: 1
          type:
            - string
            - 'null'
        floor:
          maxLength: 70
          minLength: 1
          type:
            - string
            - 'null'
        postBox:
          maxLength: 16
          minLength: 1
          type:
            - string
            - 'null'
        postCode:
          maxLength: 16
          minLength: 1
          type:
            - string
            - 'null'
        room:
          maxLength: 70
          minLength: 1
          type:
            - string
            - 'null'
        street:
          maxLength: 70
          minLength: 1
          type:
            - string
            - 'null'
        subDepartment:
          maxLength: 70
          minLength: 1
          type:
            - string
            - 'null'
        townLocationName:
          maxLength: 35
          minLength: 1
          type:
            - string
            - 'null'
      type: object
    CreateSepaPaymentV3OrganisationOtherIdentification:
      properties:
        id:
          maxLength: 35
          minLength: 1
          type:
            - string
            - 'null'
        issuer:
          maxLength: 35
          minLength: 1
          type:
            - string
            - 'null'
        scheme:
          oneOf:
            - $ref: >-
                #/components/schemas/CreateSepaPaymentV3OrganisationIdentificationScheme
            - type: 'null'
      required:
        - id
      type: object
    CreateSepaPaymentV3BirthInformation:
      properties:
        city:
          maxLength: 35
          minLength: 1
          type:
            - string
            - 'null'
        country:
          maxLength: 2
          minLength: 2
          type:
            - string
            - 'null'
        date:
          format: date
          type:
            - string
            - 'null'
        province:
          maxLength: 35
          minLength: 1
          type:
            - string
            - 'null'
      required:
        - city
        - country
        - date
      type: object
    CreateSepaPaymentV3PrivateOtherIdentification:
      properties:
        id:
          maxLength: 35
          minLength: 1
          type:
            - string
            - 'null'
        issuer:
          maxLength: 35
          minLength: 1
          type:
            - string
            - 'null'
        scheme:
          oneOf:
            - $ref: >-
                #/components/schemas/CreateSepaPaymentV3PrivateIdentificationScheme
            - type: 'null'
      required:
        - id
      type: object
    OtherAccount:
      properties:
        id:
          description: Account identifier
          type:
            - string
            - 'null'
        issuer:
          description: Account issuer
          type:
            - string
            - 'null'
        scheme:
          description: Account scheme
          oneOf:
            - $ref: '#/components/schemas/Scheme'
            - type: 'null'
      type: object
    StructuredAddress:
      properties:
        buildingName:
          description: Building name
          type:
            - string
            - 'null'
        buildingNumber:
          description: Building number
          type:
            - string
            - 'null'
        countrySubDivision:
          description: Country sub-division
          type:
            - string
            - 'null'
        department:
          description: Department
          type:
            - string
            - 'null'
        districtName:
          description: District name
          type:
            - string
            - 'null'
        floor:
          description: Floor
          type:
            - string
            - 'null'
        postBox:
          description: Post box
          type:
            - string
            - 'null'
        postCode:
          description: Post code
          type:
            - string
            - 'null'
        room:
          description: Room
          type:
            - string
            - 'null'
        street:
          description: Street name
          type:
            - string
            - 'null'
        subDepartment:
          description: Sub-department
          type:
            - string
            - 'null'
        townLocationName:
          description: Town location name
          type:
            - string
            - 'null'
      type: object
    OtherIdentification:
      properties:
        id:
          description: Identifier value
          type:
            - string
            - 'null'
        issuer:
          description: Identifier issuer
          type:
            - string
            - 'null'
        scheme:
          description: Identification scheme
          oneOf:
            - $ref: '#/components/schemas/Scheme'
            - type: 'null'
      type: object
    BirthInformation:
      properties:
        city:
          description: City of birth
          type:
            - string
            - 'null'
        country:
          description: Country of birth
          type:
            - string
            - 'null'
        date:
          description: Date of birth
          type:
            - string
            - 'null'
        province:
          description: Province of birth
          type:
            - string
            - 'null'
      type: object
    SwiftChargeItem:
      properties:
        amount:
          description: Charge amount in minor currency units (cents)
          example: 50
          type: integer
        bic:
          description: Charging agent BIC
          type:
            - string
            - 'null'
        currency:
          description: Charge currency ISO code
          example: EUR
          type: string
      required:
        - amount
        - currency
      type: object
    CreateSepaPaymentV3OrganisationIdentificationScheme:
      properties:
        code:
          oneOf:
            - $ref: '#/components/schemas/OrganisationIdentificationSchemeCode'
            - type: 'null'
        proprietary:
          maxLength: 35
          minLength: 1
          type:
            - string
            - 'null'
      type: object
    CreateSepaPaymentV3PrivateIdentificationScheme:
      properties:
        code:
          oneOf:
            - $ref: '#/components/schemas/PrivateIdentificationSchemeCode'
            - type: 'null'
        proprietary:
          maxLength: 35
          minLength: 1
          type:
            - string
            - 'null'
      type: object
    Scheme:
      properties:
        code:
          description: Scheme code from external code sets
          type:
            - string
            - 'null'
        proprietary:
          description: Proprietary scheme
          type:
            - string
            - 'null'
      type: object
    OrganisationIdentificationSchemeCode:
      enum:
        - BANK
        - BDID
        - BOID
        - CBID
        - CHID
        - CINC
        - COID
        - CUST
        - DUNS
        - EMPL
        - GS1G
        - SREN
        - SRET
        - TXID
      type: string
    PrivateIdentificationSchemeCode:
      enum:
        - ARNU
        - BANK
        - CCPT
        - CUST
        - DRLC
        - EMPL
        - NIDN
        - POID
        - SOSE
        - TELE
        - TXID
      type: string

````