{
  "openapi": "3.0.1",
  "info": {
    "title": "PSD2 ASPSP services for AISP, PISP and CBPII.",
    "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 \n",
    "contact": {
      "name": "STET",
      "url": "https://www.stet.eu/en/psd2/",
      "email": "psd2@stet.eu"
    },
    "license": {
      "name": "Creative Commons Attribution 3.0 France (CC BY 3.0 FR)"
    },
    "version": "1.4.2.20"
  },
  "servers": [
    {
      "url": "/v1"
    }
  ],
  "paths": {
    "/accounts": {
      "get": {
        "tags": [
          "AISP"
        ],
        "summary": "Retrieval of the PSU accounts (AISP)",
        "description": "### Description\nThis call returns all payment accounts that are relevant 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 has been registered by the Registration Authority for the AISP role.\n- The TPP and the PSU have a contract that has been 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",
        "operationId": "accountsGet",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access token to be passed as a header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Address",
            "in": "header",
            "description": "IP address used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Port",
            "in": "header",
            "description": "IP port used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-HTTP-Method",
            "in": "header",
            "description": "Http method for the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Date",
            "in": "header",
            "description": "Timestamp of the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-GEO-Location",
            "in": "header",
            "description": "Geographical location of the PSU as provided by the PSU mobile terminal if any to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-User-Agent",
            "in": "header",
            "description": "\"User-Agent\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Referer",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept",
            "in": "header",
            "description": "\"Accept\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Charset",
            "in": "header",
            "description": "\"Accept-Charset\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Encoding",
            "in": "header",
            "description": "\"Accept-Encoding\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Language",
            "in": "header",
            "description": "\"Accept-Language\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Device-ID",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Digest",
            "in": "header",
            "description": "Digest of the body",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Signature",
            "in": "header",
            "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",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Request-ID",
            "in": "header",
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "required": true,
            "schema": {
              "maxLength": 70,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The ASPSP return a PSU context \n- listing the accounts that have been made available to the AISP by the PSU and, \n- for each of these accounts, the further transactions that have been 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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/HalAccounts"
                }
              }
            }
          },
          "204": {
            "description": "No content.",
            "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": {}
          },
          "401": {
            "description": "Unauthorized, authentication failure.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden, authentication successful but access to resource is not allowed.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "404": {
            "description": "Not found, no request available.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "405": {
            "description": "Method Not Allowed.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "406": {
            "description": "Not Acceptable.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "408": {
            "description": "Request Timeout.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "429": {
            "description": "Too many requests.",
            "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/hal+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/hal+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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessCode": [
              "aisp"
            ]
          },
          {
            "resourceOwnerIdentification": [
              "aisp"
            ]
          }
        ]
      }
    },
    "/accounts/{accountResourceId}/balances": {
      "get": {
        "tags": [
          "AISP"
        ],
        "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 has been registered by the Registration Authority for the AISP role\n- The TPP and the PSU have a contract that has been enrolled by the ASPSP\n  - At this step, the ASPSP has delivered an OAUTH2 &ldquo;Authorization Code&rdquo; or &ldquo;Resource Owner Password&rdquo; access token to the TPP (cf. &sect; 3.4.2).\n- The TPP and the ASPSP have successfully processed a mutual check and authentication\n- The TPP has presented its OAUTH2 &ldquo;Authorization Code&rdquo; or &ldquo;Resource Owner Password&rdquo; access token which allows the ASPSP to identify the relevant PSU and retrieve the linked PSU context (cf. &sect; 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&rsquo;s accounts.\nThe ASPSP answers by providing a list of balances on this account.\n  - The ASPSP must provide at least the accounting balance on the account.\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  \n",
        "operationId": "accountsBalancesGet",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access token to be passed as a header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accountResourceId",
            "in": "path",
            "description": "Identification of account resource to fetch",
            "required": true,
            "schema": {
              "pattern": "^([a-zA-Z0-9 /\\-?:\\()\\.,']{1,36})$",
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Address",
            "in": "header",
            "description": "IP address used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Port",
            "in": "header",
            "description": "IP port used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-HTTP-Method",
            "in": "header",
            "description": "Http method for the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Date",
            "in": "header",
            "description": "Timestamp of the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-GEO-Location",
            "in": "header",
            "description": "Geographical location of the PSU as provided by the PSU mobile terminal if any to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-User-Agent",
            "in": "header",
            "description": "\"User-Agent\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Referer",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept",
            "in": "header",
            "description": "\"Accept\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Charset",
            "in": "header",
            "description": "\"Accept-Charset\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Encoding",
            "in": "header",
            "description": "\"Accept-Encoding\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Language",
            "in": "header",
            "description": "\"Accept-Language\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Device-ID",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Digest",
            "in": "header",
            "description": "Digest of the body",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Signature",
            "in": "header",
            "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",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Request-ID",
            "in": "header",
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "required": true,
            "schema": {
              "maxLength": 70,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The ASPSP answers with a list of account balances",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/HalBalances"
                }
              }
            }
          },
          "204": {
            "description": "No content.",
            "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": {}
          },
          "400": {
            "description": "Invalid status value",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized, authentication failure.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden, authentication successful but access to resource is not allowed.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "404": {
            "description": "Not found, no request available.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "405": {
            "description": "Method Not Allowed.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "406": {
            "description": "Not Acceptable.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "408": {
            "description": "Request Timeout.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "429": {
            "description": "Too many requests.",
            "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/hal+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/hal+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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessCode": [
              "aisp"
            ]
          },
          {
            "resourceOwnerIdentification": [
              "aisp"
            ]
          }
        ]
      }
    },
    "/accounts/{accountResourceId}/transactions": {
      "get": {
        "tags": [
          "AISP"
        ],
        "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 has been registered by the Registration Authority for the AISP role\n- The TPP and the PSU have a contract that has been 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. The result may be subject to pagination in order to avoid an excessive result set.\nThe default transaction set, in the absence of filter query parameter, has to be specified and documented by the implementation. \n",
        "operationId": "accountsTransactionsGet",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access token to be passed as a header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accountResourceId",
            "in": "path",
            "description": "Identification of account resource to fetch",
            "required": true,
            "schema": {
              "pattern": "^([a-zA-Z0-9 /\\-?:\\()\\.,']{1,36})$",
              "type": "string"
            }
          },
          {
            "name": "dateFrom",
            "in": "query",
            "description": "Inclusive minimal imputation date of the transactions. \n      \nTransactions having an imputation date equal to this parameter are included within the result.\n",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "dateTo",
            "in": "query",
            "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",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "entryReferenceFrom",
            "in": "query",
            "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",
            "schema": {
              "maxLength": 40,
              "type": "string"
            }
          },
          {
            "name": "entryReferenceto",
            "in": "query",
            "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",
            "schema": {
              "maxLength": 40,
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Address",
            "in": "header",
            "description": "IP address used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Port",
            "in": "header",
            "description": "IP port used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-HTTP-Method",
            "in": "header",
            "description": "Http method for the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Date",
            "in": "header",
            "description": "Timestamp of the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-GEO-Location",
            "in": "header",
            "description": "Geographical location of the PSU as provided by the PSU mobile terminal if any to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-User-Agent",
            "in": "header",
            "description": "\"User-Agent\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Referer",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept",
            "in": "header",
            "description": "\"Accept\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Charset",
            "in": "header",
            "description": "\"Accept-Charset\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Encoding",
            "in": "header",
            "description": "\"Accept-Encoding\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Language",
            "in": "header",
            "description": "\"Accept-Language\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Device-ID",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Digest",
            "in": "header",
            "description": "Digest of the body",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Signature",
            "in": "header",
            "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",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Request-ID",
            "in": "header",
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "required": true,
            "schema": {
              "maxLength": 70,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Complete transactions response",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/HalTransactions"
                }
              }
            }
          },
          "204": {
            "description": "No content.",
            "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": {}
          },
          "400": {
            "description": "Invalid status value",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized, authentication failure.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden, authentication successful but access to resource is not allowed.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "404": {
            "description": "Not found, no request available.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "405": {
            "description": "Method Not Allowed.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "406": {
            "description": "Not Acceptable.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "408": {
            "description": "Request Timeout.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "429": {
            "description": "Too many requests.",
            "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/hal+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/hal+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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessCode": [
              "aisp"
            ]
          },
          {
            "resourceOwnerIdentification": [
              "aisp"
            ]
          }
        ]
      }
    },
    "/consents": {
      "put": {
        "tags": [
          "AISP"
        ],
        "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 has been registered by the Registration Authority for the AISP role.\n- The TPP and the PSU have a contract that has been 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",
        "operationId": "consentsPut",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access token to be passed as a header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Address",
            "in": "header",
            "description": "IP address used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Port",
            "in": "header",
            "description": "IP port used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-HTTP-Method",
            "in": "header",
            "description": "Http method for the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Date",
            "in": "header",
            "description": "Timestamp of the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-GEO-Location",
            "in": "header",
            "description": "Geographical location of the PSU as provided by the PSU mobile terminal if any to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-User-Agent",
            "in": "header",
            "description": "\"User-Agent\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Referer",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept",
            "in": "header",
            "description": "\"Accept\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Charset",
            "in": "header",
            "description": "\"Accept-Charset\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Encoding",
            "in": "header",
            "description": "\"Accept-Encoding\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Language",
            "in": "header",
            "description": "\"Accept-Language\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Device-ID",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Digest",
            "in": "header",
            "description": "Digest of the body",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Signature",
            "in": "header",
            "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",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Request-ID",
            "in": "header",
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "required": true,
            "schema": {
              "maxLength": 70,
              "type": "string"
            }
          }
        ],
        "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": {
              "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": {}
          },
          "400": {
            "description": "Invalid status value",
            "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/ErrorModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized, authentication failure.",
            "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/ErrorModel"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden, authentication successful but access to resource is not allowed.",
            "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/ErrorModel"
                }
              }
            }
          },
          "405": {
            "description": "Method Not Allowed.",
            "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/ErrorModel"
                }
              }
            }
          },
          "406": {
            "description": "Not Acceptable.",
            "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/ErrorModel"
                }
              }
            }
          },
          "408": {
            "description": "Request Timeout.",
            "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/ErrorModel"
                }
              }
            }
          },
          "429": {
            "description": "Too many requests.",
            "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/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"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessCode": [
              "aisp"
            ]
          },
          {
            "resourceOwnerIdentification": [
              "aisp"
            ]
          }
        ],
        "x-codegen-request-body-name": "access"
      }
    },
    "/end-user-identity": {
      "get": {
        "tags": [
          "AISP"
        ],
        "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 has been registered by the Registration Authority for the AISP role.\n- The TPP and the PSU have a contract that has been 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",
        "operationId": "EndUserIdentityGet",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access token to be passed as a header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Address",
            "in": "header",
            "description": "IP address used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Port",
            "in": "header",
            "description": "IP port used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-HTTP-Method",
            "in": "header",
            "description": "Http method for the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Date",
            "in": "header",
            "description": "Timestamp of the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-GEO-Location",
            "in": "header",
            "description": "Geographical location of the PSU as provided by the PSU mobile terminal if any to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-User-Agent",
            "in": "header",
            "description": "\"User-Agent\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Referer",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept",
            "in": "header",
            "description": "\"Accept\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Charset",
            "in": "header",
            "description": "\"Accept-Charset\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Encoding",
            "in": "header",
            "description": "\"Accept-Encoding\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Language",
            "in": "header",
            "description": "\"Accept-Language\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Device-ID",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Digest",
            "in": "header",
            "description": "Digest of the body",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Signature",
            "in": "header",
            "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",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Request-ID",
            "in": "header",
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "required": true,
            "schema": {
              "maxLength": 70,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The ASPSP returns the identity of the PSU \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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/HalEndUserIdentity"
                }
              }
            }
          },
          "204": {
            "description": "No content.",
            "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": {}
          },
          "401": {
            "description": "Unauthorized, authentication failure.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden, authentication successful but access to resource is not allowed.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "404": {
            "description": "Not found, no request available.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "405": {
            "description": "Method Not Allowed.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "406": {
            "description": "Not Acceptable.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "429": {
            "description": "Too many requests.",
            "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/hal+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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessCode": [
              "aisp"
            ]
          },
          {
            "resourceOwnerIdentification": [
              "aisp"
            ]
          }
        ]
      }
    },
    "/trusted-beneficiaries": {
      "get": {
        "tags": [
          "AISP"
        ],
        "summary": "Retrieval of the trusted beneficiaries list (AISP)",
        "description": "### Description\nThis call returns all trusted beneficiaries that have been 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 has been registered by the Registration Authority for the AISP role.\n- The TPP and the PSU have a contract that has been 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",
        "operationId": "trustedBeneficiariesGet",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access token to be passed as a header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Address",
            "in": "header",
            "description": "IP address used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Port",
            "in": "header",
            "description": "IP port used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-HTTP-Method",
            "in": "header",
            "description": "Http method for the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Date",
            "in": "header",
            "description": "Timestamp of the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-GEO-Location",
            "in": "header",
            "description": "Geographical location of the PSU as provided by the PSU mobile terminal if any to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-User-Agent",
            "in": "header",
            "description": "\"User-Agent\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Referer",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept",
            "in": "header",
            "description": "\"Accept\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Charset",
            "in": "header",
            "description": "\"Accept-Charset\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Encoding",
            "in": "header",
            "description": "\"Accept-Encoding\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Language",
            "in": "header",
            "description": "\"Accept-Language\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Device-ID",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Digest",
            "in": "header",
            "description": "Digest of the body",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Signature",
            "in": "header",
            "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",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Request-ID",
            "in": "header",
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "required": true,
            "schema": {
              "maxLength": 70,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The ASPSP returns the list of whitelisted beneficiaries \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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/HalBeneficiaries"
                }
              }
            }
          },
          "204": {
            "description": "No content.",
            "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": {}
          },
          "401": {
            "description": "Unauthorized, authentication failure.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden, authentication successful but access to resource is not allowed.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "404": {
            "description": "Not found, no request available.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "405": {
            "description": "Method Not Allowed.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "406": {
            "description": "Not Acceptable.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "429": {
            "description": "Too many requests.",
            "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/hal+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/hal+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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessCode": [
              "aisp"
            ]
          },
          {
            "resourceOwnerIdentification": [
              "aisp"
            ]
          }
        ]
      }
    },
    "/funds-confirmations": {
      "post": {
        "tags": [
          "CBPII"
        ],
        "summary": "Payment coverage check request (CBPII)",
        "description": "### Description\nThe CBPII can ask an ASPSP to check if a given amount can be covered by the liquidity that is available on a PSU cash account or payment card.\n### Prerequisites\n- The TPP has been registered by the Registration Authority for the CBPII role\n- The TPP and the PSU have a contract that has been registered by the ASPSP\n  - At this step, the ASPSP has delivered an \"Authorization Code\", a \"Resource Owner Password\" or a \"Client Credential\" OAUTH2 access token to the TPP (cf. § 3.4.2).\n  - Each ASPSP has to implement either the \"Authorization Code\"/\"Resource Owner Password\" or the \"Client Credential\" OAUTH2 access token model.\n  - Doing this, it will edit the [security] section on this path in order to specify which model it has chosen\n- The TPP and the ASPSP have successfully processed a mutual check and authentication \n- The TPP has presented its OAUTH2 \"Authorization Code\", \"Resource Owner Password\" or \"Client Credential\" access token which allows the ASPSP to identify the relevant PSU.\n### Business flow\nThe CBPII requests the ASPSP for a payment coverage check against either a bank account or a card primary identifier.\nThe ASPSP answers with a structure embedding the original request and the result as a Boolean.      \n",
        "operationId": "fundsConfirmationsPost",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access token to be passed as a header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Address",
            "in": "header",
            "description": "IP address used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Port",
            "in": "header",
            "description": "IP port used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-HTTP-Method",
            "in": "header",
            "description": "Http method for the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Date",
            "in": "header",
            "description": "Timestamp of the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-GEO-Location",
            "in": "header",
            "description": "Geographical location of the PSU as provided by the PSU mobile terminal if any to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-User-Agent",
            "in": "header",
            "description": "\"User-Agent\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Referer",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept",
            "in": "header",
            "description": "\"Accept\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Charset",
            "in": "header",
            "description": "\"Accept-Charset\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Encoding",
            "in": "header",
            "description": "\"Accept-Encoding\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Language",
            "in": "header",
            "description": "\"Accept-Language\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Device-ID",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Digest",
            "in": "header",
            "description": "Digest of the body",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Signature",
            "in": "header",
            "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",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Request-ID",
            "in": "header",
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "required": true,
            "schema": {
              "maxLength": 70,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "parameters of a payment coverage request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentCoverageRequestResource"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "payment coverage request",
            "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"
                }
              },
              "Digest": {
                "description": "Digest of the body",
                "schema": {
                  "type": "string"
                }
              },
              "Signature": {
                "description": "[http-signature of the response ](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",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/HalPaymentCoverageReport"
                }
              }
            }
          },
          "400": {
            "description": "Invalid status value",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized, authentication failure.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden, authentication successful but access to resource is not allowed.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "405": {
            "description": "Method Not Allowed.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "406": {
            "description": "Not Acceptable.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "408": {
            "description": "Request Timeout.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "429": {
            "description": "Too many requests.",
            "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/hal+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/hal+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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessCode": [
              "cbpii"
            ]
          },
          {
            "resourceOwnerIdentification": [
              "cbpii"
            ]
          },
          {
            "clientCredentials": [
              "cbpii"
            ]
          }
        ],
        "x-codegen-request-body-name": "paymentCoverage"
      }
    },
    "/payment-requests": {
      "post": {
        "tags": [
          "PISP"
        ],
        "summary": "Payment request initiation (PISP)",
        "description": "### Description\nThe following use cases can be applied:\n- payment request on behalf of a merchant\n- transfer request on behalf of the account's owner\n- standing-order request on behalf of the account's owner\n#### Data content\nA payment request or a transfer request might embed several payment instructions having\n- one single execution date or multiple execution dates\n  - case of one single execution date, this date must be set at the payment level\n  - case of multiple execution dates, those dates must be set at each payment instruction level\n- one single beneficiary or multiple beneficiaries\n  - case of one single beneficiary, this beneficiary must be set at the payment level\n  - case of multiple beneficiaries, those beneficiaries must be set at each payment instruction level\nHaving at the same time multiple beneficiaries and multiple execution date might not be a relevant business case, although it is technically allowed.\nEach implementation will have to specify which business use cases are actually supported.       \nA standing order request must embed one single payment instruction and must address one single beneficiary.\n- The beneficiary must be set at the payment level\n- The standing order specific characteristics (start date, periodicity...) must be set at the instruction level\n                   \nPayment request can rely for execution on different payment instruments:\n- SEPA Credit Transfer (SCT)\n- Domestic Credit Transfer in a non-Euro-currency\n- International payment\nThe following table indicates how to use the different fields, depending on the payment instrument:\n\n| Structure | SEPA payments | Domestic payments in non-euro currency | International payments |\n| --------- | ------------- | -------------------------------------- | ---------------------- |\n| PaymentTypeInformation/InstructionPriority (payment level) | \"HIGH\" for high-priority SCT, \"NORM\" for other SCT, Ignored for SCTInst | \"HIGH\" for high-priority CT, \"NORM\" or ignored for other CT | \"HIGH\" for high-priority payments, \"NORM\" or ignored for other payments |\n| PaymentTypeInformation/ServiceLevel (payment level) | \"SEPA\" for SCT and SCTInst | ignored | ignored |\n| PaymentTypeInformation/CategoryPurpose (payment level) | \"CASH\" for transfer request, \"DVPM\" for payment request on behalf of a merchant || \"CORT\" for generic international payments, \"INTC\" for transfers between two branches within the same company, \"TREA\" for treasury transfers |\n| PaymentTypeInformation/LocalInstrument (payment level) | \"INST\" pour les SCTInst, otherwise ignored | Ignored or valued with ISO20022 external code ||\n| RequestedExecutionDate (either at payment or transaction level) | Mandatory (indicates the date on debit on the ordering party account) |||\n| EndToEndIdentification (at transaction level) | Mandatory | Optional ||\n| UltimateDebtor (at transaction level) | Optional |||\n| UltimateCreditor (at transaction level) | Optional |||\n| InstructedAmount (at transaction level) | Mandatory || Mandatory and exclusive use of one of these structures |\n| EquivalentAmount (at transaction level) | Not used || Mandatory and exclusive use of one of these structures |\n| ChargeBearer (at transaction level) | \"SLEV\" for SCT and SCTInst | \"SLEV\" or \"SHAR\" | \"CRED\", \"DEBT\" or \"SHAR\" |\n| Purpose (at transaction level) | Optional |||\n| RegulatoryReportingCode (at transaction level) | Not used | Mandatory (possibly multiple values) |\n| InstructionForCreditorAgent (at transaction level) | Not used || Optional (possibly multiple values) |\n| RemittanceInformation | Mandatory. Structured or unstructured, depending on the local rules and constraints |||\n| Debtor (at payment level) | Mandatory, 2 address lines only | Mandatory, 4 address lines only | Mandatory. Complete strustured address can be used. |\n| DebtorAccount (at payment level) | Optional | Optional. Account currency may be specified ||\n| DebtorAgent (at payment level) | Optional |||\n| Creditor (either at payment or transaction level) | Mandatory, 2 address lines only | Mandatory, 4 address lines only | Mandatory. Complete strustured address can be used. Date and place of birth must be specified |\n| CreditorAccount (either at payment or transaction level) | Mandatory | Mandatory. Account currency may be specified ||\n| CreditorAgent (either at payment or transaction level) | Optional |||\n| ClearingSystemId et ClearingSystemMemberId (either at payment or transaction level) | Not used || Optional |\n| IntermediaryAgent et IntermediaryAgentAccount (either at payment or transaction level) | Not used | Optional ||\n  \n#### Prerequisites for all use cases\n- The TPP has been registered by the Registration Authority for the PISP role\n- The TPP was provided with an OAUTH2 \"Client Credential\" access token by the ASPSP (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 Client Credential\" access token\n\n#### Business flow\n##### Payment Request use case\nThe PISP forwards a payment request on behalf of a merchant.\nThe PSU buys some goods or services on an e-commerce website held by a merchant. Among other payment method, the merchant suggests the use of a PISP service. As there is obviously a contract between the merchant and the PISP, there is no need for the ASPSP to check the existence of such a contract between the PSU and this PISP to initiate the process.\nCase of the PSU that chooses to use the PISP service:\n- The merchant forwards the requested payment characteristics to the PISP and redirects the PSU to the PISP portal.\n- The PISP requests from the PSU which ASPSP will be used.\n- The PISP prepares the Payment Request and sends this request to the ASPSP.\n- The Request can embed several payment instructions having different requested execution date.\n- The beneficiary, as being the merchant, is set at the payment level.\n     \n  ##### Transfer Request use case\n  The PISP forwards a transfer request on behalf of the owner of the account.\n  - The PSU provides the PISP with all information needed for the transfer.\n  - The PISP prepares the Transfer Request and sends this request to the relevant ASPSP that holds the debtor account.\n  - The Request can embed several payment instructions having different beneficiaries.\n  - The requested execution date, as being the same for all instructions, is set at the payment level.\n     \n  ##### Standing Order Request use case\n  The PISP forwards a Standing Order request on behalf of the owner of the account.\n  - The PSU provides the PISP with all information needed for the Standing Order.\n  - The PISP prepares the Standing Order Request and sends this request to the relevant ASPSP that holds the debtor account.\n  - The Request embeds one single payment instruction with\n    - The requested execution date of the first occurrence\n    - The requested execution frequency of the payment in order to compute further execution dates\n    - An execution rule to handle cases when the computed execution dates cannot be processed (e.g. bank holydays)\n    - An optional end date for closing the standing Order\n     \n",
        "operationId": "paymentRequestsPost",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access token to be passed as a header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Address",
            "in": "header",
            "description": "IP address used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Port",
            "in": "header",
            "description": "IP port used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-HTTP-Method",
            "in": "header",
            "description": "Http method for the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Date",
            "in": "header",
            "description": "Timestamp of the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-GEO-Location",
            "in": "header",
            "description": "Geographical location of the PSU as provided by the PSU mobile terminal if any to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-User-Agent",
            "in": "header",
            "description": "\"User-Agent\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Referer",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept",
            "in": "header",
            "description": "\"Accept\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Charset",
            "in": "header",
            "description": "\"Accept-Charset\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Encoding",
            "in": "header",
            "description": "\"Accept-Encoding\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Language",
            "in": "header",
            "description": "\"Accept-Language\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Device-ID",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Digest",
            "in": "header",
            "description": "Digest of the body",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Signature",
            "in": "header",
            "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",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Request-ID",
            "in": "header",
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "required": true,
            "schema": {
              "maxLength": 70,
              "type": "string"
            }
          },
          {
            "name": "ui_locales",
            "in": "query",
            "description": "End-User's preferred languages and scripts for the user interface, represented as a space-separated list of BCP47 [RFC5646] language tag values, ordered by preference.\n",
            "schema": {
              "maxLength": 140,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "ISO20022 based payment Initiation Request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentRequestResource"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "The request has been created as a resource. The ASPSP must authenticate the PSU.",
            "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"
                }
              },
              "Digest": {
                "description": "Digest of the body",
                "schema": {
                  "type": "string"
                }
              },
              "Signature": {
                "description": "[http-signature of the response ](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",
                "schema": {
                  "type": "string"
                }
              },
              "location": {
                "description": "URI of the created (and updated if needed) Payment Request. \nActually, this link is the URI to be used (cf. § 4.6) for retrieving the Payment Request ant its status:\n- GET /payment-requests/{paymentRequestResourceId}\nThe parameter {paymentRequestResourceId} is the identifier of the Payment Request, as the resource that was created on the ASPSP server side.                        \n",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/HalPaymentRequestCreation"
                }
              }
            }
          },
          "400": {
            "description": "Invalid status value",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized, authentication failure.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden, authentication successful but access to resource is not allowed.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "405": {
            "description": "Method Not Allowed.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "406": {
            "description": "Not Acceptable.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "408": {
            "description": "Request Timeout.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "429": {
            "description": "Too many requests.",
            "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/hal+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/hal+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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "clientCredentials": [
              "pisp"
            ]
          }
        ],
        "x-codegen-request-body-name": "paymentRequest"
      }
    },
    "/payment-requests/{paymentRequestResourceId}": {
      "get": {
        "tags": [
          "PISP"
        ],
        "summary": "Retrieval of a payment request (PISP)",
        "description": "### Description\nThe following use cases can be applied:\n- retrieval of a payment request on behalf of a merchant\n- retrieval of a transfer request on behalf of the account's owner\n- retrieval of a standing-order request on behalf of the account's owner\n\nThe PISP has previously sent a Request through a POST command.\n- The ASPSP has registered the Request, updated if necessary the relevant identifiers in order to avoid duplicates and returned the location of the updated Request.\n- The PISP gets the Request that has been updated with the resource identifiers, and eventually the status of the Payment/Transfer Request and the status of the subsequent credit transfer.\n\n### Prerequisites\n- The TPP has been registered by the Registration Authority for the PISP role\n- The TPP was provided with an OAUTH2 \"Client Credential\" access token by the ASPSP (cf. § 3.4.2).\n- The TPP has previously posted a Request which has been saved by the ASPSP (cf. § 4.5.3)\n  - The ASPSP has answered with a location link to the saved Payment/Transfer Request (cf. § 4.5.4)\n- The TPP and the ASPSP have successfully processed a mutual check and authentication \n- The TPP has presented its \"OAUTH2 Client Credential\" access token\n\n### Business flow\nThe PISP asks to retrieve the Payment/Transfer Request that has been saved by the ASPSP. The PISP uses the location link provided by the ASPSP in response of the posting of this request.\nThe ASPSP returns the previously posted Payment/Transfer Request which is enriched with:\n- The resource identifiers given by the ASPSP\n- The status information of the Payment Request and of the subsequent credit transfer\nThe status information must be available during at least 30 calendar days after the posting of the Payment Request. However, the ASPSP may increase this availability duration, based on its own rules.\n",
        "operationId": "paymentRequestsGet",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access token to be passed as a header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "paymentRequestResourceId",
            "in": "path",
            "description": "Identification of the Payment Request Resource",
            "required": true,
            "schema": {
              "pattern": "^([a-zA-Z0-9 /\\-?:\\()\\.,']{1,36})$",
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Address",
            "in": "header",
            "description": "IP address used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Port",
            "in": "header",
            "description": "IP port used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-HTTP-Method",
            "in": "header",
            "description": "Http method for the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Date",
            "in": "header",
            "description": "Timestamp of the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-GEO-Location",
            "in": "header",
            "description": "Geographical location of the PSU as provided by the PSU mobile terminal if any to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-User-Agent",
            "in": "header",
            "description": "\"User-Agent\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Referer",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept",
            "in": "header",
            "description": "\"Accept\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Charset",
            "in": "header",
            "description": "\"Accept-Charset\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Encoding",
            "in": "header",
            "description": "\"Accept-Encoding\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Language",
            "in": "header",
            "description": "\"Accept-Language\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Device-ID",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Digest",
            "in": "header",
            "description": "Digest of the body",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Signature",
            "in": "header",
            "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",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Request-ID",
            "in": "header",
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "required": true,
            "schema": {
              "maxLength": 70,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieval of the previously posted Payment Request",
            "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"
                }
              },
              "Digest": {
                "description": "Digest of the body",
                "schema": {
                  "type": "string"
                }
              },
              "Signature": {
                "description": "[http-signature of the response ](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",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/HalPaymentRequest"
                }
              }
            }
          },
          "400": {
            "description": "Invalid status value",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized, authentication failure.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden, authentication successful but access to resource is not allowed.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "404": {
            "description": "Not found, no request available.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "405": {
            "description": "Method Not Allowed.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "406": {
            "description": "Not Acceptable.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "408": {
            "description": "Request Timeout.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "429": {
            "description": "Too many requests.",
            "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/hal+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/hal+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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "clientCredentials": [
              "pisp"
            ]
          }
        ]
      },
      "put": {
        "tags": [
          "PISP"
        ],
        "summary": "Modification of a Payment/Transfer Request (PISP)",
        "description": "### Description\nThe PISP sent a Payment/Transfer Request through a POST command.\nThe ASPSP registered the Payment/Transfer Request, updated if necessary the relevant identifiers in order to avoid duplicates and returned the location of the updated Request.\nThe PISP got the Payment/Transfer Request that has been updated with the resource identifiers, and eventually the status of the Payment/Transfer Request and the status of the subsequent credit transfer.\nThe PISP request for the payment cancellation (global cancellation) or for some payment instructions cancellation (partial cancellation)\nNo other modification of the Payment/Transfer Request is allowed.\n### Prerequisites\n- The TPP was registered by the Registration Authority for the PISP role\n- The TPP was provided with an OAUTH2 \"Client Credential\" access token by the ASPSP (cf. § 3.4.2).\n- The TPP previously posted a Payment/Transfer Request which was saved by the ASPSP (cf. § 4.5.3)\n  - The ASPSP answered with a location link to the saved Payment/Transfer Request (cf. § 4.5.4)\n  - The PISP retrieved the saved Payment/Transfer Request (cf. § 4.5.4)\n- The TPP and the ASPSP successfully processed a mutual check and authentication \n- The TPP presented its \"OAUTH2 Client Credential\" access token.\n- The TPP presented the payment/transfer request.\n- The PSU was successfully authenticated.\n\n### Business flow\n#### Payment/Transfer request cancellation circumstances\nThe cancellation of a Payment/Transfer request might be triggered by the PISP upon request of the PSU.\nIt can also be triggered by the PISP itself in case of error or fraud detection.\nSince the consequence of the cancellation will be a rejection of the Payment/Transfer request globally or limited to some of its instructions, the modification of the payment request will focus on setting the relevant status to the value \"CANC\".\nThis \"CANC\" status must however be explained through a reason code that can be set with the following values:\n\n| Reason | description |\n| ------ | ----------- |\n| DS02 | The PSU ordered the cancellation. |\n| DUPL | The PISP requests the cancellation for a duplication of a previous Payment/Transfer request |\n| FRAD | The PISP requests the cancellation for fraudulent origin of the Payment/Transfer request |\n| TECH | The PISP requests the cancellation for a technical issue on its side |\n\n#### Payment/Transfer request cancellation level\n- Case of a payment with multiple instructions or a standing order, the PISP asks to cancel the whole Payment/Transfer or Standing Order Request including all non-executed payment instructions by setting the [paymentInformationStatus] and the relevant [statusReasonInformation]  at payment level.\n- Case of a payment with multiple instructions, the PISP asks to cancel one or several payment instructions by setting the [transactionStatus] and the relevant [statusReasonInformation] at each relevant instruction level.\n\nSince the modification request needs a PSU authentication before committing, the modification request includes:\n- The specification of the authentication approaches that are supported by the PISP (any combination of \"REDIRECT\", \"EMBEDDED-1-FACTOR\" and \"DECOUPLED\" values).\n- In case of possible REDIRECT or DECOUPLED authentication approach, one or two call-back URLs to be used by the ASPSP at the finalisation of the authentication and consent process :\n  - The first call-back URL will be called by the ASPSP if the Transfer Request is processed without any error or rejection by the PSU\n  - The second call-back URL is to be used by the ASPSP in case of processing error or rejection by the PSU. Since this second URL is optional, the PISP might not provide it. In this case, the ASPSP will use the same URL for any processing result.\n  - Both call-back URLS must be used in a TLS-secured request.\n- In case of possible \"EMBEDDED-1-FACTOR\" or \"DECOUPLED\" approaches, a PSU identifier that can be processed by the ASPSP for PSU recognition.\n  \n- The ASPSP saves the updated Payment/Transfer Request and answers to the PISP. The answer embeds \n  - The specification of the chosen authentication approach taking into account both the PISP and the PSU capabilities.\n  - In case of chosen REDIRECT authentication approach, the URL to be used by the PISP for redirecting the PSU in order to perform an authentication.\n  \nCase of the PSU neither gives nor denies his/her consent, the Cancellation Request shall expire and is then rejected to the PISP. The expiration delay is specified by each ASPSP.\nIf any modification of the payment request other than cancellation is applied by the PISP, the ASPSP must rejest the request with HTTP403 without modifying the payment request resource.\n",
        "operationId": "paymentRequestPut",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access token to be passed as a header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "paymentRequestResourceId",
            "in": "path",
            "description": "Identification of the Payment Request Resource",
            "required": true,
            "schema": {
              "pattern": "^([a-zA-Z0-9 /\\-?:\\()\\.,']{1,36})$",
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Address",
            "in": "header",
            "description": "IP address used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Port",
            "in": "header",
            "description": "IP port used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-HTTP-Method",
            "in": "header",
            "description": "Http method for the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Date",
            "in": "header",
            "description": "Timestamp of the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-GEO-Location",
            "in": "header",
            "description": "Geographical location of the PSU as provided by the PSU mobile terminal if any to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-User-Agent",
            "in": "header",
            "description": "\"User-Agent\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Referer",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept",
            "in": "header",
            "description": "\"Accept\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Charset",
            "in": "header",
            "description": "\"Accept-Charset\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Encoding",
            "in": "header",
            "description": "\"Accept-Encoding\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Language",
            "in": "header",
            "description": "\"Accept-Language\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Device-ID",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Digest",
            "in": "header",
            "description": "Digest of the body",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Signature",
            "in": "header",
            "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",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Request-ID",
            "in": "header",
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "required": true,
            "schema": {
              "maxLength": 70,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "ISO20022 based payment Initiation Request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentRequestResource"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The modification request has been saved. The ASPSP must authenticate the PSU before committing the update.",
            "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"
                }
              },
              "Digest": {
                "description": "Digest of the body",
                "schema": {
                  "type": "string"
                }
              },
              "Signature": {
                "description": "[http-signature of the response ](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",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/HalPaymentRequestCreation"
                }
              }
            }
          },
          "400": {
            "description": "Invalid status value",
            "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": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized, authentication failure.",
            "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": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden, authentication successful but access to resource is not allowed.",
            "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": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "404": {
            "description": "Not found, no request available.",
            "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": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "405": {
            "description": "Method Not Allowed.",
            "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": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "406": {
            "description": "Not Acceptable.",
            "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": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "408": {
            "description": "Request Timeout.",
            "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": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "409": {
            "description": "Conflict. \nThe request could not be completed due to a conflict with the current state of the target resource.\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": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "429": {
            "description": "Too many requests.",
            "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": {
              "*/*": {
                "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": {
              "*/*": {
                "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": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "clientCredentials": [
              "pisp"
            ]
          }
        ],
        "x-codegen-request-body-name": "paymentRequest"
      }
    },
    "/payment-requests/{paymentRequestResourceId}/confirmation": {
      "post": {
        "tags": [
          "PISP"
        ],
        "summary": "Confirmation of a payment request or a modification request using a standard PSU authentication (PISP)",
        "description": "### Description\nThe PISP confirms one of the following requests or modifications\n- payment request on behalf of a merchant\n- transfer request on behalf of the account's owner\n- standing-order request on behalf of the account's owner\nThe ASPSP answers with a status of the relevant request and the subsequent Credit Transfer.\n\n### Prerequisites\n-  The TPP has been registered by the Registration Authority for the PISP role\n-  The TPP was provided with an OAUTH2 \"Client Credential\" access token by the ASPSP (cf. § 3.4.2).\n-  The TPP has previously posted a Request which has been saved by the ASPSP (cf. § 4.5.3)\n  - The ASPSP has answered with a location link to the saved Payment Request (cf. § 4.5.4)\n  -  The TPP has retrieved the saved request in order to get the relevant resource Ids (cf. § 4.6).\n-  The TPP and the ASPSP have successfully processed a mutual check and authentication \n-  The TPP has presented its \"OAUTH2 Client Credential\" access token \n  \n### Business flow\nOnce the PSU has been authenticated using a standard procedure (non OAUTH2), it is the due to the PISP to confirm the Request to the ASPSP in order to complete the process flow.\nThe ASPSP must wait for confirmation before executing the subsequent Credit Tranfer.\n",
        "operationId": "paymentRequestConfirmationPost",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access token to be passed as a header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "paymentRequestResourceId",
            "in": "path",
            "description": "Identification of the Payment Request Resource",
            "required": true,
            "schema": {
              "pattern": "^([a-zA-Z0-9 /\\-?:\\()\\.,']{1,36})$",
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Address",
            "in": "header",
            "description": "IP address used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Port",
            "in": "header",
            "description": "IP port used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-HTTP-Method",
            "in": "header",
            "description": "Http method for the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Date",
            "in": "header",
            "description": "Timestamp of the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-GEO-Location",
            "in": "header",
            "description": "Geographical location of the PSU as provided by the PSU mobile terminal if any to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-User-Agent",
            "in": "header",
            "description": "\"User-Agent\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Referer",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept",
            "in": "header",
            "description": "\"Accept\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Charset",
            "in": "header",
            "description": "\"Accept-Charset\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Encoding",
            "in": "header",
            "description": "\"Accept-Encoding\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Language",
            "in": "header",
            "description": "\"Accept-Language\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Device-ID",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Digest",
            "in": "header",
            "description": "Digest of the body",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Signature",
            "in": "header",
            "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",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Request-ID",
            "in": "header",
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "required": true,
            "schema": {
              "maxLength": 70,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Parameters needed for confirmation of the Payment Request, especially in \"EMBEDDED-1-FACTOR\" approach\nEven though there is no parameter, a Json (void) body structure must be provided.\n",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConfirmationResource"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "retrieval of the Payment Request enriched with the status report",
            "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"
                }
              },
              "Digest": {
                "description": "Digest of the body",
                "schema": {
                  "type": "string"
                }
              },
              "Signature": {
                "description": "[http-signature of the response ](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",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/HalPaymentRequest"
                }
              }
            }
          },
          "400": {
            "description": "Invalid status value",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized, authentication failure.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden, authentication successful but access to resource is not allowed.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "405": {
            "description": "Method Not Allowed.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "406": {
            "description": "Not Acceptable.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "408": {
            "description": "Request Timeout.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "409": {
            "description": "Conflict. \nThe request could not be completed due to a conflict with the current state of the target resource.\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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "429": {
            "description": "Too many requests.",
            "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/hal+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/hal+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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "clientCredentials": [
              "pisp"
            ]
          }
        ],
        "x-codegen-request-body-name": "confirmationRequest"
      }
    },
    "/payment-requests/{paymentRequestResourceId}/o-confirmation": {
      "post": {
        "tags": [
          "PISP"
        ],
        "summary": "Confirmation of a payment request or a modification request using an OAUTH2 Authorization code grant (PISP)",
        "description": "### Description\nThe PISP confirms one of the following requests or modifications:\n- payment request on behalf of a merchant\n- transfer request on behalf of the account's owner\n- standing-order request on behalf of the account's owner\nThe ASPSP answers with a status of the relevant request and the subsequent Credit Transfer.\n\n### Prerequisites\n-  The TPP has been registered by the Registration Authority for the PISP role\n-  The TPP was provided with an OAUTH2 \"Client Credential\" access token by the ASPSP (cf. § 3.4.2).\n-  The TPP has previously posted a Request which has been saved by the ASPSP (cf. § 4.5.3)\n  - The ASPSP has answered with a location link to the saved Payment Request (cf. § 4.5.4)\n  -  The TPP has retrieved the saved request in order to get the relevant resource Ids (cf. § 4.6).\n-  The PSU has been authenticated by the ASPSP through an OAUTH2 authorization code grant flow (REDIRECT approach) and the PISP got the relevant token\n-  The TPP and the ASPSP have successfully processed a mutual check and authentication \n-  The TPP has presented its \"OAUTH2 Authorization Code\" access token \n  \n### Business flow\nOnce the PSU has been authenticated through an OAUTH2 authorization code grant flow (REDIRECT approach), it is the due to the PISP to confirm the Request to the ASPSP in order to complete the process flow.\nThe ASPSP must wait for confirmation before executing the subsequent Credit Tranfer.\n",
        "operationId": "paymentRequestOConfirmationPost",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "Access token to be passed as a header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "paymentRequestResourceId",
            "in": "path",
            "description": "Identification of the Payment Request Resource",
            "required": true,
            "schema": {
              "pattern": "^([a-zA-Z0-9 /\\-?:\\()\\.,']{1,36})$",
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Address",
            "in": "header",
            "description": "IP address used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-IP-Port",
            "in": "header",
            "description": "IP port used by the PSU's terminal when connecting to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-HTTP-Method",
            "in": "header",
            "description": "Http method for the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Date",
            "in": "header",
            "description": "Timestamp of the most relevant PSU’s terminal request to the TTP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-GEO-Location",
            "in": "header",
            "description": "Geographical location of the PSU as provided by the PSU mobile terminal if any to the TPP",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-User-Agent",
            "in": "header",
            "description": "\"User-Agent\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Referer",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept",
            "in": "header",
            "description": "\"Accept\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Charset",
            "in": "header",
            "description": "\"Accept-Charset\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Encoding",
            "in": "header",
            "description": "\"Accept-Encoding\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Accept-Language",
            "in": "header",
            "description": "\"Accept-Language\" header field sent by the PSU terminal when connecting to the TPP\n",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PSU-Device-ID",
            "in": "header",
            "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",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Digest",
            "in": "header",
            "description": "Digest of the body",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Signature",
            "in": "header",
            "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",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Request-ID",
            "in": "header",
            "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
            "required": true,
            "schema": {
              "maxLength": 70,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Parameters needed for confirmation of the Payment Request, especially in \"EMBEDDED-1-FACTOR\" approach\nEven though there is no parameter, a Json (void) body structure must be provided.\n",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConfirmationResource"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "retrieval of the Payment Request enriched with the status report",
            "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"
                }
              },
              "Digest": {
                "description": "Digest of the body",
                "schema": {
                  "type": "string"
                }
              },
              "Signature": {
                "description": "[http-signature of the response ](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",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/HalPaymentRequest"
                }
              }
            }
          },
          "400": {
            "description": "Invalid status value",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized, authentication failure.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden, authentication successful but access to resource is not allowed.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "405": {
            "description": "Method Not Allowed.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "406": {
            "description": "Not Acceptable.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "408": {
            "description": "Request Timeout.",
            "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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "409": {
            "description": "Conflict. \nThe request could not be completed due to a conflict with the current state of the target resource.\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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          },
          "429": {
            "description": "Too many requests.",
            "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/hal+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/hal+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/hal+json; charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            }
          }
        },
        "security": [
          {
            "accessCode": [
              "pisp"
            ]
          }
        ],
        "x-codegen-request-body-name": "confirmationRequest"
      }
    }
  },
  "components": {
    "schemas": {
      "ErrorModel": {
        "required": [
          "message",
          "status"
        ],
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "string",
            "description": "current timestamp",
            "format": "date-time"
          },
          "status": {
            "type": "integer",
            "description": "HTTP error code",
            "format": "int32"
          },
          "error": {
            "maxLength": 140,
            "type": "string",
            "description": "HTTP error text"
          },
          "message": {
            "maxLength": 140,
            "type": "string",
            "description": "HTTP textual reason phrase"
          },
          "path": {
            "maxLength": 140,
            "type": "string",
            "description": "Relevant path that was used"
          }
        },
        "description": "Generic error report structure",
        "example": {
          "timestamp": "2018-03-30T16:06:27.499+0000",
          "status": 400,
          "error": "Bad Request",
          "message": "Missing request header 'Digest' for method parameter of type String",
          "path": "/v1/accounts"
        }
      },
      "GenericLink": {
        "required": [
          "href"
        ],
        "type": "object",
        "properties": {
          "href": {
            "maxLength": 2000,
            "type": "string",
            "description": "URI to be used. HREF stands for Hypertext REFerence."
          },
          "templated": {
            "type": "boolean",
            "description": "specifies \"true\" if href is a URI template, i.e. with parameters. Otherwise, this property is absent or set to false"
          }
        },
        "description": "hypertext reference",
        "example": {
          "href": "v1/accounts/Alias1/balances"
        },
        "x-Generic": true
      },
      "PsuContextLinks": {
        "required": [
          "self"
        ],
        "type": "object",
        "properties": {
          "self": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "endUserIdentity": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "beneficiaries": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "first": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "last": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "next": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "prev": {
            "$ref": "#/components/schemas/GenericLink"
          }
        },
        "description": "Links that can be used for further navigation when browsing Account Information at top level\n- self: link to the list of all available accounts\n",
        "example": {
          "self": {
            "href": "v1/accounts?page=2"
          },
          "first": {
            "href": "v1/accounts"
          },
          "last": {
            "href": "v1/accounts?page=last",
            "templated": true
          },
          "next": {
            "href": "v1/accounts?page=3",
            "templated": true
          },
          "prev": {
            "href": "v1/accounts",
            "templated": true
          }
        }
      },
      "AccountLinks": {
        "type": "object",
        "properties": {
          "balances": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "transactions": {
            "$ref": "#/components/schemas/GenericLink"
          }
        },
        "description": "links that can be used for further navigation when browsing Account Information at one account level\n| Link | Description |\n| ---- | ----------- |\n| balances | link to the balances of a given account |\n| transactions | link to the transactions of a given account |\n",
        "example": {
          "balances": {
            "href": "v1/accounts/Alias1/balances-report"
          },
          "transactions": {
            "href": "v1/accounts/Alias1/transactions"
          }
        }
      },
      "BalancesLinks": {
        "required": [
          "self"
        ],
        "type": "object",
        "properties": {
          "self": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "parent-list": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "transactions": {
            "$ref": "#/components/schemas/GenericLink"
          }
        },
        "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 balances of a given account |\n| parent-list | link to the list of all available accounts |\n| transactions | link to the transactions of a given account |\n",
        "example": {
          "self": {
            "href": "v1/accounts/Alias1/balances-report"
          },
          "parent-list": {
            "href": "v1/accounts"
          },
          "transactions": {
            "href": "v1/accounts/Alias1/transactions"
          }
        }
      },
      "TransactionsLinks": {
        "required": [
          "self"
        ],
        "type": "object",
        "properties": {
          "self": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "parent-list": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "balances": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "first": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "last": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "next": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "prev": {
            "$ref": "#/components/schemas/GenericLink"
          }
        },
        "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 transactions of a given account |\n| parent-list | link to the list of all available accounts |\n| balances | link to the balances 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",
        "example": {
          "self": {
            "href": "v1/accounts/Alias1/transactions"
          },
          "parent-list": {
            "href": "v1/accounts"
          },
          "balances": {
            "href": "v1/accounts/Alias1/balances"
          },
          "last": {
            "href": "v1/accounts/sAlias1/transactions?page=last"
          },
          "next": {
            "href": "v1/accounts/Alias1/transactions?page=3"
          }
        }
      },
      "EndUserIdentityLinks": {
        "required": [
          "self"
        ],
        "type": "object",
        "properties": {
          "self": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "parent-list": {
            "$ref": "#/components/schemas/GenericLink"
          }
        },
        "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 end-user identity |\n| parent-list | link to the list of all available accounts |\n",
        "example": {
          "self": {
            "href": "v1/end-user-identity"
          },
          "parent-list": {
            "href": "v1/accounts"
          }
        }
      },
      "BeneficiariesLinks": {
        "required": [
          "self"
        ],
        "type": "object",
        "properties": {
          "self": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "parent-list": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "first": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "last": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "next": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "prev": {
            "$ref": "#/components/schemas/GenericLink"
          }
        },
        "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 beneficiaries |\n| parent-list | link to the list of all available accounts |\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",
        "example": {
          "self": {
            "href": "v1/beneficiaries"
          },
          "parent-list": {
            "href": "v1/accounts"
          },
          "last": {
            "href": "v1/beneficiaries?page=last"
          },
          "next": {
            "href": "v1/beneficiaries?page=3"
          }
        }
      },
      "PaymentRequestLinks": {
        "type": "object",
        "properties": {
          "request": {
            "$ref": "#/components/schemas/GenericLink"
          },
          "confirmation": {
            "$ref": "#/components/schemas/GenericLink"
          }
        },
        "description": "links that can be used for further navigation when having post a Payment Request in order to get the relevant status report.\n",
        "example": {
          "self": {
            "href": "v1/payment-requests/MyPmtInfRscId"
          },
          "confirmation": {
            "href": "v1/payment-requests/MyPmtInfRscId/confirmation"
          }
        }
      },
      "PaymentCoverageReportLinks": {
        "required": [
          "self"
        ],
        "type": "object",
        "properties": {
          "self": {
            "$ref": "#/components/schemas/GenericLink"
          }
        },
        "description": "links that can be used for further navigation to post another coverage request.\n",
        "example": {
          "self": {
            "href": "v1/funds-confirmations"
          }
        }
      },
      "PaymentRequestResourceCreationLinks": {
        "type": "object",
        "properties": {
          "consentApproval": {
            "$ref": "#/components/schemas/GenericLink"
          }
        },
        "description": "links that can be used for further navigation, especially in REDIRECT approach \n",
        "example": {
          "consentApproval": {
            "href": "https://psd2.aspsp/consent-approval"
          }
        }
      },
      "AppliedAuthenticationApproach": {
        "type": "string",
        "description": "The ASPSP, based on the authentication approaches proposed by the PISP, choose the one that it can processed, in respect with the preferences and constraints of the PSU and indicates in this field which approach has been chosen.\nIt may happen that the ASPSP considers that, in case of payment cancellation request, there is no need for authentication and will then return \"NONE\".\n",
        "example": "REDIRECT",
        "enum": [
          "REDIRECT",
          "DECOUPLED",
          "EMBEDDED-1-FACTOR",
          "NONE"
        ]
      },
      "GenericIdentification": {
        "required": [
          "identification",
          "schemeName"
        ],
        "type": "object",
        "properties": {
          "identification": {
            "maxLength": 70,
            "type": "string",
            "description": "API: Identifier\n"
          },
          "schemeName": {
            "maxLength": 70,
            "type": "string",
            "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| 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 |\nEach implementation of the STET PSD2 API must specify in its own documentation which schemes can actually been used\n"
          },
          "issuer": {
            "maxLength": 35,
            "type": "string",
            "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"
          }
        },
        "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",
        "example": {
          "identification": "12FR5",
          "schemeName": "COID",
          "issuer": "FR"
        },
        "x-Generic": true
      },
      "AccountIdentification": {
        "type": "object",
        "properties": {
          "iban": {
            "pattern": "^[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}$",
            "type": "string",
            "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"
          },
          "other": {
            "$ref": "#/components/schemas/GenericIdentification"
          },
          "currency": {
            "$ref": "#/components/schemas/CurrencyCode"
          }
        },
        "description": "Unique and unambiguous identification for the account between the account owner and the account servicer.",
        "example": {
          "iban": "YY64COJH41059545330222956960771321"
        },
        "x-Generic": true
      },
      "CurrencyCode": {
        "pattern": "^[A-Z]{3,3}$",
        "type": "string",
        "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",
        "example": "EUR"
      },
      "AmountType": {
        "required": [
          "amount",
          "currency"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "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",
            "format": "float"
          },
          "currency": {
            "$ref": "#/components/schemas/CurrencyCode"
          }
        },
        "description": "Structure aiming to embed the amount and the currency to be used.\n",
        "example": {
          "currency": "EUR",
          "amount": 12.25
        }
      },
      "EquivalentAmountType": {
        "required": [
          "amount",
          "currency",
          "currencyOfTransfer"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "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",
            "format": "float"
          },
          "currency": {
            "$ref": "#/components/schemas/CurrencyCode"
          },
          "currencyOfTransfer": {
            "$ref": "#/components/schemas/CurrencyCode"
          }
        },
        "description": "Structure aiming to embed the amount and the currency to be used.\nThe currency of transfer should be set.  \n",
        "example": {
          "currency": "EUR",
          "currencyOfTransfer": "USD",
          "amount": 12.25
        }
      },
      "ClearingSystemMemberIdentification": {
        "type": "object",
        "properties": {
          "clearingSystemId": {
            "maxLength": 35,
            "type": "string",
            "description": "ISO20022: Specification of a pre-agreed offering between clearing agents or the channel through which the payment instruction is processed.\n"
          },
          "memberId": {
            "maxLength": 35,
            "type": "string",
            "description": "ISO20022: Identification of a member of a clearing system.\n"
          }
        },
        "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",
        "example": "{\n  \"clearingSystemId\" : \"NZNCC\",\n  \"memberId\" : \"020368\"\n}  \n"
      },
      "FinancialInstitutionIdentification": {
        "required": [
          "bicFi"
        ],
        "type": "object",
        "properties": {
          "bicFi": {
            "pattern": "^[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}$",
            "type": "string",
            "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"
          },
          "clearingSystemMemberId": {
            "$ref": "#/components/schemas/ClearingSystemMemberIdentification"
          },
          "name": {
            "maxLength": 140,
            "type": "string",
            "description": "Name of the financial institution"
          },
          "postalAddress": {
            "$ref": "#/components/schemas/PostalAddress"
          }
        },
        "description": "ISO20022: Unique and unambiguous identification of a financial institution, as assigned under an internationally recognised or proprietary identification scheme.\n",
        "example": {
          "bicFi": "BNKAFRPPXXX"
        },
        "x-Generic": true
      },
      "PostalAddress": {
        "required": [
          "addressLine",
          "country"
        ],
        "type": "object",
        "properties": {
          "addressType": {
            "type": "string",
            "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",
            "enum": [
              "BIZZ",
              "DLVY",
              "MLTO",
              "PBOX",
              "ADDR",
              "HOME"
            ]
          },
          "department": {
            "maxLength": 70,
            "type": "string",
            "description": "ISO20022: Identification of a division of a large organisation or building.\nAPI: Cannot be used for SEPA payments.\n"
          },
          "subDepartment": {
            "maxLength": 70,
            "type": "string",
            "description": "ISO20022: Identification of a sub-division of a large organisation or building.\nAPI: Cannot be used for SEPA payments.\n"
          },
          "streetName": {
            "maxLength": 70,
            "type": "string",
            "description": "ISO20022: Name of a street or thoroughfare.\nAPI: Cannot be used for SEPA payments.\n"
          },
          "buildingNumber": {
            "maxLength": 16,
            "type": "string",
            "description": "ISO20022: Number that identifies the position of a building on a street.\nAPI: Cannot be used for SEPA payments.\n"
          },
          "buildingName": {
            "maxLength": 16,
            "type": "string",
            "description": "ISO20022: Name of the building or house.\nAPI: Cannot be used for SEPA payments.\n"
          },
          "postCode": {
            "maxLength": 16,
            "type": "string",
            "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"
          },
          "townName": {
            "maxLength": 35,
            "type": "string",
            "description": "ISO20022: Name of a built-up area, with defined boundaries, and a local government.\nAPI: Cannot be used for SEPA payments.\n"
          },
          "countrySubDivision": {
            "maxLength": 35,
            "type": "string",
            "description": "ISO20022: Identifies a subdivision of a country such as state, region, county.\nAPI: Cannot be used for SEPA payments.\n"
          },
          "country": {
            "pattern": "^([A-Z]{2,2})$",
            "type": "string",
            "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"
          },
          "addressLine": {
            "maxItems": 7,
            "type": "array",
            "description": "Unstructured address. The lines must embed zip code and town name.\nFor SEPA payments, only two address lines are allowed.\n",
            "items": {
              "maxLength": 70,
              "type": "string",
              "description": "Address line"
            }
          }
        },
        "description": "ISO20022: Information that locates and identifies a specific address, as defined by postal services.\n",
        "example": {
          "country": "FR",
          "addressLine": [
            "18 rue de la DSP2",
            "75008 PARIS"
          ]
        }
      },
      "DateAndPlaceOfBirth": {
        "required": [
          "birthDate",
          "cityOfBirth",
          "countryOfBirth"
        ],
        "type": "object",
        "properties": {
          "birthDate": {
            "type": "string",
            "description": "Date on which a person is born.",
            "format": "date"
          },
          "cityOfBirth": {
            "maxLength": 35,
            "type": "string",
            "description": "City where a person was born."
          },
          "countryOfBirth": {
            "pattern": "^[A-Z]{2,2}$",
            "type": "string",
            "description": "Country where a person was born."
          }
        },
        "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"
      },
      "PartyIdentification": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 140,
            "type": "string",
            "description": "ISO20022: Name by which a party is known and which is usually used to identify that party.\n"
          },
          "dateAndPlaceOfBirth": {
            "$ref": "#/components/schemas/DateAndPlaceOfBirth"
          },
          "postalAddress": {
            "$ref": "#/components/schemas/PostalAddress"
          },
          "organisationId": {
            "$ref": "#/components/schemas/GenericIdentification"
          },
          "privateId": {
            "$ref": "#/components/schemas/GenericIdentification"
          }
        },
        "description": "API : Description of a Party which can be either a person or an organization.\n",
        "example": {
          "name": "MyPreferredPisp",
          "postalAddress": {
            "country": "FR",
            "addressLine": [
              "18 rue de la DSP2",
              "75008 PARIS"
            ]
          }
        },
        "x-Generic": true
      },
      "ResourceId": {
        "pattern": "^([a-zA-Z0-9 /\\-?:\\()\\.,']{1,36})$",
        "type": "string",
        "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.\n",
        "example": "MyInstrRscId"
      },
      "PaymentIdentification": {
        "required": [
          "instructionId"
        ],
        "type": "object",
        "properties": {
          "resourceId": {
            "$ref": "#/components/schemas/ResourceId"
          },
          "instructionId": {
            "pattern": "^([a-zA-Z0-9 /\\-?:\\()\\.,']{1,36})$",
            "type": "string",
            "description": "ISO20022: Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction.\n\nAPI: Unique identification shared between the PISP and the ASPSP \n"
          },
          "endToEndId": {
            "pattern": "^([a-zA-Z0-9 /\\-?:\\()\\.,']{1,36})$",
            "type": "string",
            "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"
          }
        },
        "description": "ISO20022: Set of elements used to reference a payment instruction.\n",
        "example": {
          "resourceId": "MyInstrRscId",
          "instructionId": "MyInstrId",
          "endToEndId": "MyEndToEndId"
        }
      },
      "PriorityCode": {
        "type": "string",
        "description": "ISO20022: Indicator of the urgency or order of importance that the instructing party would like the instructed party to apply to the processing of the instruction.\nAPI: This field is useless for SCTInst and thus should be ignored.\n",
        "example": "NORM",
        "enum": [
          "HIGH",
          "NORM"
        ]
      },
      "CategoryPurposeCode": {
        "type": "string",
        "description": "ISO20022: Specifies the high level purpose of the instruction based on a set of pre-defined categories. This is used by the initiating party to provide information concerning the processing of the payment. It is likely to trigger special processing by any of the agents involved in the payment chain.\nAPI: The following values are allowed:\n| Code | Name | Description |\n| ---- | ---- | ---------- |\n| CASH | CashManagementTransfer | Transaction is a general cash management instruction. |\n| CORT | TradeSettlementPayment | Transaction is related to settlement of a trade, e.g. a foreign exchange deal or a securities transaction. |\n| DVPM | DeliverAgainstPayment | Code used to pre-advise the account servicer of a forthcoming deliver against payment instruction. |  \n| INTC | IntraCompanyPayment | Transaction is an intra-company payment, i.e. a payment between two companies belonging to the same group. |  \n| TREA | TreasuryPayment | Transaction is related to treasury operations.  E.g. financial contract settlement. |  \n",
        "example": "CASH",
        "enum": [
          "CASH",
          "CORT",
          "DVPM",
          "INTC",
          "TREA"
        ]
      },
      "ServiceLevelCode": {
        "type": "string",
        "description": "ISO20022: Agreement under which or rules under which the transaction should be processed. Specifies a pre-agreed service or level of service between the parties, as published in an external service level code list.\nAPI: Only \"SEPA\" (SEPA Credit Transfer) value is allowed\n",
        "example": "SEPA",
        "enum": [
          "SEPA"
        ]
      },
      "LocalInstrumentCode": {
        "type": "string",
        "description": "ISO20022: User community specific instrument. \nUsage: This element is used to specify a local instrument, local clearing option and/or further qualify the service or service level.\nAPI: \"INST\" value is to be used in order to ask for an SEPA instant Payment (SCTInst). \nFor International payments, this field may be valued with one of the ISO20022 external code to specify with payment instrument should be used by the creditor's bank. \n",
        "example": "INST"
      },
      "PaymentTypeInformation": {
        "type": "object",
        "properties": {
          "instructionPriority": {
            "$ref": "#/components/schemas/PriorityCode"
          },
          "serviceLevel": {
            "$ref": "#/components/schemas/ServiceLevelCode"
          },
          "localInstrument": {
            "$ref": "#/components/schemas/LocalInstrumentCode"
          },
          "categoryPurpose": {
            "$ref": "#/components/schemas/CategoryPurposeCode"
          }
        },
        "description": "ISO20022: Set of elements used to further specify the type of transaction.\n",
        "example": {
          "serviceLevel": "SEPA",
          "localInstrument": "INST",
          "categoryPurpose": "DVPM"
        }
      },
      "PurposeCode": {
        "type": "string",
        "description": "ISO20022: Underlying reason for the payment transaction, as published in an external purpose code list.    \nAPI: The following values are allowed for Payment  Request\n| Code | Name | Description |\n| ---- | ---- | ---------- |\n| ACCT | AccountManagement | Funds moved between 2 accounts of same account holder at the same bank) |\n| CASH | CashManagementTransfer | (general cash management instruction) may be used for Transfer Initiation |\n| COMC | CommercialPayment | Transaction is related to a payment of commercial credit or debit. |\n| CPKC | CarparkCharges | General Carpark Charges Transaction is related to carpark charges. |\n| TRPT | RoadPricing | Transport RoadPricing Transaction is for the payment to top-up pre-paid card and electronic road pricing for the purpose of transportation. |\n",
        "example": "CPKC",
        "enum": [
          "ACCT",
          "CASH",
          "COMC",
          "CPKC",
          "TRPT"
        ]
      },
      "ChargeBearerCode": {
        "type": "string",
        "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",
        "example": "SLEV",
        "enum": [
          "DEBT",
          "CRED",
          "SHAR",
          "SLEV"
        ]
      },
      "CodeAndIssuer": {
        "required": [
          "code"
        ],
        "type": "object",
        "properties": {
          "code": {
            "maxLength": 4,
            "type": "string",
            "description": "Provides the code."
          },
          "issuer": {
            "maxLength": 35,
            "type": "string",
            "description": "Identification of the issuer of the code."
          }
        },
        "description": "Specifies a code and the issuer of this code.\n"
      },
      "DocumentLineIdentification": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/CodeAndIssuer"
          },
          "number": {
            "maxLength": 35,
            "type": "string",
            "description": "Unique and unambiguous identification of the referred document line."
          },
          "relatedDate": {
            "type": "string",
            "description": "Date associated with the referred document line.",
            "format": "date"
          }
        },
        "description": "Provides identification of the document line."
      },
      "TypedAmount": {
        "required": [
          "amount"
        ],
        "type": "object",
        "properties": {
          "type": {
            "maxLength": 35,
            "type": "string",
            "description": "Type of the amount"
          },
          "amount": {
            "$ref": "#/components/schemas/AmountType"
          }
        },
        "description": "Typed Amount"
      },
      "DocumentAdjustment": {
        "required": [
          "amount"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "creditDebitIndicator": {
            "$ref": "#/components/schemas/CreditDebitIndicator"
          },
          "reason": {
            "maxLength": 4,
            "type": "string",
            "description": "Specifies the reason for the adjustment."
          },
          "additionalInformation": {
            "maxLength": 140,
            "type": "string",
            "description": "Provides further details on the document adjustment."
          }
        },
        "description": "Specifies detailed information on the amount and reason of the adjustment."
      },
      "RemittanceAmount": {
        "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"
          }
        },
        "description": "Provides details on the amounts of the document line."
      },
      "LineDetail": {
        "type": "object",
        "properties": {
          "identification": {
            "$ref": "#/components/schemas/DocumentLineIdentification"
          },
          "description": {
            "maxLength": 2048,
            "type": "string",
            "description": "Description associated with the document line."
          },
          "amount": {
            "$ref": "#/components/schemas/RemittanceAmount"
          }
        },
        "description": "Set of elements used to provide the content of the referred document line."
      },
      "ReferredDocumentInformation": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/CodeAndIssuer"
          },
          "number": {
            "maxLength": 35,
            "type": "string",
            "description": "Unique and unambiguous identification of the referred document."
          },
          "relatedDate": {
            "type": "string",
            "description": "Date associated with the referred document.",
            "format": "date"
          },
          "lineDetails": {
            "type": "array",
            "description": "Sets of elements used to provide the content of the referred document line.",
            "items": {
              "$ref": "#/components/schemas/LineDetail"
            }
          }
        },
        "description": "Provides the identification and the content of the referred document."
      },
      "ReferredDocumentInformations": {
        "type": "array",
        "description": "Provides the identification and the content of the referred documents.\n",
        "items": {
          "$ref": "#/components/schemas/ReferredDocumentInformation"
        }
      },
      "CreditorReferenceInformation": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/CodeAndIssuer"
          },
          "reference": {
            "maxLength": 35,
            "type": "string",
            "description": "Unique reference, as assigned by the creditor, to unambiguously refer to the payment transaction."
          }
        },
        "description": "Reference information provided by the creditor to allow the identification of the underlying documents."
      },
      "TitleAndName": {
        "type": "object",
        "properties": {
          "title": {
            "maxLength": 35,
            "type": "string",
            "description": "Title or position of the party or the party's authorised reprensentative."
          },
          "name": {
            "maxLength": 140,
            "type": "string",
            "description": "Name of the party or the party's authorised reprensentative."
          }
        },
        "description": "Title and Name of the party or the party's authorised reprensentative."
      },
      "TaxParty": {
        "type": "object",
        "properties": {
          "taxIdentification": {
            "maxLength": 35,
            "type": "string",
            "description": "Tax identification number of the party."
          },
          "registrationIdentification": {
            "maxLength": 35,
            "type": "string",
            "description": "Unique identification, as assigned by an organisation, to unambiguously identify a party."
          },
          "taxType": {
            "maxLength": 35,
            "type": "string",
            "description": "Type of tax payer."
          },
          "authorisation": {
            "$ref": "#/components/schemas/TitleAndName"
          }
        },
        "description": "Set of elements used to identify a party of the transaction to which the tax applies."
      },
      "TaxRecordPeriodCode": {
        "type": "string",
        "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",
        "enum": [
          "MM01",
          "MM02",
          "MM03",
          "MM04",
          "MM05",
          "MM06",
          "MM07",
          "MM08",
          "MM09",
          "MM10",
          "MM11",
          "MM12",
          "QTR1",
          "QTR2",
          "QTR3",
          "QTR4",
          "HLF1",
          "HLF2"
        ]
      },
      "TaxPeriod": {
        "type": "object",
        "properties": {
          "year": {
            "type": "string",
            "description": "Year related to the tax payment.",
            "format": "int32"
          },
          "type": {
            "$ref": "#/components/schemas/TaxRecordPeriodCode"
          },
          "fromDate": {
            "type": "string",
            "description": "Start date of the range.",
            "format": "date"
          },
          "toDate": {
            "type": "string",
            "description": "End date of the range.",
            "format": "date"
          }
        },
        "description": "Set of elements used to provide details on the period of time related to the tax payment."
      },
      "PercentageRate": {
        "type": "number",
        "description": "Rate expressed as a percentage, ie, in hundredths, eg, 0.7 is 7/10 of a percent, and 7.0 is 7%.",
        "format": "float"
      },
      "TaxRecordDetails": {
        "required": [
          "amount"
        ],
        "type": "object",
        "properties": {
          "period": {
            "$ref": "#/components/schemas/TaxPeriod"
          },
          "amount": {
            "$ref": "#/components/schemas/AmountType"
          }
        },
        "description": "Elements used to provide details on the tax period and amount."
      },
      "TaxAmount": {
        "type": "object",
        "properties": {
          "rate": {
            "$ref": "#/components/schemas/PercentageRate"
          },
          "taxableBaseAmount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "totalAmount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "details": {
            "type": "array",
            "description": "Set of elements used to provide details on the tax period and amount.",
            "items": {
              "$ref": "#/components/schemas/TaxRecordDetails"
            }
          }
        },
        "description": "Set of elements used to provide information on the amount of the tax record."
      },
      "TaxRecord": {
        "type": "object",
        "properties": {
          "type": {
            "maxLength": 35,
            "type": "string",
            "description": "High level code to identify the type of tax details."
          },
          "category": {
            "maxLength": 35,
            "type": "string",
            "description": "Specifies the tax code as published by the tax authority."
          },
          "categoryDetails": {
            "maxLength": 35,
            "type": "string",
            "description": "Provides further details of the category tax code."
          },
          "debtorStatus": {
            "maxLength": 35,
            "type": "string",
            "description": "Code provided by local authority to identify the status of the party that has drawn up the settlement document."
          },
          "certificateIdentification": {
            "maxLength": 35,
            "type": "string",
            "description": "Identification number of the tax report as assigned by the taxing authority."
          },
          "formsCode": {
            "maxLength": 35,
            "type": "string",
            "description": "Identifies, in a coded form, on which template the tax report is to be provided."
          },
          "period": {
            "$ref": "#/components/schemas/TaxPeriod"
          },
          "taxAmount": {
            "$ref": "#/components/schemas/TaxAmount"
          },
          "additionalInformation": {
            "maxLength": 140,
            "type": "string",
            "description": "Further details of the tax record."
          }
        },
        "description": "Record of tax details"
      },
      "TaxInformation": {
        "type": "object",
        "properties": {
          "creditor": {
            "$ref": "#/components/schemas/TaxParty"
          },
          "debtor": {
            "$ref": "#/components/schemas/TaxParty"
          },
          "ultimateDebtor": {
            "$ref": "#/components/schemas/TaxParty"
          },
          "administrationZone": {
            "maxLength": 35,
            "type": "string",
            "description": "Territorial part of a country to which the tax payment is related."
          },
          "referenceNumber": {
            "maxLength": 140,
            "type": "string",
            "description": "Tax reference information that is specific to a taxing agency."
          },
          "method": {
            "maxLength": 35,
            "type": "string",
            "description": "Method used to indicate the underlying business or how the tax is paid."
          },
          "totalTaxableBaseAmount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "totalTaxAmount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "date": {
            "type": "string",
            "description": "Date by which tax is due.",
            "format": "date"
          },
          "sequenceNumber": {
            "type": "number",
            "description": "Sequential number of the tax report.",
            "format": "int32"
          },
          "record": {
            "type": "array",
            "description": "Records of tax details",
            "items": {
              "$ref": "#/components/schemas/TaxRecord"
            }
          }
        },
        "description": "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."
      },
      "StructuredRemittanceInformation": {
        "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"
          }
        },
        "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",
        "x-Generic": true
      },
      "RemittanceInformation": {
        "type": "object",
        "properties": {
          "unstructured": {
            "type": "array",
            "description": "Unstructured remittance information",
            "items": {
              "title": "remittanceLine",
              "maxLength": 140,
              "type": "string",
              "description": "Relevant information to the transaction"
            }
          },
          "structured": {
            "type": "array",
            "description": "Structured remittance information",
            "items": {
              "$ref": "#/components/schemas/StructuredRemittanceInformation"
            }
          }
        },
        "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"
      },
      "PaymentInformationStatusCode": {
        "type": "string",
        "description": "ISO20022: Specifies the status of the payment information.\nAPI: Mandatory. The following values are allowed to provide the status of the Payment Request \n| Code | Name | Description |\n| ---- | ---- | ---------- |\n| ACCP | AcceptedCustomerProfile | Preceding check of technical validation was successful. Customer profile check was also successful. |\n| ACSC | AcceptedSettlementCompleted | Settlement on the debtor's account was completed. In the case of SCTInst, this status must not been set by the debtor's Bank before the reception of the positive confirmation.  |\n| ACSP | AcceptedSettlementInProcess | All preceding checks such as technical validation and customer profile were successful. Dynamic risk assessment is now also successful and therefore the Payment Request has been accepted for execution. |\n| ACTC | AcceptedTechnicalValidation | Authentication and syntactical and semantical validation are successful. |\n| ACWC | AcceptedWithChange | Instruction is accepted but a change will be made, such as date or remittance not sent. |\n| ACWP | AcceptedWithoutPosting | Payment instruction included in the credit transfer is accepted without being posted to the creditor customer’s account. |\n| CANC | Cancelled | Payment initiation has been successfully cancelled after having received a request for cancellation. |\n| PART | PartiallyAccepted | A number of transactions have been accepted, whereas another number of transactions have not yet achieved 'accepted' status. |\n| PATC | PartiallyAcceptedTechnicalCorrect | Payment initiation needs multiple authentications, where some but not yet all have been performed. Syntactical and semantical validations are successful. |\n| RCVD | Received | Payment initiation has been received by the receiving agent. |\n| PDNG | Pending | Payment request or individual transaction included in the Payment Request is pending. Further checks and status update will be performed. |\n| RJCT | Rejected | Payment request  has been rejected. |\n![](https://www.stet.eu//assets/files/documents-api/payment-request-status-1-4-2.png)\n  \n",
        "example": "ACSC",
        "enum": [
          "ACCP",
          "ACSC",
          "ACSP",
          "ACTC",
          "ACWC",
          "ACWP",
          "CANC",
          "PART",
          "RCVD",
          "PDNG",
          "RJCT"
        ],
        "x-Generic": true
      },
      "TransactionIndividualStatusCode": {
        "type": "string",
        "description": "ISO20022: Specifies the status of the payment information group.\n\nAPI: Only the following values are allowed to provide the status of the subsequent CREDIT TRANSFER to the Payment Request\n| Code | Name | Description |\n| ---- | ---- | ---------- |\n| ACSC | AcceptedSettlementCompleted | Settlement on the debtor's account was completed. In the case of SCTInst, this status must not been set by the debtor's Bank before the reception of the positive confirmation.  |\n| ACSP | AcceptedSettlementInProcess | All preceding checks such as technical validation and customer profile were successful and therefore the Payment Request has been accepted for execution. |\n| ACTC | AcceptedTechnicalValidation | Authentication and syntactical and semantical validation are successful. |\n| CANC | Cancelled | Payment initiation has been successfully cancelled after having received a request for cancellation. |\n| PDNG | Pending | Payment request or individual transaction included in the Payment Request is pending. Further checks and status update will be performed. |\n| RJCT | Rejected | Payment request or individual transaction included in the Payment Request has been rejected. |\n![](https://www.stet.eu//assets/files/documents-api/transaction-status-1-4-2.png)\n",
        "example": "ACSP",
        "enum": [
          "ACSC",
          "ACSP",
          "ACTC",
          "CANC",
          "PDNG",
          "RJCT"
        ],
        "x-Generic": true
      },
      "StatusReasonInformation": {
        "type": "string",
        "description": "ISO20022: Provides detailed information on the status reason.\n\nAPI: Can only be used in case the status is equal to \"RJCT\" or \"CANC\". Only the following values are allowed:\n| Code | Name | Description |\n| ---- | ---- | ---------- |\n| AC01 | IncorectAccountNumber | the account number is either invalid or does not exist\n| AC04 | ClosedAccountNumber | the account is closed and cannot be used\n| AC06 | BlockedAccount | the account is blocked and cannot be used\n| AG01 | Transaction forbidden | Transaction forbidden on this type of account\n| AM18 | InvalidNumberOfTransactions | the number of transactions exceeds the ASPSP acceptance limit\n| CH03 | RequestedExecutionDateOrRequestedCollectionDateTooFarInFuture | The requested execution date is too far in the future\n| CUST | RequestedByCustomer | The reject is due to the debtor: refusal or lack of liquidity\n| DS02 | OrderCancelled | An authorized user has cancelled the order\n| DUPL | DuplicatePayment | Payment is a duplicate of another payment. Can only be set by a PISP for a payment request cancellation.\n| FF01 | InvalidFileFormat | The reject is due to the original Payment Request which is invalid (syntax, structure or values)\n| FRAD | FraudulentOriginated | the Payment Request is considered as fraudulent\n| MS03 | NotSpecifiedReasonAgentGenerated | No reason specified by the ASPSP\n| NOAS | NoAnswerFromCustomer | The PSU has neither accepted nor rejected the Payment Request and a time-out has occurred\n| RR01 | MissingDebtorAccountOrIdentification | The Debtor account and/or Identification are missing or inconsistent \n| RR03 | MissingCreditorNameOrAddress | Specification of the creditor’s name and/or address needed for regulatory requirements is insufficient or missing.\n| RR04 | RegulatoryReason | Reject from regulatory reason\n| RR12 | InvalidPartyID | Invalid or missing identification required within a particular country or payment type.\n| TECH | TechnicalProblem | Technical problems resulting in an erroneous transaction. Can only be set by a PISP for a payment request cancellation.\n \n",
        "example": "FRAD",
        "enum": [
          "AC01",
          "AC04",
          "AC06",
          "AG01",
          "AM18",
          "CH03",
          "CUST",
          "DS02",
          "FF01",
          "FRAD",
          "MS03",
          "NOAS",
          "RR01",
          "RR03",
          "RR04",
          "RR12"
        ]
      },
      "RegulatoryReportingCode": {
        "maxLength": 10,
        "type": "string",
        "description": "Information needed due to regulatory and statutory requirements. \nEconomical codes to be used are provided by the National Competent Authority\n",
        "example": "ECO456"
      },
      "RegulatoryReportingCodes": {
        "maxItems": 10,
        "minItems": 1,
        "type": "array",
        "description": "List of needed regulatory reporting codes for international payments\n",
        "example": [
          "ECO456",
          "ECO457"
        ],
        "items": {
          "$ref": "#/components/schemas/RegulatoryReportingCode"
        }
      },
      "RequestedExecutionDate": {
        "type": "string",
        "description": "ISO20022: Date at which the initiating party requests the clearing agent to process the payment.\nAPI:  \nThis field indicates the date at which the debtor account should be debited. \nIn most of the cases, especially for international payments, the date of the credit on the credit account cannot be set. Only SCTInst can guarantee having the same date for this credit. \nThis date can be used in the following cases:\n- the single requested execution date for a payment having several instructions. In this case, this field must be set at the payment level. \n- the requested execution date for a given instruction within a payment. In this case, this field must be set at each instruction level. \n- The first date of execution for a standing order.\nWhen the payment cannot be processed at this date, the ASPSP is allowed to shift the applied execution date to the next possible execution date for non-standing orders.\nFor standing orders, the [executionRule] parameter helps to compute the execution date to be applied.\n",
        "format": "date-time",
        "example": "2019-02-01T00:00:00+01:00"
      },
      "EndDate": {
        "type": "string",
        "description": "The last applicable day of execution for a given standing order.\nIf not given, the standing order is considered as endless.\n",
        "format": "date-time",
        "example": "2019-02-01T00:00:00+01:00"
      },
      "ExecutionRule": {
        "type": "string",
        "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",
        "example": "FWNG",
        "enum": [
          "FWNG",
          "PREC"
        ]
      },
      "FrequencyCode": {
        "type": "string",
        "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",
        "example": "MNTH",
        "enum": [
          "DAIL",
          "WEEK",
          "TOWK",
          "MNTH",
          "TOMN",
          "QUTR",
          "SEMI",
          "YEAR"
        ]
      },
      "ExchangeRate": {
        "type": "object",
        "properties": {
          "unitCurrency": {
            "$ref": "#/components/schemas/CurrencyCode"
          },
          "exchangeRate": {
            "type": "number",
            "description": "The factor used for conversion of an amount from one currency to another. This reflects the price at which one currency was bought with another currency.\n",
            "format": "float"
          },
          "rateType": {
            "type": "string",
            "description": "Specifies the type used to complete the currency exchange.\n| Code | Name | Description |\n| ---- | ---- | ---------- |\n| SPOT | Spot | Exchange rate applied is the spot rate. |\n| SALE | Sale | Exchange rate applied is the market rate at the time of the sale. |\n| AGRD | Agreed | Exchange rate applied is the rate agreed between the parties. |\n",
            "enum": [
              "SPOT",
              "SALE",
              "AGRD"
            ]
          },
          "contractIdentification": {
            "maxLength": 35,
            "type": "string",
            "description": "Unique and unambiguous reference to the foreign exchange contract agreed between the initiating party/creditor and the debtor agent."
          }
        },
        "description": "Provides details on the currency exchange rate and contract."
      },
      "InstructionForCreditorAgent": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Coded information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor's agent. | Code | Name | Description | | ---- | ---- | ---------- | | CHQB | PayCreditorByCheque | (Ultimate) creditor must be paid by cheque. | | HOLD | HoldCashForCreditor | Amount of money must be held for the (ultimate) creditor, who will call. Pay on identification. | | PHOB | PhoneBeneficiary | Please advise/contact (ultimate) creditor/claimant by phone. | | TELB | Telecom | Please advise/contact (ultimate) creditor/claimant by the most efficient means of telecommunication. |",
            "enum": [
              "CHQB",
              "HOLD",
              "PHOB",
              "TELB"
            ]
          },
          "instructionInformation": {
            "maxLength": 140,
            "type": "string",
            "description": "Further information complementing the coded instruction or instruction to the creditor's agent that is bilaterally agreed or specific to a user community."
          }
        },
        "description": "Further information related to the processing of the payment instruction that may need to be acted upon by the creditor's agent. The instruction may relate to a level of service, or may be an instruction that has to be executed by the creditor's agent, or may be information required by the creditor's agent.\n"
      },
      "IntermediaryAgent": {
        "type": "object",
        "properties": {
          "agent": {
            "$ref": "#/components/schemas/PartyIdentification"
          },
          "agentAccount": {
            "$ref": "#/components/schemas/AccountIdentification"
          }
        },
        "description": "Agent and agent account between the debtor's agent and the creditor's agent."
      },
      "CreditTransferTransaction": {
        "required": [
          "paymentId"
        ],
        "type": "object",
        "properties": {
          "paymentId": {
            "$ref": "#/components/schemas/PaymentIdentification"
          },
          "requestedExecutionDate": {
            "$ref": "#/components/schemas/RequestedExecutionDate"
          },
          "endDate": {
            "$ref": "#/components/schemas/EndDate"
          },
          "executionRule": {
            "$ref": "#/components/schemas/ExecutionRule"
          },
          "frequency": {
            "$ref": "#/components/schemas/FrequencyCode"
          },
          "instructedAmount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "equivalentAmount": {
            "$ref": "#/components/schemas/EquivalentAmountType"
          },
          "exchangeRateInformation": {
            "$ref": "#/components/schemas/ExchangeRate"
          },
          "ultimateDebtor": {
            "$ref": "#/components/schemas/PartyIdentification"
          },
          "intermediaryAgent": {
            "$ref": "#/components/schemas/IntermediaryAgent"
          },
          "beneficiary": {
            "$ref": "#/components/schemas/Beneficiary"
          },
          "ultimateCreditor": {
            "$ref": "#/components/schemas/PartyIdentification"
          },
          "instructionForCreditorAgent": {
            "type": "array",
            "description": "Further information related to the processing of the payment instruction, provided by the initiating party, and intended for the creditor agent.",
            "items": {
              "$ref": "#/components/schemas/InstructionForCreditorAgent"
            }
          },
          "purpose": {
            "$ref": "#/components/schemas/PurposeCode"
          },
          "regulatoryReportingCodes": {
            "$ref": "#/components/schemas/RegulatoryReportingCodes"
          },
          "remittanceInformation": {
            "$ref": "#/components/schemas/RemittanceInformation"
          },
          "transactionStatus": {
            "$ref": "#/components/schemas/TransactionIndividualStatusCode"
          },
          "statusReasonInformation": {
            "$ref": "#/components/schemas/StatusReasonInformation"
          }
        },
        "description": "ISO20022: Payment processes required to transfer cash from the debtor to the creditor.\nAPI: \n",
        "example": {
          "paymentIdentification": {
            "resourceId": "MyInstrRscId",
            "instructionIdentification": "MyInstrId",
            "endToEndIdentification": "MyEndToEndId"
          },
          "requestedExecutionDate": "2016-12-31T00:00:00.000+01:00",
          "instructedAmount": {
            "currency": "EUR",
            "amount": 124.35
          },
          "remittanceInformation": [
            "MyRemittanceInformation"
          ]
        },
        "x-NotAllowedInPost": [
          "transactionStatus",
          "statusReasonInformation"
        ]
      },
      "SupplementaryData": {
        "type": "object",
        "properties": {
          "acceptedAuthenticationApproach": {
            "type": "array",
            "description": "can only be set by the PISP\nauthentication approaches that are supported by the PISP. The PISP can provide several choices separated by commas. \nREDIRECT: the PSU is redirected by the TPP to the ASPSP which processes identification and authentication\nDECOUPLED: the TPP identifies the PSU and forwards the identification to the ASPSP which processes the authentication through a decoupled device\nEMBEDDED-1-FACTOR: the TPP identifies the PSU and forwards the identification to the ASPSP which starts the authentication. The TPP forwards one authentication factor of the PSU (e.g. OTP or response to a challenge)\n",
            "items": {
              "type": "string",
              "description": "combination of possible values for authentication approaches",
              "enum": [
                "REDIRECT",
                "DECOUPLED",
                "EMBEDDED-1-FACTOR"
              ]
            }
          },
          "appliedAuthenticationApproach": {
            "$ref": "#/components/schemas/AppliedAuthenticationApproach"
          },
          "scaHint": {
            "type": "string",
            "description": "can only be set by the PISP\nHint given by the merchant and/or the PISP about an SCA exemption context\n",
            "enum": [
              "noScaExemption",
              "scaExemption"
            ]
          },
          "successfulReportUrl": {
            "type": "string",
            "description": "URL to be used by the ASPSP in order to notify the PISP of the finalisation of the authentication and consent process in REDIRECT and DECOUPLED approach\n"
          },
          "unsuccessfulReportUrl": {
            "type": "string",
            "description": "URL to be used by the ASPSP in order to notify the PISP of the failure of the authentication and consent process in REDIRECT and DECOUPLED approach \nIf this URL is not provided by the PISP, the ASPSP will use the \"successfulReportUrl\" even in case of failure of the Payment Request processing\n"
          }
        },
        "description": "ISO20022: Additional information that cannot be captured in the structured elements and/or any other specific block.\n\nAPI: This structure is used to embed the relevant URLs for returning the status report to the PISP and to specify which authentication approaches are accepted by the PISP and which has been chosen by the ASPSP\n",
        "example": {
          "successfulReportUrl": "http://myPisp/PaymentSuccess",
          "unsuccessfulReportUrl": "http://myPisp/PaymentFailure"
        }
      },
      "BalanceStatus": {
        "type": "string",
        "description": "Type of balance\n| Code | Name | Description |\n| ---- | ---- | ----------- |\n| CLBD | ISO20022 ClosingBooked | Accounting Balance |\n| XPCD | ISO20022 Expected | Instant Balance |\n| VALU | (None) | Value-date balance |\n| OTHR | (None) | Other Balance |\n",
        "example": "CLBD",
        "enum": [
          "CLBD",
          "XPCD",
          "VALU",
          "OTHR"
        ]
      },
      "TransactionStatus": {
        "type": "string",
        "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| OTHR | Other | transaction that is not accounted and does not affect the instant balance yet |\n",
        "example": "BOOK",
        "enum": [
          "BOOK",
          "PDNG",
          "OTHR"
        ]
      },
      "BankTransactionCode": {
        "required": [
          "domain",
          "family",
          "subFamily"
        ],
        "type": "object",
        "properties": {
          "domain": {
            "maxLength": 4,
            "type": "string",
            "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"
          },
          "family": {
            "maxLength": 4,
            "type": "string",
            "description": "Specifies the family and the sub-family of the bank transaction code, within a specific domain, in a structured and hierarchical format.\n"
          },
          "subFamily": {
            "maxLength": 4,
            "type": "string",
            "description": "Specifies the sub-product family within a specific family.\n"
          },
          "code": {
            "maxLength": 35,
            "type": "string",
            "description": "Proprietary bank transaction code to identify the underlying transaction.\n"
          },
          "issuer": {
            "maxLength": 35,
            "type": "string",
            "description": "Identification of the issuer of the proprietary bank transaction code.\n"
          }
        },
        "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   \n"
      },
      "CreditDebitIndicator": {
        "type": "string",
        "description": "Accounting flow of the amount\n| Code | Description |\n| ---- | ----------- |\n| CRDT | Credit type amount |\n| DBIT | Debit type amount |\n",
        "example": "CRDT",
        "enum": [
          "CRDT",
          "DBIT"
        ]
      },
      "RelatedParties": {
        "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"
          }
        },
        "description": "information about the parties that are related to the transaction"
      },
      "AmountAndCurrencyExchangeDetails": {
        "required": [
          "amount",
          "exchangeRate",
          "sourceCurrency"
        ],
        "type": "object",
        "properties": {
          "type": {
            "maxLength": 35,
            "type": "string",
            "description": "specifies the type of amount in case of proprietary amount"
          },
          "amount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "sourceCurrency": {
            "$ref": "#/components/schemas/CurrencyCode"
          },
          "targetCurrency": {
            "$ref": "#/components/schemas/CurrencyCode"
          },
          "unitCurrency": {
            "$ref": "#/components/schemas/CurrencyCode"
          },
          "exchangeRate": {
            "type": "number",
            "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",
            "format": "float"
          },
          "contractIdentification": {
            "maxLength": 35,
            "type": "string",
            "description": "Unique identification to unambiguously identify the foreign exchange contract."
          },
          "quotationDate": {
            "type": "string",
            "description": "Date and time at which an exchange rate is quoted.",
            "format": "date"
          }
        },
        "description": "details on amount and currency exchange\n"
      },
      "AmountAndCurrencyExchange": {
        "type": "object",
        "properties": {
          "instructedAmount": {
            "$ref": "#/components/schemas/AmountAndCurrencyExchangeDetails"
          },
          "transactionAmount": {
            "$ref": "#/components/schemas/AmountAndCurrencyExchangeDetails"
          },
          "counterValueAmount": {
            "$ref": "#/components/schemas/AmountAndCurrencyExchangeDetails"
          },
          "announcedPostingAmount": {
            "$ref": "#/components/schemas/AmountAndCurrencyExchangeDetails"
          },
          "proprietaryAmount": {
            "type": "array",
            "description": "Set of elements used to provide information on the original amount and currency exchange.\n",
            "items": {
              "$ref": "#/components/schemas/AmountAndCurrencyExchangeDetails"
            }
          }
        },
        "description": "Provides detailed information on the original amount."
      },
      "TaxCharges": {
        "type": "object",
        "properties": {
          "identification": {
            "maxLength": 35,
            "type": "string",
            "description": "Unique reference to unambiguously identify the nature of the tax levied, such as Value Added Tax (VAT)."
          },
          "rate": {
            "$ref": "#/components/schemas/PercentageRate"
          },
          "amount": {
            "$ref": "#/components/schemas/AmountType"
          }
        },
        "description": "Provides details on the tax applied to charges."
      },
      "ChargesRecord": {
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "creditDebitIndicator": {
            "$ref": "#/components/schemas/CreditDebitIndicator"
          },
          "chargeIncludedIndicator": {
            "type": "boolean",
            "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"
          },
          "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"
          }
        },
        "description": "Provides further individual record details on the charges related to the payment transaction."
      },
      "Charges": {
        "type": "object",
        "properties": {
          "totalChargesAndTaxAmount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "record": {
            "type": "array",
            "description": "Provides details of the individual charges record.",
            "items": {
              "$ref": "#/components/schemas/ChargesRecord"
            }
          }
        },
        "description": "Provides further details on the charges related to the payment transaction."
      },
      "Transaction": {
        "required": [
          "creditDebitIndicator",
          "status",
          "transactionAmount"
        ],
        "type": "object",
        "properties": {
          "resourceId": {
            "$ref": "#/components/schemas/ResourceId"
          },
          "entryReference": {
            "maxLength": 40,
            "type": "string",
            "description": "Technical incremental identification of the transaction. Once assigned, this value cannot be changed for the relevant transaction.\n"
          },
          "transactionAmount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "creditDebitIndicator": {
            "$ref": "#/components/schemas/CreditDebitIndicator"
          },
          "transactionAmountDetails": {
            "$ref": "#/components/schemas/AmountAndCurrencyExchange"
          },
          "status": {
            "$ref": "#/components/schemas/TransactionStatus"
          },
          "expectedBookingDate": {
            "type": "string",
            "description": "Expected booking date of the transaction on the account if the transaction is not yet booked. \n",
            "format": "date-time"
          },
          "bookingDate": {
            "type": "string",
            "description": "Real booking date of the transaction on the account\n",
            "format": "date-time"
          },
          "valueDate": {
            "type": "string",
            "description": "Value date of the transaction on the account",
            "format": "date-time"
          },
          "transactionDate": {
            "type": "string",
            "description": "Date used for specific purposes: \n- for card transaction: date of the transaction\n- for credit transfer: acquiring date of the transaction\n- for direct debit: receiving date of the transaction\n",
            "format": "date-time"
          },
          "bankTransactionCode": {
            "$ref": "#/components/schemas/BankTransactionCode"
          },
          "charges": {
            "$ref": "#/components/schemas/Charges"
          },
          "relatedParties": {
            "$ref": "#/components/schemas/RelatedParties"
          },
          "remittanceInformation": {
            "$ref": "#/components/schemas/RemittanceInformation"
          },
          "additionalTransactionInformation": {
            "maxLength": 500,
            "type": "string",
            "description": "Additional information about reconciliation."
          }
        },
        "description": "Structure of a transaction. \nAt least expectedBookingDate or bookingDate must be provided\n",
        "example": {
          "entryReference": "AF5T2",
          "transactionAmount": {
            "currency": "EUR",
            "amount": 12.25
          },
          "creditDebitIndicator": "CRDT",
          "status": "BOOK",
          "bookingDate": "2018-02-12",
          "remittanceInformation": [
            "SEPA CREDIT TRANSFER from PSD2Company"
          ]
        }
      },
      "PsuStatusType": {
        "maxLength": 35,
        "type": "string",
        "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 has been 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"
      },
      "AccountResource": {
        "required": [
          "_links",
          "cashAccountType",
          "name"
        ],
        "type": "object",
        "properties": {
          "resourceId": {
            "$ref": "#/components/schemas/ResourceId"
          },
          "bicFi": {
            "pattern": "^[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}$",
            "type": "string",
            "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"
          },
          "accountId": {
            "$ref": "#/components/schemas/AccountIdentification"
          },
          "name": {
            "maxLength": 70,
            "type": "string",
            "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"
          },
          "details": {
            "maxLength": 140,
            "type": "string",
            "description": "Specifications that might be provided by the ASPSP\n- characteristics of the account\n- characteristics of the relevant card\n"
          },
          "linkedAccount": {
            "maxLength": 70,
            "type": "string",
            "description": "Case of a set of pending card transactions, the APSP will provide the relevant cash account the card is set up on."
          },
          "usage": {
            "type": "string",
            "description": "Specifies the usage of the account\n| Code | Description |\n| ---- | ----------- |\n| PRIV | Private personal account |\n| ORGA | Professional account |\n",
            "enum": [
              "PRIV",
              "ORGA"
            ]
          },
          "company": {
            "$ref": "#/components/schemas/GenericIdentification"
          },
          "cashAccountType": {
            "type": "string",
            "description": "Specifies the type of the account\n| Code | Description |\n| ---- | ----------- |\n| CACC | Cash account |\n| CARD | List of card based transactions |\n",
            "enum": [
              "CACC",
              "CARD"
            ]
          },
          "product": {
            "maxLength": 35,
            "type": "string",
            "description": "Product Name of the Bank for this account, proprietary definition\n"
          },
          "balances": {
            "minItems": 1,
            "type": "array",
            "description": "list of balances provided by the ASPSP",
            "items": {
              "$ref": "#/components/schemas/BalanceResource"
            }
          },
          "psuStatus": {
            "$ref": "#/components/schemas/PsuStatusType"
          },
          "_links": {
            "$ref": "#/components/schemas/AccountLinks"
          }
        },
        "description": "PSU account that is made available to the TPP\n",
        "example": {
          "resourceId": "Alias1",
          "bicFi": "BNKAFRPPXXX",
          "name": "Compte de Mr et Mme Dupont",
          "usage": "PRIV",
          "cashAccountType": "CACC",
          "currency": "EUR",
          "psuStatus": "Co-account Holder",
          "_links": {
            "balances": {
              "href": "v1/accounts/Alias1/balances"
            },
            "transactions": {
              "href": "v1/accounts/Alias1/transactions"
            }
          }
        }
      },
      "BalanceResource": {
        "required": [
          "balanceAmount",
          "balanceType",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 70,
            "type": "string",
            "description": "Label of the balance"
          },
          "balanceAmount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "balanceType": {
            "$ref": "#/components/schemas/BalanceStatus"
          },
          "lastChangeDateTime": {
            "type": "string",
            "description": "Timestamp of the last change of the balance amount",
            "format": "date-time"
          },
          "referenceDate": {
            "type": "string",
            "description": "Reference date for the balance",
            "format": "date-time"
          },
          "lastCommittedTransaction": {
            "maxLength": 40,
            "type": "string",
            "description": "Identification of the last committed transaction. This is actually useful for instant balance.\n"
          }
        },
        "description": "Structure of an account balance",
        "example": {
          "name": "Solde comptable au 12/01/2017",
          "balanceAmount": {
            "currency": "EUR",
            "amount": 123.45
          },
          "balanceType": "CLBD",
          "lastCommittedTransaction": "A452CH"
        }
      },
      "Nonce": {
        "maxLength": 70,
        "type": "string",
        "description": "Challenge to be sent in order to avoid replay of the authentication process.\n"
      },
      "ConfirmationResource": {
        "type": "object",
        "properties": {
          "nonce": {
            "$ref": "#/components/schemas/Nonce"
          },
          "psuAuthenticationFactor": {
            "type": "string",
            "description": "authentication factor forwarded by the TPP to the ASPSP in order to fulfil the strong customer authentication process"
          }
        },
        "description": "Confirmation request resource",
        "example": {
          "psuAuthenticationFactor": "JJKJKJ788GKJKJBK"
        }
      },
      "PaymentInformationId": {
        "pattern": "^([a-zA-Z0-9 /\\-?:\\()\\.,']{1,36})$",
        "type": "string",
        "description": "ISO20022: Reference assigned by a sending party to unambiguously identify the payment information block within the message.\n",
        "example": "MyPmtInfId"
      },
      "CreationDateTime": {
        "type": "string",
        "description": "ISO20022: Date and time at which a (group of) payment instruction(s) was created by the instructing party.\n",
        "format": "date-time",
        "example": "2018-03-31T13:25:22.527+02:00"
      },
      "FundsAvailabilityInformation": {
        "type": "boolean",
        "description": "indicator that the payment can be covered or not by the funds available on the relevant account\n- true: payment is covered\n- false: payment is not covered\n",
        "example": true
      },
      "BookingInformation": {
        "type": "boolean",
        "description": "indicator that the payment can be immediately booked or not\n- true: payment is booked\n- false: payment is not booked\n",
        "example": true
      },
      "BatchBookingIndicator": {
        "type": "boolean",
        "description": "Identifies whether a single entry per individual transaction or a batch entry for the sum of the amounts of all transactions within the group of a message is requested.\nMeaning When True: Identifies that a batch entry for the sum of the amounts of all transactions in the batch or message is requested.\nMeaning When False: Identifies that a single entry for each of the transactions in the batch or message is requested.    \n"
      },
      "PaymentRequestResource": {
        "required": [
          "creationDateTime",
          "creditTransferTransaction",
          "initiatingParty",
          "numberOfTransactions",
          "paymentInformationId",
          "paymentTypeInformation",
          "supplementaryData"
        ],
        "type": "object",
        "properties": {
          "resourceId": {
            "$ref": "#/components/schemas/ResourceId"
          },
          "paymentInformationId": {
            "$ref": "#/components/schemas/PaymentInformationId"
          },
          "batchBooking": {
            "$ref": "#/components/schemas/BatchBookingIndicator"
          },
          "creationDateTime": {
            "$ref": "#/components/schemas/CreationDateTime"
          },
          "numberOfTransactions": {
            "minimum": 1,
            "type": "integer",
            "description": "ISO20022: Number of individual transactions contained in the message.\nAPI: Each ASPSP will specify a maximum value for this field taking into accounts its specificities about payment request handling\n"
          },
          "initiatingParty": {
            "$ref": "#/components/schemas/PartyIdentification"
          },
          "acceptDebtorAccountChange": {
            "type": "boolean",
            "description": "indicator that the debtor account can be changed in the payment request by the ASPSP if needed\n- true: debtor account can be changed (default value)\n- false: debtor account cannot be changed\n"
          },
          "acceptChargeHandlingChange": {
            "type": "boolean",
            "description": "indicator that the charge handling can be changed in the payment request by the ASPSP if needed\n- true: charge handling can be changed (default value)\n- false: charge handling cannot be changed\n"
          },
          "paymentTypeInformation": {
            "$ref": "#/components/schemas/PaymentTypeInformation"
          },
          "debtor": {
            "$ref": "#/components/schemas/PartyIdentification"
          },
          "debtorAccount": {
            "$ref": "#/components/schemas/AccountIdentification"
          },
          "debtorAgent": {
            "$ref": "#/components/schemas/FinancialInstitutionIdentification"
          },
          "beneficiary": {
            "$ref": "#/components/schemas/Beneficiary"
          },
          "chargeBearer": {
            "$ref": "#/components/schemas/ChargeBearerCode"
          },
          "paymentInformationStatus": {
            "$ref": "#/components/schemas/PaymentInformationStatusCode"
          },
          "statusReasonInformation": {
            "$ref": "#/components/schemas/StatusReasonInformation"
          },
          "fundsAvailability": {
            "$ref": "#/components/schemas/FundsAvailabilityInformation"
          },
          "booking": {
            "$ref": "#/components/schemas/BookingInformation"
          },
          "requestedExecutionDate": {
            "type": "string",
            "description": "ISO20022: Date at which the initiating party requests the clearing agent to process the payment. \n",
            "format": "date-time"
          },
          "creditTransferTransaction": {
            "minItems": 1,
            "type": "array",
            "description": "ISO20022: Payment processes required to transfer cash from the debtor to the creditor.\nAPI: Each ASPSP will specify a maxItems value for this field taking into accounts its specificities about payment request handling\n",
            "items": {
              "$ref": "#/components/schemas/CreditTransferTransaction"
            }
          },
          "supplementaryData": {
            "$ref": "#/components/schemas/SupplementaryData"
          }
        },
        "description": "ISO20022: The PaymentRequestResource message is sent by the Creditor sending party to the Debtor receiving party, directly or through agents. It is used by a Creditor to request movement of funds from the debtor account to a creditor.\nAPI: \nInformation about the creditor (Id, account and agent) might be placed either at payment level or at instruction level. Thus multi-beneficiary payments can be handled.\nThe requested execution date can be placed either at payment level when all instructions are requested to be executed at the same date or at instruction level.\nThe latest case includes:\n- multiple instructions having different requested execution dates\n- standing orders settings \n",
        "example": {
          "paymentInformationId": "MyPmtInfId",
          "creationDateTime": "2018-03-31T13:25:22.527+02:00",
          "numberOfTransactions": 1,
          "initiatingParty": {
            "name": "MyPreferredPisp",
            "postalAddress": {
              "country": "FR",
              "addressLine": [
                "18 rue de la DSP2",
                "75008 PARIS"
              ]
            },
            "organisationId": {
              "identification": "12FR5",
              "schemeName": "COID",
              "issuer": "ACPR"
            }
          },
          "paymentTypeInformation": {
            "serviceLevel": "SEPA",
            "localInstrument": "INST",
            "categoryPurpose": "DVPM"
          },
          "debtor": {
            "name": "MyCustomer",
            "postalAddress": {
              "country": "FR",
              "addressLine": [
                "18 rue de la DSP2",
                "75008 PARIS"
              ]
            },
            "privateId": {
              "identification": "FD37G",
              "schemeName": "BANK",
              "issuer": "BICXYYTTZZZ"
            }
          },
          "beneficiary": {
            "creditor": {
              "name": "myMerchant",
              "postalAddress": {
                "country": "FR",
                "addressLine": [
                  "18 rue de la DSP2",
                  "75008 PARIS"
                ]
              },
              "organisationId": {
                "identification": "852126789",
                "schemeName": "SIREN",
                "issuer": "FR"
              }
            }
          },
          "creditorAccount": {
            "iban": "YY64COJH41059545330222956960771321"
          },
          "ultimateCreditor": {
            "name": "myPreferredUltimateMerchant",
            "postalAddress": {
              "country": "FR",
              "addressLine": [
                "18 rue de la DSP2",
                "75008 PARIS"
              ]
            },
            "organisationId": {
              "identification": "85212678900025",
              "schemeName": "SIRET",
              "issuer": "FR"
            }
          },
          "purpose": "COMC",
          "chargeBearer": "SLEV",
          "creditTransferTransaction": [
            {
              "paymentId": {
                "instructionId": "MyInstrId",
                "endToEndId": "MyEndToEndId"
              },
              "requestedExecutionDate": "2016-12-31T00:00:00.000+01:00",
              "instructedAmount": {
                "currency": "EUR",
                "amount": 124.35
              },
              "remittanceInformation": [
                "MyRemittanceInformation"
              ]
            }
          ],
          "supplementaryData": {
            "acceptedAuthenticationApproach": [
              "REDIRECT",
              "DECOUPLED"
            ],
            "successfulReportUrl": "http://myPisp/PaymentSuccess",
            "unsuccessfulReportUrl": "http://myPisp/PaymentFailure"
          }
        },
        "x-NotAllowedInPost": [
          "paymentInformationStatus",
          "statusReasonInformation"
        ]
      },
      "PaymentCoverageRequestResource": {
        "required": [
          "accountId",
          "instructedAmount",
          "paymentCoverageRequestId"
        ],
        "type": "object",
        "properties": {
          "paymentCoverageRequestId": {
            "maxLength": 35,
            "type": "string",
            "description": "Identification of the payment Coverage Request"
          },
          "payee": {
            "maxLength": 70,
            "type": "string",
            "description": "The merchant where the card is accepted as information to the PSU."
          },
          "instructedAmount": {
            "$ref": "#/components/schemas/AmountType"
          },
          "accountId": {
            "$ref": "#/components/schemas/AccountIdentification"
          }
        },
        "description": "Payment coverage request structure. The request must rely either on a cash account or a payment card.",
        "example": {
          "paymentCoverageRequestId": "MyCoverage123456",
          "instructedAmount": {
            "currency": "EUR",
            "amount": 12345
          },
          "accountId": {
            "iban": "YY13RDHN98392489481620896668799742"
          }
        }
      },
      "HalAccounts": {
        "required": [
          "_links",
          "accounts"
        ],
        "type": "object",
        "properties": {
          "accounts": {
            "type": "array",
            "description": "List of PSU account that are made available to the TPP\n",
            "items": {
              "$ref": "#/components/schemas/AccountResource"
            }
          },
          "_links": {
            "$ref": "#/components/schemas/PsuContextLinks"
          }
        },
        "description": "HYPERMEDIA structure used for returning the list of the available accounts to the AISP",
        "example": {
          "accounts": [
            {
              "resourceId": "Alias1",
              "bicFi": "BNKAFRPPXXX",
              "name": "Compte de Mr et Mme Dupont",
              "usage": "PRIV",
              "cashAccountType": "CACC",
              "currency": "EUR",
              "psuStatus": "Co-account Holder",
              "_links": {
                "balances": {
                  "href": "v1/accounts/Alias1/balances"
                },
                "transactions": {
                  "href": "v1/accounts/Alias1/transactions"
                }
              }
            }
          ],
          "_links": {
            "self": {
              "href": "v1/accounts?page=2"
            },
            "first": {
              "href": "v1/accounts"
            },
            "last": {
              "href": "v1/accounts?page=last",
              "templated": true
            },
            "next": {
              "href": "v1/accounts?page=3",
              "templated": true
            },
            "prev": {
              "href": "v1/accounts",
              "templated": true
            }
          }
        }
      },
      "HalBalances": {
        "required": [
          "_links",
          "balances"
        ],
        "type": "object",
        "properties": {
          "balances": {
            "minItems": 1,
            "type": "array",
            "description": "List of account balances",
            "items": {
              "$ref": "#/components/schemas/BalanceResource"
            }
          },
          "_links": {
            "$ref": "#/components/schemas/BalancesLinks"
          }
        },
        "description": "HYPERMEDIA structure used for returning the list of the relevant balances for a given account to the AISP",
        "example": {
          "balances": [
            {
              "name": "Solde comptable au 12/01/2017",
              "balanceAmount": {
                "currency": "EUR",
                "amount": 123.45
              },
              "balanceType": "CLBD",
              "lastCommittedTransaction": "A452CH"
            }
          ],
          "_links": {
            "self": {
              "href": "v1/accounts/Alias1/balances-report"
            },
            "parent-list": {
              "href": "v1/accounts"
            },
            "transactions": {
              "href": "v1/accounts/Alias1/transactions"
            }
          }
        }
      },
      "HalTransactions": {
        "required": [
          "_links",
          "transactions"
        ],
        "type": "object",
        "properties": {
          "transactions": {
            "type": "array",
            "description": "List of transactions",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            }
          },
          "_links": {
            "$ref": "#/components/schemas/TransactionsLinks"
          }
        },
        "description": "HYPERMEDIA structure used for returning the list of the transactions for a given account to the AISP",
        "example": {
          "transactions": [
            {
              "entryReference": "AF5T2",
              "transactionAmount": {
                "currency": "EUR",
                "amount": 12.25
              },
              "creditDebitIndicator": "CRDT",
              "status": "BOOK",
              "bookingDate": "2018-02-12",
              "remittanceInformation": [
                "SEPA CREDIT TRANSFER from PSD2Company"
              ]
            }
          ],
          "_links": {
            "self": {
              "href": "v1/accounts/Alias1/transactions"
            },
            "parent-list": {
              "href": "v1/accounts"
            },
            "balances": {
              "href": "v1/accounts/Alias1/balances"
            },
            "last": {
              "href": "v1/accounts/sAlias1/transactions?page=last"
            },
            "next": {
              "href": "v1/accounts/Alias1/transactions?page=3"
            }
          }
        }
      },
      "HalPaymentRequest": {
        "required": [
          "_links",
          "paymentRequest"
        ],
        "type": "object",
        "properties": {
          "paymentRequest": {
            "$ref": "#/components/schemas/PaymentRequestResource"
          },
          "_links": {
            "$ref": "#/components/schemas/PaymentRequestLinks"
          }
        },
        "description": "HYPERMEDIA structure used for returning the original Payment Request to the PISP",
        "example": {
          "paymentRequest": {
            "paymentInformationId": "MyPmtInfId",
            "creationDateTime": "2018-03-31T13:25:22.527+02:00",
            "numberOfTransactions": 1,
            "initiatingParty": {
              "name": "MyPreferredPisp",
              "postalAddress": {
                "country": "FR",
                "addressLine": [
                  "18 rue de la DSP2",
                  "75008 PARIS"
                ]
              },
              "organisationId": {
                "identification": "12FR5",
                "schemeName": "COID",
                "issuer": "ACPR"
              }
            },
            "paymentTypeInformation": {
              "serviceLevel": "SEPA",
              "localInstrument": "INST",
              "categoryPurpose": "DVPM"
            },
            "debtor": {
              "name": "MyCustomer",
              "postalAddress": {
                "country": "FR",
                "addressLine": [
                  "18 rue de la DSP2",
                  "75008 PARIS"
                ]
              },
              "privateId": {
                "identification": "FD37G",
                "schemeName": "BANK",
                "issuer": "BICXYYTTZZZ"
              }
            },
            "beneficiary": {
              "isTrusted": true,
              "creditor": {
                "name": "myMerchant",
                "postalAddress": {
                  "country": "FR",
                  "addressLine": [
                    "18 rue de la DSP2",
                    "75008 PARIS"
                  ]
                },
                "organisationId": {
                  "identification": "852126789",
                  "schemeName": "SIREN",
                  "issuer": "FR"
                }
              }
            },
            "creditorAccount": {
              "iban": "YY64COJH41059545330222956960771321"
            },
            "ultimateCreditor": {
              "name": "myPreferredUltimateMerchant",
              "postalAddress": {
                "country": "FR",
                "addressLine": [
                  "18 rue de la DSP2",
                  "75008 PARIS"
                ]
              },
              "organisationId": {
                "identification": "85212678900025",
                "schemeName": "SIRET",
                "issuer": "FR"
              }
            },
            "purpose": "COMC",
            "chargeBearer": "SLEV",
            "creditTransferTransaction": [
              {
                "paymentId": {
                  "instructionId": "MyInstrId",
                  "endToEndId": "MyEndToEndId"
                },
                "requestedExecutionDate": "2016-12-31T00:00:00.000+01:00",
                "instructedAmount": {
                  "currency": "EUR",
                  "amount": 124.35
                },
                "remittanceInformation": [
                  "MyRemittanceInformation"
                ]
              }
            ],
            "supplementaryData": {
              "acceptedAuthenticationApproach": [
                "REDIRECT",
                "DECOUPLED"
              ],
              "successfulReportUrl": "http://myPisp/PaymentSuccess",
              "unsuccessfulReportUrl": "http://myPisp/PaymentFailure"
            }
          },
          "_links": {
            "self": {
              "href": "v1/payment-requests/MyPmtInfRscId"
            },
            "confirmation": {
              "href": "v1/payment-requests/MyPmtInfRscId/confirmation"
            }
          }
        }
      },
      "HalPaymentRequestCreation": {
        "type": "object",
        "properties": {
          "appliedAuthenticationApproach": {
            "$ref": "#/components/schemas/AppliedAuthenticationApproach"
          },
          "nonce": {
            "$ref": "#/components/schemas/Nonce"
          },
          "_links": {
            "$ref": "#/components/schemas/PaymentRequestResourceCreationLinks"
          }
        },
        "description": "data forwarded by the ASPSP top the PISP after creation of the Payment Request resource creation\n",
        "example": {
          "appliedAuthenticationApproach": {
            "appliedAuthenticationApproach": "REDIRECT"
          },
          "_links": {
            "consentApproval": {
              "href": "https://psd2.aspsp/consent-approval"
            }
          }
        }
      },
      "HalPaymentCoverageReport": {
        "required": [
          "_links",
          "request",
          "result"
        ],
        "type": "object",
        "properties": {
          "request": {
            "$ref": "#/components/schemas/PaymentCoverageRequestResource"
          },
          "result": {
            "type": "boolean",
            "description": "Result of the coverage check :\n- true: the payment can be covered\n- false: the payment cannot be covered\n"
          },
          "_links": {
            "$ref": "#/components/schemas/PaymentCoverageReportLinks"
          }
        },
        "description": "HYPERMEDIA structure used for returning the payment coverage report to the CBPII",
        "example": {
          "request": {
            "paymentCoverageRequestId": "MyCoverage123456",
            "instructedAmount": {
              "currency": "EUR",
              "amount": 12345
            },
            "accountId": {
              "iban": "YY13RDHN98392489481620896668799742"
            }
          },
          "result": true,
          "_links": {
            "self": {
              "href": "v1/funds-confirmations"
            }
          }
        }
      },
      "Beneficiary": {
        "required": [
          "creditor"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^([a-zA-Z0-9 /\\-?:\\()\\.,']{1,36})$",
            "type": "string",
            "description": "Id of the beneficiary"
          },
          "isTrusted": {
            "type": "boolean",
            "description": "The ASPSP having not implemented the trusted beneficiaries list must not set this flag.\nOtherwise, the ASPSP indicates whether or not the beneficiary has been 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",
            "readOnly": true
          },
          "creditorAgent": {
            "$ref": "#/components/schemas/FinancialInstitutionIdentification"
          },
          "creditor": {
            "$ref": "#/components/schemas/PartyIdentification"
          },
          "creditorAccount": {
            "$ref": "#/components/schemas/AccountIdentification"
          }
        },
        "description": "Specification of a beneficiary",
        "example": {
          "id": "MyBeneficiaryId",
          "isTrusted": true,
          "creditorAgent": {
            "bicFi": "BNKAFRPPXXX"
          },
          "creditor": {
            "name": "MyPreferredPisp",
            "postalAddress": {
              "country": "FR",
              "addressLine": [
                "18 rue de la DSP2",
                "75008 PARIS"
              ]
            }
          },
          "creditorAccount": {
            "iban": "YY64COJH41059545330222956960771321"
          }
        }
      },
      "NamePrefixCode": {
        "type": "string",
        "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",
        "enum": [
          "DOCT",
          "MADM",
          "MISS",
          "MIST"
        ]
      },
      "HalEndUserIdentity": {
        "required": [
          "_links",
          "connectedPsu"
        ],
        "type": "object",
        "properties": {
          "connectedPsu": {
            "maxLength": 70,
            "type": "string",
            "description": "Last name and first name 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"
          },
          "connectedPsuNamePrefix": {
            "$ref": "#/components/schemas/NamePrefixCode"
          },
          "connectedPsuFirstName": {
            "maxLength": 70,
            "type": "string",
            "description": "First name 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"
          },
          "connectedPsuLastName": {
            "maxLength": 70,
            "type": "string",
            "description": "Last name 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"
          },
          "_links": {
            "$ref": "#/components/schemas/EndUserIdentityLinks"
          }
        },
        "description": "HYPERMEDIA structure used for returning the identity of the PSU",
        "example": {
          "connectedPsu": "IMeMyself",
          "_links": {
            "self": {
              "href": "v1/end-user-identity"
            },
            "parent-list": {
              "href": "v1/accounts"
            }
          }
        }
      },
      "HalBeneficiaries": {
        "required": [
          "_links",
          "beneficiaries"
        ],
        "type": "object",
        "properties": {
          "beneficiaries": {
            "type": "array",
            "description": "List of trusted beneficiaries",
            "items": {
              "$ref": "#/components/schemas/Beneficiary"
            }
          },
          "_links": {
            "$ref": "#/components/schemas/BeneficiariesLinks"
          }
        },
        "description": "HYPERMEDIA structure used for returning the list of the whitelisted beneficiaries",
        "example": {
          "beneficiaries": [
            {
              "id": "MyBeneficiaryId",
              "isTrusted": true,
              "creditorAgent": {
                "bicFi": "BNKAFRPPXXX"
              },
              "creditor": {
                "name": "MyPreferredPisp",
                "postalAddress": {
                  "country": "FR",
                  "addressLine": [
                    "18 rue de la DSP2",
                    "75008 PARIS"
                  ]
                }
              },
              "creditorAccount": {
                "iban": "YY64COJH41059545330222956960771321"
              }
            }
          ],
          "_links": {
            "self": {
              "href": "v1/beneficiaries"
            },
            "parent-list": {
              "href": "v1/accounts"
            },
            "last": {
              "href": "v1/beneficiaries?page=last"
            },
            "next": {
              "href": "v1/beneficiaries?page=3"
            }
          }
        }
      },
      "AccessibleAccounts": {
        "type": "array",
        "description": "List of accessible accounts for one given functionality",
        "example": [
          {
            "iban": "YY64COJH41059545330222956960771321"
          }
        ],
        "items": {
          "$ref": "#/components/schemas/AccountIdentification"
        }
      },
      "Access": {
        "required": [
          "balances",
          "psuIdentity",
          "transactions",
          "trustedBeneficiaries"
        ],
        "type": "object",
        "properties": {
          "balances": {
            "$ref": "#/components/schemas/AccessibleAccounts"
          },
          "transactions": {
            "$ref": "#/components/schemas/AccessibleAccounts"
          },
          "trustedBeneficiaries": {
            "type": "boolean",
            "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"
          },
          "psuIdentity": {
            "type": "boolean",
            "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"
          }
        },
        "description": "Requested access services.",
        "example": {
          "balances": [
            {
              "iban": "YY64COJH41059545330222956960771321"
            }
          ],
          "trustedBeneficiaries": true,
          "psuIdentity": true
        }
      }
    },
    "responses": {
      "204": {
        "description": "No content.",
        "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": {}
      },
      "400": {
        "description": "Invalid status value",
        "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": {
          "*/*": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      },
      "401": {
        "description": "Unauthorized, authentication failure.",
        "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": {
          "*/*": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      },
      "403": {
        "description": "Forbidden, authentication successful but access to resource is not allowed.",
        "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": {
          "*/*": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      },
      "404": {
        "description": "Not found, no request available.",
        "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": {
          "*/*": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      },
      "405": {
        "description": "Method Not Allowed.",
        "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": {
          "*/*": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      },
      "406": {
        "description": "Not Acceptable.",
        "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": {
          "*/*": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      },
      "408": {
        "description": "Request Timeout.",
        "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": {
          "*/*": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      },
      "409": {
        "description": "Conflict. \nThe request could not be completed due to a conflict with the current state of the target resource.\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": {
          "*/*": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      },
      "429": {
        "description": "Too many requests.",
        "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": {
          "*/*": {
            "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": {
          "*/*": {
            "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": {
          "*/*": {
            "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": {
          "*/*": {
            "schema": {
              "$ref": "#/components/schemas/ErrorModel"
            }
          }
        }
      }
    },
    "parameters": {
      "AccountResourceIdentification": {
        "name": "accountResourceId",
        "in": "path",
        "description": "Identification of account resource to fetch",
        "required": true,
        "schema": {
          "pattern": "^([a-zA-Z0-9 /\\-?:\\()\\.,']{1,36})$",
          "type": "string"
        }
      },
      "PaymentRequestResourceIdentification": {
        "name": "paymentRequestResourceId",
        "in": "path",
        "description": "Identification of the Payment Request Resource",
        "required": true,
        "schema": {
          "pattern": "^([a-zA-Z0-9 /\\-?:\\()\\.,']{1,36})$",
          "type": "string"
        }
      },
      "FromEntryReference": {
        "name": "entryReferenceFrom",
        "in": "query",
        "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",
        "schema": {
          "maxLength": 40,
          "type": "string"
        }
      },
      "ToEntryReference": {
        "name": "entryReferenceto",
        "in": "query",
        "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",
        "schema": {
          "maxLength": 40,
          "type": "string"
        }
      },
      "ToImputationDate": {
        "name": "dateTo",
        "in": "query",
        "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",
        "schema": {
          "type": "string",
          "format": "date-time"
        }
      },
      "FromImputationDate": {
        "name": "dateFrom",
        "in": "query",
        "description": "Inclusive minimal imputation date of the transactions. \n      \nTransactions having an imputation date equal to this parameter are included within the result.\n",
        "schema": {
          "type": "string",
          "format": "date-time"
        }
      },
      "UiLocales": {
        "name": "ui_locales",
        "in": "query",
        "description": "End-User's preferred languages and scripts for the user interface, represented as a space-separated list of BCP47 [RFC5646] language tag values, ordered by preference.\n",
        "schema": {
          "maxLength": 140,
          "type": "string"
        }
      },
      "AuthorizationParameter": {
        "name": "Authorization",
        "in": "header",
        "description": "Access token to be passed as a header",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "PsuIpAddressHeader": {
        "name": "PSU-IP-Address",
        "in": "header",
        "description": "IP address used by the PSU's terminal when connecting to the TPP",
        "schema": {
          "type": "string"
        }
      },
      "PsuIpPortHeader": {
        "name": "PSU-IP-Port",
        "in": "header",
        "description": "IP port used by the PSU's terminal when connecting to the TPP",
        "schema": {
          "type": "string"
        }
      },
      "PsuHttpMethodHeader": {
        "name": "PSU-HTTP-Method",
        "in": "header",
        "description": "Http method for the most relevant PSU’s terminal request to the TTP",
        "schema": {
          "type": "string"
        }
      },
      "PsuDateHeader": {
        "name": "PSU-Date",
        "in": "header",
        "description": "Timestamp of the most relevant PSU’s terminal request to the TTP",
        "schema": {
          "type": "string"
        }
      },
      "PsuGeoLocation": {
        "name": "PSU-GEO-Location",
        "in": "header",
        "description": "Geographical location of the PSU as provided by the PSU mobile terminal if any to the TPP",
        "schema": {
          "type": "string"
        }
      },
      "PsuUserAgentHeader": {
        "name": "PSU-User-Agent",
        "in": "header",
        "description": "\"User-Agent\" header field sent by the PSU terminal when connecting to the TPP\n",
        "schema": {
          "type": "string"
        }
      },
      "PsuRefererHeader": {
        "name": "PSU-Referer",
        "in": "header",
        "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",
        "schema": {
          "type": "string"
        }
      },
      "PsuAcceptHeader": {
        "name": "PSU-Accept",
        "in": "header",
        "description": "\"Accept\" header field sent by the PSU terminal when connecting to the TPP\n",
        "schema": {
          "type": "string"
        }
      },
      "PsuAcceptCharsetHeader": {
        "name": "PSU-Accept-Charset",
        "in": "header",
        "description": "\"Accept-Charset\" header field sent by the PSU terminal when connecting to the TPP\n",
        "schema": {
          "type": "string"
        }
      },
      "PsuAcceptEncodingHeader": {
        "name": "PSU-Accept-Encoding",
        "in": "header",
        "description": "\"Accept-Encoding\" header field sent by the PSU terminal when connecting to the TPP\n",
        "schema": {
          "type": "string"
        }
      },
      "PsuAcceptLanguageHeader": {
        "name": "PSU-Accept-Language",
        "in": "header",
        "description": "\"Accept-Language\" header field sent by the PSU terminal when connecting to the TPP\n",
        "schema": {
          "type": "string"
        }
      },
      "PsuDeviceId": {
        "name": "PSU-Device-ID",
        "in": "header",
        "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",
        "schema": {
          "type": "string"
        }
      },
      "DigestHeader": {
        "name": "Digest",
        "in": "header",
        "description": "Digest of the body",
        "schema": {
          "type": "string"
        }
      },
      "SignatureHeader": {
        "name": "Signature",
        "in": "header",
        "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",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "Correlation": {
        "name": "X-Request-ID",
        "in": "header",
        "description": "Correlation header to be set in a request and retrieved in the relevant response\n",
        "required": true,
        "schema": {
          "maxLength": 70,
          "type": "string"
        }
      }
    },
    "requestBodies": {
      "PaymentRequest": {
        "description": "ISO20022 based payment Initiation Request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/PaymentRequestResource"
            }
          }
        },
        "required": true
      },
      "Confirmation": {
        "description": "Parameters needed for confirmation of the Payment Request, especially in \"EMBEDDED-1-FACTOR\" approach\nEven though there is no parameter, a Json (void) body structure must be provided.\n",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfirmationResource"
            }
          }
        },
        "required": true
      },
      "PaymentCoverageRequest": {
        "description": "parameters of a payment coverage request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/PaymentCoverageRequestResource"
            }
          }
        },
        "required": true
      },
      "Consents": {
        "description": "List of consents granted to the AISP by the PSU.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Access"
            }
          }
        },
        "required": true
      }
    },
    "securitySchemes": {
      "accessCode": {
        "type": "oauth2",
        "description": "In order to access the PSU's account information, the AISP needs to get either an authorization code grant or a resource owner password OAUTH2 token.\nIn order to post a funds confirmation request, the CBPII needs to get either an authorization code grant or a resource owner password OAUTH2 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 credential OAUTH2 token. \nThe client_id field within the token request must be filled with the value of the organization identifier attribute that has been 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",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://oauth2.aspsp/authorization",
            "tokenUrl": "https://oauth2.aspsp/token",
            "scopes": {
              "aisp": "Access by an AISP to one given PSU's account",
              "cbpii": "Access by a CBPII to one given PSU's account to check payment coverage",
              "pisp": "Access by a PISP for posting a confirmation after authentication of the PSU through OAUTH2 Authorization Code",
              "extended_transaction_history": "Access by an AISP to a transaction history over more than the 90 last days"
            }
          }
        }
      },
      "resourceOwnerIdentification": {
        "type": "oauth2",
        "description": "In order to access the PSU's account information, the AISP needs to get either an authorization code grant or a resource owner password OAUTH2 token.\nIn order to post a funds confirmation request, the CBPII needs to get either an authorization code grant or a resource owner password OAUTH2 token when registration of the account has not been previously processed.\nThe client_id field within the token request must be filled with the value of the organization identifier attribute that has been 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",
        "flows": {
          "password": {
            "tokenUrl": "https://oauth2.aspsp/token",
            "scopes": {
              "aisp": "Access by an AISP to one given PSU's account",
              "cbpii": "Access by a CBPII to one given PSU's account to check payment coverage",
              "extended_transaction_history": "Access by an AISP to a transaction history over more than the 90 last days"
            }
          }
        }
      },
      "clientCredentials": {
        "type": "oauth2",
        "description": "In order to post, get or modify a Payment or Transfer Request, the PISP needs to get a client credential OAUTH2 token. \nIn order to confirm a Payment or Transfer Request, the PISP needs to get either an authorization code grant or a client credential OAUTH2 token. \nIn order to post a funds confirmation request, the CBPII needs to get a client credential OAUTH2 token when registration of the account has already been previously processed.\nThe client_id field within the token request must be filled with the value of the organization identifier attribute that has been 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",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://oauth2.aspsp/token",
            "scopes": {
              "pisp": "Access by a PISP to payments resources",
              "cbpii": "Access by a CBPII to one given PSU's account to check payment coverage"
            }
          }
        }
      }
    }
  }
}