{
  "openapi": "3.0.0",
  "info": {
    "title": "Natixis Accounts Information",
    "version": "1.6.2.0-a",
    "description": "This API intends to provide an interface between\n- Account Servicing Payment Service Providers (ASPSP)\n- Third Party (Payment Service) Providers (TPP)\n\nTPP may act with different roles as described below:\n- Account Information Service Providers (AISP)\n- Payment Initiation Service Providers (PISP)\n- Card Based Payment Instrument Issuers (CBPII)\n\nThe Payment Service User (PSU) is the owner of the accounts held by the ASPSP and gives accreditations to the TPP in order to access his accounts information or initiates payment from these accounts\n\nThe API is designed on a REST model using JSON structures.\n\nThe Richardson Maturity Model is applied on level three using HAL HYPERMEDIA links\n",
    "termsOfService": "https://apistore.groupebpce.com/regulatory-information",
    "contact": {
      "name": "BPCE",
      "url": "https://apistore.groupebpce.com/support"
    },
    "license": {
      "name": "Copyright BPCE",
      "url": "https://apistore.groupebpce.com/regulatory-information"
    },
    "x-internal-id": "BDSP2NX1"
  },
  "servers": [
    {
      "description": "Production",
      "url": "https://www.30007.live.api.natixis.com/stet/psd2/v1.6.2"
    }
  ],
  "paths": {
    "/accounts": {
      "get": {
        "operationId": "accountsGet",
        "summary": "Retrieval of the PSU accounts (AISP)",
        "description": "### Description\nThis call returns all payment accounts that are relevant for the PSU on behalf of whom the AISP is connected.\nThanks to HYPERMEDIA, each account is returned with the links aiming to ease access to the relevant transactions and balances.\nThe result may be subject to pagination (i.e. retrieving a partial result in case of having too many results) through a set of pages by the ASPSP. Thereafter, the AISP may ask for the first, next, previous or last page of results.\n\n### Prerequisites\n\n- The TPP was registered by the Registration Authority for the AISP role.\n- The TPP and the PSU have a contract that was enrolled by the ASPSP\n    - At this step, the ASPSP has delivered an OAUTH2 \"Authorization Code\" or \"Resource Owner Password\" access token to the TPP (cf. § 3.4.2).\n- The TPP and the ASPSP have successfully processed a mutual check and authentication\n- The TPP has presented its OAUTH2 \"Authorization Code\" or \"Resource Owner Password\" access token which allows the ASPSP to identify the relevant PSU and retrieve the linked PSU context (cf. § 3.4.2) if any.\n- The ASPSP takes into account the access token that establishes the link between the PSU and the AISP.\n\n### Business Flow\nThe TPP sends a request to the ASPSP for retrieving the list of the PSU payment accounts.\nThe ASPSP computes the relevant PSU accounts and builds the answer as an accounts list.\nThe result may be subject to pagination in order to avoid an excessive result set.\nEach payment account will be provided with its characteristics.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationParameter"
          },
          {
            "$ref": "#/components/parameters/PsuIpAddressHeader"
          },
          {
            "$ref": "#/components/parameters/PsuIpPortHeader"
          },
          {
            "$ref": "#/components/parameters/PsuHttpMethodHeader"
          },
          {
            "$ref": "#/components/parameters/PsuDateHeader"
          },
          {
            "$ref": "#/components/parameters/PsuGeoLocation"
          },
          {
            "$ref": "#/components/parameters/PsuUserAgentHeader"
          },
          {
            "$ref": "#/components/parameters/PsuRefererHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptCharsetHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptEncodingHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptLanguageHeader"
          },
          {
            "$ref": "#/components/parameters/PsuDeviceId"
          },
          {
            "$ref": "#/components/parameters/DigestHeader"
          },
          {
            "$ref": "#/components/parameters/SignatureHeader"
          },
          {
            "$ref": "#/components/parameters/Correlation"
          },
          {
            "$ref": "#/components/parameters/Workspace"
          }
        ],
        "responses": {
          "200": {
            "description": "The ASPSP return a PSU context\n- listing the accounts that were made available to the AISP by the PSU and,\n- for each of these accounts, the further transactions that were enabled by the PSU through HYPERMEDIA links.\n",
            "headers": {
              "Warning": {
                "description": "Warning header.\nThis header can be used by the server to inform the client of a deprecated entry-point through the value \"299\" value and a descriptive message.\n",
                "schema": {
                  "type": "string"
                }
              },
              "X-Request-ID": {
                "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/HalAccounts"
                }
              }
            }
          },
          "204": {
            "$ref": "#/components/responses/204"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "405": {
            "$ref": "#/components/responses/405"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "408": {
            "$ref": "#/components/responses/408"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "503": {
            "$ref": "#/components/responses/503"
          }
        },
        "security": [
          {
            "accessCode": [
              "aisp"
            ]
          }
        ],
        "tags": [
          "AISP"
        ]
      }
    },
    "/accounts/{accountResourceId}/owners": {
      "get": {
        "operationId": "accountsOwnersGet",
        "summary": "Retrieval of an account owners (AISP)",
        "description": "### Description\nThis call returns the owners identities for a given PSU account that is specified by the AISP through an account resource identification.\nThis call cannot be used when the account is owned by a legal entity where the identity of this entity is directly available in the account structure (field [company]).\n### Prerequisites\n- The TPP was registered by the Registration Authority for the AISP role\n- The TPP and the PSU have a contract that was enrolled by the ASPSP\n  - At this step, the ASPSP has delivered an OAUTH2 \"Authorization Code\" or \"Resource Owner Password\" access token to the TPP (cf. § 3.4.2).\n- The TPP and the ASPSP have successfully processed a mutual check and authentication\n- The TPP has presented its OAUTH2 \"Authorization Code\" or \"Resource Owner Password\" access token which allows the ASPSP to identify the relevant PSU and retrieve the linked PSU context (cf. § 3.4.2) is any.\n- The ASPSP takes into account the access token that establishes the link between the PSU and the AISP.\n- The TPP has previously retrieved the list of available accounts for the PSU\n### Business flow\nThe AISP requests the ASPSP on one of the PSU’s accounts.\nThe ASPSP answers by the identities of the account owners.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationParameter"
          },
          {
            "$ref": "#/components/parameters/AccountResourceIdentification"
          },
          {
            "$ref": "#/components/parameters/PsuIpAddressHeader"
          },
          {
            "$ref": "#/components/parameters/PsuIpPortHeader"
          },
          {
            "$ref": "#/components/parameters/PsuHttpMethodHeader"
          },
          {
            "$ref": "#/components/parameters/PsuDateHeader"
          },
          {
            "$ref": "#/components/parameters/PsuGeoLocation"
          },
          {
            "$ref": "#/components/parameters/PsuUserAgentHeader"
          },
          {
            "$ref": "#/components/parameters/PsuRefererHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptCharsetHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptEncodingHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptLanguageHeader"
          },
          {
            "$ref": "#/components/parameters/PsuDeviceId"
          },
          {
            "$ref": "#/components/parameters/DigestHeader"
          },
          {
            "$ref": "#/components/parameters/SignatureHeader"
          },
          {
            "$ref": "#/components/parameters/Correlation"
          },
          {
            "$ref": "#/components/parameters/Workspace"
          }
        ],
        "responses": {
          "200": {
            "description": "Account owners identities response",
            "headers": {
              "X-Request-ID": {
                "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
                "schema": {
                  "type": "string"
                }
              },
              "Warning": {
                "description": "Warning header.\nThis header can be used by the server to inform the client of a deprecated entry-point through the value \"299\" value and a descriptive message.\n",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/HalOwners"
                }
              }
            }
          },
          "204": {
            "$ref": "#/components/responses/204"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "405": {
            "$ref": "#/components/responses/405"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "408": {
            "$ref": "#/components/responses/408"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "503": {
            "$ref": "#/components/responses/503"
          }
        },
        "security": [
          {
            "accessCode": [
              "aisp"
            ]
          }
        ],
        "tags": [
          "AISP"
        ]
      }
    },
    "/accounts/{accountResourceId}/balances": {
      "get": {
        "operationId": "accountsBalancesGet",
        "summary": "Retrieval of an account balances report (AISP)",
        "description": "### Description\nThis call returns a set of balances for a given PSU account that is specified by the AISP through an account resource Identification\n### Prerequisites\n- The TPP was registered by the Registration Authority for the AISP role\n- The TPP and the PSU have a contract that was enrolled by the ASPSP\n  - At this step, the ASPSP has delivered an OAUTH2 \"Authorization Code\" or \"Resource Owner Password\" access token to the TPP (cf. § 3.4.2).\n- The TPP and the ASPSP have successfully processed a mutual check and authentication\n- The TPP has presented its OAUTH2 \"Authorization Code\" or \"Resource Owner Password\" access token which allows the ASPSP to identify the relevant PSU and retrieve the linked PSU context (cf. § 3.4.2) if any.\n- The ASPSP takes into account the access token that establishes the link between the PSU and the AISP.\n- The TPP has previously retrieved the list of available accounts for the PSU\n### Business flow\nThe AISP requests the ASPSP on one of the PSU's accounts.\nThe ASPSP answers by providing a list of balances on this account.\n- The ASPSP should provide at least one balance on the account.\n  - For cash account, this balance should be the accounting balance (CACC)\n  - For card transactions account, the accounting balance is meaningless and must be replaced by an other type of balance (OTHR).\n- Case of no registered transaction on the account, this balance will have an amount equal to zero.\n- The ASPSP can provide other balance restitutions, e.g. instant balance, as well, if possible.\n- Actually, from the PSD2 perspective, any other balances that are provided through the Web-Banking service of the ASPSP must also be provided by this ASPSP through the API.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationParameter"
          },
          {
            "$ref": "#/components/parameters/AccountResourceIdentification"
          },
          {
            "$ref": "#/components/parameters/PsuIpAddressHeader"
          },
          {
            "$ref": "#/components/parameters/PsuIpPortHeader"
          },
          {
            "$ref": "#/components/parameters/PsuHttpMethodHeader"
          },
          {
            "$ref": "#/components/parameters/PsuDateHeader"
          },
          {
            "$ref": "#/components/parameters/PsuGeoLocation"
          },
          {
            "$ref": "#/components/parameters/PsuUserAgentHeader"
          },
          {
            "$ref": "#/components/parameters/PsuRefererHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptCharsetHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptEncodingHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptLanguageHeader"
          },
          {
            "$ref": "#/components/parameters/PsuDeviceId"
          },
          {
            "$ref": "#/components/parameters/DigestHeader"
          },
          {
            "$ref": "#/components/parameters/SignatureHeader"
          },
          {
            "$ref": "#/components/parameters/Correlation"
          },
          {
            "$ref": "#/components/parameters/Workspace"
          }
        ],
        "responses": {
          "200": {
            "description": "The ASPSP answers with a list of account balances",
            "headers": {
              "X-Request-ID": {
                "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
                "schema": {
                  "type": "string"
                }
              },
              "Warning": {
                "description": "Warning header.\nThis header can be used by the server to inform the client of a deprecated entry-point through the value \"299\" value and a descriptive message.\n",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/HalBalances"
                }
              }
            }
          },
          "204": {
            "$ref": "#/components/responses/204"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "405": {
            "$ref": "#/components/responses/405"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "408": {
            "$ref": "#/components/responses/408"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "503": {
            "$ref": "#/components/responses/503"
          }
        },
        "security": [
          {
            "accessCode": [
              "aisp"
            ]
          }
        ],
        "tags": [
          "AISP"
        ]
      }
    },
    "/accounts/{accountResourceId}/transactions": {
      "get": {
        "operationId": "accountsTransactionsGet",
        "summary": "Retrieval of an account transaction set (AISP)",
        "description": "### Description\nThis call returns transactions for an account for a given PSU account that is specified by the AISP through an account resource identification.\nThe request may use some filter parameter in order to restrict the query\n  - on a given imputation date range\n  - past a given incremental technical identification\nThe result may be subject to pagination (i.e. retrieving a partial result in case of having too many results) through a set of pages by the ASPSP. Thereafter, the AISP may ask for the first, next, previous or last page of results.\n### Prerequisites\n- The TPP was registered by the Registration Authority for the AISP role\n- The TPP and the PSU have a contract that was enrolled by the ASPSP\n  - At this step, the ASPSP has delivered an OAUTH2 \"Authorization Code\" or \"Resource Owner Password\" access token to the TPP (cf. § 3.4.2).\n- The TPP and the ASPSP have successfully processed a mutual check and authentication\n- The TPP has presented its OAUTH2 \"Authorization Code\" or \"Resource Owner Password\" access token which allows the ASPSP to identify the relevant PSU and retrieve the linked PSU context (cf. § 3.4.2) is any.\n- The ASPSP takes into account the access token that establishes the link between the PSU and the AISP.\n- The TPP has previously retrieved the list of available accounts for the PSU\n### Business flow\nThe AISP requests the ASPSP on one of the PSU’s accounts. It may specify some selection criteria.\nThe ASPSP answers by a set of transactions that matches the query.\n- The result may be subject to pagination in order to avoid an excessive result set.\n- Case of no registered transaction on the account, this result will be an empty list.\nThe default transaction set, in the absence of filter query parameter, has to be specified and documented by the implementation.\nThe sort order of transaction might be specific to each ASPSP, due to each Information System constraints.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationParameter"
          },
          {
            "$ref": "#/components/parameters/AccountResourceIdentification"
          },
          {
            "$ref": "#/components/parameters/FromImputationDate"
          },
          {
            "$ref": "#/components/parameters/ToImputationDate"
          },
          {
            "$ref": "#/components/parameters/DateType"
          },
          {
            "$ref": "#/components/parameters/FromEntryReference"
          },
          {
            "$ref": "#/components/parameters/ToEntryReference"
          },
          {
            "$ref": "#/components/parameters/PsuIpAddressHeader"
          },
          {
            "$ref": "#/components/parameters/PsuIpPortHeader"
          },
          {
            "$ref": "#/components/parameters/PsuHttpMethodHeader"
          },
          {
            "$ref": "#/components/parameters/PsuDateHeader"
          },
          {
            "$ref": "#/components/parameters/PsuGeoLocation"
          },
          {
            "$ref": "#/components/parameters/PsuUserAgentHeader"
          },
          {
            "$ref": "#/components/parameters/PsuRefererHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptCharsetHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptEncodingHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptLanguageHeader"
          },
          {
            "$ref": "#/components/parameters/PsuDeviceId"
          },
          {
            "$ref": "#/components/parameters/DigestHeader"
          },
          {
            "$ref": "#/components/parameters/SignatureHeader"
          },
          {
            "$ref": "#/components/parameters/Correlation"
          },
          {
            "$ref": "#/components/parameters/Workspace"
          }
        ],
        "responses": {
          "200": {
            "description": "Complete transactions response",
            "headers": {
              "X-Request-ID": {
                "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
                "schema": {
                  "type": "string"
                }
              },
              "Warning": {
                "description": "Warning header.\nThis header can be used by the server to inform the client of a deprecated entry-point through the value \"299\" value and a descriptive message.\n",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/HalTransactions"
                }
              }
            }
          },
          "204": {
            "$ref": "#/components/responses/204"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "405": {
            "$ref": "#/components/responses/405"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "408": {
            "$ref": "#/components/responses/408"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "503": {
            "$ref": "#/components/responses/503"
          }
        },
        "security": [
          {
            "accessCode": [
              "aisp"
            ]
          }
        ],
        "tags": [
          "AISP"
        ]
      }
    },
    "/accounts/{accountResourceId}/transactions/{transactionResourceId}/details": {
      "get": {
        "operationId": "accountsTransactionsDetailsGet",
        "summary": "Retrieval of transaction details (AISP)",
        "description": "### Description\nThis call returns the details of a transaction from a given PSU account.\nThe AISP has to specified\n- the account through an account resource identification\n- the transaction through a transaction resource identifcation\n### Prerequisites\n- The TPP was registered by the Registration Authority for the AISP role\n- The TPP and the PSU have a contract that was enrolled by the ASPSP\n  - At this step, the ASPSP has delivered an OAUTH2 \"Authorization Code\" or \"Resource Owner Password\" access token to the TPP (cf. § 3.4.2).\n- The TPP and the ASPSP have successfully processed a mutual check and authentication\n- The TPP has presented its OAUTH2 \"Authorization Code\" or \"Resource Owner Password\" access token which allows the ASPSP to identify the relevant PSU and retrieve the linked PSU context (cf. § 3.4.2) is any.\n- The ASPSP takes into account the access token that establishes the link between the PSU and the AISP.\n- The TPP has previously retrieved the list of available accounts for the PSU and the transactions from one given account\n- A transaction includes a \"details\" hyperlink which indicates that detailed information is available for this transaction.\n### Business flow\nThe AISP requests the ASPSP on one of the transactions.\nThe ASPSP answers by the details on this transaction.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationParameter"
          },
          {
            "$ref": "#/components/parameters/AccountResourceIdentification"
          },
          {
            "$ref": "#/components/parameters/TransactionResourceIdentification"
          },
          {
            "$ref": "#/components/parameters/FromImputationDate"
          },
          {
            "$ref": "#/components/parameters/ToImputationDate"
          },
          {
            "$ref": "#/components/parameters/DateType"
          },
          {
            "$ref": "#/components/parameters/FromEntryReference"
          },
          {
            "$ref": "#/components/parameters/ToEntryReference"
          },
          {
            "$ref": "#/components/parameters/PsuIpAddressHeader"
          },
          {
            "$ref": "#/components/parameters/PsuIpPortHeader"
          },
          {
            "$ref": "#/components/parameters/PsuHttpMethodHeader"
          },
          {
            "$ref": "#/components/parameters/PsuDateHeader"
          },
          {
            "$ref": "#/components/parameters/PsuGeoLocation"
          },
          {
            "$ref": "#/components/parameters/PsuUserAgentHeader"
          },
          {
            "$ref": "#/components/parameters/PsuRefererHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptCharsetHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptEncodingHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptLanguageHeader"
          },
          {
            "$ref": "#/components/parameters/PsuDeviceId"
          },
          {
            "$ref": "#/components/parameters/DigestHeader"
          },
          {
            "$ref": "#/components/parameters/SignatureHeader"
          },
          {
            "$ref": "#/components/parameters/Correlation"
          },
          {
            "$ref": "#/components/parameters/Workspace"
          }
        ],
        "responses": {
          "200": {
            "description": "Complete transactions response",
            "headers": {
              "X-Request-ID": {
                "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
                "schema": {
                  "type": "string"
                }
              },
              "Warning": {
                "description": "Warning header.\nThis header can be used by the server to inform the client of a deprecated entry-point through the value \"299\" value and a descriptive message.\n",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/HalTransactionDetails"
                }
              }
            }
          },
          "204": {
            "$ref": "#/components/responses/204"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "405": {
            "$ref": "#/components/responses/405"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "408": {
            "$ref": "#/components/responses/408"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "503": {
            "$ref": "#/components/responses/503"
          }
        },
        "security": [
          {
            "accessCode": [
              "aisp"
            ]
          }
        ],
        "tags": [
          "AISP"
        ]
      }
    },
    "/accounts/{accountResourceId}/overdrafts": {
      "get": {
        "operationId": "accountsOverdraftsGet",
        "summary": "Retrieval of an account overdraft (AISP)",
        "description": "### Description\nThis call returns the overdrafts that can be used for a given PSU account that is specified by the AISP through an account resource identification.\nThe request may use some filter parameter in order to restrict the query\n### Prerequisites\n- The TPP was registered by the Registration Authority for the AISP role\n- The TPP and the PSU have a contract that was enrolled by the ASPSP\n  - At this step, the ASPSP has delivered an OAUTH2 \"Authorization Code\" or \"Resource Owner Password\" access token to the TPP (cf. § 3.4.2).\n- The TPP and the ASPSP have successfully processed a mutual check and authentication\n- The TPP has presented its OAUTH2 \"Authorization Code\" or \"Resource Owner Password\" access token which allows the ASPSP to identify the relevant PSU and retrieve the linked PSU context (cf. § 3.4.2) is any.\n- The ASPSP takes into account the access token that establishes the link between the PSU and the AISP.\n- The TPP has previously retrieved the list of available accounts for the PSU\n### Business flow\nThe AISP requests the ASPSP on one of the PSU’s accounts.\nThe ASPSP answers by the overdraft that can be applied.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationParameter"
          },
          {
            "$ref": "#/components/parameters/AccountResourceIdentification"
          },
          {
            "$ref": "#/components/parameters/PsuIpAddressHeader"
          },
          {
            "$ref": "#/components/parameters/PsuIpPortHeader"
          },
          {
            "$ref": "#/components/parameters/PsuHttpMethodHeader"
          },
          {
            "$ref": "#/components/parameters/PsuDateHeader"
          },
          {
            "$ref": "#/components/parameters/PsuGeoLocation"
          },
          {
            "$ref": "#/components/parameters/PsuUserAgentHeader"
          },
          {
            "$ref": "#/components/parameters/PsuRefererHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptCharsetHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptEncodingHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptLanguageHeader"
          },
          {
            "$ref": "#/components/parameters/PsuDeviceId"
          },
          {
            "$ref": "#/components/parameters/DigestHeader"
          },
          {
            "$ref": "#/components/parameters/SignatureHeader"
          },
          {
            "$ref": "#/components/parameters/Correlation"
          },
          {
            "$ref": "#/components/parameters/Workspace"
          }
        ],
        "responses": {
          "200": {
            "description": "Overdraft response",
            "headers": {
              "X-Request-ID": {
                "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
                "schema": {
                  "type": "string"
                }
              },
              "Warning": {
                "description": "Warning header.\nThis header can be used by the server to inform the client of a deprecated entry-point through the value \"299\" value and a descriptive message.\n",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/HalOverdrafts"
                }
              }
            }
          },
          "204": {
            "$ref": "#/components/responses/204"
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "405": {
            "$ref": "#/components/responses/405"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "408": {
            "$ref": "#/components/responses/408"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "503": {
            "$ref": "#/components/responses/503"
          }
        },
        "security": [
          {
            "accessCode": [
              "aisp"
            ]
          }
        ],
        "tags": [
          "AISP"
        ]
      }
    },
    "/consents": {
      "put": {
        "operationId": "consentsPut",
        "summary": "Forwarding the PSU consent (AISP)",
        "description": "### Description\nIn the mixed detailed consent on accounts\n- the AISP captures the consent of the PSU\n- then it forwards this consent to the ASPSP\nThis consent replaces any prior consent that was previously sent by the AISP.\n### Prerequisites\n- The TPP was registered by the Registration Authority for the AISP role.\n- The TPP and the PSU have a contract that was enrolled by the ASPSP\n  - At this step, the ASPSP has delivered an OAUTH2 \"Authorization Code\" or \"Resource Owner Password\" access token to the TPP (cf. § 3.4.2).\n- The TPP and the ASPSP have successfully processed a mutual check and authentication\n- The TPP has presented its OAUTH2 \"Authorization Code\" or \"Resource Owner Password\" access token which allows the ASPSP to identify the relevant PSU and retrieve the linked PSU context (cf. § 3.4.2) if any.\n- The ASPSP takes into account the access token that establishes the link between the PSU and the AISP.\n### Business Flow\nThe PSU specifies to the AISP which of his/her accounts will be accessible and which functionalities should be available.\nThe AISP forwards these settings to the ASPSP.\nThe ASPSP answers by HTTP201 return code.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationParameter"
          },
          {
            "$ref": "#/components/parameters/PsuIpAddressHeader"
          },
          {
            "$ref": "#/components/parameters/PsuIpPortHeader"
          },
          {
            "$ref": "#/components/parameters/PsuHttpMethodHeader"
          },
          {
            "$ref": "#/components/parameters/PsuDateHeader"
          },
          {
            "$ref": "#/components/parameters/PsuGeoLocation"
          },
          {
            "$ref": "#/components/parameters/PsuUserAgentHeader"
          },
          {
            "$ref": "#/components/parameters/PsuRefererHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptCharsetHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptEncodingHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptLanguageHeader"
          },
          {
            "$ref": "#/components/parameters/PsuDeviceId"
          },
          {
            "$ref": "#/components/parameters/DigestHeader"
          },
          {
            "$ref": "#/components/parameters/SignatureHeader"
          },
          {
            "$ref": "#/components/parameters/Correlation"
          }
        ],
        "requestBody": {
          "description": "List of consents granted to the AISP by the PSU.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Access"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "headers": {
              "X-Request-ID": {
                "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
                "schema": {
                  "type": "string"
                }
              },
              "Warning": {
                "description": "Warning header.\nThis header can be used by the server to inform the client of a deprecated entry-point through the value \"299\" value and a descriptive message.\n",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "405": {
            "$ref": "#/components/responses/405"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "408": {
            "$ref": "#/components/responses/408"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "501": {
            "$ref": "#/components/responses/501"
          },
          "503": {
            "$ref": "#/components/responses/503"
          }
        },
        "security": [
          {
            "accessCode": [
              "aisp"
            ]
          }
        ],
        "tags": [
          "AISP"
        ]
      }
    },
    "/end-user-identity": {
      "get": {
        "operationId": "EndUserIdentityGet",
        "summary": "Retrieval of the identity of the end-user (AISP)",
        "description": "### Description\nThis call returns the identity of the PSU (end-user).\n### Prerequisites\n- The TPP was registered by the Registration Authority for the AISP role.\n- The TPP and the PSU have a contract that was enrolled by the ASPSP\n    - At this step, the ASPSP has delivered an OAUTH2 \"Authorization Code\" or \"Resource Owner Password\" access token to the TPP (cf. § 3.4.2).\n- The TPP and the ASPSP have successfully processed a mutual check and authentication\n- The TPP has presented its OAUTH2 \"Authorization Code\" or \"Resource Owner Password\" access token which allows the ASPSP to identify the relevant PSU and retrieve the linked PSU context (cf. § 3.4.2) if any.\n- The ASPSP takes into account the access token that establishes the link between the PSU and the AISP.\n### Business Flow\n  The AISP asks for the identity of the PSU.\n  The ASPSP answers with the identity, i.e. first and last names of the end-user.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationParameter"
          },
          {
            "$ref": "#/components/parameters/PsuIpAddressHeader"
          },
          {
            "$ref": "#/components/parameters/PsuIpPortHeader"
          },
          {
            "$ref": "#/components/parameters/PsuHttpMethodHeader"
          },
          {
            "$ref": "#/components/parameters/PsuDateHeader"
          },
          {
            "$ref": "#/components/parameters/PsuGeoLocation"
          },
          {
            "$ref": "#/components/parameters/PsuUserAgentHeader"
          },
          {
            "$ref": "#/components/parameters/PsuRefererHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptCharsetHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptEncodingHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptLanguageHeader"
          },
          {
            "$ref": "#/components/parameters/PsuDeviceId"
          },
          {
            "$ref": "#/components/parameters/DigestHeader"
          },
          {
            "$ref": "#/components/parameters/SignatureHeader"
          },
          {
            "$ref": "#/components/parameters/Correlation"
          }
        ],
        "responses": {
          "200": {
            "description": "The ASPSP returns the identity of the PSU\n",
            "headers": {
              "X-Request-ID": {
                "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
                "schema": {
                  "type": "string"
                }
              },
              "Warning": {
                "description": "Warning header.\nThis header can be used by the server to inform the client of a deprecated entry-point through the value \"299\" value and a descriptive message.\n",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/HalEndUserIdentity"
                }
              }
            }
          },
          "204": {
            "$ref": "#/components/responses/204"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "405": {
            "$ref": "#/components/responses/405"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "security": [
          {
            "accessCode": [
              "aisp"
            ]
          }
        ],
        "tags": [
          "AISP"
        ]
      }
    },
    "/trusted-beneficiaries": {
      "get": {
        "operationId": "trustedBeneficiariesGet",
        "summary": "Retrieval of the trusted beneficiaries list (AISP)",
        "description": "### Description\nThis call returns all trusted beneficiaries that were set by the PSU.\nThose beneficiaries can benefit from an SCA exemption during payment initiation.\nThe result may be subject to pagination (i.e. retrieving a partial result in case of having too many results) through a set of pages by the ASPSP. Thereafter, the AISP may ask for the first, next, previous or last page of results.\n### Prerequisites\n- The TPP was registered by the Registration Authority for the AISP role.\n- The TPP and the PSU have a contract that was enrolled by the ASPSP\n    - At this step, the ASPSP has delivered an OAUTH2 \"Authorization Code\" or \"Resource Owner Password\" access token to the TPP (cf. § 3.4.2).\n- The TPP and the ASPSP have successfully processed a mutual check and authentication\n- The TPP has presented its OAUTH2 \"Authorization Code\" or \"Resource Owner Password\" access token which allows the ASPSP to identify the relevant PSU and retrieve the linked PSU context (cf. § 3.4.2) if any.\n- The ASPSP takes into account the access token that establishes the link between the PSU and the AISP.\n### Business Flow\nThe AISP asks for the trusted beneficiaries list.\nThe ASPSP answers with a list of beneficiary details structure.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthorizationParameter"
          },
          {
            "$ref": "#/components/parameters/PsuIpAddressHeader"
          },
          {
            "$ref": "#/components/parameters/PsuIpPortHeader"
          },
          {
            "$ref": "#/components/parameters/PsuHttpMethodHeader"
          },
          {
            "$ref": "#/components/parameters/PsuDateHeader"
          },
          {
            "$ref": "#/components/parameters/PsuGeoLocation"
          },
          {
            "$ref": "#/components/parameters/PsuUserAgentHeader"
          },
          {
            "$ref": "#/components/parameters/PsuRefererHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptCharsetHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptEncodingHeader"
          },
          {
            "$ref": "#/components/parameters/PsuAcceptLanguageHeader"
          },
          {
            "$ref": "#/components/parameters/PsuDeviceId"
          },
          {
            "$ref": "#/components/parameters/DigestHeader"
          },
          {
            "$ref": "#/components/parameters/SignatureHeader"
          },
          {
            "$ref": "#/components/parameters/Correlation"
          },
          {
            "$ref": "#/components/parameters/Workspace"
          }
        ],
        "responses": {
          "200": {
            "description": "The ASPSP returns the list of whitelisted beneficiaries\n",
            "headers": {
              "X-Request-ID": {
                "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
                "schema": {
                  "type": "string"
                }
              },
              "Warning": {
                "description": "Warning header.\nThis header can be used by the server to inform the client of a deprecated entry-point through the value \"299\" value and a descriptive message.\n",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/HalBeneficiaries"
                }
              }
            }
          },
          "204": {
            "$ref": "#/components/responses/204"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "405": {
            "$ref": "#/components/responses/405"
          },
          "406": {
            "$ref": "#/components/responses/406"
          },
          "429": {
            "$ref": "#/components/responses/429"
          },
          "500": {
            "$ref": "#/components/responses/500"
          },
          "501": {
            "$ref": "#/components/responses/501"
          }
        },
        "security": [
          {
            "accessCode": [
              "aisp"
            ]
          }
        ],
        "tags": [
          "AISP"
        ]
      }
    }
  },
  "components": {
    "parameters": {
      "AccountResourceIdentification": {
        "name": "accountResourceId",
        "description": "Identification of account resource to fetch",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "pattern": "^([a-zA-Z0-9_ /\\-?:\\()\\.,']{1,100})$"
        }
      },
      "AuthorizationParameter": {
        "name": "Authorization",
        "description": "Access token to be passed as a header",
        "in": "header",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "Correlation": {
        "name": "X-Request-ID",
        "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
        "in": "header",
        "required": true,
        "schema": {
          "type": "string",
          "maxLength": 70
        }
      },
      "DateType": {
        "name": "dateType",
        "description": "This parameter specifies the type of date on which [dateFrom] and [dateTo] apply.\nIf not provided, the ASPSP will use its own default date type as specified in its implementation documentation.\nThe implementation documentation must also specify which date types are supported.\n",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "transactionDate",
            "bookingDate"
          ]
        }
      },
      "DigestHeader": {
        "name": "Digest",
        "description": "Digest of the body",
        "in": "header",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "FromEntryReference": {
        "name": "entryReferenceFrom",
        "description": "Specifies the value on which the result has to be computed.\n\nOnly the transaction having a technical identification greater than this value must be included within the result\n",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "maxLength": 40
        }
      },
      "FromImputationDate": {
        "name": "dateFrom",
        "description": "Inclusive minimal imputation date of the transactions.\n\nTransactions having an imputation date equal to this parameter are included within the result.\n",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "format": "date-time"
        }
      },
      "PsuAcceptCharsetHeader": {
        "name": "PSU-Accept-Charset",
        "description": "\"Accept-Charset\" header field sent by the PSU terminal when connecting to the TPP\n",
        "in": "header",
        "schema": {
          "type": "string"
        }
      },
      "PsuAcceptEncodingHeader": {
        "name": "PSU-Accept-Encoding",
        "description": "\"Accept-Encoding\" header field sent by the PSU terminal when connecting to the TPP\n",
        "in": "header",
        "schema": {
          "type": "string"
        }
      },
      "PsuAcceptHeader": {
        "name": "PSU-Accept",
        "description": "\"Accept\" header field sent by the PSU terminal when connecting to the TPP\n",
        "in": "header",
        "schema": {
          "type": "string"
        }
      },
      "PsuAcceptLanguageHeader": {
        "name": "PSU-Accept-Language",
        "description": "\"Accept-Language\" header field sent by the PSU terminal when connecting to the TPP\n",
        "in": "header",
        "schema": {
          "type": "string"
        }
      },
      "PsuDateHeader": {
        "name": "PSU-Date",
        "description": "Timestamp of the most relevant PSU’s terminal request to the TTP",
        "in": "header",
        "schema": {
          "type": "string"
        }
      },
      "PsuDeviceId": {
        "name": "PSU-Device-ID",
        "description": "UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available.\nUUID identifies either a device or a device dependant application installation.\nIn case of installation identification this ID need to be unaltered until removal from device.\n",
        "in": "header",
        "schema": {
          "type": "string"
        }
      },
      "PsuGeoLocation": {
        "name": "PSU-GEO-Location",
        "description": "Geographical location of the PSU as provided by the PSU mobile terminal if any to the TPP",
        "in": "header",
        "schema": {
          "type": "string"
        }
      },
      "PsuHttpMethodHeader": {
        "name": "PSU-HTTP-Method",
        "description": "Http method for the most relevant PSU’s terminal request to the TTP",
        "in": "header",
        "schema": {
          "type": "string"
        }
      },
      "PsuIpAddressHeader": {
        "name": "PSU-IP-Address",
        "description": "IP address used by the PSU's terminal when connecting to the TPP",
        "in": "header",
        "schema": {
          "type": "string"
        }
      },
      "PsuIpPortHeader": {
        "name": "PSU-IP-Port",
        "description": "IP port used by the PSU's terminal when connecting to the TPP",
        "in": "header",
        "schema": {
          "type": "string"
        }
      },
      "PsuRefererHeader": {
        "name": "PSU-Referer",
        "description": "\"Referer\" header field sent by the PSU terminal when connecting to the TPP.\nNotice that an initial typo in RFC 1945 specifies that \"referer\" (incorrect spelling) is to be used. The correct spelling \"referrer\" can be used but might not be understood.\n",
        "in": "header",
        "schema": {
          "type": "string"
        }
      },
      "PsuUserAgentHeader": {
        "name": "PSU-User-Agent",
        "description": "\"User-Agent\" header field sent by the PSU terminal when connecting to the TPP\n",
        "in": "header",
        "schema": {
          "type": "string"
        }
      },
      "SignatureHeader": {
        "name": "Signature",
        "description": "[http-signature of the request](https://datatracker.ietf.org/doc/draft-cavage-http-signatures/)\nThe keyId must specify the way to get the relevant qualified certificate. It is requested that this identifier is an URL aiming to provide the relevant Qualified Certificate.\n",
        "in": "header",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "ToEntryReference": {
        "name": "entryReferenceto",
        "description": "Specifies the value on which the result has to be computed.\n\nOnly the transaction having a technical identification less than or equal to this value must be included within the result\n",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "maxLength": 40
        }
      },
      "ToImputationDate": {
        "name": "dateTo",
        "description": "Exclusive maximal imputation date of the transactions.\n\nTransactions having an imputation date equal to this parameter are not included within the result.\n",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "format": "date-time"
        }
      },
      "TransactionResourceIdentification": {
        "name": "transactionResourceId",
        "description": "Identification of transaction resource to fetch",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "pattern": "^([a-zA-Z0-9_ /\\-?:\\()\\.,']{1,100})$"
        }
      },
      "Workspace": {
        "name": "workspace",
        "description": "Workspace to be used for processing an AISP request.\nIf not provided, the default workspace is computed from the authentication that was used for getting the OAuth2 Access Token.\n",
        "in": "query",
        "schema": {
          "type": "string",
          "maxLength": 32
        }
      }
    },
    "responses": {
      "204": {
        "description": "No content.",
        "headers": {
          "X-Request-ID": {
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "schema": {
              "type": "string"
            }
          },
          "Warning": {
            "description": "Warning header.\nThis header can be used by the server to inform the client of a deprecated entry-point through the value \"299\" value and a descriptive message.\n",
            "schema": {
              "type": "string"
            }
          }
        }
      },
      "400": {
        "description": "Invalid status value",
        "headers": {
          "X-Request-ID": {
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "schema": {
              "type": "string"
            }
          },
          "Warning": {
            "description": "Warning header.\nThis header can be used by the server to inform the client of a deprecated entry-point through the value \"299\" value and a descriptive message.\n",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json; charset=utf-8": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      },
      "401": {
        "description": "Unauthorized, authentication failure.",
        "headers": {
          "X-Request-ID": {
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "schema": {
              "type": "string"
            }
          },
          "Warning": {
            "description": "Warning header.\nThis header can be used by the server to inform the client of a deprecated entry-point through the value \"299\" value and a descriptive message.\n",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json; charset=utf-8": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      },
      "403": {
        "description": "Forbidden, authentication successful but access to resource is not allowed.",
        "headers": {
          "X-Request-ID": {
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "schema": {
              "type": "string"
            }
          },
          "Warning": {
            "description": "Warning header.\nThis header can be used by the server to inform the client of a deprecated entry-point through the value \"299\" value and a descriptive message.\n",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json; charset=utf-8": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      },
      "404": {
        "description": "Not found, no request available.",
        "headers": {
          "X-Request-ID": {
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "schema": {
              "type": "string"
            }
          },
          "Warning": {
            "description": "Warning header.\nThis header can be used by the server to inform the client of a deprecated entry-point through the value \"299\" value and a descriptive message.\n",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json; charset=utf-8": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      },
      "405": {
        "description": "Method Not Allowed.",
        "headers": {
          "X-Request-ID": {
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "schema": {
              "type": "string"
            }
          },
          "Warning": {
            "description": "Warning header.\nThis header can be used by the server to inform the client of a deprecated entry-point through the value \"299\" value and a descriptive message.\n",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json; charset=utf-8": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      },
      "406": {
        "description": "Not Acceptable.",
        "headers": {
          "X-Request-ID": {
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "schema": {
              "type": "string"
            }
          },
          "Warning": {
            "description": "Warning header.\nThis header can be used by the server to inform the client of a deprecated entry-point through the value \"299\" value and a descriptive message.\n",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json; charset=utf-8": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      },
      "408": {
        "description": "Request Timeout.",
        "headers": {
          "X-Request-ID": {
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "schema": {
              "type": "string"
            }
          },
          "Warning": {
            "description": "Warning header.\nThis header can be used by the server to inform the client of a deprecated entry-point through the value \"299\" value and a descriptive message.\n",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json; charset=utf-8": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      },
      "429": {
        "description": "Too many requests.",
        "headers": {
          "X-Request-ID": {
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "schema": {
              "type": "string"
            }
          },
          "Warning": {
            "description": "Warning header.\nThis header can be used by the server to inform the client of a deprecated entry-point through the value \"299\" value and a descriptive message.\n",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json; charset=utf-8": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      },
      "500": {
        "description": "Internal server error.",
        "headers": {
          "X-Request-ID": {
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json; charset=utf-8": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      },
      "501": {
        "description": "Not Implemented.\nThis code should be used when the entry point is implemented but cannot provide a result, given the context.\nWhen the entry point is not implemented at all, HTTP400 will be returned.\n",
        "headers": {
          "X-Request-ID": {
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json; charset=utf-8": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      },
      "503": {
        "description": "Service unavailable.",
        "headers": {
          "X-Request-ID": {
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json; charset=utf-8": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      }
    },
    "schemas": {
      "Access": {
        "description": "Requested access services.",
        "type": "object",
        "properties": {
          "owners": {
            "$ref": "#/components/schemas/AccessibleAccounts"
          },
          "balances": {
            "$ref": "#/components/schemas/AccessibleAccounts"
          },
          "transactions": {
            "$ref": "#/components/schemas/AccessibleAccounts"
          },
          "overdrafts": {
            "$ref": "#/components/schemas/AccessibleAccounts"
          },
          "trustedBeneficiaries": {
            "description": "Indicator that access to the trusted beneficiaries list was granted or not to the AISP by the PSU\n- true: the access was granted\n- false: the access was not granted\n",
            "type": "boolean"
          },
          "trustedWorkspaceBeneficiaries": {
            "description": "Indicator, for each given workspace, that access to the trusted beneficiaries list was granted or not to the AISP by the PSU \n",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccessibleTrustedBeneficiaries"
            }
          },
          "psuIdentity": {
            "description": "Indicator that access to the PSU identity, first name and last name, was granted or not to the AISP by the PSU\n- true: the access was granted\n- false: the access was not granted\n",
            "type": "boolean"
          }
        },
        "required": [
          "owners",
          "balances",
          "transactions",
          "psuIdentity"
        ],
        "example": "{\n  \"owners\" : [ ],\n  \"balances\" : [ {\n    \"other\" : {\n      \"identification\" : \"Alias1\",\n      \"schemeName\" : \"BANK\",\n      \"issuer\" : \"BNKAFRPPXXX\"\n    },\n    \"currency\" : \"EUR\"\n  }, {\n    \"other\" : {\n      \"identification\" : \"Alias2\",\n      \"schemeName\" : \"BANK\",\n      \"issuer\" : \"BNKAFRPPXXX\"\n    },\n    \"currency\" : \"EUR\"\n  } ],\n  \"transactions\" : [ {\n    \"other\" : {\n      \"identification\" : \"Alias1\",\n      \"schemeName\" : \"BANK\",\n      \"issuer\" : \"BNKAFRPPXXX\"\n    },\n    \"currency\" : \"EUR\"\n  } ],\n  \"trustedBeneficiaries\" : \"true\",\n  \"psuIdentity\" : true\n}",
        "x-definition-type": "Resources"
      },
      "AccessibleAccounts": {
        "description": "List of accessible accounts for one given functionality",
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/AccountIdentification"
        },
        "example": "{\n  \"workspace\": \"PRIV\",\n  \"access\": true\n}",
        "x-definition-type": "Resources"
      },
      "AccessibleTrustedBeneficiaries": {
        "description": "list of workspaces for which the PSU has given consent to the access by the AISP",
        "type": "object",
        "properties": {
          "workspace": {
            "description": "Identification of the workspace.\nIf not provided, the default workspace is computed from the authentication that was used for getting the OAuth2 Access Token.\n",
            "type": "string",
            "maxLength": 32
          },
          "access": {
            "description": "Indicator that access to the trusted beneficiaries list was granted or not to the AISP by the PSU for the default workspace\n- true: the access was granted\n- false: the access was not granted\n",
            "type": "boolean"
          }
        },
        "example": "{\n  \"workspace\" : \"PRO_1\",\n  \"access\" : \"true\"\n}"
      },
      "AccountIdentification": {
        "description": "Unique and unambiguous identification for the account between the account owner and the account servicer.\nCard accounts must provide the identification of the card through the \"other\" substructure by giving, for instance, the masked PAN (MPAN).\nThe currency used for the account, when needed, can be specified through the [currency] field.\n",
        "type": "object",
        "properties": {
          "workspace": {
            "description": "Workspace to which the account is linked.\nThis workspace might be specified by the AISP when forwarding the consent on accounts.\nIf not provided, the default workspace is computed from the authentication that was used for getting the OAuth2 Access Token.\n",
            "type": "string",
            "maxLength": 32
          },
          "iban": {
            "description": "ISO20022: International Bank Account Number (IBAN) - identification used internationally by financial institutions to uniquely identify the account of a customer.\n\nFurther specifications of the format and content of the IBAN can be found in the standard ISO 13616 \"Banking and related financial services - International Bank Account Number (IBAN)\" version 1997-10-01, or later revisions.\n",
            "type": "string",
            "pattern": "^[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}$"
          },
          "other": {
            "$ref": "#/components/schemas/GenericIdentification"
          },
          "currency": {
            "$ref": "#/components/schemas/CurrencyCode"
          }
        },
        "example": "{\n  \"workspace\": \"PRO_1\",\n  \"iban\" : \"YY64COJH41059545330222956960771321\",\n  \"currency\" : \"EUR\"\n}",
        "x-definition-type": "ISO20022",
        "x-generic": true
      },
      "AccountLinks": {
        "description": "links that can be used for further navigation when browsing Account Information at one account level\n| Link | Description |\n| ---- | ----------- |\n| owners | link to the owners identities for a given account |\n| balances | link to the balances of a given account |\n| transactions | link to the transactions of a given account |\n| overdrafts | link to the lists of overdrafts of a given account |\n",
        "type": "object",
        "properties": {
          "owners": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "balances": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "transactions": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "overdrafts": {
            "$ref": "#/components/schemas/GenericLink"
          }
        },
        "readOnly": true,
        "example": "{\n  \"balances\" : {\n    \"href\" : \"/v1/accounts/Alias1/balances\"\n  },\n  \"transactions\" : {\n    \"href\" : \"/v1/accounts/Alias1/transactions\"\n  },\n  \"overdrafts\" : {\n    \"href\" : \"/v1/accounts/Alias1/overdrafts\"\n  }\n}",
        "x-definition-type": "Hal"
      },
      "AccountListLinks": {
        "description": "Links that can be used for further navigation when browsing Account Information at top level\n| Link | Description |\n| ---- | ----------- |\n| self | link to the list of all available accounts |\n| consents | link to the consents forwarding |\n| endUserIdentity | link to the end-user identity|\n| trustedBeneficiaries | link to the list of trusted beneficiaries |\n| worspaces | array of link to each relevant workspaces |\n| first | link to the first page of the accounts result |\n| last | link to the last page of the accounts result |\n| next | link to the next page of the accounts result |\n| prev | link to the previous page of the accounts result |\n",
        "type": "object",
        "properties": {
          "self": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "consents": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "endUserIdentity": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "trustedBeneficiaries": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "workspaces": {
            "description": "list of all workspaces that can be accessed by the PSU",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GenericLink"
            }
          },
          "first": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "last": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "next": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "prev": {
            "$ref": "#/components/schemas/GenericLink"
          }
        },
        "required": [
          "self"
        ],
        "readOnly": true,
        "example": "{\n  \"self\" : {\n    \"href\" : \"/v1/accounts\"\n  },\n  \"consents\" : {\n    \"href\" : \"/v1/consents\"\n  },\n  \"endUserIdentity\" : {\n    \"href\" : \"v1/end-user-identity\"\n  },\n  \"trustedBeneficiaries\" : {\n    \"href\" : \"/v1/trusted-beneficiaries\"\n  },\n  \"workspaces\": [\n    {\n      \"href\": \"v1/accounts?worspace=PRO_1\",\n      \"templated\": true\n    },\n    {\n      \"href\": \"v1/accounts?worspace=PRO_2\",\n      \"templated\": true\n    }\n  ]\n}",
        "x-definition-type": "Hal"
      },
      "AccountResource": {
        "description": "PSU account that is made available to the TPP. \nThe ASPSP is able to set up specific accounts in order to provide card transactions with a delayed debit.  \nThis account must be specific to a given card. Consequently, when the card is renewed, a new account will be set up. \nASPSP might also set-up different accounts for one given card but with different imputation dates. The remanence of these accounts is up to the ASPSP but must be equal or greater than the one which is provided through the Web-Banking interface. \nCase a payment card is blocked, any relevant information (balances, transactions...) that is available through the ASPSP PSU-interfaces must also be available through the API till the end of remanence period.\n",
        "type": "object",
        "properties": {
          "workspace": {
            "$ref": "#/components/schemas/Workspace"
          },
          "resourceId": {
            "$ref": "#/components/schemas/ResourceId"
          },
          "bicFi": {
            "description": "ISO20022: Code allocated to a financial institution by the ISO 9362 Registration Authority as described in ISO 9362 \"Banking - Banking telecommunication messages - Business identification code (BIC)\".\n",
            "type": "string",
            "pattern": "^[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}$"
          },
          "accountId": {
            "$ref": "#/components/schemas/AccountIdentification"
          },
          "name": {
            "description": "Label of the PSU account\nIn case of a delayed debit card transaction set, the name shall specify the holder name and can also provide the imputation date\n",
            "type": "string",
            "maxLength": 70
          },
          "details": {
            "description": "Specifications that might be provided by the ASPSP\n- characteristics of the account\n- characteristics of the relevant card\n",
            "type": "string",
            "maxLength": 140
          },
          "linkedAccount": {
            "description": "Case of a set of pending card transactions, the ASPSP will provide the relevant cash account the card is set up on.\nWhen used, this field must be valued with the resourceId of the relevant cash account.\n",
            "type": "string",
            "maxLength": 70
          },
          "usage": {
            "description": "Specifies the usage of the account\n| Code | Description |\n| ---- | ----------- |\n| PRIV | Private personal account |\n| ORGA | Professional account |\nCase of a set of pending card transactions, this field does not have to be set since the usage is inherited from the linked account.\n",
            "type": "string",
            "enum": [
              "PRIV",
              "ORGA"
            ]
          },
          "cashAccountType": {
            "description": "Specifies the type of the account\n| Code | Description |\n| ---- | ----------- |\n| CACC | Cash account |\n| CARD | List of card based transactions |\n",
            "type": "string",
            "enum": [
              "CACC",
              "CARD"
            ]
          },
          "product": {
            "description": "Product Name of the Bank for this account, proprietary definition\n",
            "type": "string",
            "maxLength": 35
          },
          "balances": {
            "description": "list of balances provided by the ASPSP",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BalanceResource"
            },
            "minItems": 1
          },
          "psuStatus": {
            "$ref": "#/components/schemas/PsuStatusType"
          },
          "_links": {
            "$ref": "#/components/schemas/AccountLinks"
          }
        },
        "required": [
          "name",
          "cashAccountType",
          "_links"
        ],
        "example": "{\n  \"resourceId\" : \"Alias1\",\n  \"bicFi\" : \"BNKAFRPPXXX\",\n  \"accountId\" : {\n    \"iban\" : \"YY64COJH41059545330222956960771321\",\n    \"currency\" : \"EUR\"\n  },\n  \"name\" : \"Compte de Mr et Mme Dupont\",\n  \"usage\" : \"PRIV\",\n  \"cashAccountType\" : \"CACC\",\n  \"psuStatus\" : \"Co-account Holder\",\n  \"_links\" : {\n    \"balances\" : {\n      \"href\" : \"/v1/accounts/Alias1/balances\"\n    },\n    \"transactions\" : {\n      \"href\" : \"/v1/accounts/Alias1/transactions\"\n    },\n    \"overdrafts\" : {\n      \"href\" : \"/v1/accounts/Alias1/overdrafts\"\n    }\n  }\n}",
        "x-definition-type": "Resources"
      },
      "AmountAndCurrencyExchange": {
        "description": "Provides detailed information on the original amount.\nThe [instructedAmount] property identifies the amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party and provides currency exchange information in case the instructed amount and/or currency is/are different from the entry amount and/or currency.\nThe [transactionAmount] property identifies the amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party and provides currency exchange information in case the instructed amount and/or currency is/are different from the entry amount and/or currency.\nThe [cunterValueAmount] property embbeds the set of elements used to provide the countervalue amount and currency exchange information.\n- This can be either the counter amount quoted in an FX deal, or the result of the currency information applied to an instructed amount, before deduction of charges.\nThe [announcedPostingAmount] property specifies the amount of money, based on terms of corporate action event and balance of underlying securities, entitled to/from the account owner.\n- In some situations, this amount may alternatively be called entitled amount.\n",
        "type": "object",
        "properties": {
          "instructedAmount": {
            "$ref": "#/components/schemas/AmountAndCurrencyExchangeDetails"
          },
          "transactionAmount": {
            "$ref": "#/components/schemas/AmountAndCurrencyExchangeDetails"
          },
          "counterValueAmount": {
            "$ref": "#/components/schemas/AmountAndCurrencyExchangeDetails"
          },
          "announcedPostingAmount": {
            "$ref": "#/components/schemas/AmountAndCurrencyExchangeDetails"
          },
          "proprietaryAmount": {
            "description": "Set of elements used to provide information on the original amount and currency exchange.\n",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AmountAndCurrencyExchangeDetails"
            }
          }
        },
        "example": "{\n  \"instructedAmount\" : {\n    \"type\" : \"Contract\",\n    \"amount\" : {\n      \"amount\" : 123.45,\n      \"currency\" : \"EUR\"\n    },\n    \"sourceCurrency\" : \"EUR\",\n    \"targetCurrency\" : \"USD\",\n    \"unitCurrency\" : \"EUR\",\n    \"exchangeRate\" : 1.1,\n    \"contractIdentification\" : \"Ctrct4XG56\",\n    \"quotationDate\" : \"2020-02-17\"\n  }\n}",
        "x-definition-type": "ISO20022"
      },
      "AmountAndCurrencyExchangeDetails": {
        "description": "ISO20022: details on amount and currency exchange\nThe [amount] property is the amount of money to be exchanged against another amount of money in the counter currency.\nThe [sourceCurency] property indicates the currency from which an amount is to be converted in a currency conversion.\nThe [targetCurrency] property indicates the currency into which an amount is to be converted in a currency conversion.\nThe [unitCurrency] indicates the currency in which the rate of exchange is expressed in a currency exchange. In the example 1GBP = xxxCUR, the unit currency is GBP.\nAPI: Amounts must always be set as positive values.\n",
        "type": "object",
        "properties": {
          "type": {
            "description": "specifies the type of amount in case of proprietary amount",
            "type": "string",
            "maxLength": 35
          },
          "amount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "sourceCurrency": {
            "$ref": "#/components/schemas/CurrencyCode"
          },
          "targetCurrency": {
            "$ref": "#/components/schemas/CurrencyCode"
          },
          "unitCurrency": {
            "$ref": "#/components/schemas/CurrencyCode"
          },
          "exchangeRate": {
            "description": "Factor used to convert an amount from one currency into another. This reflects the price at which one currency was bought with another currency.\nExchangeRate expresses the ratio between UnitCurrency and QuotedCurrency (ExchangeRate = UnitCurrency/QuotedCurrency).\n",
            "type": "number",
            "format": "float"
          },
          "contractIdentification": {
            "description": "Unique identification to unambiguously identify the foreign exchange contract.",
            "type": "string",
            "maxLength": 35
          },
          "quotationDate": {
            "description": "Date and time at which an exchange rate is quoted.",
            "type": "string",
            "format": "date"
          }
        },
        "required": [
          "amount",
          "sourceCurrency",
          "exchangeRate"
        ],
        "example": "{\n  \"type\" : \"Contract\",\n  \"amount\" : {\n    \"amount\" : 123.45,\n    \"currency\" : \"EUR\"\n  },\n  \"sourceCurrency\" : \"EUR\",\n  \"targetCurrency\" : \"USD\",\n  \"unitCurrency\" : \"EUR\",\n  \"exchangeRate\" : 1.1,\n  \"contractIdentification\" : \"Ctrct4XG56\",\n  \"quotationDate\" : \"2020-02-17\"\n}",
        "x-definition-type": "ISO20022"
      },
      "AmountType": {
        "description": "Structure aiming to embed the amount and the currency to be used.\n",
        "type": "object",
        "properties": {
          "amount": {
            "description": "ISO20022: Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party.\n",
            "type": "number",
            "format": "float",
            "pattern": "^\\-{0,1}[0-9]{1,13}(\\.[0-9]{0,5}){0,1}$"
          },
          "currency": {
            "$ref": "#/components/schemas/CurrencyCode"
          }
        },
        "required": [
          "amount",
          "currency"
        ],
        "example": "{\n  \"amount\" : 123.45,\n  \"currency\" : \"EUR\"\n}",
        "x-definition-type": "ISO20022",
        "x-generic": true
      },
      "BalanceResource": {
        "description": "Structure of an account balance",
        "type": "object",
        "properties": {
          "name": {
            "description": "Label of the balance",
            "type": "string",
            "maxLength": 70
          },
          "balanceAmount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "balanceType": {
            "$ref": "#/components/schemas/BalanceStatus"
          },
          "lastChangeDateTime": {
            "description": "Timestamp of the last change of the balance amount",
            "type": "string",
            "format": "date-time"
          },
          "referenceDate": {
            "description": "Reference date for the balance",
            "type": "string",
            "format": "date-time"
          },
          "lastCommittedTransaction": {
            "description": "Identification of the last committed transaction. This is actually useful for instant balance.\n",
            "type": "string",
            "maxLength": 40
          }
        },
        "required": [
          "name",
          "balanceAmount",
          "balanceType"
        ],
        "example": "{\n  \"name\" : \"Solde comptable au 12/01/2017\",\n  \"balanceAmount\" : {\n    \"amount\" : 123.45,\n    \"currency\" : \"EUR\"\n  },\n  \"balanceType\" : \"CLBD\",\n  \"lastCommittedTransaction\" : \"A452CH\"\n}",
        "x-definition-type": "Resources",
        "x-generic": true
      },
      "BalanceStatus": {
        "description": "Type of balance\n| Code | Name | Description |\n| ---- | ---- | ----------- |\n| CLBD | ISO20022 ClosingBooked | Balance of the account at the end of the pre-agreed account reporting period. It is the sum of the opening booked balance at the beginning of the period and all entries booked to the account during the pre-agreed account reporting period.  |\n| PRCD | ISO20022 PreviouslyClosedBooked | Balance of the account at the previously closed account reporting period. The opening booked balance for the new period has to be equal to this balance. Usage: the previously booked closing balance should equal (inclusive date) the booked closing balance of the date it references and equal the actual booked opening balance of the current date. |\n| ITAV | ISO20022 InterimAvailable | Available balance calculated in the course of the account servicer's business day, at the time specified, and subject to further changes during the business day. The interim balance is calculated on the basis of booked credit and debit items during the calculation time/period specified.  |\n| XPCD | ISO20022 Expected | Balance, composed of booked entries and pending items known at the time of calculation, which projects the end of day balance if everything is booked on the account and no other entry is posted.  |\n| VALU | (None) | Value-date balance |\n| OTHR | (None) | Other Balance |\n",
        "type": "string",
        "enum": [
          "CLBD",
          "XPCD",
          "VALU",
          "OTHR",
          "PRCD",
          "ITAV"
        ],
        "x-definition-type": "ISO20022"
      },
      "BalancesLinks": {
        "description": "links that can be used for further navigation when browsing balances Information at one account level\n| Link | Description |\n| ---- | ----------- |\n| self | link to the balances of a given account |\n| parent-list | link to the list of all available accounts |\n| owners | link to the owners identities for a given account |\n| transactions | link to the transactions of a given account |\n| overdrafts | link to the lists of overdrafts of a given account |\n",
        "type": "object",
        "properties": {
          "self": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "parent-list": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "owners": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "transactions": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "overdrafts": {
            "$ref": "#/components/schemas/GenericLink"
          }
        },
        "required": [
          "self"
        ],
        "readOnly": true,
        "example": "{\n  \"self\" : {\n    \"href\" : \"/v1/accounts/myAccountId/balances\"\n  },\n  \"parent-list\" : {\n    \"href\" : \"/v1/accounts\"\n  },\n  \"transactions\" : {\n    \"href\" : \"/v1/accounts/myAccountId/transactions\"\n  },\n  \"overdrafts\" : {\n    \"href\" : \"/v1/accounts/myAccountId/overdrafts\"\n  }\n}",
        "x-definition-type": "Hal"
      },
      "BankTransactionCode": {
        "description": "Set of elements used to fully identify the type of underlying transaction resulting in an entry.\n\nISO20022 provides a list of [possible Bank Transaction Code combinations](https://www.iso20022.org/external_code_list.page)\n\nTransaction codification might also be specified at national community level.\n\nFor instance a French Transaction codification is [available](https://www.cfonb.org/fichiers/20190913092943_Brochure_Codes_Operation_pour_restitutions_clienteles_V5_0_novembre_2018.pdf)\n\nIt applies with § 2 code table using the following mapping:\n  - domain must be set with \"FR\"\n  - family must be set with one of the values that are provided in the [code Famille] column (e.g. \"OPCA\")\n  - subFamily must be set with one of the values that are provided in the [code opération] column (e.g. \"05\")\n  - code might be set with a proprietary transaction code that must be documented by the implementation.\n",
        "type": "object",
        "properties": {
          "domain": {
            "description": "Set of elements used to provide the domain, the family and the sub-family of the bank transaction code, in a structured and hierarchical format.\n",
            "type": "string",
            "maxLength": 4
          },
          "family": {
            "description": "Specifies the family and the sub-family of the bank transaction code, within a specific domain, in a structured and hierarchical format.\n",
            "type": "string",
            "maxLength": 4
          },
          "subFamily": {
            "description": "Specifies the sub-product family within a specific family.\n",
            "type": "string",
            "maxLength": 4
          },
          "code": {
            "description": "Proprietary bank transaction code to identify the underlying transaction.\n",
            "type": "string",
            "maxLength": 35
          },
          "issuer": {
            "description": "Identification of the issuer of the proprietary bank transaction code.\n",
            "type": "string",
            "maxLength": 35
          }
        },
        "required": [
          "domain",
          "family",
          "subFamily"
        ],
        "example": "{\n  \"domain\" : \"PMNT\",\n  \"family\" : \"CCRD\",\n  \"subFamily\" : \"POSC\"\n}",
        "x-definition-type": "ISO20022"
      },
      "BeneficiariesLinks": {
        "description": "links that can be used for further navigation when browsing Account Information at one account level\n| Link | Description |\n| ---- | ----------- |\n| self | link to the list of trusted beneficiaries |\n| accounts | link to the list of all available accounts |\n| consents | link to the consents forwarding |\n| endUserIdentity | link to the end-user identity |\n| first | link to the first page of the beneficiaries result |\n| last | link to the last page of the beneficiaries result |\n| next | link to the next page of the beneficiaries result |\n| prev | link to the previous page of the beneficiaries result |\n",
        "type": "object",
        "properties": {
          "self": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "accounts": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "consents": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "endUserIdentity": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "first": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "last": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "next": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "prev": {
            "$ref": "#/components/schemas/GenericLink"
          }
        },
        "required": [
          "self"
        ],
        "readOnly": true,
        "example": "{\n  \"self\" : {\n    \"href\" : \"/v1/trusted-beneficiaries\"\n  },\n  \"accounts\" : {\n    \"href\" : \"/v1/accounts\"\n  }\n}",
        "x-definition-type": "Hal"
      },
      "Beneficiary": {
        "description": "Specification of a beneficiary",
        "type": "object",
        "properties": {
          "workspace": {
            "$ref": "#/components/schemas/Workspace"
          },
          "id": {
            "description": "Id of the beneficiary",
            "type": "string",
            "pattern": "^([a-zA-Z0-9 /\\-?:\\()\\.,']{1,36})$"
          },
          "isTrusted": {
            "description": "The ASPSP having not implemented the trusted beneficiaries list must not set this flag.\nOtherwise, the ASPSP indicates whether or not the beneficiary was registered by the PSU within the trusted beneficiaries list.\n- true: the beneficiary is actually a trusted beneficiary\n- false: the beneficiary is not a trusted beneficiary\n",
            "type": "boolean",
            "readOnly": true
          },
          "creditorAgent": {
            "$ref": "#/components/schemas/FinancialInstitutionIdentification"
          },
          "creditor": {
            "$ref": "#/components/schemas/PartyIdentification"
          },
          "creditorAccount": {
            "$ref": "#/components/schemas/AccountIdentification"
          }
        },
        "required": [
          "creditor"
        ],
        "example": "{\n  \"creditor\" : {\n    \"name\" : \"myMerchant\",\n    \"postalAddress\" : {\n      \"country\" : \"FR\",\n      \"addressLine\" : [ \"18 rue de la DSP2\", \"75008 PARIS\" ]\n    },\n    \"organisationId\" : {\n      \"identification\" : \"852126789\",\n      \"schemeName\" : \"SIREN\",\n      \"issuer\" : \"FR\"\n    }\n  },\n  \"creditorAccount\" : {\n    \"iban\" : \"YY64COJH41059545330222956960771321\",\n    \"currency\" : \"EUR\"\n  }\n}",
        "x-definition-type": "Resources"
      },
      "ChargeBearerCode": {
        "description": "ISO20022: Specifies which party/parties will bear the charges associated with the processing of the payment transaction.\nThe following values are allowed:\n| Code | Name | Description |\n| ---- | ---- | ---------- |\n| DEBT | BorneByDebtor | All transaction charges are to be borne by the debtor. |\n| CRED | BorneByCreditor | All transaction charges are to be borne by the creditor. |\n| SHAR | Shared | In a credit transfer context, means that transaction charges on the sender side are to be borne by the debtor, transaction charges on the receiver side are to be borne by the creditor. In a direct debit context, means that transaction charges on the sender side are to be borne by the creditor, transaction charges on the receiver side are to be borne by the debtor. |\n| SLEV | FollowingServiceLevel | Charges are to be applied following the rules agreed in the service level and/or scheme. |\n",
        "type": "string",
        "enum": [
          "DEBT",
          "CRED",
          "SHAR",
          "SLEV"
        ],
        "x-definition-type": "ISO20022"
      },
      "Charges": {
        "description": "ISO20022: Provides further details on the charges related to the payment transaction.\nAPI: Amounts must always be set as positive values.\n",
        "type": "object",
        "properties": {
          "totalChargesAndTaxAmount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "record": {
            "description": "Provides details of the individual charges record.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ChargesRecord"
            }
          }
        },
        "example": "{\n  \"totalChargesAndTaxAmount\" : {\n    \"amount\" : 123.45,\n    \"currency\" : \"EUR\"\n  },\n  \"record\" : [ {\n    \"amount\" : {\n      \"amount\" : 123.45,\n      \"currency\" : \"EUR\"\n    },\n    \"creditDebitIndicator\" : \"DBIT\",\n    \"chargeIncludedIndicator\" : true,\n    \"code\" : {\n      \"code\" : \"CD01\",\n      \"issuer\" : \"MyIssuer\"\n    },\n    \"rate\" : 0.5,\n    \"bearer\" : \"SHAR\",\n    \"agent\" : {\n      \"bicFi\" : \"BNKAFRPPXXX\"\n    },\n    \"tax\" : {\n      \"identification\" : \"VAT\",\n      \"rate\" : 12.3,\n      \"amount\" : {\n        \"amount\" : 123.45,\n        \"currency\" : \"EUR\"\n      }\n    }\n  } ]\n}",
        "x-definition-type": "ISO20022"
      },
      "ChargesRecord": {
        "description": "ISO20022: Provides further individual record details on the charges related to the payment transaction.\n- The [amount] proprty specifies the transaction charges to be paid by the charge bearer.\n- The [creditDebitIndicator] property indicates whether the charges amount is a credit or a debit amount.\n  A zero amount is considered to be a credit.\n- the [code] property is the charge type, in a coded form\n- the [rate] property is the rate used to calculate the amount of the charge or fee.\n- the [bearer] property specifies which party/parties will bear the charges associated with the processing of the payment transaction.\n- the [agent] property specifies the agent that takes the transaction charges or to which the transaction charges are due.\n- the [tax] property provides details on the tax applied to charges.\nAPI: Amounts must always be set as positive values.\n",
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "creditDebitIndicator": {
            "$ref": "#/components/schemas/CreditDebitIndicator"
          },
          "chargeIncludedIndicator": {
            "description": "Indicates whether the charge should be included in the amount or is added as pre-advice.\nOne of the following values must be used:\n  - Meaning When True: Included\n  - Meaning When False: Pre-advised\n",
            "type": "boolean"
          },
          "code": {
            "$ref": "#/components/schemas/CodeAndIssuer"
          },
          "rate": {
            "$ref": "#/components/schemas/PercentageRate"
          },
          "bearer": {
            "$ref": "#/components/schemas/ChargeBearerCode"
          },
          "agent": {
            "$ref": "#/components/schemas/FinancialInstitutionIdentification"
          },
          "tax": {
            "$ref": "#/components/schemas/TaxCharges"
          }
        },
        "example": "{\n  \"amount\" : {\n    \"amount\" : 123.45,\n    \"currency\" : \"EUR\"\n  },\n  \"creditDebitIndicator\" : \"DBIT\",\n  \"chargeIncludedIndicator\" : true,\n  \"code\" : {\n    \"code\" : \"CD01\",\n    \"issuer\" : \"MyIssuer\"\n  },\n  \"rate\" : 0.5,\n  \"bearer\" : \"SHAR\",\n  \"agent\" : {\n    \"bicFi\" : \"BNKAFRPPXXX\"\n  },\n  \"tax\" : {\n    \"identification\" : \"VAT\",\n    \"rate\" : 12.3,\n    \"amount\" : {\n      \"amount\" : 123.45,\n      \"currency\" : \"EUR\"\n    }\n  }\n}",
        "x-definition-type": "ISO20022"
      },
      "ClearingSystemMemberIdentification": {
        "description": "ISO20022: Information used to identify a member within a clearing system.\nAPI: to be used for some specific international credit transfers in order to identify the beneficiary bank\n",
        "type": "object",
        "properties": {
          "clearingSystemId": {
            "description": "ISO20022: Specification of a pre-agreed offering between clearing agents or the channel through which the payment instruction is processed.\n",
            "type": "string",
            "maxLength": 35
          },
          "memberId": {
            "description": "ISO20022: Identification of a member of a clearing system.\n",
            "type": "string",
            "maxLength": 35
          }
        },
        "required": [
          "clearingSystemId",
          "memberId"
        ],
        "example": "{\n  \"clearingSystemId\" : \"NZNCC\",\n  \"memberId\" : \"020368\"\n}",
        "x-definition-type": "ISO20022"
      },
      "CodeAndIssuer": {
        "description": "Specifies a code and the issuer of this code.\n",
        "type": "object",
        "properties": {
          "code": {
            "description": "Provides the code.",
            "type": "string",
            "maxLength": 4
          },
          "issuer": {
            "description": "Identification of the issuer of the code.",
            "type": "string",
            "maxLength": 35
          }
        },
        "required": [
          "code"
        ],
        "example": "{\n  \"code\" : \"CD01\",\n  \"issuer\" : \"MyIssuer\"\n}",
        "x-definition-type": "ISO20022"
      },
      "ContactDetails": {
        "description": "Indicates how to contact the party.\n",
        "type": "object",
        "properties": {
          "phoneNumber": {
            "$ref": "#/components/schemas/PhoneNumber"
          },
          "faxNumber": {
            "$ref": "#/components/schemas/PhoneNumber"
          },
          "emailAddress": {
            "description": "email address of the contact",
            "type": "string",
            "pattern": "^.+@.+$",
            "maxLength": 2048
          }
        },
        "example": "{\n  \"emailAddress\" : \"John.doe@john-doe.com\"\n}",
        "x-definition-type": "ISO20022"
      },
      "CreditDebitIndicator": {
        "description": "Accounting flow of the amount\n| Code | Description |\n| ---- | ----------- |\n| CRDT | Credit type amount |\n| DBIT | Debit type amount |\n",
        "type": "string",
        "enum": [
          "CRDT",
          "DBIT"
        ],
        "x-definition-type": "ISO20022"
      },
      "CreditorReferenceInformation": {
        "description": "Reference information provided by the creditor to allow the identification of the underlying documents.",
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/CodeAndIssuer"
          },
          "reference": {
            "description": "Unique reference, as assigned by the creditor, to unambiguously refer to the payment transaction.",
            "type": "string",
            "maxLength": 35
          }
        },
        "example": "{\n  \"type\" : {\n    \"code\" : \"CD01\",\n    \"issuer\" : \"MyIssuer\"\n  },\n  \"reference\" : \"CredRef56FH6\"\n}",
        "x-definition-type": "ISO20022"
      },
      "CurrencyCode": {
        "description": "Specifies the currency of the amount or of the account.\nA code allocated to a currency by a Maintenance Agency under an international identification scheme, as described in the latest edition of the international standard ISO 4217 \"Codes for the representation of currencies and funds\".\n",
        "type": "string",
        "pattern": "^[A-Z]{3,3}$",
        "x-definition-type": "ISO20022"
      },
      "DateAndPlaceOfBirth": {
        "description": "Date and place of birth of a person.\nThis information must be requested for detection of Fraud, Money-Laundering and Terrorism Financing in case of international payment.\n",
        "type": "object",
        "properties": {
          "birthDate": {
            "description": "Date on which a person is born.",
            "type": "string",
            "format": "date"
          },
          "cityOfBirth": {
            "description": "City where a person was born.",
            "type": "string",
            "maxLength": 35
          },
          "countryOfBirth": {
            "description": "Country where a person was born.",
            "type": "string",
            "pattern": "^[A-Z]{2,2}$"
          }
        },
        "required": [
          "birthDate",
          "cityOfBirth",
          "countryOfBirth"
        ],
        "example": "{\n  \"birthDate\" : \"1985-02-19\",\n  \"cityOfBirth\" : \"Paris\",\n  \"countryOfBirth\" : \"FR\"\n}",
        "x-definition-type": "ISO20022"
      },
      "DocumentAdjustment": {
        "description": "ISO20022: Specifies detailed information on the amount and reason of the adjustment.\nAPI: Amounts must always be set as positive values.\n",
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "creditDebitIndicator": {
            "$ref": "#/components/schemas/CreditDebitIndicator"
          },
          "reason": {
            "description": "Specifies the reason for the adjustment.",
            "type": "string",
            "maxLength": 4
          },
          "additionalInformation": {
            "description": "Provides further details on the document adjustment.",
            "type": "string",
            "maxLength": 140
          }
        },
        "required": [
          "amount"
        ],
        "example": "{\n  \"amount\" : {\n    \"amount\" : 123.45,\n    \"currency\" : \"EUR\"\n  },\n  \"creditDebitIndicator\" : \"CRDT\",\n  \"reason\" : \"RFND\",\n  \"additionalInformation\" : \"Some comment\"\n}",
        "x-definition-type": "ISO20022"
      },
      "DocumentLineIdentification": {
        "description": "Provides identification of the document line.\nthe [type] property must be used for specifying the type of referred document type.\n",
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/CodeAndIssuer"
          },
          "number": {
            "description": "Unique and unambiguous identification of the referred document line.",
            "type": "string",
            "maxLength": 35
          },
          "relatedDate": {
            "description": "Date associated with the referred document line.",
            "type": "string",
            "format": "date"
          }
        },
        "example": "{\n  \"type\" : {\n    \"code\" : \"CD01\",\n    \"issuer\" : \"MyIssuer\"\n  },\n  \"number\" : \"1\",\n  \"relatedDate\" : \"2020-02-09\"\n}",
        "x-definition-type": "ISO20022"
      },
      "EndDate": {
        "description": "The last applicable day of execution for a given period.\nIf not given, the period is considered as endless.\n",
        "type": "string",
        "format": "date-time",
        "x-definition-type": "ISO20022"
      },
      "EndToEndId": {
        "description": "ISO20022: Unique identification assigned by the initiating party to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain.\n",
        "type": "string",
        "pattern": "^([a-zA-Z0-9 /\\-?:\\()\\.,']{1,36})$"
      },
      "EndUserIdentityLinks": {
        "description": "links that can be used for further navigation after retrieving end-user identity\n| Link | Description |\n| ---- | ----------- |\n| self | link to the end-user identity |\n| accounts | link to the list of all available accounts |\n| consents | link to the consents forwarding |\n| trustedBeneficiaries | link to the list of trusted beneficiaries |\n",
        "type": "object",
        "properties": {
          "self": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "accounts": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "consents": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "trustedBeneficiaries": {
            "$ref": "#/components/schemas/GenericLink"
          }
        },
        "required": [
          "self"
        ],
        "readOnly": true,
        "example": "{\n  \"self\" : {\n    \"href\" : \"v1/end-user-identity\"\n  },\n  \"accounts\" : {\n    \"href\" : \"/v1/accounts\"\n  },\n  \"consents\" : {\n    \"href\" : \"/v1/consents\"\n  },\n  \"trustedBeneficiaries\" : {\n    \"href\" : \"/v1/trusted-beneficiaries\"\n  }\n}",
        "x-definition-type": "Hal"
      },
      "ErrorDetail": {
        "description": "detailed error description",
        "type": "object",
        "properties": {
          "location": {
            "description": "Location of the erroneous parameter when not in request body",
            "type": "string",
            "enum": [
              "header",
              "query"
            ]
          },
          "name": {
            "description": "Name of the erroneous parameter when not in request body",
            "type": "string"
          },
          "path": {
            "description": "JsonPath of the erroneous request body property",
            "type": "string"
          },
          "erroneousValue": {
            "description": "Erroneous parameter value",
            "type": "string"
          },
          "message": {
            "description": "Relevant message for the erroneous parameter",
            "type": "string"
          },
          "expectedPattern": {
            "description": "Expected pattern, if any, that the erroneous parameter does not match with",
            "type": "string"
          },
          "expectedValueRange": {
            "description": "Expected value range, if any, that the erroneous parameter does not match with",
            "type": "object",
            "example": "{\n  \"minValue\": 1,\n  \"maxValue\": 100\n}        ",
            "properties": {
              "minValue": {
                "type": "integer"
              },
              "maxValue": {
                "type": "integer"
              }
            }
          },
          "expectedValueCount": {
            "description": "Expected value count, in the case of an array item, that the erroneous parameter does not match with",
            "type": "object",
            "example": "{\n  \"minValue\": \"1\"\n}        ",
            "properties": {
              "minValue": {
                "type": "integer"
              },
              "maxValue": {
                "type": "integer"
              }
            }
          },
          "expectedEnumeration": {
            "description": "Expected enumeration, if any, that the erroneous parameter do not match with",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "x-definition-type": "Technical"
      },
      "ErrorModel": {
        "description": "Generic error report structure",
        "type": "object",
        "properties": {
          "timestamp": {
            "description": "current timestamp",
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "description": "HTTP error code",
            "type": "integer",
            "format": "int32"
          },
          "error": {
            "description": "HTTP error text",
            "type": "string",
            "maxLength": 140
          },
          "message": {
            "description": "HTTP textual reason phrase",
            "type": "string",
            "maxLength": 140
          },
          "path": {
            "description": "Relevant path that was used",
            "type": "string",
            "maxLength": 140
          },
          "details": {
            "description": "list of detailed errors that were encountered",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ErrorDetail"
            },
            "minItems": 1
          }
        },
        "required": [
          "status",
          "message"
        ],
        "example": "{\n  \"timestamp\" : \"2021-03-17T16:47:00.187248+01:00\",\n  \"status\" : 400,\n  \"error\" : \"Bad Request\",\n  \"message\" : \"This Authentication Approach is not available\",\n  \"details\" : [ {\n    \"path\" : \"$.supplementaryData.acceptedAuthenticationApproach\",\n    \"erroneousValue\" : \"EMBEDDED\",\n    \"expectedEnumeration\" : [ \"REDIRECT\", \"DECOUPLED\" ]\n  } ]\n}",
        "x-definition-type": "Technical"
      },
      "ExecutionRule": {
        "description": "Execution date shifting rule for standing orders\nThis data attribute defines the behaviour when recurring payment dates falls on a weekend or bank holiday.\nThe payment is then executed either the \"preceding\" or \"following\" working day.\nASPSP might reject the request due to the communicated value, if rules in Online-Banking are not supporting\nthis execution rule.\n| Code | Description |\n| ---- | ----------- |\n| FWNG | following |\n| PREC | preceding |\n",
        "type": "string",
        "enum": [
          "FWNG",
          "PREC"
        ],
        "x-definition-type": "ISO20022"
      },
      "FinancialInstitutionIdentification": {
        "description": "ISO20022: Unique and unambiguous identification of a financial institution, as assigned under an internationally recognised or proprietary identification scheme.\n",
        "type": "object",
        "properties": {
          "bicFi": {
            "description": "ISO20022: Code allocated to a financial institution by the ISO 9362 Registration Authority as described in ISO 9362 \"Banking - Banking telecommunication messages - Business identification code (BIC)\".\n",
            "type": "string",
            "pattern": "^[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}$"
          },
          "clearingSystemMemberId": {
            "$ref": "#/components/schemas/ClearingSystemMemberIdentification"
          },
          "lei": {
            "$ref": "#/components/schemas/LeiIdentification"
          },
          "name": {
            "description": "Name of the financial institution",
            "type": "string",
            "maxLength": 140
          },
          "postalAddress": {
            "$ref": "#/components/schemas/PostalAddress"
          }
        },
        "required": [
          "bicFi"
        ],
        "example": "{\n  \"bicFi\" : \"BNKAFRPPXXX\"\n}",
        "x-definition-type": "ISO20022",
        "x-generic": true
      },
      "FrequencyCode": {
        "description": "Frequency rule for standing orders.\nThe following codes from the \"EventFrequency7Code\" of ISO 20022 are supported.\n| Code | Description |\n| ---- | ----------- |\n| DAIL | Daily |\n| WEEK | Weekly |\n| TOWK | EveryTwoWeeks |\n| MNTH | Monthly |\n| TOMN | EveryTwoMonths |\n| QUTR | Quarterly |\n| SEMI | SemiAnnual |\n| YEAR | Annual |\nHowever, each ASPSP might restrict these values into a subset if needed.\n",
        "type": "string",
        "enum": [
          "DAIL",
          "WEEK",
          "TOWK",
          "MNTH",
          "TOMN",
          "QUTR",
          "SEMI",
          "YEAR"
        ],
        "x-definition-type": "ISO20022"
      },
      "GenericIdentification": {
        "description": "ISO20022: Unique identification of an account, a person or an organisation, as assigned by an issuer.\nAPI: The ASPSP will document which account reference type it will support.\n",
        "type": "object",
        "properties": {
          "identification": {
            "description": "API: Identifier\n",
            "type": "string",
            "maxLength": 70
          },
          "schemeName": {
            "description": "Name of the identification scheme.\nPossible values for the scheme name, partially based on ISO20022 external code list, are the following:\n| Code | Name | Description |\n| ---- | ---- | ----------- |\n| BANK | BankPartyIdentification | 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. |\n| BBAN | BBANIdentifier | Basic Bank Account Number (BBAN) - identifier used nationally by financial institutions, ie, in individual countries, generally as part of a National Account Numbering Scheme(s), to uniquely identify the account of a customer. |\n| COID | CountryIdentificationCode) : Country authority given organisation identification (e.g., corporate registration number) |\n| SREN | SIREN | 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. |\n| SRET | SIRET | 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. |\n| NIDN | NationalIdentityNumber | Number assigned by an authority to identify the national identity number of a person. |\nOther values are also permitted, for instance:\n| Code | Name | Description |\n| ---- | ---- | ----------- |\n| OAUT | OAUTH2 | OAUTH2 access token that is owned by the PISP being also an AISP and that can be used in order to identify the PSU |\n| CPAN | CardPan | Card PAN |\n| MPAN | MaskedPan | Card PAN where some digits were replaced for security reason |\n| TPAN | TokenizedPan | Token which was provided by a Token Service Provider (TSP) in order to obfuscate a real card PAN. The TSP must be identified in the issuer field |\n| TBAN | TokenizedIBAN | Token which was provided by a Token Service Provider (TSP) in order to obfuscate an IBAN. The TSP must be identified in the issuer field |\nEach implementation of the STET PSD2 API must specify in its own documentation which schemes can actually been used\n",
            "type": "string",
            "maxLength": 70
          },
          "issuer": {
            "description": "ISO20022: Entity that assigns the identification. this could a country code or any organisation name or identifier that can be recognized by both parties\n",
            "type": "string",
            "maxLength": 35
          }
        },
        "required": [
          "identification",
          "schemeName"
        ],
        "example": "{\n  \"identification\" : \"12FR5\",\n  \"schemeName\" : \"COID\",\n  \"issuer\" : \"ACPR\"\n}",
        "x-definition-type": "ISO20022",
        "x-generic": true
      },
      "GenericLink": {
        "description": "hypertext reference",
        "type": "object",
        "properties": {
          "href": {
            "description": "URI to be used. HREF stands for Hypertext REFerence.",
            "type": "string",
            "maxLength": 2000
          },
          "templated": {
            "description": "This field must be set with \"true\"  when [href] is an URI template, i.e. with parameters that will be set by the client afterwards. Parameter fields must be included by the API server according to RFC6570.\nOtherwise, this property must be absent or set to false\ndefault value: false\n",
            "type": "boolean"
          }
        },
        "required": [
          "href"
        ],
        "example": "{\n  \"href\" : \"/v1/accounts\"\n}",
        "x-definition-type": "Hal",
        "x-generic": true
      },
      "HalAccounts": {
        "description": "HYPERMEDIA structure used for returning the list of the available accounts to the AISP",
        "type": "object",
        "properties": {
          "accounts": {
            "description": "List of PSU account that are made available to the TPP\n",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccountResource"
            }
          },
          "_links": {
            "$ref": "#/components/schemas/AccountListLinks"
          }
        },
        "required": [
          "accounts",
          "_links"
        ],
        "example": "{\n  \"accounts\" : [ {\n    \"workspace\": {\n      \"identification\" : \"PERSO\",\n      \"label\" : \"comptes personnels\"\n    },\n    \"resourceId\" : \"Alias1\",\n    \"bicFi\" : \"BNKAFRPPXXX\",\n    \"accountId\" : {\n      \"iban\" : \"YY64COJH41059545330222956960771321\",\n      \"currency\" : \"EUR\"\n    },\n    \"name\" : \"Compte de Mr et Mme Dupont\",\n    \"usage\" : \"PRIV\",\n    \"cashAccountType\" : \"CACC\",\n    \"psuStatus\" : \"Co-account Holder\",\n    \"_links\" : {\n      \"balances\" : {\n        \"href\" : \"/v1/accounts/Alias1/balances\"\n      },\n      \"transactions\" : {\n        \"href\" : \"/v1/accounts/Alias1/transactions\"\n      },\n      \"overdrafts\" : {\n        \"href\" : \"/v1/accounts/Alias1/overdrafts\"\n      }\n    }\n  }, {\n    \"workspace\": {\n      \"identification\" : \"PERSO\",\n      \"label\" : \"comptes personnels\"\n    },\n    \"resourceId\" : \"Alias2\",\n    \"bicFi\" : \"BNKAFRPPXXX\",\n    \"accountId\" : {\n      \"iban\" : \"YY64COJH41059545330222956960771321\",\n      \"currency\" : \"EUR\"\n    },\n    \"name\" : \"Compte de Mme Dupont\",\n    \"usage\" : \"PRIV\",\n    \"cashAccountType\" : \"CACC\",\n    \"psuStatus\" : \"Account Holder\",\n    \"_links\" : {\n      \"balances\" : {\n        \"href\" : \"/v1/accounts/Alias2/balances\"\n      },\n      \"transactions\" : {\n        \"href\" : \"/v1/accounts/Alias2/transactions\"\n      },\n      \"overdrafts\" : {\n        \"href\" : \"/v1/accounts/Alias2/overdrafts\"\n      }\n    }\n  } ],\n  \"_links\" : {\n    \"self\" : {\n      \"href\" : \"/v1/accounts\"\n\n    },\n    \"consents\" : {\n      \"href\" : \"/v1/consents\"\n\n    },\n    \"endUserIdentity\" : {\n      \"href\" : \"v1/end-user-identity\"\n    },\n    \"trustedBeneficiaries\" : {\n      \"href\" : \"/v1/trusted-beneficiaries\"\n    }\n  }\n}",
        "x-definition-type": "Hal"
      },
      "HalBalances": {
        "description": "HYPERMEDIA structure used for returning the list of the relevant balances for a given account to the AISP",
        "type": "object",
        "properties": {
          "balances": {
            "description": "List of account balances",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BalanceResource"
            },
            "minItems": 1
          },
          "_links": {
            "$ref": "#/components/schemas/BalancesLinks"
          }
        },
        "required": [
          "balances",
          "_links"
        ],
        "example": "{\n  \"balances\" : [ {\n    \"name\" : \"Solde comptable au 12/01/2017\",\n    \"balanceAmount\" : {\n      \"amount\" : 123.45,\n      \"currency\" : \"EUR\"\n    },\n    \"balanceType\" : \"CLBD\",\n    \"lastCommittedTransaction\" : \"A452CH\"\n  }, {\n    \"name\" : \"Solde instantané au 12/01/2017 20:13\",\n    \"balanceAmount\" : {\n      \"amount\" : 105.65,\n      \"currency\" : \"EUR\"\n    },\n    \"balanceType\" : \"XPCD\",\n    \"lastCommittedTransaction\" : \"A452D0\"\n  } ],\n  \"_links\" : {\n    \"self\" : {\n      \"href\" : \"/v1/accounts/myAccountId/balances\"\n    },\n    \"parent-list\" : {\n      \"href\" : \"/v1/accounts\"\n    },\n    \"transactions\" : {\n      \"href\" : \"/v1/accounts/myAccountId/transactions\"\n    },\n    \"overdrafts\" : {\n      \"href\" : \"/v1/accounts/myAccountId/overdrafts\"\n    }\n  }\n}",
        "x-definition-type": "Hal"
      },
      "HalBeneficiaries": {
        "description": "HYPERMEDIA structure used for returning the list of the whitelisted beneficiaries",
        "type": "object",
        "properties": {
          "beneficiaries": {
            "description": "List of trusted beneficiaries",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Beneficiary"
            }
          },
          "_links": {
            "$ref": "#/components/schemas/BeneficiariesLinks"
          }
        },
        "required": [
          "beneficiaries",
          "_links"
        ],
        "example": "{\n  \"demoBeneficiaries\" : [ {\n    \"creditor\" : {\n      \"name\" : \"myMerchant\",\n      \"postalAddress\" : {\n        \"country\" : \"FR\",\n        \"addressLine\" : [ \"18 rue de la DSP2\", \"75008 PARIS\" ]\n      },\n      \"organisationId\" : {\n        \"identification\" : \"852126789\",\n        \"schemeName\" : \"SIREN\",\n        \"issuer\" : \"FR\"\n      }\n    },\n    \"creditorAccount\" : {\n      \"iban\" : \"YY64COJH41059545330222956960771321\",\n      \"currency\" : \"EUR\"\n    }\n  } ],\n  \"beneficiaries\" : [ {\n    \"creditor\" : {\n      \"name\" : \"myMerchant\",\n      \"postalAddress\" : {\n        \"country\" : \"FR\",\n        \"addressLine\" : [ \"18 rue de la DSP2\", \"75008 PARIS\" ]\n      },\n      \"organisationId\" : {\n        \"identification\" : \"852126789\",\n        \"schemeName\" : \"SIREN\",\n        \"issuer\" : \"FR\"\n      }\n    },\n    \"creditorAccount\" : {\n      \"iban\" : \"YY64COJH41059545330222956960771321\",\n      \"currency\" : \"EUR\"\n    }\n  } ],\n  \"_links\" : {\n    \"self\" : {\n      \"href\" : \"/v1/trusted-beneficiaries\"\n    },\n    \"accounts\" : {\n      \"href\" : \"/v1/accounts\"\n    }\n  }\n}",
        "x-definition-type": "Hal"
      },
      "HalEndUserIdentity": {
        "description": "HYPERMEDIA structure used for returning the identity of the PSU.\nThe [identity] property specifies the identity of the PSU which has granted access to the AISP on the accounts data\nThis information can be retrieved based on the PSU's authentication that occurred during the OAUTH2 access token initialisation.\n",
        "type": "object",
        "properties": {
          "identity": {
            "$ref": "#/components/schemas/Identity"
          },
          "_links": {
            "$ref": "#/components/schemas/EndUserIdentityLinks"
          }
        },
        "required": [
          "identity",
          "_links"
        ],
        "example": "{\n  \"identity\" : {\n    \"fullName\" : \"Mme Cécile Dupond\",\n    \"namePrefix\" : \"MADM\",\n    \"firstName\" : \"Cécile\",\n    \"lastName\" : \"Dupond\"\n  },\n  \"_links\" : {\n    \"self\" : {\n      \"href\" : \"v1/end-user-identity\"\n    },\n    \"accounts\" : {\n      \"href\" : \"/v1/accounts\"\n    },\n    \"consents\" : {\n      \"href\" : \"/v1/consents\"\n    },\n    \"trustedBeneficiaries\" : {\n      \"href\" : \"/v1/trusted-beneficiaries\"\n    }\n  }\n}",
        "x-definition-type": "Hal"
      },
      "HalOverdrafts": {
        "description": "HYPERMEDIA structure used for returning the list of the overdrafts that can apply on a given account to the AISP",
        "type": "object",
        "properties": {
          "overdrafts": {
            "$ref": "#/components/schemas/Overdraft"
          },
          "_links": {
            "$ref": "#/components/schemas/OverdraftsLinks"
          }
        },
        "required": [
          "overdrafts",
          "_links"
        ],
        "example": "{\n  \"overdrafts\" : {\n    \"allowedAmount\" : {\n      \"amount\" : 30000.0,\n      \"currency\" : \"EUR\"\n    }\n  },\n  \"_links\" : {\n    \"self\" : {\n      \"href\" : \"/v1/accounts/Alias1/overdrafts\"\n    },\n    \"parent-list\" : {\n      \"href\" : \"/v1/accounts\"\n    },\n    \"balances\" : {\n      \"href\" : \"/v1/accounts/Alias1/balances\"\n    },\n    \"transactions\" : {\n      \"href\" : \"/v1/accounts/Alias1/transactions\"\n    }\n  }\n}",
        "x-definition-type": "Hal"
      },
      "HalOwners": {
        "description": "HYPERMEDIA structure used for returning the identities of the account owners.\nThese owners are either real persons or a company.\n- in the first case, the [identities] block must be used\n- in the second cas, the [company] property specifies the identity of the company owning the account.",
        "type": "object",
        "properties": {
          "company": {
            "$ref": "#/components/schemas/GenericIdentification"
          },
          "identities": {
            "description": "identity of the account owners.\n",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Identity"
            }
          },
          "_links": {
            "$ref": "#/components/schemas/OwnersLinks"
          }
        },
        "required": [
          "_links"
        ],
        "example": "{\n  \"identities\" : [ {\n    \"fullName\" : \"M. John Doe\",\n    \"namePrefix\" : \"MIST\",\n    \"firstName\" : \"John\",\n    \"lastName\" : \"Doe\"\n  } ],\n  \"_links\" : {\n    \"balances\" : {\n      \"href\" : \"/v1/accounts/Alias1/balances\"\n    },\n    \"transactions\" : {\n      \"href\" : \"/v1/accounts/Alias1/transactions\"\n    },\n    \"overdrafts\" : {\n      \"href\" : \"/v1/accounts/Alias1/overdrafts\"\n    }\n  }\n}",
        "x-definition-type": "Hal"
      },
      "HalTransactionDetails": {
        "description": "HYPERMEDIA structure used for returning the details of a given transaction",
        "type": "object",
        "properties": {
          "details": {
            "description": "Details of the transactions",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "_links": {
            "$ref": "#/components/schemas/TransactionDetailsLinks"
          }
        },
        "required": [
          "details",
          "_links"
        ],
        "example": "{\n  \"details\": [\n    \"First detail\",\n    \"Second detail\"\n  ],\n  \"links\": {\n    \"transactions\": {\n      \"href\": \"/v1/accounts\"\n    },\n    \"accounts\": {\n      \"href\": \"/v1/accounts\"\n    }\n  }\n}",
        "x-definition-type": "Hal"
      },
      "HalTransactions": {
        "description": "HYPERMEDIA structure used for returning the list of the transactions for a given account to the AISP",
        "type": "object",
        "properties": {
          "transactions": {
            "description": "List of transactions",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionResource"
            }
          },
          "_links": {
            "$ref": "#/components/schemas/TransactionsLinks"
          }
        },
        "required": [
          "transactions",
          "_links"
        ],
        "example": "{\n  \"transactions\" : [ {\n    \"entryReference\" : \"DHGF36DJ0\",\n    \"transactionAmount\" : {\n      \"amount\" : 12.25,\n      \"currency\" : \"EUR\"\n    },\n    \"creditDebitIndicator\" : \"DBIT\",\n    \"status\" : \"BOOK\",\n    \"bookingDate\" : \"2020-02-14T00:00+01:00\",\n    \"remittanceInformation\" : {\n      \"unstructured\" : [ \"Chèque n°XXXXXXX\" ]\n    }\n  }, {\n    \"entryReference\" : \"DHGF36DJ1\",\n    \"transactionAmount\" : {\n      \"amount\" : 66.38,\n      \"currency\" : \"EUR\"\n    },\n    \"creditDebitIndicator\" : \"DBIT\",\n    \"status\" : \"BOOK\",\n    \"bookingDate\" : \"2020-02-14T00:00+01:00\",\n    \"remittanceInformation\" : {\n      \"unstructured\" : [ \"Prélèvement ICS XXXXXXX\" ]\n    }\n  } ],\n  \"_links\" : {\n    \"self\" : {\n      \"href\" : \"/v1/accounts/Alias1/transactions\"\n    },\n    \"parent-list\" : {\n      \"href\" : \"/v1/accounts\"\n    },\n    \"balances\" : {\n      \"href\" : \"/v1/accounts/Alias1/balances\"\n    },\n    \"overdrafts\" : {\n      \"href\" : \"/v1/accounts/Alias1/overdrafts\"\n    },\n    \"last\" : {\n      \"href\" : \"/v1/accounts/Alias1/transactions?page=last\"\n    },\n    \"next\" : {\n      \"href\" : \"/v1/accounts/Alias1/transactions?page=next\"\n    }\n  }\n}",
        "x-definition-type": "Hal"
      },
      "Identity": {
        "description": "HYPERMEDIA structure used for returning the identity of the PSU",
        "type": "object",
        "properties": {
          "fullName": {
            "description": "Last name and first name\n",
            "type": "string",
            "maxLength": 140
          },
          "namePrefix": {
            "$ref": "#/components/schemas/NamePrefixCode"
          },
          "firstName": {
            "description": "First name\n",
            "type": "string",
            "maxLength": 70
          },
          "lastName": {
            "description": "Last name\n",
            "type": "string",
            "maxLength": 70
          }
        },
        "required": [
          "fullName"
        ],
        "example": "{\n  \"fullName\" : \"M. John Doe\",\n  \"namePrefix\" : \"MIST\",\n  \"firstName\" : \"John\",\n  \"lastName\" : \"Doe\"\n}",
        "x-definition-type": "Iso20022"
      },
      "LeiIdentification": {
        "description": "Legal Entity Identifier is a code allocated to a party as described in ISO 17442 \"Financial Services - Legal Entity Identifier (LEI)\".\n",
        "type": "string",
        "pattern": "^[A-Z0-9]{18,18}[0-9]{2,2}$",
        "x-definition-type": "ISO20022"
      },
      "LineDetail": {
        "description": "Set of elements used to provide the content of the referred document line.",
        "type": "object",
        "properties": {
          "identification": {
            "$ref": "#/components/schemas/DocumentLineIdentification"
          },
          "description": {
            "description": "Description associated with the document line.",
            "type": "string",
            "maxLength": 2048
          },
          "amount": {
            "$ref": "#/components/schemas/RemittanceAmount"
          }
        },
        "example": "{\n  \"identification\" : {\n    \"type\" : {\n      \"code\" : \"CD01\",\n      \"issuer\" : \"MyIssuer\"\n    },\n    \"number\" : \"1\",\n    \"relatedDate\" : \"2020-02-09\"\n  },\n  \"description\" : \"Some comments\",\n  \"amount\" : {\n    \"remittedAmount\" : {\n      \"amount\" : 123.45,\n      \"currency\" : \"EUR\"\n    }\n  }\n}",
        "x-definition-type": "ISO20022"
      },
      "NamePrefixCode": {
        "description": "Specifies the terms used to formally address a person.\nThis field accepts the following code values\n| Code | Description |\n| ---- | ---------- |\n| DOCT | Doctor |\n| MADM | Madam |\n| MISS | Miss |\n| MIST | Mister |\n",
        "type": "string",
        "enum": [
          "DOCT",
          "MADM",
          "MISS",
          "MIST"
        ],
        "x-definition-type": "ISO20022"
      },
      "Overdraft": {
        "description": "ISO20022: Overdraft characteristics\nAPI: Amounts must always be set as positive values.\n",
        "type": "object",
        "properties": {
          "allowedAmount": {
            "$ref": "#/components/schemas/AmountType"
          }
        },
        "required": [
          "allowedAmount"
        ],
        "example": "{\n  \"allowedAmount\" : {\n    \"amount\" : 30000.0,\n    \"currency\" : \"EUR\"\n  }\n}",
        "x-definition-type": "ISO20022"
      },
      "OverdraftsLinks": {
        "description": "links that can be used for further navigation when browsing overdrafts Information at one account level\n| Link | Description |\n| ---- | ----------- |\n| self | link to the overdrafts of a given account |\n| parent-list | link to the list of all available accounts |\n| owners | link to the owners identities for a given account |\n| balances | link to the balances of a given account |\n| transactions | link to the transactions of a given account |\n",
        "type": "object",
        "properties": {
          "self": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "parent-list": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "owners": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "balances": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "transactions": {
            "$ref": "#/components/schemas/GenericLink"
          }
        },
        "required": [
          "self"
        ],
        "readOnly": true,
        "example": "{\n  \"self\" : {\n    \"href\" : \"/v1/accounts/Alias1/overdrafts\"\n  },\n  \"parent-list\" : {\n    \"href\" : \"/v1/accounts\"\n  },\n  \"balances\" : {\n    \"href\" : \"/v1/accounts/Alias1/balances\"\n  },\n  \"transactions\" : {\n    \"href\" : \"/v1/accounts/Alias1/transactions\"\n  }\n}",
        "x-definition-type": "Hal"
      },
      "OwnersLinks": {
        "description": "links that can be used for further navigation when browsing balances Information at one account level\n| Link | Description |\n| ---- | ----------- |\n| self | link to the owners of a given account |\n| parent-list | link to the list of all available accounts |\n| balances | link to the balances for a given account |\n| transactions | link to the transactions of a given account |\n| overdrafts | link to the lists of overdrafts of a given account |\n",
        "type": "object",
        "properties": {
          "self": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "parent-list": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "balances": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "transactions": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "overdrafts": {
            "$ref": "#/components/schemas/GenericLink"
          }
        },
        "required": [
          "self"
        ],
        "readOnly": true,
        "example": "{\n  \"self\": {\n    \"href\": \"/v1/accounts/myAccountId/owners\"\n  },\n  \"parentList\": {\n    \"href\": \"/v1/accounts\"\n  },\n  \"balances\": {\n    \"href\": \"/v1/accounts/myAccountId/balances\"\n  },\n  \"transactions\": {\n    \"href\": \"/v1/accounts/myAccountId/transactions\"\n  },\n  \"overdrafts\": {\n    \"href\": \"/v1/accounts/myAccountId/overdrafts\"\n  }\n}    ",
        "x-definition-type": "Hal"
      },
      "PartyIdentification": {
        "description": "API : Description of a Party which can be either a person or an organization.\n",
        "type": "object",
        "properties": {
          "name": {
            "description": "ISO20022: Name by which a party is known and which is usually used to identify that party.\nThe [organisationId] property allows the specification of an unique and unambiguous way to identify an organisation.\nThe [privateId] property allows the specification of an unique and unambiguous way to identify a person.\n",
            "type": "string",
            "maxLength": 140
          },
          "dateAndPlaceOfBirth": {
            "$ref": "#/components/schemas/DateAndPlaceOfBirth"
          },
          "postalAddress": {
            "$ref": "#/components/schemas/PostalAddress"
          },
          "contactDetails": {
            "$ref": "#/components/schemas/ContactDetails"
          },
          "organisationId": {
            "$ref": "#/components/schemas/GenericIdentification"
          },
          "privateId": {
            "$ref": "#/components/schemas/GenericIdentification"
          },
          "lei": {
            "$ref": "#/components/schemas/LeiIdentification"
          }
        },
        "required": [
          "name"
        ],
        "example": "{\n  \"name\" : \"MyPreferredPisp\",\n  \"postalAddress\" : {\n    \"country\" : \"FR\",\n    \"addressLine\" : [ \"18 rue de la DSP2\", \"75008 PARIS\" ]\n  },\n  \"organisationId\" : {\n    \"identification\" : \"12FR5\",\n    \"schemeName\" : \"COID\",\n    \"issuer\" : \"ACPR\"\n  }\n}",
        "x-definition-type": "ISO20022",
        "x-generic": true
      },
      "PercentageRate": {
        "description": "Rate expressed as a percentage, ie, in hundredths, eg, 0.7 is 7/10 of a percent, and 7.0 is 7%.",
        "type": "number",
        "format": "float",
        "x-definition-type": "ISO20022"
      },
      "Period": {
        "description": "definition of a time period",
        "type": "object",
        "properties": {
          "startDate": {
            "$ref": "#/components/schemas/StartDate"
          },
          "endDate": {
            "$ref": "#/components/schemas/EndDate"
          }
        },
        "example": "{\n  \"startDate\": \"2021-08-01T00:00+02:00\",\n  \"endDate\": \"2021-08-31T00:00+02:00\"\n}    "
      },
      "PhoneNumber": {
        "description": "The collection of information which identifies a specific phone or FAX number as defined by telecom services.\nIt consists of a \"+\" followed by the country code (from 1 to 3 characters) then a \"-\" and finally, any combination of numbers, \"(\", \")\", \"+\" and \"-\" (up to 30 characters).\n",
        "type": "string",
        "pattern": "^\\+[0-9]{1,3}-[0-9()+\\-]{1,30}$",
        "x-definition-type": "ISO20022"
      },
      "PostalAddress": {
        "description": "ISO20022: Information that locates and identifies a specific address, as defined by postal services.\n",
        "type": "object",
        "properties": {
          "addressType": {
            "description": "ISO20022: Identifies the nature of the postal address.\nAPI: Cannot be used for SEPA payments. Proprietary codes can be specified and documented if needed.\n| Code | Name | Description |\n| ---- | ---- | ----------- |\n| BIZZ | Business | Address is the business address |\n| DLVY | Delivery | Address is the address to which delivery is to take place |\n| MLTO | Mail To | Address is the  address to which mail is sent |\n| PBOX | PO Box | Address is is a postal office (PO) box |\n| ADDR | Postal | Address is the complete postal address |\n| HOME | Business | Address is the home address |\n",
            "type": "string",
            "enum": [
              "BIZZ",
              "DLVY",
              "MLTO",
              "PBOX",
              "ADDR",
              "HOME"
            ]
          },
          "department": {
            "description": "ISO20022: Identification of a division of a large organisation or building.\nAPI: Cannot be used for SEPA payments.\n",
            "type": "string",
            "maxLength": 70
          },
          "subDepartment": {
            "description": "ISO20022: Identification of a sub-division of a large organisation or building.\nAPI: Cannot be used for SEPA payments.\n",
            "type": "string",
            "maxLength": 70
          },
          "streetName": {
            "description": "ISO20022: Name of a street or thoroughfare.\nAPI: Cannot be used for SEPA payments.\n",
            "type": "string",
            "maxLength": 70
          },
          "buildingNumber": {
            "description": "ISO20022: Number that identifies the position of a building on a street.\nAPI: Cannot be used for SEPA payments.\n",
            "type": "string",
            "maxLength": 16
          },
          "buildingName": {
            "description": "ISO20022: Name of the building or house.\nAPI: Cannot be used for SEPA payments.\n",
            "type": "string",
            "maxLength": 16
          },
          "postCode": {
            "description": "ISO20022: Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail.\nAPI: Cannot be used for SEPA payments.\n",
            "type": "string",
            "maxLength": 16
          },
          "townName": {
            "description": "ISO20022: Name of a built-up area, with defined boundaries, and a local government.\nAPI: Cannot be used for SEPA payments.\n",
            "type": "string",
            "maxLength": 35
          },
          "countrySubDivision": {
            "description": "ISO20022: Identifies a subdivision of a country such as state, region, county.\nAPI: Cannot be used for SEPA payments.\n",
            "type": "string",
            "maxLength": 35
          },
          "country": {
            "description": "ISO20022: Country in which a person resides (the place of a person's home). In the case of a company, it is the country from which the affairs of that company are directed.\n",
            "type": "string",
            "pattern": "^([A-Z]{2,2})$"
          },
          "addressLine": {
            "description": "Unstructured address. The lines must embed zip code and town name.\nFor SEPA payments, only two address lines are allowed.\n",
            "type": "array",
            "items": {
              "description": "Address line",
              "type": "string",
              "maxLength": 70
            },
            "minItems": 1,
            "maxItems": 7
          }
        },
        "required": [
          "country"
        ],
        "example": "{\n  \"country\" : \"FR\",\n  \"addressLine\" : [ \"18 rue de la DSP2\", \"75008 PARIS\" ]\n}",
        "x-definition-type": "ISO20022"
      },
      "PsuStatusType": {
        "description": "ISO20022: Specifies the type of account ownership.\n| Name | Description |\n| ---- | ---------- |\n| Account Holder | Person which is the sole holder of the account. |\n| Account Co-Holder | Person which shares with others the holding of the account. |\n| Attorney | Generic case of a person having a mandate to access the account data. |\n| Custodian For Minor | Entity that holds shares/units on behalf of a legal minor. Although the account is registered under the name of the minor, the custodian retains control of the account. |\n| Legal Guardian | Entity that was appointed by a legal authority to act on behalf of a person judged to be incapacitated. |\n| Nominee | Entity named by the beneficial owner to act on its behalf, often to facilitate dealing, or to conceal the identity of the beneficiary. |\n| Successor On Death | Deceased's estate, or successor, to whom the respective percentage of ownership will be transferred upon the death of one of the owners. |\n| Trustee | Legal owners of the property. However, the beneficiary has the equitable or beneficial ownership. |\n",
        "type": "string",
        "maxLength": 35,
        "x-definition-type": "ISO20022"
      },
      "ReferredDocumentInformation": {
        "description": "Provides the identification and the content of the referred document.",
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/CodeAndIssuer"
          },
          "number": {
            "description": "Unique and unambiguous identification of the referred document.",
            "type": "string",
            "maxLength": 35
          },
          "relatedDate": {
            "description": "Date associated with the referred document.",
            "type": "string",
            "format": "date"
          },
          "lineDetails": {
            "description": "Sets of elements used to provide the content of the referred document line.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LineDetail"
            },
            "minItems": 1
          }
        },
        "example": "{\n  \"type\" : {\n    \"code\" : \"CD01\",\n    \"issuer\" : \"MyIssuer\"\n  },\n  \"number\" : \"1\",\n  \"relatedDate\" : \"2020-02-19\",\n  \"lineDetails\" : [ {\n    \"amount\" : {\n      \"remittedAmount\" : {\n        \"amount\" : 123.45,\n        \"currency\" : \"EUR\"\n      }\n    }\n  } ]\n}",
        "x-definition-type": "ISO20022"
      },
      "ReferredDocumentInformations": {
        "description": "Provides the identification and the content of the referred documents.\n",
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/ReferredDocumentInformation"
        },
        "minItems": 1,
        "x-definition-type": "ISO20022"
      },
      "RelatedParties": {
        "description": "information about the parties that are related to the transaction",
        "type": "object",
        "properties": {
          "initiatingParty": {
            "$ref": "#/components/schemas/PartyIdentification"
          },
          "debtorAgent": {
            "$ref": "#/components/schemas/FinancialInstitutionIdentification"
          },
          "debtor": {
            "$ref": "#/components/schemas/PartyIdentification"
          },
          "debtorAccount": {
            "$ref": "#/components/schemas/AccountIdentification"
          },
          "ultimateDebtor": {
            "$ref": "#/components/schemas/PartyIdentification"
          },
          "creditorAgent": {
            "$ref": "#/components/schemas/FinancialInstitutionIdentification"
          },
          "creditor": {
            "$ref": "#/components/schemas/PartyIdentification"
          },
          "creditorAccount": {
            "$ref": "#/components/schemas/AccountIdentification"
          },
          "ultimateCreditor": {
            "$ref": "#/components/schemas/PartyIdentification"
          }
        },
        "example": "{\n  \"creditorAgent\" : {\n    \"bicFi\" : \"BNKAFRPPXXX\"\n  },\n  \"creditor\" : {\n    \"name\" : \"MyPreferredPisp\",\n    \"postalAddress\" : {\n      \"country\" : \"FR\",\n      \"addressLine\" : [ \"18 rue de la DSP2\", \"75008 PARIS\" ]\n    },\n    \"organisationId\" : {\n      \"identification\" : \"12FR5\",\n      \"schemeName\" : \"COID\",\n      \"issuer\" : \"ACPR\"\n    }\n  },\n  \"creditorAccount\" : {\n    \"iban\" : \"YY64COJH41059545330222956960771321\",\n    \"currency\" : \"EUR\"\n  }\n}",
        "x-definition-type": "ISO20022"
      },
      "RemittanceAmount": {
        "description": "ISO20022: Provides details on the amounts of the document line.\nAPI: Amounts must always be set as positive values.\n| Property | Description |\n| -------- | ----------- |\n| duePayableAmount | Amount specified is the exact amount due and payable to the creditor. |\n| discountAppliedAmount | Amount of discount to be applied to the amount due and payable to the creditor. |\n| creditNoteAmount | Amount of a credit note. |\n| taxAmount | Amount of the tax. |\n| adjustmentAmountAndReason | Specifies detailed information on the amount and reason of the adjustment. |\n| remittedAmount | Amount of money remitted. |\n",
        "type": "object",
        "properties": {
          "duePayableAmount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "discountAppliedAmount": {
            "$ref": "#/components/schemas/TypedAmount"
          },
          "creditNoteAmount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "taxAmount": {
            "$ref": "#/components/schemas/TypedAmount"
          },
          "adjustmentAmountAndReason": {
            "$ref": "#/components/schemas/DocumentAdjustment"
          },
          "remittedAmount": {
            "$ref": "#/components/schemas/AmountType"
          }
        },
        "example": "{\n  \"remittedAmount\" : {\n    \"amount\" : 123.45,\n    \"currency\" : \"EUR\"\n  }\n}",
        "x-definition-type": "ISO20022"
      },
      "RemittanceInformation": {
        "description": "ISO20022: Information supplied to enable the matching of an entry with the items that the transfer is intended to settle, such as commercial invoices in an accounts' receivable system.\nAPI:\n- Only one occurrence of the unstructured information is allowed.\n- Only one occurrence of the structured information is allowed.\n- Structured and unstructured information can coexist.\n",
        "type": "object",
        "properties": {
          "unstructured": {
            "description": "Unstructured remittance information.\nEach implementation may add a pattern in order to specify its own character set constraints. \n",
            "type": "array",
            "items": {
              "title": "remittanceLine",
              "description": "Relevant information to the transaction",
              "type": "string",
              "maxLength": 140
            },
            "minItems": 1
          },
          "structured": {
            "description": "Structured remittance information",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StructuredRemittanceInformation"
            },
            "minItems": 1
          }
        },
        "example": "{\n  \"unstructured\" : [ \"MyRemittanceInformation\" ]\n}",
        "x-definition-type": "ISO20022"
      },
      "ResourceId": {
        "description": "API: Identifier assigned by the ASPSP for further use of the created resource through API calls.\nThe API client cannot set or modify the value of this field.\nSince this value can be exchanged between the server and the client as an URL element or for support information, it must not contain sensitive value such as personal or business data.\nHowever it is the duty of each ASPSP to perform its own risk analysis on this topic.\n",
        "type": "string",
        "pattern": "^([a-zA-Z0-9_ /\\-?:\\()\\.,']{1,100})$",
        "readOnly": true,
        "x-definition-type": "Resources"
      },
      "StandingOrderCharacteristics": {
        "description": "Specifies the characteristics of a standing order.\n",
        "type": "object",
        "properties": {
          "startDate": {
            "$ref": "#/components/schemas/StartDate"
          },
          "endDate": {
            "$ref": "#/components/schemas/EndDate"
          },
          "executionRule": {
            "$ref": "#/components/schemas/ExecutionRule"
          },
          "frequency": {
            "$ref": "#/components/schemas/FrequencyCode"
          }
        },
        "required": [
          "startDate",
          "executionRule",
          "frequency"
        ],
        "example": "{\n  \"startDate\" : \"2020-02-24T00:00Z\",\n  \"executionRule\" : \"FWNG\",\n  \"frequency\" : \"MNTH\"\n}",
        "x-definition-type": "ISO20022"
      },
      "StartDate": {
        "description": "The first applicable day of execution for a given period.\n",
        "type": "string",
        "format": "date-time",
        "x-definition-type": "ISO20022"
      },
      "StructuredRemittanceInformation": {
        "description": "Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, such as commercial invoices in an accounts' receivable system, in a structured form.\n",
        "type": "object",
        "properties": {
          "referredDocumentInformation": {
            "$ref": "#/components/schemas/ReferredDocumentInformations"
          },
          "referredDocumentAmount": {
            "$ref": "#/components/schemas/RemittanceAmount"
          },
          "creditorReferenceInformation": {
            "$ref": "#/components/schemas/CreditorReferenceInformation"
          },
          "invoicer": {
            "$ref": "#/components/schemas/PartyIdentification"
          },
          "invoicee": {
            "$ref": "#/components/schemas/PartyIdentification"
          },
          "taxRemittance": {
            "$ref": "#/components/schemas/TaxInformation"
          }
        },
        "example": "{\n  \"referredDocumentInformation\" : [ {\n    \"type\" : {\n      \"code\" : \"CD01\",\n      \"issuer\" : \"MyIssuer\"\n    },\n    \"number\" : \"1\",\n    \"relatedDate\" : \"2020-02-19\",\n    \"lineDetails\" : [ {\n      \"amount\" : {\n        \"remittedAmount\" : {\n          \"amount\" : 123.45,\n          \"currency\" : \"EUR\"\n        }\n      }\n    } ]\n  } ],\n  \"referredDocumentAmount\" : {\n    \"remittedAmount\" : {\n      \"amount\" : 123.45,\n      \"currency\" : \"EUR\"\n    }\n  },\n  \"creditorReferenceInformation\" : {\n    \"type\" : {\n      \"code\" : \"CD01\",\n      \"issuer\" : \"MyIssuer\"\n    },\n    \"reference\" : \"CredRef56FH6\"\n  },\n  \"invoicee\" : {\n    \"name\" : \"MyPreferredPisp\",\n    \"postalAddress\" : {\n      \"country\" : \"FR\",\n      \"addressLine\" : [ \"18 rue de la DSP2\", \"75008 PARIS\" ]\n    },\n    \"organisationId\" : {\n      \"identification\" : \"12FR5\",\n      \"schemeName\" : \"COID\",\n      \"issuer\" : \"ACPR\"\n    }\n  },\n  \"taxRemittance\" : {\n    \"creditor\" : {\n      \"taxIdentification\" : \"TaxIdHGH5445\",\n      \"registrationIdentification\" : \"REGId387H\",\n      \"taxType\" : \"VAT\",\n      \"authorisation\" : {\n        \"title\" : \"M.\",\n        \"name\" : \"John Doe\"\n      }\n    },\n    \"debtor\" : {\n      \"taxIdentification\" : \"TaxIdHGH5445\",\n      \"registrationIdentification\" : \"REGId387H\",\n      \"taxType\" : \"VAT\",\n      \"authorisation\" : {\n        \"title\" : \"M.\",\n        \"name\" : \"John Doe\"\n      }\n    },\n    \"administrationZone\" : \"FR\",\n    \"method\" : \"CT\",\n    \"date\" : \"2020-02-19\",\n    \"record\" : [ {\n      \"type\" : \"NationalTax\",\n      \"category\" : \"VAT\",\n      \"categoryDetails\" : \"VAT02\",\n      \"debtorStatus\" : \"Valid\",\n      \"certificateIdentification\" : \"CertId56RD\",\n      \"formsCode\" : \"FormHJH7\",\n      \"period\" : {\n        \"year\" : \"2020\",\n        \"type\" : \"QTR4\",\n        \"fromDate\" : \"2019-10-01\",\n        \"toDate\" : \"2020-01-01\"\n      },\n      \"taxAmount\" : {\n        \"details\" : [ {\n          \"period\" : {\n            \"year\" : \"2020\",\n            \"type\" : \"QTR4\",\n            \"fromDate\" : \"2019-10-01\",\n            \"toDate\" : \"2020-01-01\"\n          },\n          \"amount\" : {\n            \"amount\" : 123.45,\n            \"currency\" : \"EUR\"\n          }\n        } ]\n      },\n      \"additionalInformation\" : \"Some comment\"\n    } ]\n  }\n}",
        "x-definition-type": "ISO20022",
        "x-generic": true
      },
      "TaxAmount": {
        "description": "ISO20022: Set of elements used to provide information on the amount of the tax record.\nAPI: Amounts must always be set as positive values.\n| Property | Description |\n| -------- | ----------- |\n| rate | Rate used to calculate the tax. |\n| taxableBaseAmount | Amount of money on which the tax is based. |\n| totalAmount | Total amount that is the result of the calculation of the tax for the record. |\n| details | Set of elements used to provide details on the tax period and amount. |\n",
        "type": "object",
        "properties": {
          "rate": {
            "$ref": "#/components/schemas/PercentageRate"
          },
          "taxableBaseAmount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "totalAmount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "details": {
            "description": "Set of elements used to provide details on the tax period and amount.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaxRecordDetails"
            },
            "minItems": 1
          }
        },
        "example": "{\n  \"details\" : [ {\n    \"period\" : {\n      \"year\" : \"2020\",\n      \"type\" : \"QTR4\",\n      \"fromDate\" : \"2019-10-01\",\n      \"toDate\" : \"2020-01-01\"\n    },\n    \"amount\" : {\n      \"amount\" : 123.45,\n      \"currency\" : \"EUR\"\n    }\n  } ]\n}",
        "x-definition-type": "ISO20022"
      },
      "TaxCharges": {
        "description": "ISO20022: Provides details on the tax applied to charges.\n- The [rate] property is the rate used to calculate the tax.\n- the [amount] property is the amount of money resulting from the calculation of the tax.\nAPI: Amounts must always be set as positive values.\n",
        "type": "object",
        "properties": {
          "identification": {
            "description": "Unique reference to unambiguously identify the nature of the tax levied, such as Value Added Tax (VAT).",
            "type": "string",
            "maxLength": 35
          },
          "rate": {
            "$ref": "#/components/schemas/PercentageRate"
          },
          "amount": {
            "$ref": "#/components/schemas/AmountType"
          }
        },
        "example": "{\n  \"identification\" : \"VAT\",\n  \"rate\" : 12.3,\n  \"amount\" : {\n    \"amount\" : 123.45,\n    \"currency\" : \"EUR\"\n  }\n}",
        "x-definition-type": "ISO20022"
      },
      "TaxInformation": {
        "description": "ISO20022: Details about tax paid, or to be paid, to the government in accordance with the law, including pre-defined parameters such as thresholds and type of account.\nAPI: Amounts must always be set as positive values.\nThe [totalTaxableBaseAmount] property indicates the total amount of money on which the tax is based.\nThe [totalTaxAmount] property indicates the total amount of money as result of the calculation of the tax.\n",
        "type": "object",
        "properties": {
          "creditor": {
            "$ref": "#/components/schemas/TaxParty"
          },
          "debtor": {
            "$ref": "#/components/schemas/TaxParty"
          },
          "ultimateDebtor": {
            "$ref": "#/components/schemas/TaxParty"
          },
          "administrationZone": {
            "description": "Territorial part of a country to which the tax payment is related.",
            "type": "string",
            "maxLength": 35
          },
          "referenceNumber": {
            "description": "Tax reference information that is specific to a taxing agency.",
            "type": "string",
            "maxLength": 140
          },
          "method": {
            "description": "Method used to indicate the underlying business or how the tax is paid.",
            "type": "string",
            "maxLength": 35
          },
          "totalTaxableBaseAmount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "totalTaxAmount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "date": {
            "description": "Date by which tax is due.",
            "type": "string",
            "format": "date"
          },
          "sequenceNumber": {
            "description": "Sequential number of the tax report.",
            "type": "integer",
            "format": "int32"
          },
          "record": {
            "description": "Records of tax details",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaxRecord"
            },
            "minItems": 1
          }
        },
        "example": "{\n  \"creditor\" : {\n    \"taxIdentification\" : \"TaxIdHGH5445\",\n    \"registrationIdentification\" : \"REGId387H\",\n    \"taxType\" : \"VAT\",\n    \"authorisation\" : {\n      \"title\" : \"M.\",\n      \"name\" : \"John Doe\"\n    }\n  },\n  \"debtor\" : {\n    \"taxIdentification\" : \"TaxIdHGH5445\",\n    \"registrationIdentification\" : \"REGId387H\",\n    \"taxType\" : \"VAT\",\n    \"authorisation\" : {\n      \"title\" : \"M.\",\n      \"name\" : \"John Doe\"\n    }\n  },\n  \"administrationZone\" : \"FR\",\n  \"method\" : \"CT\",\n  \"date\" : \"2020-02-19\",\n  \"record\" : [ {\n    \"type\" : \"NationalTax\",\n    \"category\" : \"VAT\",\n    \"categoryDetails\" : \"VAT02\",\n    \"debtorStatus\" : \"Valid\",\n    \"certificateIdentification\" : \"CertId56RD\",\n    \"formsCode\" : \"FormHJH7\",\n    \"period\" : {\n      \"year\" : \"2020\",\n      \"type\" : \"QTR4\",\n      \"fromDate\" : \"2019-10-01\",\n      \"toDate\" : \"2020-01-01\"\n    },\n    \"taxAmount\" : {\n      \"details\" : [ {\n        \"period\" : {\n          \"year\" : \"2020\",\n          \"type\" : \"QTR4\",\n          \"fromDate\" : \"2019-10-01\",\n          \"toDate\" : \"2020-01-01\"\n        },\n        \"amount\" : {\n          \"amount\" : 123.45,\n          \"currency\" : \"EUR\"\n        }\n      } ]\n    },\n    \"additionalInformation\" : \"Some comment\"\n  } ]\n}",
        "x-definition-type": "ISO20022"
      },
      "TaxParty": {
        "description": "Set of elements used to identify a party of the transaction to which the tax applies.\nThe [authorization] property aims to provide the details of the authorised tax paying party.\n",
        "type": "object",
        "properties": {
          "taxIdentification": {
            "description": "Tax identification number of the party.",
            "type": "string",
            "maxLength": 35
          },
          "registrationIdentification": {
            "description": "Unique identification, as assigned by an organisation, to unambiguously identify a party.",
            "type": "string",
            "maxLength": 35
          },
          "taxType": {
            "description": "Type of tax payer.",
            "type": "string",
            "maxLength": 35
          },
          "authorisation": {
            "$ref": "#/components/schemas/TitleAndName"
          }
        },
        "example": "{\n  \"taxIdentification\" : \"TaxIdHGH5445\",\n  \"registrationIdentification\" : \"REGId387H\",\n  \"taxType\" : \"VAT\",\n  \"authorisation\" : {\n    \"title\" : \"M.\",\n    \"name\" : \"John Doe\"\n  }\n}",
        "x-definition-type": "ISO20022"
      },
      "TaxPeriod": {
        "description": "Set of elements used to provide details on the period of time related to the tax payment.\nThe [type] property aims to identify the period related to the tax payment.\n",
        "type": "object",
        "properties": {
          "year": {
            "description": "Year related to the tax payment.",
            "type": "string",
            "pattern": "^[0-9]{4,4}$"
          },
          "type": {
            "$ref": "#/components/schemas/TaxRecordPeriodCode"
          },
          "fromDate": {
            "description": "Start date of the range.",
            "type": "string",
            "format": "date"
          },
          "toDate": {
            "description": "End date of the range.",
            "type": "string",
            "format": "date"
          }
        },
        "example": "{\n  \"year\" : \"2020\",\n  \"type\" : \"QTR4\",\n  \"fromDate\" : \"2019-10-01\",\n  \"toDate\" : \"2020-01-01\"\n}",
        "x-definition-type": "ISO20022"
      },
      "TaxRecord": {
        "description": "Record of tax details\nthe [period] property embbeds the set of elements used to provide details on the period of time related to the tax payment.\nthe [amount] property embbeds the set of elements used to provide information on the amount of the tax record.\n",
        "type": "object",
        "properties": {
          "type": {
            "description": "High level code to identify the type of tax details.",
            "type": "string",
            "maxLength": 35
          },
          "category": {
            "description": "Specifies the tax code as published by the tax authority.",
            "type": "string",
            "maxLength": 35
          },
          "categoryDetails": {
            "description": "Provides further details of the category tax code.",
            "type": "string",
            "maxLength": 35
          },
          "debtorStatus": {
            "description": "Code provided by local authority to identify the status of the party that has drawn up the settlement document.",
            "type": "string",
            "maxLength": 35
          },
          "certificateIdentification": {
            "description": "Identification number of the tax report as assigned by the taxing authority.",
            "type": "string",
            "maxLength": 35
          },
          "formsCode": {
            "description": "Identifies, in a coded form, on which template the tax report is to be provided.",
            "type": "string",
            "maxLength": 35
          },
          "period": {
            "$ref": "#/components/schemas/TaxPeriod"
          },
          "taxAmount": {
            "$ref": "#/components/schemas/TaxAmount"
          },
          "additionalInformation": {
            "description": "Further details of the tax record.",
            "type": "string",
            "maxLength": 140
          }
        },
        "example": "{\n  \"type\" : \"NationalTax\",\n  \"category\" : \"VAT\",\n  \"categoryDetails\" : \"VAT02\",\n  \"debtorStatus\" : \"Valid\",\n  \"certificateIdentification\" : \"CertId56RD\",\n  \"formsCode\" : \"FormHJH7\",\n  \"period\" : {\n    \"year\" : \"2020\",\n    \"type\" : \"QTR4\",\n    \"fromDate\" : \"2019-10-01\",\n    \"toDate\" : \"2020-01-01\"\n  },\n  \"taxAmount\" : {\n    \"details\" : [ {\n      \"period\" : {\n        \"year\" : \"2020\",\n        \"type\" : \"QTR4\",\n        \"fromDate\" : \"2019-10-01\",\n        \"toDate\" : \"2020-01-01\"\n      },\n      \"amount\" : {\n        \"amount\" : 123.45,\n        \"currency\" : \"EUR\"\n      }\n    } ]\n  },\n  \"additionalInformation\" : \"Some comment\"\n}",
        "x-definition-type": "ISO20022"
      },
      "TaxRecordDetails": {
        "description": "ISO20022: Elements used to provide details on the tax period and amount.\nAPI: Amounts must always be set as positive values.\n| Property | Description |\n| -------- | ----------- |\n| period | Set of elements used to provide details on the period of time related to the tax payment. |\n| amount | Underlying tax amount related to the specified period. |\n",
        "type": "object",
        "properties": {
          "period": {
            "$ref": "#/components/schemas/TaxPeriod"
          },
          "amount": {
            "$ref": "#/components/schemas/AmountType"
          }
        },
        "required": [
          "amount"
        ],
        "example": "{\n  \"period\" : {\n    \"year\" : \"2020\",\n    \"type\" : \"QTR4\",\n    \"fromDate\" : \"2019-10-01\",\n    \"toDate\" : \"2020-01-01\"\n  },\n  \"amount\" : {\n    \"amount\" : 123.45,\n    \"currency\" : \"EUR\"\n  }\n}",
        "x-definition-type": "ISO20022"
      },
      "TaxRecordPeriodCode": {
        "description": "Identification of the period related to the tax payment.\n| Code | Description |\n| ---- | ---------- |\n| MM01 | FirstMonth Tax is related to the second month of the period. |\n| MM02 | SecondMonth Tax is related to the first month of the period. |\n| MM03 | ThirdMonth Tax is related to the third month of the  period. |\n| MM04 | FourthMonth Tax is related to the fourth month of the period. |\n| MM05 | FifthMonth Tax is related to the fifth month of the period. |\n| MM06 | SixthMonth Tax is related to the sixth month of the period. |\n| MM07 | SeventhMonth Tax is related to the seventh month of the period. |\n| MM08 | EighthMonth Tax is related to the eighth month of the period. |\n| MM09 | NinthMonth Tax is related to the ninth month of the period. |\n| MM10 | TenthMonth Tax is related to the tenth month of the period. |\n| MM11 | EleventhMonth Tax is related to the eleventh month of the period. |\n| MM12 | TwelfthMonth Tax is related to the twelfth month of the period. |\n| QTR1 | FirstQuarter Tax is related to the first quarter of the period. |\n| QTR2 | SecondQuarter Tax is related to the second quarter of the period. |\n| QTR3 | ThirdQuarter Tax is related to the third quarter of the period. |\n| QTR4 | FourthQuarter Tax is related to the fourth quarter of the period. |\n| HLF1 | FirstHalf Tax is related to the first half of the period. |\n| HLF2 | SecondHalf Tax is related to the second half of the period. |\n",
        "type": "string",
        "enum": [
          "MM01",
          "MM02",
          "MM03",
          "MM04",
          "MM05",
          "MM06",
          "MM07",
          "MM08",
          "MM09",
          "MM10",
          "MM11",
          "MM12",
          "QTR1",
          "QTR2",
          "QTR3",
          "QTR4",
          "HLF1",
          "HLF2"
        ],
        "x-definition-type": "ISO20022"
      },
      "TitleAndName": {
        "description": "Title and Name of the party or the party's authorised reprensentative.",
        "type": "object",
        "properties": {
          "title": {
            "description": "Title or position of the party or the party's authorised reprensentative.",
            "type": "string",
            "maxLength": 35
          },
          "name": {
            "description": "Name of the party or the party's authorised reprensentative.",
            "type": "string",
            "maxLength": 140
          }
        },
        "example": "{\n  \"title\" : \"M.\",\n  \"name\" : \"John Doe\"\n}",
        "x-definition-type": "ISO20022"
      },
      "TransactionDetailsLinks": {
        "description": "links that can be used after retrieving details on a given transaction\n| Link | Description |\n| ---- | ----------- |\n| transactions | link to the transaction list |\n| accounts | link to the list of all available accounts |\n",
        "type": "object",
        "properties": {
          "transactions": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "accounts": {
            "$ref": "#/components/schemas/GenericLink"
          }
        },
        "readOnly": true,
        "example": "{\n  \"transactions\": {\n    \"href\": \"/v1/accounts/Alias1/transactions\"\n  },\n  \"accounts\": {\n    \"href\": \"/v1/accounts\"\n  }\n}    ",
        "x-definition-type": "Hal"
      },
      "TransactionLinks": {
        "description": "links that can be used for further retrieving details on a given transaction\n| Link | Description |\n| ---- | ----------- |\n| details | link to the details of the transaction |\n",
        "type": "object",
        "properties": {
          "details": {
            "$ref": "#/components/schemas/GenericLink"
          }
        },
        "readOnly": true,
        "example": "{\n  \"details\": {\n    \"href\": \"/v1/accounts/Alias1/transactions/Transaction1/details\"\n  }\n}",
        "x-definition-type": "Hal"
      },
      "TransactionResource": {
        "description": "ISO20022: Structure of a transaction.\n- the [charges] property provides information on the charges, pre-advised or included in the entry amount.\n- the [relatedParties] property specifies either the debtor or the creditor counterpart information\nAPI:\n- Amounts must always be set as positive values in complement with the Credit/Debit indicator.\n- At least expectedBookingDate or bookingDate must be provided\"\n",
        "type": "object",
        "properties": {
          "resourceId": {
            "$ref": "#/components/schemas/ResourceId"
          },
          "entryReference": {
            "description": "Technical incremental identification of the transaction used for reconciliation by the AISP.\nOnce assigned, this value cannot be changed for the relevant transaction.\nIt is assumed that this value is unique and thus cannot be shared by several transactions.\n\nThe reconciliation of transactions can be done by the [resourceId] or the [entryReference] field.\nIf none of these fields cannot be provided, it is therefore suggested that the [remittanceInformation] field, once set, should not be updated afterwards.  \nActually the [additionalTransactionInformation] field can be used to update the details of a given transaction.   \n",
            "type": "string",
            "maxLength": 40
          },
          "transactionAmount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "creditDebitIndicator": {
            "$ref": "#/components/schemas/CreditDebitIndicator"
          },
          "transactionAmountDetails": {
            "$ref": "#/components/schemas/AmountAndCurrencyExchange"
          },
          "status": {
            "$ref": "#/components/schemas/TransactionStatus"
          },
          "endToEndId": {
            "$ref": "#/components/schemas/EndToEndId"
          },
          "expectedBookingDate": {
            "description": "Expected booking date of the transaction on the account if the transaction is not yet booked.\n",
            "type": "string",
            "format": "date-time"
          },
          "bookingDate": {
            "description": "Real booking date of the transaction on the account\n",
            "type": "string",
            "format": "date-time"
          },
          "valueDate": {
            "description": "Value date of the transaction on the account",
            "type": "string",
            "format": "date-time"
          },
          "transactionDate": {
            "description": "Date used for specific purposes:\n- for card transaction: date of the commercial transaction\n- for credit transfer: acquiring date of the transaction as seen by the Payer's Bank\n- for direct debit: receiving date of the transaction as seen by the Payer's Bank\n",
            "type": "string",
            "format": "date-time"
          },
          "bankTransactionCode": {
            "$ref": "#/components/schemas/BankTransactionCode"
          },
          "charges": {
            "$ref": "#/components/schemas/Charges"
          },
          "relatedParties": {
            "$ref": "#/components/schemas/RelatedParties"
          },
          "remittanceInformation": {
            "$ref": "#/components/schemas/RemittanceInformation"
          },
          "additionalTransactionInformation": {
            "description": "Additional information about reconciliation.",
            "type": "string",
            "maxLength": 500
          },
          "standingOrderCharacteristics": {
            "$ref": "#/components/schemas/StandingOrderCharacteristics"
          },
          "merchantCategoryCode": {
            "description": "Category code conform to ISO 18245, related to the type of services or goods the merchant provides for the transaction.\n",
            "type": "string",
            "maxLength": 4
          },
          "_links": {
            "$ref": "#/components/schemas/TransactionLinks"
          },
          "bookingPeriod": {
            "$ref": "#/components/schemas/Period"
          },
          "cardId": {
            "$ref": "#/components/schemas/GenericIdentification"
          }
        },
        "required": [
          "transactionAmount",
          "status",
          "creditDebitIndicator"
        ],
        "example": "{\n  \"entryReference\" : \"DHGF36DJ0\",\n  \"transactionAmount\" : {\n    \"amount\" : 12.25,\n    \"currency\" : \"EUR\"\n  },\n  \"creditDebitIndicator\" : \"DBIT\",\n  \"status\" : \"BOOK\",\n  \"bookingDate\" : \"2020-02-14T00:00+01:00\",\n  \"remittanceInformation\" : {\n    \"unstructured\" : [ \"Chèque n°XXXXXXX\" ]\n  }\n}",
        "x-definition-type": "ISO20022"
      },
      "TransactionStatus": {
        "description": "Type of Transaction\n| Code | Name | Description |\n| ---- | ---- | ----------- |\n| BOOK | ClosingBooked | Accounted transaction |\n| PDNG | Pending | Transaction that is to be accounted and does already affect the instant balance |\n| FUTR | Future | Entry is on the books of the account servicer and value will be applied to the account owner at a future date and time. |\n| INFO | Information | Entry is only provided for information, and no booking on the account owner's account in the account servicer's ledger was performed. |\n",
        "type": "string",
        "enum": [
          "BOOK",
          "PDNG",
          "FUTR",
          "INFO"
        ],
        "x-definition-type": "ISO20022"
      },
      "TransactionsLinks": {
        "description": "links that can be used for further navigation when browsing transactions Information at one account level\n| Link | Description |\n| ---- | ----------- |\n| self | link to the transactions of a given account |\n| parent-list | link to the list of all available accounts |\n| owners | link to the owners identities for a given account |\n| balances | link to the balances of a given account |\n| overdrafts | link to the lists of overdrafts of a given account |\n| first | link to the first page of the transactions result |\n| last | link to the last page of the transactions result |\n| next | link to the next page of the transactions result |\n| prev | link to the previous page of the transactions result |\n",
        "type": "object",
        "properties": {
          "self": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "parent-list": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "owners": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "balances": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "overdrafts": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "first": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "last": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "next": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "prev": {
            "$ref": "#/components/schemas/GenericLink"
          }
        },
        "required": [
          "self"
        ],
        "readOnly": true,
        "example": "{\n  \"self\" : {\n    \"href\" : \"/v1/accounts/Alias1/transactions\"\n  },\n  \"parent-list\" : {\n    \"href\" : \"/v1/accounts\"\n  },\n  \"balances\" : {\n    \"href\" : \"/v1/accounts/Alias1/balances\"\n  },\n  \"overdrafts\" : {\n    \"href\" : \"/v1/accounts/Alias1/overdrafts\"\n  },\n  \"last\" : {\n    \"href\" : \"/v1/accounts/Alias1/transactions?page=last\"\n  },\n  \"next\" : {\n    \"href\" : \"/v1/accounts/Alias1/transactions?page=next\"\n  }\n}",
        "x-definition-type": "Hal"
      },
      "TypedAmount": {
        "description": "ISO20022: Typed Amount\nAPI: Amounts must always be set as positive values.\n",
        "type": "object",
        "properties": {
          "type": {
            "description": "Type of the amount",
            "type": "string",
            "maxLength": 35
          },
          "amount": {
            "$ref": "#/components/schemas/AmountType"
          }
        },
        "required": [
          "amount"
        ],
        "example": "{\n  \"type\" : \"CHRG\",\n  \"amount\" : {\n    \"amount\" : 123.45,\n    \"currency\" : \"EUR\"\n  }\n}",
        "x-definition-type": "ISO20022"
      },
      "Workspace": {
        "description": "Some ASPSP may provide different user workspaces that can be accessed by the same authenticated PSU. In this case, the AISP is able to retrieve the different pieces of account information by specifying the relevant workspace as a QUERY parameter. Identification of the workspace to be used when processing the request. If not present, the default workspace to be used is the one that is linked to the authentication processed during the OAuth2 access token request.",
        "type": "object",
        "properties": {
          "identification": {
            "description": "identification of the workspace to be used as an optional query parameter for some AISP queries",
            "type": "string",
            "maxLength": 32
          },
          "label": {
            "description": "textual description of the workspace as specified by the ASPSP in relationship wth the PSU",
            "type": "string",
            "maxLength": 128
          }
        },
        "required": [
          "identification",
          "label"
        ],
        "example": "{\n  \"identification\" : \"PRO_1\",\n  \"label\" : \"comptes de la SARL PRO1\"\n}"
      }
    },
    "securitySchemes": {
      "accessCode": {
        "description": "In order to access the PSU's account information, the AISP needs to get either an authorization code grant or a Client Initiated Backchannel Authentication token.\nIn order to post a funds confirmation request, the CBPII needs to get either an authorization code grant or a Client Initiated Backchannel Authentication token when registration of the account has not been previously processed.\nIn order to confirm a Payment or Transfer Request, the PISP needs to get either an authorization code grant or a Client Initiated Backchannel Authentication token.\nThe client_id field within the token request must be filled with the value of the organization identifier attribute that was set in the distinguished name of eIDAS certificate of the TPP, according to ETSI recommandations.\n(cf §5.2.1 of [ETSI specfication](https://www.etsi.org/standards-search#page=1&search=TS119495))\n",
        "type": "oauth2",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "/stet/psd2/oauth/authorize",
            "tokenUrl": "/stet/psd2/oauth/token",
            "scopes": {
              "aisp": "Access by an AISP to one given PSU's account",
              "extended_transaction_history": "Access by an AISP to a transaction history over more than the 90 last days"
            },
            "refreshUrl": "/stet/psd2/oauth/token"
          }
        }
      }
    }
  }
}