diff --git a/README.md b/README.md index acf938c0..9c7297f0 100644 --- a/README.md +++ b/README.md @@ -16,46 +16,47 @@ To provide feedback, please see the [CONTRIBUTING.md](CONTRIBUTING.md). ## Release Notes -### v1.9.7 - 2026-03-05 +### v1.9.8-beta1 - 2026-04-21 [Full Release Notes](https://github.com/OpenBankingUK/conformance-suite/blob/develop/docs/releases/releases.md) --- **Download**: -`docker run --rm -it -p 127.0.0.1:8443:8443 "openbanking/conformance-suite:v1.9.7"` | +`docker run --rm -it -p 127.0.0.1:8443:8443 "openbanking/conformance-suite:v1.9.8-beta1"` | [DockerHub](https://hub.docker.com/r/openbanking/conformance-suite) | [Setup Guide](https://github.com/OpenBankingUK/conformance-suite/blob/develop/docs/setup-guide.md) --- ## Version table -| Release | Standard version | -|---------|------------------------------------------------------------------------------------------------| -| v1.9.7 | | -| v1.9.6 | | -| v1.9.5 | v4.0.0 - Swagger Update 4 | -| v1.9.2 | v4.0.0 - Swagger Update 3 | -| v1.9.0 | v4.0.0 - Swagger Update 2 | -| v1.8.0 | v4.0.0 | -| v1.7.6 | v3.1.11 | -| v1.7.0 | v3.1.10 | -| v1.6.12 | v3.1.9 | +| Release | Standard version | +| ------------ | ---------------------------------------------------------------------------------------------- | +| v1.9.8-beta1 | v4.0.1 | +| v1.9.7 | | +| v1.9.6 | | +| v1.9.5 | v4.0.0 - Swagger Update 4 | +| v1.9.2 | v4.0.0 - Swagger Update 3 | +| v1.9.0 | v4.0.0 - Swagger Update 2 | +| v1.8.0 | v4.0.0 | +| v1.7.6 | v3.1.11 | +| v1.7.0 | v3.1.10 | +| v1.6.12 | v3.1.9 | ## Quickstart Pull and run the latest (stable) tagged Docker image: - > docker run --rm -it -p 127.0.0.1:8443:8443 "openbanking/conformance-suite:v1.9.7" + > docker run --rm -it -p 127.0.0.1:8443:8443 "openbanking/conformance-suite:v1.9.8-beta1" or - > docker run --rm -it -p 8443:8443 "openbanking/conformance-suite:v1.9.7" + > docker run --rm -it -p 8443:8443 "openbanking/conformance-suite:v1.9.8-beta1" [See Setup Guide](https://github.com/OpenBankingUK/conformance-suite/blob/develop/docs/setup-guide.md) ### Prerequisites -The tool is compatible with the Open Banking UK R/W specification versions: 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.8, 3.1.9, 3.1.10, 3.1.11, 4.0.0. +The tool is compatible with the Open Banking UK R/W specification versions: 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.8, 3.1.9, 3.1.10, 3.1.11, 4.0.0, 4.0.1. In order to run a container you'll need docker installed. diff --git a/docs/releases/releases.md b/docs/releases/releases.md index 7469c764..02d54a93 100644 --- a/docs/releases/releases.md +++ b/docs/releases/releases.md @@ -1,5 +1,22 @@ # Release history +## [Unreleased] + +## [1.9.8-beta1] - 21/04/2026 + +### Changed + +- OpenAPI schema `pattern` fields are now compiled and evaluated using `regexp2` (PCRE) at both spec load time and runtime request/response validation. RE2-compatible patterns are unaffected (RE2 is a strict subset of PCRE). + +### Added + +- Added support for Open Banking UK v4.0.1 OpenAPI schema files + +## Fixed + +- Fixed `OB-400-DOP-101503` (v4.0) and `OB-301-DOP-1015003` (v3.1) sending `Content-Type: text/plain` instead of `application/json` when posting the negative standing order consent payload, causing ASPSPs to respond with HTTP 415 instead of the expected HTTP 400. +- Fixed incorrect test case ID references in v1.9.6 release notes from `OB-400-DOP-1015003` to `OB-400-DOP-101503` + ## [1.9.7] - 05/03/2026 ## Changed @@ -21,7 +38,7 @@ - Added extra assertion checks for `ReadAccountsDetail`, `ReadBeneficiariesDetail`, and `ReadTransactionsDetail` tests for v3 and v4 - added support for Commercial VRP (cVRP) - Add enhanced logging for test case authorization and execution -- Added tests `OB-301-DOP-1015003` and `OB-400-DOP-1015003` which validate the following: +- Added tests `OB-301-DOP-1015003` and `OB-400-DOP-101503` which validate the following: - OB-301-DOP-1015003 (v3): validates that `NumberOfPayments` and `FinalPaymentDateTime` are correctly rejected when included in a consent payload at the same time. - OB-400-DOP-101500 (v4): validates that `CountPerPeriod` and `FinalPaymentDateTime` are correctly rejected when included in a consent payload at the same time. @@ -32,7 +49,7 @@ ### Removed -- Removed `OB-301-DOP-1015002` (v3) and `OB-400-DOP-1015002` (v4) tests as these are replaced by test ID `OB-301-DOP-1015003` and `OB-400-DOP-1015003` respectively. +- Removed `OB-301-DOP-1015002` (v3) and `OB-400-DOP-1015002` (v4) tests as these are replaced by test ID `OB-301-DOP-1015003` and `OB-400-DOP-101503` respectively. ## [1.9.6-beta5] - 30/12/2025 @@ -460,6 +477,8 @@ v3.1 of the OBIE Accounts and Transactions specifications and Payments. --- [More Releases](docs/releases) +[Unreleased]: https://github.com/OpenBankingUK/conformance-suite/compare/v1.9.8-beta1...HEAD +[1.9.8-beta1]: https://github.com/OpenBankingUK/conformance-suite/compare/v1.9.7...v1.9.8-beta1 [1.9.7]: https://github.com/OpenBankingUK/conformance-suite/compare/v1.9.7-beta1...v1.9.7 [1.9.7-beta1]: https://github.com/OpenBankingUK/conformance-suite/compare/v1.9.6...v1.9.7-beta1 [1.9.6]: https://github.com/OpenBankingUK/conformance-suite/compare/v1.9.5...v1.9.6 diff --git a/docs/releases/v1.9.6.md b/docs/releases/v1.9.6.md index a7503260..bdd8c886 100644 --- a/docs/releases/v1.9.6.md +++ b/docs/releases/v1.9.6.md @@ -9,7 +9,7 @@ This release incorporates the following changes: - Added extra assertion checks for `ReadAccountsDetail`, `ReadBeneficiariesDetail`, and `ReadTransactionsDetail` tests for v3 and v4 - added support for Commercial VRP (cVRP) - Add enhanced logging for test case authorization and execution -- Added tests `OB-301-DOP-1015003` and `OB-400-DOP-1015003` which validate the following: +- Added tests `OB-301-DOP-1015003` and `OB-400-DOP-101503` which validate the following: - OB-301-DOP-1015003 (v3): validates that `NumberOfPayments` and `FinalPaymentDateTime` are correctly rejected when included in a consent payload at the same time. - OB-400-DOP-101500 (v4): validates that `CountPerPeriod` and `FinalPaymentDateTime` are correctly rejected when included in a consent payload at the same time. @@ -19,7 +19,7 @@ This release incorporates the following changes: ### Removed -- Removed `OB-301-DOP-1015002` (v3) and `OB-400-DOP-1015002` (v4) tests as these are replaced by test ID `OB-301-DOP-1015003` and `OB-400-DOP-1015003` respectively. +- Removed `OB-301-DOP-1015002` (v3) and `OB-400-DOP-1015002` (v4) tests as these are replaced by test ID `OB-301-DOP-1015003` and `OB-400-DOP-101503` respectively. ## Download diff --git a/go.mod b/go.mod index a37f2533..335b31fd 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/OpenBankingUK/conformance-suite require ( github.com/blang/semver/v4 v4.0.0 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc - github.com/getkin/kin-openapi v0.68.0 + github.com/getkin/kin-openapi v0.128.0 github.com/go-openapi/loads v0.17.2 github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9 github.com/go-openapi/spec v0.17.2 @@ -30,7 +30,7 @@ require ( github.com/sirupsen/logrus v1.4.0 github.com/spf13/cobra v0.0.3 github.com/spf13/viper v1.18.2 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.9.0 github.com/tdewolff/minify/v2 v2.3.8 github.com/tidwall/gjson v1.9.3 github.com/tidwall/sjson v1.0.4 @@ -40,31 +40,36 @@ require ( gopkg.in/resty.v1 v1.10.3 ) +require github.com/dlclark/regexp2 v1.11.5 + require ( github.com/PuerkitoBio/purell v1.1.0 // indirect github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect github.com/andybalholm/brotli v1.0.4 // indirect github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/ghodss/yaml v1.0.0 // indirect github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb // indirect github.com/go-openapi/analysis v0.17.0 // indirect github.com/go-openapi/errors v0.17.2 // indirect - github.com/go-openapi/jsonpointer v0.19.5 // indirect + github.com/go-openapi/jsonpointer v0.21.0 // indirect github.com/go-openapi/jsonreference v0.17.0 // indirect - github.com/go-openapi/swag v0.19.5 // indirect + github.com/go-openapi/swag v0.23.0 // indirect github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/hashicorp/hcl v1.0.0 // indirect + github.com/invopop/yaml v0.3.1 // indirect + github.com/josharian/intern v1.0.0 // indirect github.com/klauspost/compress v1.17.0 // indirect github.com/konsorten/go-windows-terminal-sequences v1.0.1 // indirect github.com/lestrrat-go/iter v0.0.0-20200422075355-fc1769541911 // indirect github.com/magiconair/properties v1.8.7 // indirect - github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e // indirect + github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect + github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect github.com/onsi/ginkgo v1.16.5 // indirect github.com/pelletier/go-toml/v2 v2.1.0 // indirect + github.com/perimeterx/marshmallow v1.1.5 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect @@ -72,7 +77,7 @@ require ( github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.6.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/stretchr/objx v0.5.0 // indirect + github.com/stretchr/objx v0.5.2 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/tdewolff/parse/v2 v2.3.5 // indirect github.com/tidwall/match v1.1.1 // indirect diff --git a/go.sum b/go.sum index d6c77523..c89d33bc 100644 --- a/go.sum +++ b/go.sum @@ -13,6 +13,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dlclark/regexp2 v1.11.5 h1:Q/sSnsKerHeCkc/jSTNq1oCm7KiVgUMZRDUoRu0JQZQ= +github.com/dlclark/regexp2 v1.11.5/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= @@ -20,10 +22,8 @@ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMo github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= -github.com/getkin/kin-openapi v0.68.0 h1:MRucmVSXEUCmFj6fXgC4eL0i37XTGS0EKhknv8bqZD0= -github.com/getkin/kin-openapi v0.68.0/go.mod h1:7Yn5whZr5kJi6t+kShccXS8ae1APpYTW6yheSwk8Yi4= -github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/getkin/kin-openapi v0.128.0 h1:jqq3D9vC9pPq1dGcOCv7yOp1DaEe7c/T1vzcLbITSp4= +github.com/getkin/kin-openapi v0.128.0/go.mod h1:OZrfXzUfGrNbsKj+xmFBx6E5c6yH3At/tAKSc2UszXM= github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb h1:D4uzjWwKYQ5XnAvUbuvHW93esHg7F8N/OYeBBcJoTr0= github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= @@ -33,8 +33,8 @@ github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQH github.com/go-openapi/errors v0.17.2 h1:azEQ8Fnx0jmtFF2fxsnmd6I0x6rsweUF63qqSO1NmKk= github.com/go-openapi/errors v0.17.2/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= -github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= -github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= +github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= github.com/go-openapi/jsonreference v0.17.0 h1:yJW3HCkTHg7NOA+gZ83IPHzUSnUzGXhGmsdiCcMexbA= github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= @@ -49,8 +49,8 @@ github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pL github.com/go-openapi/strfmt v0.17.2 h1:2KDns36DMHXG9/iYkOjiX+/8fKK9GCU5ELZ+J6qcRVA= github.com/go-openapi/strfmt v0.17.2/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= -github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY= -github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= +github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= github.com/go-openapi/validate v0.17.2 h1:lwFfiS4sv5DvOrsYDsYq4N7UU8ghXiYtPJ+VcQnC3Xg= github.com/go-openapi/validate v0.17.2/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= github.com/go-ozzo/ozzo-validation v3.5.0+incompatible h1:sUy/in/P6askYr16XJgTKq/0SZhiWsdg4WZGaLsGQkM= @@ -60,6 +60,8 @@ github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3yg github.com/go-playground/universal-translator v0.16.0 h1:X++omBR/4cE2MNg91AoC3rmGrCjJ8eAeUP/K/EKx4DM= github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/go-test/deep v1.0.8 h1:TDsG77qcSprGbC6vTN8OuXp5g+J+b5Pcguhf7Zt61VM= +github.com/go-test/deep v1.0.8/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v5 v5.2.0 h1:d/ix8ftRUorsN+5eMIlF4T6J8CAt9rch3My2winC1Jw= @@ -90,16 +92,17 @@ github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/invopop/yaml v0.3.1 h1:f0+ZpmhfBSS4MhG+4HYseMdJhoeeopbSKbq5Rpeelso= +github.com/invopop/yaml v0.3.1/go.mod h1:PMOp3nn4/12yEZUFfmOuNHJsZToEEOwoWsT+D81KkeA= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM= github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/labstack/echo/v4 v4.11.3 h1:Upyu3olaqSHkCjs1EJJwQ3WId8b8b1hxbogyommKktM= @@ -116,9 +119,8 @@ github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3v github.com/magisterquis/connectproxy v0.0.0-20200725203833-3582e84f0c9b h1:xZ59n7Frzh8CwyfAapUZLSg+gXH5m63YEaFCMpDHhpI= github.com/magisterquis/connectproxy v0.0.0-20200725203833-3582e84f0c9b/go.mod h1:uDd4sYVYsqcxAB8j+Q7uhL6IJCs/r1kxib1HV4bgOMg= github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8= -github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/matryer/try v0.0.0-20161228173917-9ac251b645a2/go.mod h1:0KeJpeMD6o+O4hW7qJOT7vyQPKrWmj26uf5wMc/IiIs= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= @@ -130,6 +132,8 @@ github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyex github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= +github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= @@ -145,6 +149,8 @@ github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= +github.com/perimeterx/marshmallow v1.1.5 h1:a2LALqQ1BlHM8PZblsDdidgv1mWi1DgC2UmX50IvK2s= +github.com/perimeterx/marshmallow v1.1.5/go.mod h1:dsXbUu8CRzfYP5a87xpp0xq9S3u0Vchtcl8we9tYaXw= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -152,8 +158,8 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/refraction-networking/utls v1.1.5 h1:JtrojoNhbUQkBqEg05sP3gDgDj6hIEAAVKbI9lx4n6w= github.com/refraction-networking/utls v1.1.5/go.mod h1:jRQxtYi7nkq1p28HF2lwOH5zQm9aC8rpK0O9lIIzGh8= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= @@ -178,16 +184,18 @@ github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMV github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/tdewolff/minify/v2 v2.3.8 h1:Eyv23Tu+Rb5Q2vyxmvzUgtHetgneqAsaGv3950s1EeA= @@ -204,6 +212,8 @@ github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tidwall/sjson v1.0.4 h1:UcdIRXff12Lpnu3OLtZvnc03g4vH2suXDXhBwBqmzYg= github.com/tidwall/sjson v1.0.4/go.mod h1:bURseu1nuBkFpIES5cz6zBtjmYeOQmEESshn7VpF15Y= +github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0= +github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= @@ -289,9 +299,8 @@ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miE google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/go-playground/assert.v1 v1.2.1 h1:xoYuJVE7KT85PYWrN730RguIQO0ePzVRfFMXadIrXTM= gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= diff --git a/manifests/ob_3.1_payment_fca.json b/manifests/ob_3.1_payment_fca.json index 458f9c1e..8b0a98f7 100644 --- a/manifests/ob_3.1_payment_fca.json +++ b/manifests/ob_3.1_payment_fca.json @@ -598,6 +598,9 @@ "postData": "$failingMinimalDomesticStandingOrderConsentV3", "requestConsent": "false" }, + "headers": { + "Content-Type": "application/json" + }, "body": "$postData", "uri": "/domestic-standing-order-consents", "uriImplementation": "conditional", diff --git a/manifests/ob_4.0_payment_fca.json b/manifests/ob_4.0_payment_fca.json index ee96b0dc..2229149b 100644 --- a/manifests/ob_4.0_payment_fca.json +++ b/manifests/ob_4.0_payment_fca.json @@ -583,6 +583,9 @@ "postData": "$failingMinimalDomesticStandingOrderConsentV4", "requestConsent": "false" }, + "headers": { + "Content-Type": "application/json" + }, "body": "$postData", "uri": "/domestic-standing-order-consents", "uriImplementation": "conditional", diff --git a/pkg/model/specification.go b/pkg/model/specification.go index 6f4b61f4..9a1f1995 100644 --- a/pkg/model/specification.go +++ b/pkg/model/specification.go @@ -403,6 +403,34 @@ var ( Version: "v4.0.0", SchemaVersion: mustParseURL("https://raw.githubusercontent.com/OpenBankingUK/Commercial-VRP-API-Spec/refs/heads/main/OpenAPI/cvrp-openapi.json"), }, + { + Identifier: "account-transaction-v4.0.1", + Name: "Account and Transaction API Specification", + URL: mustParseURL("https://openbankinguk.github.io/read-write-api-site3/v4.0.1/profiles/account-and-transaction-api-profile.html"), + Version: "v4.0.1", + SchemaVersion: mustParseURL("https://raw.githubusercontent.com/OpenBankingUK/read-write-api-specs/v4.0.1/dist/openapi/account-info-openapi.json"), + }, + { + Identifier: "payment-initiation-v4.0.1", + Name: "Payment Initiation API", + URL: mustParseURL("https://openbankinguk.github.io/read-write-api-site3/v4.0.1/profiles/payment-initiation-api-profile.html"), + Version: "v4.0.1", + SchemaVersion: mustParseURL("https://raw.githubusercontent.com/OpenBankingUK/read-write-api-specs/v4.0.1/dist/openapi/payment-initiation-openapi.json"), + }, + { + Identifier: "confirmation-funds-v4.0.1", + Name: "Confirmation of Funds API Specification", + URL: mustParseURL("https://openbankinguk.github.io/read-write-api-site3/v4.0.1/profiles/confirmation-of-funds-api-profile.html"), + Version: "v4.0.1", + SchemaVersion: mustParseURL("https://raw.githubusercontent.com/OpenBankingUK/read-write-api-specs/v4.0.1/dist/openapi/confirmation-funds-openapi.json"), + }, + { + Identifier: "variable-recurring-payments-v4.0.1", + Name: "Variable Recurring Payments API Specification", + URL: mustParseURL("https://openbankinguk.github.io/read-write-api-site3/v4.0.1/profiles/vrp-profile.html"), + Version: "v4.0.1", + SchemaVersion: mustParseURL("https://raw.githubusercontent.com/OpenBankingUK/read-write-api-specs/v4.0.1/dist/openapi/vrp-openapi.json"), + }, } ) diff --git a/pkg/schema/openapi3ResponseValidator_test.go b/pkg/schema/openapi3ResponseValidator_test.go index b103b922..407b0ce0 100644 --- a/pkg/schema/openapi3ResponseValidator_test.go +++ b/pkg/schema/openapi3ResponseValidator_test.go @@ -129,6 +129,11 @@ func validateTestResponse(t *testing.T, req RequestWrapper, resp ResponseWrapper MultiError: true, }, } + // x-fapi-interaction-id is a required response header in OB specs. + // x-jws-signature is additionally required on VRP endpoints. + // v0.128.0 correctly enforces required response headers; add them to all test fixtures. + responseValidationInput.Header.Set("x-fapi-interaction-id", "test-interaction-id") + responseValidationInput.Header.Set("x-jws-signature", "test-jws-signature") if resp.Body != "" { responseValidationInput.SetBodyBytes([]byte(resp.Body)) diff --git a/pkg/schema/openapi3Validator.go b/pkg/schema/openapi3Validator.go index 23f8be23..135f0c3e 100644 --- a/pkg/schema/openapi3Validator.go +++ b/pkg/schema/openapi3Validator.go @@ -67,7 +67,7 @@ func buildValidator(specName, version string) (OpenAPI3Validator, error) { // IsRequestProperty - Find param in schema and determines if it's part of request body func (v OpenAPI3Validator) IsRequestProperty(checkmethod, checkpath, propertyPath string) (bool, string, error) { spec := v.doc - for path, props := range spec.Paths { + for path, props := range spec.Paths.Map() { for method, op := range getOas3Operations(props) { if path == checkpath && method == checkmethod && op.RequestBody != nil { for _, param := range op.RequestBody.Value.Content { @@ -99,12 +99,12 @@ func getRouterForSpec(specName, version string) (routers.Router, *openapi3.T, er return nil, nil, fmt.Errorf("cannot Load OpenApi Spec from file %s, %s", filename, err) } - err = doc.Validate(context.Background()) + err = doc.Validate(context.Background(), openapi3.SetRegexCompiler(regexp2Compiler)) if err != nil { return nil, nil, fmt.Errorf("cannot Load OpenApi Spec from file %s, %s", filename, err) } - router, err := legacyrouter.NewRouter(doc) + router, err := legacyrouter.NewRouter(doc, openapi3.SetRegexCompiler(regexp2Compiler)) if err != nil { return nil, nil, fmt.Errorf("cannot Load OpenApi Router for %s file %s", specName, filename) } @@ -218,6 +218,7 @@ func (v OpenAPI3Validator) validateResponse(params validateParams) error { ExcludeRequestBody: true, IncludeResponseStatus: true, MultiError: false, + RegexCompiler: regexp2Compiler, }, } @@ -278,7 +279,7 @@ func findPropertyInOas3Schema(sc *openapi3.Schema, propertyPath, previousPath st } if element == propertyPath { - return true, fmt.Sprintf("%s", normalizePropertyType(j.Value.Type)) + return true, fmt.Sprintf("%s", normalizePropertyType(schemaTypeString(j.Value.Type))) } ret, propType := findPropertyInOas3Schema(j.Value, propertyPath, element) @@ -296,8 +297,11 @@ func findItemInOas3Schema(sc *openapi3.Schema, propertyPath, previousPath string SplitedNotFoundPath := strings.Split(notFoundPath, ".") idx := SplitedNotFoundPath[0] if _, err := strconv.Atoi(idx); err == nil { + if sc.Items == nil || sc.Items.Value == nil { + return false, "" + } if len(SplitedNotFoundPath) == 1 { - return true, normalizePropertyType(sc.Items.Value.Type) + return true, normalizePropertyType(schemaTypeString(sc.Items.Value.Type)) } element := previousPath + "." + idx ret, propType := findPropertyInOas3Schema(sc.Items.Value, propertyPath, element) @@ -309,3 +313,12 @@ func findItemInOas3Schema(sc *openapi3.Schema, propertyPath, previousPath string return false, "" } + +// schemaTypeString returns the first type in an openapi3.Types slice, or empty string if nil/empty. +// openapi3.Types changed from string to []string in kin-openapi v0.128.0. +func schemaTypeString(t *openapi3.Types) string { + if t == nil || len(*t) == 0 { + return "" + } + return (*t)[0] +} diff --git a/pkg/schema/openapi3Validator_test.go b/pkg/schema/openapi3Validator_test.go index 79cb3f0c..8db864c8 100644 --- a/pkg/schema/openapi3Validator_test.go +++ b/pkg/schema/openapi3Validator_test.go @@ -6,6 +6,7 @@ import ( "strings" "testing" + "github.com/getkin/kin-openapi/openapi3" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -103,7 +104,7 @@ func TestAcc10000TestResponse(t *testing.T) { Path: acc10000responseReqURL, StatusCode: http.StatusOK, Body: strings.NewReader(acc10000response), - Header: http.Header{"Content-Type": []string{"application/json; charset=utf-8"}}, + Header: http.Header{"Content-Type": []string{"application/json; charset=utf-8"}, "X-Fapi-Interaction-Id": []string{"test-interaction-id"}}, } _, err = validator.Validate(r) @@ -119,7 +120,7 @@ func TestAcc10000TestResponseCapitalUtfNoSpace(t *testing.T) { Path: acc10000responseReqURL, StatusCode: http.StatusOK, Body: strings.NewReader(acc10000response), - Header: http.Header{"Content-Type": []string{"application/json;charset=UTF-8"}}, + Header: http.Header{"Content-Type": []string{"application/json;charset=UTF-8"}, "X-Fapi-Interaction-Id": []string{"test-interaction-id"}}, } _, err = validator.Validate(r) @@ -135,7 +136,7 @@ func TestCbpIITestResponseCapitalUtfNoSpace(t *testing.T) { Path: cbpiiGoodResponseUrl, StatusCode: http.StatusOK, Body: strings.NewReader(cbpiiGoodResponse), - Header: http.Header{"Content-Type": []string{"application/json;charset=UTF-8"}}, + Header: http.Header{"Content-Type": []string{"application/json;charset=UTF-8"}, "X-Fapi-Interaction-Id": []string{"test-interaction-id"}}, } _, err = validator.Validate(r) @@ -151,7 +152,7 @@ func TestVrp100200Response(t *testing.T) { Path: vrp100200ReqURL, StatusCode: http.StatusOK, Body: strings.NewReader(vrp100200Response), - Header: http.Header{"Content-Type": []string{"application/json; charset=utf-8"}}, + Header: http.Header{"Content-Type": []string{"application/json; charset=utf-8"}, "X-Fapi-Interaction-Id": []string{"test-interaction-id"}, "X-Jws-Signature": []string{"test-jws-signature"}}, } _, err = validator.Validate(r) @@ -312,3 +313,25 @@ func TestVrpIsRequestPropertyOas3(t *testing.T) { assert.Nil(t, err) assert.True(t, exists) } + +// TestFindItemInOas3SchemaNilItems verifies that findItemInOas3Schema returns +// false, "" without panicking when sc.Items is nil and the path looks like an +// array index. This guards against a nil dereference on sc.Items.Value.Type. +func TestFindItemInOas3SchemaNilItems(t *testing.T) { + sc := &openapi3.Schema{} // Items is nil + found, propType := findItemInOas3Schema(sc, "0", "") + assert.False(t, found) + assert.Empty(t, propType) +} + +// TestFindItemInOas3SchemaNilItemsValue verifies that findItemInOas3Schema +// returns false, "" without panicking when sc.Items is set but sc.Items.Value +// is nil (e.g., an unresolved $ref). +func TestFindItemInOas3SchemaNilItemsValue(t *testing.T) { + sc := &openapi3.Schema{ + Items: &openapi3.SchemaRef{}, // Value is nil + } + found, propType := findItemInOas3Schema(sc, "0", "") + assert.False(t, found) + assert.Empty(t, propType) +} diff --git a/pkg/schema/pcre_support_test.go b/pkg/schema/pcre_support_test.go new file mode 100644 index 00000000..f8896b6b --- /dev/null +++ b/pkg/schema/pcre_support_test.go @@ -0,0 +1,156 @@ +package schema + +import ( + "net/http" + "strings" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +// TestRegexp2CompilerPCREPattern verifies that a PCRE-only pattern (negative +// lookahead) compiles without error. This is the pattern used by the OB v4.0.0 +// x-idempotency-key header and the root cause of the original bug. +func TestRegexp2CompilerPCREPattern(t *testing.T) { + _, err := regexp2Compiler(`^(?!\s)(.*)(\\S)$`) + require.NoError(t, err) +} + +// TestRegexp2CompilerSetsMatchTimeout verifies that the compiled regexp has a +// finite MatchTimeout set, protecting against ReDoS via catastrophic backtracking. +// This is a security property, so white-box inspection of the internal field is +// acceptable. +func TestRegexp2CompilerSetsMatchTimeout(t *testing.T) { + m, err := regexp2Compiler(`^(?!\s)(.*)(\\S)$`) + require.NoError(t, err) + matcher, ok := m.(*regexp2Matcher) + require.True(t, ok, "expected *regexp2Matcher") + assert.Equal(t, matchTimeout, matcher.re.MatchTimeout, "MatchTimeout must be finite to prevent ReDoS") +} + +// TestRegexp2CompilerRE2Pattern verifies that a standard RE2-compatible pattern +// still compiles correctly under regexp2, confirming there is no regression for +// existing v3.x spec patterns. +func TestRegexp2CompilerRE2Pattern(t *testing.T) { + _, err := regexp2Compiler(`^[A-Z]{2,2}$`) + require.NoError(t, err) +} + +// TestRegexp2CompilerMalformedPattern verifies that a genuinely malformed +// pattern (invalid even as PCRE) is rejected with an error, preserving the +// hard-fail behaviour for bad spec files. +func TestRegexp2CompilerMalformedPattern(t *testing.T) { + _, err := regexp2Compiler(`[unclosed`) + assert.Error(t, err) +} + +// TestRegexp2MatcherPCREPatternMatches verifies that a value satisfying the +// exact OB v4.0.0 x-idempotency-key pattern is correctly matched. +// Pattern: ^(?!\s)(.*)(\S)$ — two capture groups, not the folded form .*\S. +func TestRegexp2MatcherPCREPatternMatches(t *testing.T) { + m, err := regexp2Compiler(`^(?!\s)(.*)(\S)$`) + require.NoError(t, err) + // "abc" does not start with whitespace and does not end with whitespace — should match. + assert.True(t, m.MatchString("abc")) +} + +// TestRegexp2MatcherPCREPatternRejects verifies that a value violating the +// exact OB v4.0.0 x-idempotency-key pattern is correctly rejected. +// Pattern: ^(?!\s)(.*)(\S)$ — two capture groups, not the folded form .*\S. +func TestRegexp2MatcherPCREPatternRejects(t *testing.T) { + m, err := regexp2Compiler(`^(?!\s)(.*)(\S)$`) + require.NoError(t, err) + // " abc" starts with whitespace — should not match. + assert.False(t, m.MatchString(" abc")) +} + +// --- v4.0.0 spec loading integration tests --- +// Each test directly asserts the fix for the bug reported in: +// ERROR cannot Load OpenApi Spec from file spec/v4.0.0/account-info-openapi.json, +// invalid components: parameter "x-idempotency-key" schema is invalid: +// cannot compile pattern "^(?!\s)(.*)(\\S)$" + +func TestV4AccountsSpecLoads(t *testing.T) { + _, err := NewRawOpenAPI3Validator("Account and Transaction API Specification", "v4.0.0") + require.NoError(t, err) +} + +func TestV4PaymentInitiationSpecLoads(t *testing.T) { + _, err := NewRawOpenAPI3Validator("Payment Initiation API", "v4.0.0") + require.NoError(t, err) +} + +func TestV4ConfirmationOfFundsSpecLoads(t *testing.T) { + _, err := NewRawOpenAPI3Validator("Confirmation of Funds API Specification", "v4.0.0") + require.NoError(t, err) +} + +func TestV4VariableRecurringPaymentsSpecLoads(t *testing.T) { + _, err := NewRawOpenAPI3Validator("Variable Recurring Payments API Specification", "v4.0.0") + require.NoError(t, err) +} + +func TestV4CommercialVRPSpecLoads(t *testing.T) { + _, err := NewRawOpenAPI3Validator("Commercial Variable Recurring Payments API Specification", "v4.0.0") + require.NoError(t, err) +} + +// TestV4RuntimeValidationWithPCRESpec verifies that calling Validate against +// a v4.0.0 spec (which contains PCRE patterns in parameter definitions) does +// not produce errors during response validation. +// +// This test makes a narrower, honest claim: PCRE patterns present in the spec +// do not cause the runtime validation path to fail. The x-idempotency-key +// pattern is a request header parameter on POST endpoints; the FCS runtime +// validator validates responses only (ExcludeRequestBody: true), so the +// pattern is never applied to a value at runtime. The Options.RegexCompiler +// wiring in validateResponse is forward-looking — correct and necessary for +// any future PCRE patterns placed on response body fields. +func TestV4RuntimeValidationWithPCRESpec(t *testing.T) { + validator, err := NewRawOpenAPI3Validator("Account and Transaction API Specification", "v4.0.0") + require.NoError(t, err) + + // Minimal valid GET /accounts response body for v4.0.0. + const body = `{ + "Data": {"Account": []}, + "Links": {"Self": "https://example.com/open-banking/v4.0/aisp/accounts"}, + "Meta": {"TotalPages": 1} + }` + r := HTTPResponse{ + Method: "GET", + Path: "/open-banking/v4.0/aisp/accounts", + StatusCode: http.StatusOK, + Body: strings.NewReader(body), + Header: http.Header{ + "Content-Type": []string{"application/json; charset=utf-8"}, + "X-Fapi-Interaction-Id": []string{"test-interaction-id"}, + }, + } + _, err = validator.Validate(r) + assert.NoError(t, err) +} + +// --- v4.0.1 spec loading integration tests --- +// Each test verifies that the v4.0.1 spec file loads without error, +// preventing filename and validation regressions. + +func TestV4_0_1_AccountsSpecLoads(t *testing.T) { + _, err := NewRawOpenAPI3Validator("Account and Transaction API Specification", "v4.0.1") + require.NoError(t, err) +} + +func TestV4_0_1_PaymentInitiationSpecLoads(t *testing.T) { + _, err := NewRawOpenAPI3Validator("Payment Initiation API", "v4.0.1") + require.NoError(t, err) +} + +func TestV4_0_1_ConfirmationOfFundsSpecLoads(t *testing.T) { + _, err := NewRawOpenAPI3Validator("Confirmation of Funds API Specification", "v4.0.1") + require.NoError(t, err) +} + +func TestV4_0_1_VariableRecurringPaymentsSpecLoads(t *testing.T) { + _, err := NewRawOpenAPI3Validator("Variable Recurring Payments API Specification", "v4.0.1") + require.NoError(t, err) +} diff --git a/pkg/schema/regexp2_compiler.go b/pkg/schema/regexp2_compiler.go new file mode 100644 index 00000000..d7ab6a5d --- /dev/null +++ b/pkg/schema/regexp2_compiler.go @@ -0,0 +1,39 @@ +package schema + +import ( + "time" + + "github.com/dlclark/regexp2" + "github.com/getkin/kin-openapi/openapi3" +) + +// matchTimeout is the maximum duration allowed for a single regexp2 match +// operation. A finite timeout prevents a pathological backtracking pattern +// from blocking a goroutine indefinitely (ReDoS). +const matchTimeout = 5 * time.Second + +// regexp2Compiler is an openapi3.RegexCompilerFunc that uses the regexp2 engine, +// which supports PCRE features such as lookahead and lookbehind. Because RE2 is a +// strict subset of PCRE, all existing RE2-compatible patterns continue to compile +// and match identically. +func regexp2Compiler(expr string) (openapi3.RegexMatcher, error) { + re, err := regexp2.Compile(expr, 0) + if err != nil { + return nil, err + } + re.MatchTimeout = matchTimeout + return ®exp2Matcher{re: re}, nil +} + +// regexp2Matcher wraps a *regexp2.Regexp to satisfy openapi3.RegexMatcher. +type regexp2Matcher struct { + re *regexp2.Regexp +} + +func (m *regexp2Matcher) MatchString(s string) bool { + matched, err := m.re.MatchString(s) + if err != nil { + return false + } + return matched +} diff --git a/pkg/schema/spec/v4.0.0/account-info-openapi.json b/pkg/schema/spec/v4.0.0/account-info-openapi.json index 92bae2e6..65ad2ece 100644 --- a/pkg/schema/spec/v4.0.0/account-info-openapi.json +++ b/pkg/schema/spec/v4.0.0/account-info-openapi.json @@ -2022,7 +2022,8 @@ "required": true, "schema": { "type": "string", - "maxLength": 40 + "maxLength": 40, + "pattern": "^(?!\\s)(.*)(\\S)$" } }, "x-jws-signature": { diff --git a/pkg/schema/spec/v4.0.0/confirmation-funds-openapi.json b/pkg/schema/spec/v4.0.0/confirmation-funds-openapi.json index b86c40cc..2bcd471a 100644 --- a/pkg/schema/spec/v4.0.0/confirmation-funds-openapi.json +++ b/pkg/schema/spec/v4.0.0/confirmation-funds-openapi.json @@ -353,7 +353,8 @@ "required": true, "schema": { "type": "string", - "maxLength": 40 + "maxLength": 40, + "pattern": "^(?!\\s)(.*)(\\S)$" } }, "x-jws-signature": { @@ -1168,4 +1169,4 @@ } } } -} +} \ No newline at end of file diff --git a/pkg/schema/spec/v4.0.0/cvrp-openapi.json b/pkg/schema/spec/v4.0.0/cvrp-openapi.json index 84c5fa3a..ea93d056 100644 --- a/pkg/schema/spec/v4.0.0/cvrp-openapi.json +++ b/pkg/schema/spec/v4.0.0/cvrp-openapi.json @@ -1196,7 +1196,8 @@ "required": true, "schema": { "type": "string", - "maxLength": 40 + "maxLength": 40, + "pattern": "^(?!\\s)(.*)(\\S)$" } }, "x-jws-signature": { diff --git a/pkg/schema/spec/v4.0.0/payment-initiation-openapi.json b/pkg/schema/spec/v4.0.0/payment-initiation-openapi.json index f4304b4d..ce13833a 100644 --- a/pkg/schema/spec/v4.0.0/payment-initiation-openapi.json +++ b/pkg/schema/spec/v4.0.0/payment-initiation-openapi.json @@ -3243,7 +3243,8 @@ "required": true, "schema": { "type": "string", - "maxLength": 40 + "maxLength": 40, + "pattern": "^(?!\\s)(.*)(\\S)$" } }, "x-jws-signature": { diff --git a/pkg/schema/spec/v4.0.0/variable-recurring-payments-openapi.json b/pkg/schema/spec/v4.0.0/variable-recurring-payments-openapi.json index f69f00cd..34b232a2 100644 --- a/pkg/schema/spec/v4.0.0/variable-recurring-payments-openapi.json +++ b/pkg/schema/spec/v4.0.0/variable-recurring-payments-openapi.json @@ -1229,7 +1229,8 @@ "required": true, "schema": { "type": "string", - "maxLength": 40 + "maxLength": 40, + "pattern": "^(?!\\s)(.*)(\\S)$" } }, "x-jws-signature": { diff --git a/pkg/schema/spec/v4.0.1/account-info-openapi.json b/pkg/schema/spec/v4.0.1/account-info-openapi.json new file mode 100644 index 00000000..3ed37b8b --- /dev/null +++ b/pkg/schema/spec/v4.0.1/account-info-openapi.json @@ -0,0 +1,15362 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "Account and Transaction API Specification", + "description": "Swagger for Account and Transaction API Specification.\n\n**Please Note**: There are no optional fields, if a field is not marked as “Required” it is a Conditional field.\n", + "termsOfService": "https://www.openbanking.org.uk/terms", + "contact": { + "name": "Service Desk", + "email": "ServiceDesk@openbanking.org.uk" + }, + "license": { + "name": "open-licence", + "url": "https://www.openbanking.org.uk/open-licence" + }, + "version": "4.0.1" + }, + "paths": { + "/account-access-consents": { + "post": { + "tags": [ + "Account Access Consents" + ], + "summary": "Create an Account Access Consent", + "description": "Enables an AISP to ask an ASPSP to create a new account-access-consent resource, by sending a copy of the consent to the ASPSP.", + "operationId": "CreateAccountAccessConsents", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "requestBody": { + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadConsent1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadConsent1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadConsent1" + } + } + }, + "description": "Default", + "required": true + }, + "responses": { + "201": { + "$ref": "#/components/responses/201AccountAccessConsentsCreated" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/account-access-consents/{ConsentId}": { + "get": { + "tags": [ + "Account Access Consents" + ], + "summary": "Get an Account Access Consent", + "description": "Enables an AISP to retrieve the status of an AIS consent.", + "operationId": "GetAccountAccessConsentsConsentId", + "parameters": [ + { + "$ref": "#/components/parameters/ConsentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200AccountAccessConsentsConsentIdRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "accounts" + ] + } + ] + }, + "delete": { + "tags": [ + "Account Access Consents" + ], + "summary": "Delete an Account Access Consent", + "description": "Enables an AISP to inform the ASPSP that the PSU has revoked their consent.", + "operationId": "DeleteAccountAccessConsentsConsentId", + "parameters": [ + { + "$ref": "#/components/parameters/ConsentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/204AccountAccessConsentsConsentIdDeleted" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/accounts": { + "get": { + "tags": [ + "Accounts" + ], + "summary": "Get Accounts", + "description": "Enables an AISP to retrieve a list of a PSU's accounts and information about those account(s) that the PSU has consented to.", + "operationId": "GetAccounts", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200AccountsRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/accounts/{AccountId}": { + "get": { + "tags": [ + "Accounts" + ], + "summary": "Get an Account by AccountId", + "description": "Enables an AISP to retrieve information about a specific PSU account.", + "operationId": "GetAccountsAccountId", + "parameters": [ + { + "$ref": "#/components/parameters/AccountId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200AccountsAccountIdRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/accounts/{AccountId}/balances": { + "get": { + "tags": [ + "Balances" + ], + "summary": "Get Balances for an AccountId", + "description": "Enables an AISP to retrieve account balance information for a specific PSU account.", + "operationId": "GetAccountsAccountIdBalances", + "parameters": [ + { + "$ref": "#/components/parameters/AccountId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200AccountsAccountIdBalancesRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/accounts/{AccountId}/beneficiaries": { + "get": { + "tags": [ + "Beneficiaries" + ], + "summary": "Get Beneficiaries for an AccountId", + "description": "Enables an AISP to retrieve Beneficiary information for a specific PSU account.", + "operationId": "GetAccountsAccountIdBeneficiaries", + "parameters": [ + { + "$ref": "#/components/parameters/AccountId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200AccountsAccountIdBeneficiariesRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/accounts/{AccountId}/direct-debits": { + "get": { + "tags": [ + "Direct Debits" + ], + "summary": "Get Direct Debits for an AccountId", + "description": "Enables an AISP to retrieve Direct Debit information for a specific PSU account.", + "operationId": "GetAccountsAccountIdDirectDebits", + "parameters": [ + { + "$ref": "#/components/parameters/AccountId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200AccountsAccountIdDirectDebitsRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/accounts/{AccountId}/offers": { + "get": { + "tags": [ + "Offers" + ], + "summary": "Get Offers for an AccountId", + "description": "Enables an AISP to retrieve any offer information for a specific PSU account.", + "operationId": "GetAccountsAccountIdOffers", + "parameters": [ + { + "$ref": "#/components/parameters/AccountId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200AccountsAccountIdOffersRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/accounts/{AccountId}/parties": { + "get": { + "tags": [ + "Parties" + ], + "summary": "Get Parties for an AccountId", + "description": "Enables an AISP to retrieve details about the PSU account-holder(s)/operator(s).", + "operationId": "GetAccountsAccountIdParties", + "parameters": [ + { + "$ref": "#/components/parameters/AccountId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200AccountsAccountIdPartiesRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/accounts/{AccountId}/party": { + "get": { + "tags": [ + "Parties" + ], + "summary": "Get Party for an AccountId", + "description": "Enables an AISP to retrieve details about the party that gave permission to the AISP to view a specific PSU account.", + "operationId": "GetAccountsAccountIdParty", + "parameters": [ + { + "$ref": "#/components/parameters/AccountId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200AccountsAccountIdPartyRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/accounts/{AccountId}/product": { + "get": { + "tags": [ + "Products" + ], + "summary": "Get Product for an AccountId", + "description": "Enables an AISP to retrieve the account product information for a specific PSU account.", + "operationId": "GetAccountsAccountIdProduct", + "parameters": [ + { + "$ref": "#/components/parameters/AccountId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200AccountsAccountIdProductRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/accounts/{AccountId}/scheduled-payments": { + "get": { + "tags": [ + "Scheduled Payments" + ], + "summary": "Get Scheduled Payments for an AccountId", + "description": "Enables an AISP to retrieve Scheduled Payment information for a specific PSU account.", + "operationId": "GetAccountsAccountIdScheduledPayments", + "parameters": [ + { + "$ref": "#/components/parameters/AccountId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200AccountsAccountIdScheduledPaymentsRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/accounts/{AccountId}/standing-orders": { + "get": { + "tags": [ + "Standing Orders" + ], + "summary": "Get Standing Orders for an AccountId", + "description": "Enables an AISP to retrieve Standing Order information for a specific PSU account.", + "operationId": "GetAccountsAccountIdStandingOrders", + "parameters": [ + { + "$ref": "#/components/parameters/AccountId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200AccountsAccountIdStandingOrdersRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/accounts/{AccountId}/statements": { + "get": { + "tags": [ + "Statements" + ], + "summary": "Get Statements for an AccountId", + "description": "Enables an AISP to retrieve statement information for a specific PSU account.", + "operationId": "GetAccountsAccountIdStatements", + "parameters": [ + { + "$ref": "#/components/parameters/AccountId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/FromStatementDateTimeParam" + }, + { + "$ref": "#/components/parameters/ToStatementDateTimeParam" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200AccountsAccountIdStatementsRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/accounts/{AccountId}/statements/{StatementId}": { + "get": { + "tags": [ + "Statements" + ], + "summary": "Get Statement by StatementId for an AccountId", + "description": "Enables an AISP to retrieve the statement information resource for a specific statement.", + "operationId": "GetAccountsAccountIdStatementsStatementId", + "parameters": [ + { + "$ref": "#/components/parameters/StatementId" + }, + { + "$ref": "#/components/parameters/AccountId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200AccountsAccountIdStatementsStatementIdRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/accounts/{AccountId}/statements/{StatementId}/file": { + "get": { + "tags": [ + "Statements" + ], + "summary": "Get Statement file by StatementId for an AccountId", + "description": "Enables an AISP to retrieve a non-json representation of a specific statement.", + "operationId": "GetAccountsAccountIdStatementsStatementIdFile", + "parameters": [ + { + "$ref": "#/components/parameters/StatementId" + }, + { + "$ref": "#/components/parameters/AccountId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200AccountsAccountIdStatementsStatementIdFileRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/accounts/{AccountId}/statements/{StatementId}/transactions": { + "get": { + "tags": [ + "Statements" + ], + "summary": "Get Statement Transactions for an AccountId", + "description": "Enables an AISP to retrieve transactions that appear on a selected statement for a specific PSU account.", + "operationId": "GetAccountsAccountIdStatementsStatementIdTransactions", + "parameters": [ + { + "$ref": "#/components/parameters/StatementId" + }, + { + "$ref": "#/components/parameters/AccountId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200AccountsAccountIdStatementsStatementIdTransactionsRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/accounts/{AccountId}/transactions": { + "get": { + "tags": [ + "Transactions" + ], + "summary": "Get Transactions for an AccountId", + "description": "Enables an AISP to retrieve transaction information for a specific PSU account.", + "operationId": "GetAccountsAccountIdTransactions", + "parameters": [ + { + "$ref": "#/components/parameters/AccountId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/FromBookingDateTimeParam" + }, + { + "$ref": "#/components/parameters/ToBookingDateTimeParam" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200AccountsAccountIdTransactionsRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/balances": { + "get": { + "tags": [ + "Balances" + ], + "summary": "Get Balances", + "description": "Enables an AISP to retrieve balance information for account(s) that the PSU has consented to.", + "operationId": "GetBalances", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200BalancesRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/beneficiaries": { + "get": { + "tags": [ + "Beneficiaries" + ], + "summary": "Get Beneficiaries", + "description": "Enables an AISP to retrieve Beneficiary information for account(s) that the PSU has consented to.", + "operationId": "GetBeneficiaries", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200BeneficiariesRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/direct-debits": { + "get": { + "tags": [ + "Direct Debits" + ], + "summary": "Get Direct Debits", + "description": "Enables an AISP to retrieve Direct Debit information for account(s) that the PSU has consented to.", + "operationId": "GetDirectDebits", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200DirectDebitsRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/offers": { + "get": { + "tags": [ + "Offers" + ], + "summary": "Get Offers", + "description": "Enables an AISP to retrieve any offer information for account(s) that the PSU has consented to.", + "operationId": "GetOffers", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200OffersRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/party": { + "get": { + "tags": [ + "Parties" + ], + "summary": "Get Party", + "description": "Retrieve details about the party that gave permission to the AISP to view an account(s).", + "operationId": "GetParty", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200PartyRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/products": { + "get": { + "tags": [ + "Products" + ], + "summary": "Get Products", + "description": "Enables an AISP to retrieve the account product information for account(s) that the PSU has consented to.", + "operationId": "GetProducts", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200ProductsRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/scheduled-payments": { + "get": { + "tags": [ + "Scheduled Payments" + ], + "summary": "Get Scheduled Payments", + "description": "Enables an AISP to retrieve Scheduled Payment information for account(s) that the PSU has consented to.", + "operationId": "GetScheduledPayments", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200ScheduledPaymentsRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/standing-orders": { + "get": { + "tags": [ + "Standing Orders" + ], + "summary": "Get Standing Orders", + "description": "Enables an AISP to retrieve Standing Order information for account(s) that the PSU has consented to.", + "operationId": "GetStandingOrders", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200StandingOrdersRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/statements": { + "get": { + "tags": [ + "Statements" + ], + "summary": "Get Statements", + "description": "Enables an AISP to retrieve statement information for account(s) that the PSU has consented to.", + "operationId": "GetStatements", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/FromStatementDateTimeParam" + }, + { + "$ref": "#/components/parameters/ToStatementDateTimeParam" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200StatementsRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + }, + "/transactions": { + "get": { + "tags": [ + "Transactions" + ], + "summary": "Get Transactions", + "description": "Enables an AISP to retrieve transaction information for account(s) that the PSU has consented to.", + "operationId": "GetTransactions", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/FromBookingDateTimeParam" + }, + { + "$ref": "#/components/parameters/ToBookingDateTimeParam" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200TransactionsRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "accounts" + ] + } + ] + } + } + }, + "servers": [ + { + "url": "/open-banking/v4.0/aisp" + } + ], + "components": { + "parameters": { + "FromBookingDateTimeParam": { + "in": "query", + "name": "fromBookingDateTime", + "description": "The UTC ISO 8601 Date Time to filter transactions FROM.\n\nNote: Time component is optional - set to 00:00:00 for just Date.\n\nThe value **must not** include the timezone component.\n", + "schema": { + "type": "string", + "format": "date-time", + "example": "2026-01-01T00:00:00" + } + }, + "ToBookingDateTimeParam": { + "in": "query", + "name": "toBookingDateTime", + "description": "The UTC ISO 8601 Date Time to filter transactions TO.\n\nNote: Time component is optional - set to 00:00:00 for just Date.\n\nThe value **must not** include the timezone component.\n", + "schema": { + "type": "string", + "format": "date-time", + "example": "2026-12-31T23:59:59" + } + }, + "FromStatementDateTimeParam": { + "in": "query", + "name": "fromStatementDateTime", + "description": "The UTC ISO 8601 Date Time to filter statements FROM.\n\nNote: Time component is optional - set to 00:00:00 for just Date.\n\nThe value **must not** include the timezone component.\n", + "schema": { + "type": "string", + "format": "date-time", + "example": "2026-01-01T00:00:00" + } + }, + "ToStatementDateTimeParam": { + "in": "query", + "name": "toStatementDateTime", + "description": "The UTC ISO 8601 Date Time to filter statements TO.\n\nNote: Time component is optional - set to 00:00:00 for just Date.\n\nThe value **must not** include the timezone component.\n", + "schema": { + "type": "string", + "format": "date-time", + "example": "2026-12-31T23:59:59" + } + }, + "ConsentId": { + "name": "ConsentId", + "in": "path", + "description": "ConsentId", + "required": true, + "schema": { + "type": "string" + } + }, + "AccountId": { + "name": "AccountId", + "in": "path", + "description": "AccountId", + "required": true, + "schema": { + "type": "string" + } + }, + "StatementId": { + "name": "StatementId", + "in": "path", + "description": "StatementId", + "required": true, + "schema": { + "type": "string" + } + }, + "Authorization": { + "in": "header", + "name": "Authorization", + "required": true, + "description": "An Authorisation Token as per https://tools.ietf.org/html/rfc6750", + "schema": { + "type": "string" + } + }, + "x-customer-user-agent": { + "in": "header", + "name": "x-customer-user-agent", + "description": "Indicates the user-agent that the PSU is using.", + "required": false, + "schema": { + "type": "string" + } + }, + "x-fapi-customer-ip-address": { + "in": "header", + "name": "x-fapi-customer-ip-address", + "required": false, + "description": "The PSU's IP address if the PSU is currently logged in with the TPP.", + "schema": { + "type": "string" + } + }, + "x-fapi-auth-date": { + "in": "header", + "name": "x-fapi-auth-date", + "required": false, + "description": "The time when the PSU last logged in with the TPP. \nAll dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: \nSun, 10 Sep 2017 19:43:31 UTC", + "schema": { + "type": "string", + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \\d{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \\d{4} \\d{2}:\\d{2}:\\d{2} (GMT|UTC)$" + } + }, + "x-fapi-interaction-id": { + "in": "header", + "name": "x-fapi-interaction-id", + "required": false, + "description": "An RFC4122 UID used as a correlation id.", + "schema": { + "type": "string" + } + }, + "x-idempotency-key": { + "name": "x-idempotency-key", + "in": "header", + "description": "Every request will be processed only once per x-idempotency-key. The\nIdempotency Key will be valid for 24 hours.\n", + "required": true, + "schema": { + "type": "string", + "maxLength": 40, + "pattern": "^(?!\\s)(.*)(\\S)$" + } + }, + "x-jws-signature": { + "in": "header", + "name": "x-jws-signature", + "required": true, + "description": "A detached JWS signature of the body of the payload.", + "schema": { + "type": "string" + } + }, + "x-client-id": { + "in": "header", + "name": "x-client-id", + "required": false, + "description": "Only used if an ASPSP requires the client ID in order to return rate limit headers. \n\nTPPs __must__ refer to ASPSP developer portals for further information on any rate limit policies, if the headers are supported and any additional requirements.\n\nThis header __must not__ be used for client authentication\n", + "schema": { + "type": "string" + } + } + }, + "headers": { + "RateLimit-Policy": { + "required": false, + "description": "TPPs __must__ refer to ASPSP developer portals for further information on any rate limit policies, if the headers are supported and any additional requirements.\n\nA non-empty list of Quota Policy Items. The Item value __MUST__ be a String.\n\nExample:\n`RateLimit-Policy: \"default\";q=100;w=10`\n\nThe **REQUIRED** \"q\" parameter indicates the quota allocated by this policy measured in quota units.\n\nThe **OPTIONAL** \"w\" parameter value conveys a time window.\n", + "schema": { + "type": "string" + } + }, + "RateLimit": { + "required": false, + "description": "TPPs __must__ refer to ASPSP developer portals for further information on any rate limit policies, if the headers are supported and any additional requirements.\n\nA server uses the \"RateLimit\" response header field to communicate the current service limit for a quota policy for a particular partition key.\n\nExample:\n`RateLimit: \"default\";r=50;t=30`\n\nThe **REQUIRED** \"r\" parameter value conveys the remaining quota units for the identified policy.\n\nThe **OPTIONAL** \"t\" parameter value conveys the time window reset time for the identified policy.\n", + "schema": { + "type": "string" + } + } + }, + "responses": { + "201AccountAccessConsentsCreated": { + "description": "Account Access Consents Created", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadConsentResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadConsentResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadConsentResponse1" + } + } + } + }, + "200AccountAccessConsentsConsentIdRead": { + "description": "Account Access Consents Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadConsentResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadConsentResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadConsentResponse1" + } + } + } + }, + "204AccountAccessConsentsConsentIdDeleted": { + "description": "Account Access Consents Deleted", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + } + }, + "200AccountsRead": { + "description": "Accounts Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadAccount6" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadAccount6" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadAccount6" + } + } + } + }, + "200AccountsAccountIdRead": { + "description": "Accounts Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadAccount6" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadAccount6" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadAccount6" + } + } + } + }, + "200AccountsAccountIdBalancesRead": { + "description": "Balances Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadBalance1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadBalance1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadBalance1" + } + } + } + }, + "200BalancesRead": { + "description": "Balances Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadBalance1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadBalance1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadBalance1" + } + } + } + }, + "200AccountsAccountIdBeneficiariesRead": { + "description": "Beneficiaries Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadBeneficiary5" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadBeneficiary5" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadBeneficiary5" + } + } + } + }, + "200BeneficiariesRead": { + "description": "Beneficiaries Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadBeneficiary5" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadBeneficiary5" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadBeneficiary5" + } + } + } + }, + "200AccountsAccountIdDirectDebitsRead": { + "description": "Direct Debits Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadDirectDebit2" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadDirectDebit2" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadDirectDebit2" + } + } + } + }, + "200DirectDebitsRead": { + "description": "Direct Debits Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadDirectDebit2" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadDirectDebit2" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadDirectDebit2" + } + } + } + }, + "200AccountsAccountIdOffersRead": { + "description": "Offers Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadOffer1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadOffer1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadOffer1" + } + } + } + }, + "200OffersRead": { + "description": "Offers Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadOffer1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadOffer1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadOffer1" + } + } + } + }, + "200AccountsAccountIdPartiesRead": { + "description": "Parties Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadParty3" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadParty3" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadParty3" + } + } + } + }, + "200AccountsAccountIdPartyRead": { + "description": "Parties Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadParty2" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadParty2" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadParty2" + } + } + } + }, + "200PartyRead": { + "description": "Parties Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadParty2" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadParty2" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadParty2" + } + } + } + }, + "200AccountsAccountIdProductRead": { + "description": "Products Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadProduct2" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadProduct2" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadProduct2" + } + } + } + }, + "200ProductsRead": { + "description": "Products Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadProduct2" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadProduct2" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadProduct2" + } + } + } + }, + "200AccountsAccountIdScheduledPaymentsRead": { + "description": "Scheduled Payments Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadScheduledPayment3" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadScheduledPayment3" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadScheduledPayment3" + } + } + } + }, + "200ScheduledPaymentsRead": { + "description": "Scheduled Payments Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadScheduledPayment3" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadScheduledPayment3" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadScheduledPayment3" + } + } + } + }, + "200AccountsAccountIdStandingOrdersRead": { + "description": "Standing Orders Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadStandingOrder6" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadStandingOrder6" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadStandingOrder6" + } + } + } + }, + "200StandingOrdersRead": { + "description": "Standing Orders Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadStandingOrder6" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadStandingOrder6" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadStandingOrder6" + } + } + } + }, + "200AccountsAccountIdStatementsRead": { + "description": "Statements Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadStatement2" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadStatement2" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadStatement2" + } + } + } + }, + "200AccountsAccountIdStatementsStatementIdRead": { + "description": "Statements Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadStatement2" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadStatement2" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadStatement2" + } + } + } + }, + "200AccountsAccountIdStatementsStatementIdFileRead": { + "description": "Statements Read\n\nASPSP will specify all available content types\n", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/File" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/File" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/File" + } + } + } + }, + "200AccountsAccountIdStatementsStatementIdTransactionsRead": { + "description": "Transactions Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadTransaction6" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadTransaction6" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadTransaction6" + } + } + } + }, + "200StatementsRead": { + "description": "Statements Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadStatement2" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadStatement2" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadStatement2" + } + } + } + }, + "200AccountsAccountIdTransactionsRead": { + "description": "Transactions Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadTransaction6" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadTransaction6" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadTransaction6" + } + } + } + }, + "200TransactionsRead": { + "description": "Transactions Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBReadTransaction6" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBReadTransaction6" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBReadTransaction6" + } + } + } + }, + "400Error": { + "description": "Bad request", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + } + } + }, + "401Error": { + "description": "Unauthorized", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + } + } + }, + "403Error": { + "description": "Forbidden", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + } + } + }, + "404Error": { + "description": "Not found", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + } + } + }, + "405Error": { + "description": "Method Not Allowed", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + } + } + }, + "406Error": { + "description": "Not Acceptable", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + } + } + }, + "415Error": { + "description": "Unsupported Media Type", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + } + } + }, + "429Error": { + "description": "Too Many Requests", + "headers": { + "Retry-After": { + "description": "Number in seconds to wait", + "schema": { + "type": "integer" + } + }, + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "schema": { + "type": "string" + } + } + } + }, + "500Error": { + "description": "Internal Server Error", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + } + } + } + }, + "securitySchemes": { + "TPPOAuth2Security": { + "type": "oauth2", + "description": "TPP client credential authorisation flow with the ASPSP", + "flows": { + "clientCredentials": { + "tokenUrl": "https://authserver.example/token", + "scopes": { + "accounts": "Ability to read Accounts information" + } + } + } + }, + "PSUOAuth2Security": { + "type": "oauth2", + "description": "OAuth flow, it is required when the PSU needs to perform SCA with the ASPSP when a TPP wants to access an ASPSP resource owned by the PSU", + "flows": { + "authorizationCode": { + "authorizationUrl": "https://authserver.example/authorization", + "tokenUrl": "https://authserver.example/token", + "scopes": { + "accounts": "Ability to read Accounts information" + } + } + } + } + }, + "schemas": { + "OBIntermediaryAgent": { + "description": "The intermediary agent associated with this transaction.", + "type": "object", + "properties": { + "Name": { + "description": "Name by which an agent is known and which is usually used to identify that agent.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "description": "Unique and unambiguous identification of a financial institution or a branch of a financial institution.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + }, + "ProcessingStatus": { + "description": "Status of the payment at the Intermediary Agent. For a full list of enumeration values refer to `OBIntermediaryAgentStatus1Code` in `OB_Internal_CodeSet` [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "PDNG", + "RCVD", + "ACSP", + "ACSC", + "RJCT", + "UNKN", + "CANC" + ] + } + } + }, + "ExternalCreditorReferenceType1Code": { + "type": "string", + "minLength": 1, + "maxLength": 4, + "description": "Specifies the type of creditor reference as published in an external creditor reference type code set. For more information see `ExternalCreditorReferenceType1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "enum": [ + "DISP", + "FXDR", + "PUOR", + "RPIN", + "RADM", + "SCOR" + ] + }, + "ExternalDocumentType1Code": { + "type": "string", + "minLength": 1, + "maxLength": 4, + "description": "Specifies the document type as published in an external document type code list. For more information see `ExternalDocumentType1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "enum": [ + "AROI", + "BOLD", + "CINV", + "CMCN", + "CNFA", + "CONT", + "CREN", + "DEBN", + "DISP", + "DNFA", + "HIRI", + "INVS", + "MSIN", + "PROF", + "PUOR", + "QUOT", + "SBIN", + "SOAC", + "SPRR", + "TISH", + "TSUT", + "USAR", + "VCHR" + ] + }, + "OBReferredDocumentInformation": { + "type": "object", + "properties": { + "Code": { + "$ref": "#/components/schemas/ExternalDocumentType1Code" + }, + "Issuer": { + "description": "Identification of the issuer of the reference document type.", + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "Number": { + "description": "Identification of the type specified for the referred document line.", + "type": "string", + "maxLength": 35, + "minLength": 1 + }, + "RelatedDate": { + "description": "Date associated with the referred document line.", + "type": "string", + "format": "date-time" + }, + "LineDetails": { + "description": "Set of elements used to provide the content of the referred document line.", + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 2048 + } + } + } + }, + "OBRemittanceInformation2": { + "type": "object", + "description": "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", + "properties": { + "Structured": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRemittanceInformationStructured" + } + }, + "Unstructured": { + "type": "array", + "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 an unstructured form.", + "items": { + "type": "string", + "maxLength": 140, + "minLength": 1 + } + } + } + }, + "OBRemittanceInformationStructured": { + "type": "object", + "properties": { + "ReferredDocumentInformation": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBReferredDocumentInformation" + } + }, + "ReferredDocumentAmount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "CreditorReferenceInformation": { + "description": "Reference information provided by the creditor to allow the identification of the underlying documents.", + "type": "object", + "properties": { + "Code": { + "$ref": "#/components/schemas/ExternalCreditorReferenceType1Code" + }, + "Issuer": { + "description": "Entity that assigns the identification.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "Reference": { + "description": "Unique reference, as assigned by the creditor, to unambiguously refer to the payment transaction.", + "type": "string", + "minLength": 1, + "maxLength": 35 + } + } + }, + "Invoicer": { + "$ref": "#/components/schemas/Identification_3" + }, + "Invoicee": { + "$ref": "#/components/schemas/Identification_4" + }, + "TaxRemittance": { + "description": "Provides remittance information about a payment made for tax-related purposes.", + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "AdditionalRemittanceInformation": { + "description": "Additional information, in free text form, to complement the structured remittance information.", + "type": "array", + "items": { + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "maxItems": 3 + } + } + }, + "OBUltimateCreditor1": { + "description": "Ultimate party to which an amount of money is due.", + "type": "object", + "properties": { + "Name": { + "description": "Name by which a party is known and which is usually used to identify that party.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "Identification": { + "description": "Identification assigned by an institution.", + "type": "string", + "minLength": 1, + "maxLength": 256 + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "OBUltimateDebtor1": { + "description": "Ultimate party that owes an amount of money to the (ultimate) creditor.", + "type": "object", + "properties": { + "Name": { + "description": "Name by which a party is known and which is usually used to identify that party.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "Identification": { + "description": "Identification assigned by an institution.", + "type": "string", + "minLength": 1, + "maxLength": 256 + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "OBFrequency6": { + "description": "Regularity with which credit transfer instructions are to be created and processed", + "type": "object", + "required": [ + "Type" + ], + "properties": { + "Type": { + "oneOf": [ + { + "$ref": "#/components/schemas/OBFrequency6Code" + }, + { + "$ref": "#/components/schemas/Frequency_1" + } + ] + }, + "CountPerPeriod": { + "description": "Number of instructions to be created and processed during the specified period. Specifies a frequency in terms of a count per period within a specified frequency type. Note: should not be used alongside `PointInTime`", + "type": "integer", + "example": 1, + "format": "int32" + }, + "PointInTime": { + "$ref": "#/components/schemas/PointInTime" + } + } + }, + "PointInTime": { + "description": "Exact2NumericText - Further information on the exact point in time the event should take place. Specifies a frequency in terms of an exact point in time or moment within a specified frequency type. Note: should not be used alongside `CountPerPeriod`.", + "type": "string", + "example": "00", + "maxLength": 2 + }, + "OBFrequency6Code": { + "description": "For a full list of values see `OBFrequency6Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "example": "MNTH", + "enum": [ + "ADHO", + "YEAR", + "DAIL", + "FRTN", + "INDA", + "MNTH", + "QURT", + "MIAN", + "WEEK", + "WODL", + "FOWK", + "TWMH", + "FOMH", + "FIMH", + "ALMH", + "NONE", + "LWMH", + "LXMH", + "TWYR" + ] + }, + "OBProxy1": { + "description": "Specifies an alternate assumed name for the identification of the account.", + "type": "object", + "required": [ + "Identification", + "Code" + ], + "properties": { + "Identification": { + "description": "Identification used to indicate the account identification under another specified name.", + "type": "string", + "example": "2360549017905188", + "minLength": 1, + "maxLength": 2048 + }, + "Code": { + "$ref": "#/components/schemas/ExternalProxyAccountType1Code" + }, + "Type": { + "type": "string", + "description": "Type of the proxy identification.", + "minLength": 1, + "maxLength": 35 + } + } + }, + "ExternalProxyAccountType1Code": { + "description": "Specifies the external proxy account type code, as published in the proxy account type external code set.
For more information and a full list of values see `ExternalProxyAccountType1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "example": "TELE", + "enum": [ + "TELE", + "EMAL", + "DNAM", + "CINC", + "COTX", + "COID", + "CUST", + "DRLC", + "EIDN", + "EWAL", + "PVTX", + "LEIC", + "MBNO", + "NIDN", + "CCPT", + "SHID", + "SOSE", + "TOKN", + "UBIL", + "VIPN", + "BIID" + ] + }, + "AccountId": { + "description": "A unique and immutable identifier used to identify the account resource. This identifier has no meaning to the account owner.", + "type": "string", + "example": "22289", + "minLength": 1, + "maxLength": 40 + }, + "ActiveOrHistoricCurrencyCode_0": { + "description": "Identification of the currency in which the account is held. \nUsage: Currency should only be used in case one and the same account number covers several currencies\nand the initiating party needs to identify which currency needs to be used for settlement on the account.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "ActiveOrHistoricCurrencyCode_1": { + "description": "A 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\".", + "type": "string", + "example": "GBP", + "pattern": "^[A-Z]{3,3}$" + }, + "AddressLine": { + "description": "Information that locates and identifies a specific address for a transaction entry, that is presented in free format text.", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "BeneficiaryId": { + "description": "A unique and immutable identifier used to identify the beneficiary resource. This identifier has no meaning to the account owner.", + "type": "string", + "example": "Ben1", + "minLength": 1, + "maxLength": 40 + }, + "BookingDateTime": { + "description": "Date and time when a transaction entry is posted to an account on the account servicer's books.\nUsage: Booking date is the expected booking date, unless the status is booked, in which case it is the actual booking date. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "BuildingName": { + "description": "Name of a referenced building.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "BuildingNumber": { + "description": "Number that identifies the position of a building on a street.", + "type": "string", + "example": "11", + "minLength": 1, + "maxLength": 16 + }, + "CareOf": { + "description": "The 'care of' address is used whenever sending mail to a person or organisation who does not actually live or work at the address. They will receive the mail for the individual.", + "type": "string", + "example": "Jane Smith", + "minLength": 1, + "maxLength": 140 + }, + "CountryCode": { + "description": "Nation with its own government, occupying a particular territory.", + "type": "string", + "pattern": "^[A-Z]{2,2}$" + }, + "CountrySubDivision": { + "description": "Identifies a subdivision of a country eg, state, region, county.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "CreationDateTime": { + "description": "Date and time at which the resource was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "example": "2024-05-29T00:00:00Z", + "format": "date-time" + }, + "Date": { + "description": "Date and time associated with the date time type. All dates in the JSON payloads are represented in ISO 8601 date format. \n An example is below:\n2017-04-05", + "type": "string", + "format": "date" + }, + "DateTime": { + "description": "Date and time associated with the date time type. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "example": "2024-05-29T00:00:00Z", + "format": "date-time" + }, + "DebtorReference": { + "description": "A reference value provided by the PSU to the PISP while setting up the scheduled payment.", + "type": "string", + "example": "REF51561806", + "minLength": 1, + "maxLength": 35 + }, + "Description_0": { + "description": "Specifies the description of the account type.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "Description_1": { + "description": "Description that may be available for the statement fee.", + "type": "string", + "example": "International usage charge", + "minLength": 1, + "maxLength": 128 + }, + "Description_2": { + "description": "Description that may be available for the statement interest.", + "example": "Interest occurred over statement duration", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "Description_3": { + "description": "Description to describe the purpose of the code", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "DirectDebitId": { + "description": "A unique and immutable identifier used to identify the direct debit resource. This identifier has no meaning to the account owner.", + "type": "string", + "minLength": 1, + "maxLength": 40 + }, + "DistrictName": { + "description": "Number that of the regional area, known as a district, which forms part of an address", + "type": "string", + "example": "Greater London", + "minLength": 1, + "maxLength": 140 + }, + "EmailAddress": { + "description": "Address for electronic mail (e-mail).", + "type": "string", + "example": "d.user@semiotec.co.jp", + "minLength": 1, + "maxLength": 256 + }, + "EndDateTime": { + "description": "Date and time at which the statement period ends. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "example": "2017-07-12T00:00:00+00:00", + "format": "date-time" + }, + "File": { + "type": "object", + "properties": {} + }, + "FinalPaymentDateTime": { + "description": "The date on which the final payment for a Standing Order schedule will be made. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "FirstPaymentDateTime": { + "description": "The date on which the first payment for a Standing Order schedule will be made. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Floor": { + "description": "Number that identifies the level within a building", + "type": "string", + "example": "11", + "minLength": 1, + "maxLength": 70 + }, + "Frequency_1": { + "description": "Individual Definitions:\nNotKnown - Not Known\nEvryDay - Every day\nEvryWorkgDay - Every working day\nIntrvlDay - An interval specified in number of calendar days (02 to 31)\nIntrvlWkDay - An interval specified in weeks (01 to 09), and the day within the week (01 to 07)\nWkInMnthDay - A monthly interval, specifying the week of the month (01 to 05) and day within the week (01 to 07)\nIntrvlMnthDay - An interval specified in months (between 01 to 06, 12, 24), specifying the day within the month (-05 to -01, 01 to 31)\nQtrDay - Quarterly (either ENGLISH, SCOTTISH, or RECEIVED)\nENGLISH = Paid on the 25th March, 24th June, 29th September and 25th December.\nSCOTTISH = Paid on the 2nd February, 15th May, 1st August and 11th November.\nRECEIVED = Paid on the 20th March, 19th June, 24th September and 20th December.\nIndividual Patterns:\nNotKnown (ScheduleCode)\nEvryDay (ScheduleCode)\nEvryWorkgDay (ScheduleCode)\nIntrvlDay:NoOfDay (ScheduleCode + NoOfDay)\nIntrvlWkDay:IntervalInWeeks:DayInWeek (ScheduleCode + IntervalInWeeks + DayInWeek)\nWkInMnthDay:WeekInMonth:DayInWeek (ScheduleCode + WeekInMonth + DayInWeek)\nIntrvlMnthDay:IntervalInMonths:DayInMonth (ScheduleCode + IntervalInMonths + DayInMonth)\nQtrDay: + either (ENGLISH, SCOTTISH or RECEIVED) ScheduleCode + QuarterDay\nThe regular expression for this element combines five smaller versions for each permitted pattern. To aid legibility - the components are presented individually here:\nNotKnown\nEvryDay\nEvryWorkgDay\nIntrvlDay:((0[2-9])|([1-2][0-9])|3[0-1])\nIntrvlWkDay:0[1-9]:0[1-7]\nWkInMnthDay:0[1-5]:0[1-7]\nIntrvlMnthDay:(0[1-6]|12|24):(-0[1-5]|0[1-9]|[12][0-9]|3[01])\nQtrDay:(ENGLISH|SCOTTISH|RECEIVED)\nFull Regular Expression:\n^(NotKnown)$|^(EvryDay)$|^(EvryWorkgDay)$|^(IntrvlDay:((0[2-9])|([1-2][0-9])|3[0-1]))$|^(IntrvlWkDay:0[1-9]:0[1-7])$|^(WkInMnthDay:0[1-5]:0[1-7])$|^(IntrvlMnthDay:(0[1-6]|12|24):(-0[1-5]|0[1-9]|[12][0-9]|3[01]))$|^(QtrDay:(ENGLISH|SCOTTISH|RECEIVED))$", + "type": "string", + "pattern": "^(NotKnown)$|^(EvryDay)$|^(EvryWorkgDay)$|^(IntrvlDay:((0[2-9])|([1-2][0-9])|3[0-1]))$|^(IntrvlWkDay:0[1-9]:0[1-7])$|^(WkInMnthDay:0[1-5]:0[1-7])$|^(IntrvlMnthDay:(0[1-6]|12|24):(-0[1-5]|0[1-9]|[12][0-9]|3[01]))$|^(QtrDay:(ENGLISH|SCOTTISH|RECEIVED))$" + }, + "FullLegalName": { + "description": "The full legal name of the party.", + "type": "string", + "example": "Jane Smith", + "minLength": 1, + "maxLength": 350 + }, + "ISODateTime": { + "description": "All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Identification_0": { + "description": "Identification assigned by an institution to identify an account. This identification is known by the account owner.", + "type": "string", + "example": "80200112344562", + "minLength": 1, + "maxLength": 256 + }, + "Identification_1": { + "description": "Unique and unambiguous identification of the servicing institution.", + "type": "string", + "example": "80200112344562", + "minLength": 1, + "maxLength": 35 + }, + "Identification_2": { + "description": "Unique and unambiguous identification of a financial institution or a branch of a financial institution.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "Identification_3": { + "description": "Identification of the organisation issuing the invoice, when it is different from the creditor or ultimate creditor", + "type": "string", + "example": "80200112344562", + "minLength": 1, + "maxLength": 256 + }, + "Identification_4": { + "description": "Identification of the party to whom an invoice is issued, when it is different from the debtor or ultimate debtor.", + "type": "string", + "example": "80200112344562", + "minLength": 1, + "maxLength": 256 + }, + "LastPaymentDateTime": { + "description": "The date on which the last (most recent) payment for a Standing Order schedule was made. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "example": "2017-07-12T00:00:00+00:00", + "format": "date-time" + }, + "LEI": { + "description": "Legal entity identification as an alternate identification for a party. Legal Entity Identifier is a code allocated to a party as described in ISO 17442 \"Financial Services - Legal Entity Identifier (LEI)\".", + "type": "string", + "example": "IZ9Q00LZEVUKWCQY6X15", + "minLength": 1, + "maxLength": 20, + "pattern": "^[A-Z0-9]{18,18}[0-9]{2,2}$" + }, + "Links": { + "type": "object", + "description": "Links relevant to the payload", + "properties": { + "Self": { + "type": "string", + "format": "uri" + }, + "First": { + "type": "string", + "format": "uri" + }, + "Prev": { + "type": "string", + "format": "uri" + }, + "Next": { + "type": "string", + "format": "uri" + }, + "Last": { + "type": "string", + "format": "uri" + } + }, + "additionalProperties": false, + "required": [ + "Self" + ] + }, + "MandateIdentification": { + "description": "Direct Debit reference. For AUDDIS service users provide Core Reference. For non AUDDIS service users provide Core reference if possible or last used reference.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "MaturityDate": { + "description": "Maturity date of the account. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Meta": { + "title": "MetaData", + "type": "object", + "description": "Meta Data relevant to the payload", + "properties": { + "TotalPages": { + "type": "integer", + "format": "int32" + }, + "FirstAvailableDateTime": { + "$ref": "#/components/schemas/ISODateTime" + }, + "LastAvailableDateTime": { + "$ref": "#/components/schemas/ISODateTime" + } + }, + "additionalProperties": false + }, + "Name_0": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "example": "Jane Smith", + "minLength": 1, + "maxLength": 350 + }, + "Name_1": { + "description": "Name by which an agent is known and which is usually used to identify that agent.", + "type": "string", + "example": "Agent Name", + "minLength": 1, + "maxLength": 140 + }, + "Name_2": { + "description": "Name of Service User.", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Name_3": { + "description": "Name by which a party is known and which is usually used to identify that party.", + "type": "string", + "example": "Mx Jane Smith", + "minLength": 1, + "maxLength": 350 + }, + "Name_4": { + "description": "Long name associated with the code", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "NextPaymentDateTime": { + "description": "The date on which the next payment for a Standing Order schedule will be made. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "example": "2017-07-12T00:00:00+00:00", + "format": "date-time" + }, + "Nickname": { + "description": "The nickname of the account, assigned by the account owner in order to provide an additional means of identification of the account.", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "NumberOfPayments": { + "description": "Number of the payments that will be made in completing this frequency sequence including any executed since the sequence start date.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "Number_0": { + "description": "Indicates whether the advertised overdraft rate is guaranteed to be offered to a borrower by the bank e.g. if it s part of a government scheme, or whether the rate may vary dependent on the applicant s circumstances.", + "type": "integer" + }, + "Number_1": { + "description": "fee/charges are captured dependent on the number of occurrences rather than capped at a particular amount", + "type": "integer" + }, + "OBAccount6": { + "type": "object", + "description": "Unambiguous identification of the account to which credit and debit entries are made. The following fields are optional only for accounts that are switched:\n\n * Data.Currency \n * Data.AccountCategory \n * Data.AccountTypeCode\n\nFor all other accounts, the fields must be populated by the ASPSP.", + "required": [ + "AccountId" + ], + "properties": { + "AccountId": { + "$ref": "#/components/schemas/AccountId" + }, + "Status": { + "$ref": "#/components/schemas/OBInternalAccountStatus1Code" + }, + "StatusUpdateDateTime": { + "$ref": "#/components/schemas/StatusUpdateDateTime" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_0" + }, + "AccountCategory": { + "$ref": "#/components/schemas/OBInternalAccountType1Code" + }, + "AccountTypeCode": { + "$ref": "#/components/schemas/OBExternalAccountSubType1Code" + }, + "Description": { + "$ref": "#/components/schemas/Description_0" + }, + "Nickname": { + "$ref": "#/components/schemas/Nickname" + }, + "OpeningDate": { + "$ref": "#/components/schemas/OpeningDate" + }, + "MaturityDate": { + "$ref": "#/components/schemas/MaturityDate" + }, + "SwitchStatus": { + "$ref": "#/components/schemas/OBInternalSwitchStatusCode" + }, + "Account": { + "type": "array", + "items": { + "type": "object", + "description": "Provides the details to identify an account.", + "required": [ + "SchemeName", + "Identification" + ], + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "$ref": "#/components/schemas/Name_0" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + } + } + } + }, + "StatementFrequencyAndFormat": { + "$ref": "#/components/schemas/StatementFrequencyAndFormat" + }, + "Servicer": { + "$ref": "#/components/schemas/OBBranchAndFinancialInstitutionIdentification5_0" + } + }, + "additionalProperties": false + }, + "OBAccount6Basic": { + "type": "object", + "description": "Unambiguous identification of the account to which credit and debit entries are made.", + "required": [ + "AccountId" + ], + "properties": { + "AccountId": { + "$ref": "#/components/schemas/AccountId" + }, + "Status": { + "$ref": "#/components/schemas/OBInternalAccountStatus1Code" + }, + "StatusUpdateDateTime": { + "$ref": "#/components/schemas/StatusUpdateDateTime" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_0" + }, + "AccountCategory": { + "$ref": "#/components/schemas/OBInternalAccountType1Code" + }, + "AccountTypeCode": { + "$ref": "#/components/schemas/OBExternalAccountSubType1Code" + }, + "Description": { + "$ref": "#/components/schemas/Description_0" + }, + "Nickname": { + "$ref": "#/components/schemas/Nickname" + }, + "OpeningDate": { + "$ref": "#/components/schemas/OpeningDate" + }, + "MaturityDate": { + "$ref": "#/components/schemas/MaturityDate" + }, + "SwitchStatus": { + "$ref": "#/components/schemas/OBInternalSwitchStatusCode" + } + }, + "additionalProperties": false + }, + "OBAccount6Detail": { + "type": "object", + "description": "Unambiguous identification of the account to which credit and debit entries are made.", + "required": [ + "AccountId", + "Account" + ], + "properties": { + "AccountId": { + "$ref": "#/components/schemas/AccountId" + }, + "Status": { + "$ref": "#/components/schemas/OBInternalAccountStatus1Code" + }, + "StatusUpdateDateTime": { + "$ref": "#/components/schemas/StatusUpdateDateTime" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_0" + }, + "AccountCategory": { + "$ref": "#/components/schemas/OBInternalAccountType1Code" + }, + "AccountTypeCode": { + "$ref": "#/components/schemas/OBExternalAccountSubType1Code" + }, + "Description": { + "$ref": "#/components/schemas/Description_0" + }, + "Nickname": { + "$ref": "#/components/schemas/Nickname" + }, + "OpeningDate": { + "$ref": "#/components/schemas/OpeningDate" + }, + "MaturityDate": { + "$ref": "#/components/schemas/MaturityDate" + }, + "SwitchStatus": { + "$ref": "#/components/schemas/OBInternalSwitchStatusCode" + }, + "Account": { + "type": "array", + "items": { + "type": "object", + "description": "Provides the details to identify an account.", + "required": [ + "SchemeName", + "Identification" + ], + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "$ref": "#/components/schemas/Name_0" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + } + } + } + }, + "StatementFrequencyAndFormat": { + "$ref": "#/components/schemas/StatementFrequencyAndFormat" + }, + "Servicer": { + "$ref": "#/components/schemas/OBBranchAndFinancialInstitutionIdentification5_0" + } + }, + "additionalProperties": false + }, + "OBInternalAccountStatus1Code": { + "description": "Specifies the status of account resource in code form.
\nFor a full list of enumeration values refer to `OBInternalAccountStatus1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "example": "Enabled", + "enum": [ + "Deleted", + "Disabled", + "Enabled", + "Pending", + "ProForma" + ] + }, + "OBActiveCurrencyAndAmount_SimpleType": { + "description": "A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217.", + "type": "string", + "example": "1209.06", + "pattern": "^\\d{1,13}$|^\\d{1,13}\\.\\d{1,5}$" + }, + "OBActiveOrHistoricCurrencyAndAmount_0": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "The amount of the most recent direct debit collection.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + } + } + }, + "OBActiveOrHistoricCurrencyAndAmount_1": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "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.\nUsage: This amount has to be transported unchanged through the transaction chain.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + } + } + }, + "OBActiveOrHistoricCurrencyAndAmount_10": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "Transaction charges to be paid by the charge bearer.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + } + } + }, + "OBActiveOrHistoricCurrencyAndAmount_11": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "The amount of the last (most recent) Standing Order instruction.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + } + } + }, + "OBActiveOrHistoricCurrencyAndAmount_2": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "The amount of the first Standing Order", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + } + } + }, + "OBActiveOrHistoricCurrencyAndAmount_3": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "The amount of the next Standing Order.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + } + } + }, + "OBActiveOrHistoricCurrencyAndAmount_4": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "The amount of the final Standing Order", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + } + } + }, + "OBActiveOrHistoricCurrencyAndAmount_5": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "Amount of money associated with the statement benefit type.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + } + } + }, + "OBActiveOrHistoricCurrencyAndAmount_6": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "Amount of money associated with the statement fee type.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + } + } + }, + "OBActiveOrHistoricCurrencyAndAmount_7": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "Amount of money associated with the statement interest amount type.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + } + } + }, + "OBActiveOrHistoricCurrencyAndAmount_8": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "Amount of money associated with the amount type.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + }, + "SubType": { + "$ref": "#/components/schemas/OBExternalBalanceSubType1Code" + } + } + }, + "OBActiveOrHistoricCurrencyAndAmount_9": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "Amount of money in the cash transaction entry.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + } + } + }, + "OBAddressType2Code": { + "description": "Identifies the nature of the postal address.
For a full set of codes see `OBAddressType2Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets).", + "type": "string", + "example": "BIZZ", + "enum": [ + "BIZZ", + "DLVY", + "MLTO", + "PBOX", + "ADDR", + "HOME", + "CORR", + "STAT" + ] + }, + "OBBCAData1": { + "type": "object", + "title": "BCA", + "properties": { + "ProductDetails": { + "type": "object", + "title": "ProductDetails", + "properties": { + "Segment": { + "description": "Market segmentation is a marketing term referring to the aggregating of prospective buyers into groups, or segments, that have common needs and respond similarly to a marketing action. Market segmentation enables companies to target different categories of consumers who perceive the full value of certain products and services differently from one another.\nRead more: Market Segmentation http://www.investopedia.com/terms/m/marketsegmentation.asp#ixzz4gfEEalTd \nWith respect to BCA products, they are segmented in relation to different markets that they wish to focus on. ", + "title": "Segment", + "type": "array", + "items": { + "description": "Market segmentation is a marketing term referring to the aggregating of prospective buyers into groups, or segments, that have common needs and respond similarly to a marketing action. Market segmentation enables companies to target different categories of consumers who perceive the full value of certain products and services differently from one another.\nRead more: Market Segmentation http://www.investopedia.com/terms/m/marketsegmentation.asp#ixzz4gfEEalTd \nWith respect to BCA products, they are segmented in relation to different markets that they wish to focus on. ", + "type": "string", + "enum": [ + "ClientAccount", + "Standard", + "NonCommercialChaitiesClbSoc", + "NonCommercialPublicAuthGovt", + "Religious", + "SectorSpecific", + "Startup", + "Switcher" + ] + } + }, + "FeeFreeLength": { + "description": "The length/duration of the fee free period", + "title": "FeeFreeLength", + "type": "number", + "format": "float" + }, + "FeeFreeLengthPeriod": { + "description": "The unit of period (days, weeks, months etc.) of the promotional length", + "title": "FeeFreeLengthPeriod", + "type": "string", + "enum": [ + "Day", + "Half Year", + "Month", + "Quarter", + "Week", + "Year" + ] + }, + "Notes": { + "description": "Optional additional notes to supplement the Core product details", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + } + }, + "additionalProperties": false + }, + "CreditInterest": { + "description": "Details about the interest that may be payable to the BCA account holders", + "type": "object", + "title": "CreditInterest", + "properties": { + "TierBandSet": { + "description": "The group of tiers or bands for which credit interest can be applied.", + "type": "array", + "title": "TierBandSet", + "items": { + "description": "The group of tiers or bands for which credit interest can be applied.", + "type": "object", + "properties": { + "TierBandMethod": { + "description": "The methodology of how credit interest is paid/applied. It can be:-\n\n1. Banded\nInterest rates are banded. i.e. Increasing rate on whole balance as balance increases.\n\n2. Tiered\nInterest rates are tiered. i.e. increasing rate for each tier as balance increases, but interest paid on tier fixed for that tier and not on whole balance.\n\n3. Whole\nThe same interest rate is applied irrespective of the BCA balance", + "title": "TierBandMethod", + "type": "string", + "enum": [ + "Banded", + "Tiered", + "Whole" + ] + }, + "CalculationMethod": { + "description": "Methods of calculating interest", + "title": "CalculationMethod", + "type": "string", + "enum": [ + "Compound", + "SimpleInterest" + ] + }, + "Destination": { + "description": "Describes whether accrued interest is payable only to the BCA or to another bank account", + "title": "Destination", + "type": "string", + "enum": [ + "PayAway", + "SelfCredit" + ] + }, + "Notes": { + "description": "Optional additional notes to supplement the Tier Band Set details", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "TierBand": { + "description": "Tier Band Details", + "type": "array", + "title": "TierBand", + "items": { + "description": "Tier Band Details", + "type": "object", + "properties": { + "Identification": { + "description": "Unique and unambiguous identification of a Tier Band for a BCA.", + "title": "Identification", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "TierValueMinimum": { + "description": "Minimum deposit value for which the credit interest tier applies.", + "title": "TierValueMinimum", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "TierValueMaximum": { + "description": "Maximum deposit value for which the credit interest tier applies.", + "title": "TierValueMaximum", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "CalculationFrequency": { + "description": "How often is credit interest calculated for the account.", + "title": "CalculationFrequency", + "type": "string", + "enum": [ + "Daily", + "HalfYearly", + "Monthly", + "Other", + "Quarterly", + "PerStatementDate", + "Weekly", + "Yearly" + ] + }, + "ApplicationFrequency": { + "description": "How often is interest applied to the BCA for this tier/band i.e. how often the financial institution pays accumulated interest to the customer's BCA.", + "title": "ApplicationFrequency", + "type": "string", + "enum": [ + "Daily", + "HalfYearly", + "Monthly", + "Other", + "Quarterly", + "PerStatementDate", + "Weekly", + "Yearly" + ] + }, + "DepositInterestAppliedCoverage": { + "description": "Amount on which Interest applied.", + "title": "DepositInterestAppliedCoverage", + "type": "string", + "enum": [ + "Banded", + "Tiered", + "Whole" + ] + }, + "FixedVariableInterestRateType": { + "description": "Type of interest rate, Fixed or Variable", + "title": "FixedVariableInterestRateType", + "type": "string", + "enum": [ + "Fixed", + "Variable" + ] + }, + "AER": { + "description": "The annual equivalent rate (AER) is interest that is calculated under the assumption that any interest paid is combined with the original balance and the next interest payment will be based on the slightly higher account balance. Overall, this means that interest can be compounded several times in a year depending on the number of times that interest payments are made. \nRead more: Annual Equivalent Rate (AER) http://www.investopedia.com/terms/a/aer.asp#ixzz4gfR7IO1A", + "title": "AER", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "BankInterestRateType": { + "description": "Interest rate types, other than AER, which financial institutions may use to describe the annual interest rate payable to the BCA.", + "title": "BankInterestRateType", + "type": "string", + "enum": [ + "Gross", + "Other" + ] + }, + "BankInterestRate": { + "description": "Bank Interest for the BCA product", + "title": "BankInterestRate", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "Notes": { + "description": "Optional additional notes to supplement the Tier Band details", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherBankInterestType": { + "description": "Other interest rate types which are not available in the standard code list", + "type": "object", + "title": "OtherBankInterestType", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OtherApplicationFrequency": { + "description": "Other application frequencies that are not available in the standard code list", + "type": "object", + "title": "OtherApplicationFrequency", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OtherCalculationFrequency": { + "description": "Other calculation frequency which is not available in the standard code set.", + "type": "object", + "title": "OtherCalculationFrequency", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + } + }, + "required": [ + "TierValueMinimum", + "ApplicationFrequency", + "FixedVariableInterestRateType", + "AER" + ] + }, + "minItems": 1 + } + }, + "required": [ + "TierBandMethod", + "Destination", + "TierBand" + ] + }, + "minItems": 1 + } + }, + "additionalProperties": false, + "required": [ + "TierBandSet" + ] + }, + "Overdraft": { + "description": "Borrowing details", + "type": "object", + "title": "Overdraft", + "properties": { + "Notes": { + "description": "Associated Notes about the overdraft rates", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OverdraftTierBandSet": { + "description": "Tier band set details", + "type": "array", + "title": "OverdraftTierBandSet", + "items": { + "description": "Tier band set details", + "type": "object", + "properties": { + "TierBandMethod": { + "description": "The methodology of how overdraft is charged. It can be:\n'Whole' Where the same charge/rate is applied to the entirety of the overdraft balance (where charges are applicable). \n'Tiered' Where different charges/rates are applied dependent on overdraft maximum and minimum balance amount tiers defined by the lending financial organisation\n'Banded' Where different charges/rates are applied dependent on overdraft maximum and minimum balance amount bands defined by a government organisation.", + "title": "TierBandMethod", + "type": "string", + "enum": [ + "Banded", + "Tiered", + "Whole" + ] + }, + "OverdraftType": { + "description": "An overdraft can either be 'committed' which means that the facility cannot be withdrawn without reasonable notification before it's agreed end date, or 'on demand' which means that the financial institution can demand repayment at any point in time.", + "title": "OverdraftType", + "type": "string", + "enum": [ + "Committed", + "OnDemand" + ] + }, + "Identification": { + "description": "Unique and unambiguous identification of a Tier Band for a overdraft product.", + "title": "Identification", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "AuthorisedIndicator": { + "description": "Indicates if the Overdraft is authorised (Y) or unauthorised (N)", + "title": "AuthorisedIndicator", + "type": "boolean" + }, + "BufferAmount": { + "description": "When a customer exceeds their credit limit, a financial institution will not charge the customer unauthorised overdraft charges if they do not exceed by more than the buffer amount. Note: Authorised overdraft charges may still apply.", + "title": "BufferAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "Notes": { + "description": "Optional additional notes to supplement the overdraft Tier Band Set details", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OverdraftTierBand": { + "description": "Provides overdraft details for a specific tier or band", + "type": "array", + "title": "OverdraftTierBand", + "items": { + "description": "Provides overdraft details for a specific tier or band", + "type": "object", + "properties": { + "Identification": { + "description": "Unique and unambiguous identification of a Tier Band for a overdraft.", + "title": "Identification", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "TierValueMin": { + "description": "Minimum value of Overdraft Tier/Band", + "title": "TierValueMin", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "TierValueMax": { + "description": "Maximum value of Overdraft Tier/Band", + "title": "TierValueMax", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "EAR": { + "description": "EAR means Effective Annual Rate and/or Equivalent Annual Rate (frequently\nused interchangeably), being the actual annual interest rate of an Overdraft.", + "title": "EAR", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "RepresentativeAPR": { + "description": "An annual percentage rate (APR) is the annual rate charged for borrowing or earned through an investment. APR is expressed as a percentage that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction but does not take compounding into account.", + "title": "RepresentativeAPR", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "AgreementLengthMin": { + "description": "Specifies the minimum length of a band for a fixed overdraft agreement", + "title": "AgreementLengthMin", + "type": "number", + "format": "float" + }, + "AgreementLengthMax": { + "description": "Specifies the maximum length of a band for a fixed overdraft agreement", + "title": "AgreementLengthMax", + "type": "number", + "format": "float" + }, + "AgreementPeriod": { + "description": "Specifies the period of a fixed length overdraft agreement", + "title": "AgreementPeriod", + "type": "string", + "enum": [ + "Day", + "Half Year", + "Month", + "Quarter", + "Week", + "Year" + ] + }, + "OverdraftInterestChargingCoverage": { + "description": "Refers to which interest rate is applied when interests are tiered. For example, if an overdraft balance is £2k and the interest tiers are:- 0-£500 0.1%, 500-1000 0.2%, 1000-10000 0.5%, then the applicable interest rate could either be 0.5% of the entire balance (since the account balance sits in the top interest tier) or (0.1%*500)+(0.2%*500)+(0.5%*1000). In the 1st situation, we say the interest is applied to the ‘Whole’ of the account balance, and in the 2nd that it is ‘Tiered’.", + "title": "OverdraftInterestChargingCoverage", + "type": "string", + "enum": [ + "Banded", + "Tiered", + "Whole" + ] + }, + "BankGuaranteedIndicator": { + "description": "Indicates whether the advertised overdraft rate is guaranteed to be offered to a borrower by the bank e.g. if it’s part of a government scheme, or whether the rate may vary dependent on the applicant’s circumstances.", + "title": "BankGuaranteedIndicator", + "type": "boolean" + }, + "Notes": { + "description": "Optional additional notes to supplement the Tier/band details", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OverdraftFeesCharges": { + "description": "Overdraft fees and charges", + "type": "array", + "title": "OverdraftFeesCharges", + "items": { + "description": "Overdraft fees and charges", + "type": "object", + "properties": { + "OverdraftFeeChargeCap": { + "description": "Details about any caps (maximum charges) that apply to a particular fee/charge. Capping can either be based on an amount (in gbp), an amount (in items) or a rate.", + "type": "array", + "title": "OverdraftFeeChargeCap", + "items": { + "description": "Details about any caps (maximum charges) that apply to a particular fee/charge. Capping can either be based on an amount (in gbp), an amount (in items) or a rate.", + "type": "object", + "properties": { + "FeeType": { + "description": "Fee/charge type which is being capped", + "title": "FeeType", + "type": "array", + "items": { + "description": "Overdraft fee type", + "type": "string", + "enum": [ + "ArrangedOverdraft", + "AnnualReview", + "EmergencyBorrowing", + "BorrowingItem", + "OverdraftRenewal", + "OverdraftSetup", + "Surcharge", + "TempOverdraft", + "UnauthorisedBorrowing", + "UnauthorisedPaidTrans", + "Other", + "UnauthorisedUnpaidTrans" + ] + }, + "minItems": 1 + }, + "MinMaxType": { + "description": "Min Max type", + "title": "MinMaxType", + "type": "string", + "enum": [ + "Minimum", + "Maximum" + ] + }, + "FeeCapOccurrence": { + "description": "Indicates whether the advertised overdraft rate is guaranteed to be offered to a borrower by the bank e.g. if it’s part of a government scheme, or whether the rate may vary dependent on the applicant’s circumstances.", + "title": "FeeCapOccurrence", + "type": "number", + "format": "float" + }, + "FeeCapAmount": { + "description": "Cap amount charged for a fee/charge", + "title": "FeeCapAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "CappingPeriod": { + "description": "Period e.g. day, week, month etc. for which the fee/charge is capped", + "title": "CappingPeriod", + "type": "string", + "enum": [ + "Day", + "Half Year", + "Month", + "Quarter", + "Week", + "Year" + ] + }, + "Notes": { + "description": "Notes related to Overdraft fee charge cap", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "description": "Other fee type code which is not available in the standard code set", + "type": "array", + "title": "OtherFeeType", + "items": { + "description": "Other fee type code which is not available in the standard code set", + "type": "object", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "required": [ + "Name", + "Description" + ] + } + } + }, + "required": [ + "FeeType", + "MinMaxType" + ] + } + }, + "OverdraftFeeChargeDetail": { + "description": "Details about the fees/charges", + "type": "array", + "title": "OverdraftFeeChargeDetail", + "items": { + "description": "Details about the fees/charges", + "type": "object", + "properties": { + "FeeType": { + "description": "Overdraft fee type", + "title": "FeeType", + "type": "string", + "enum": [ + "ArrangedOverdraft", + "AnnualReview", + "EmergencyBorrowing", + "BorrowingItem", + "OverdraftRenewal", + "OverdraftSetup", + "Surcharge", + "TempOverdraft", + "UnauthorisedBorrowing", + "UnauthorisedPaidTrans", + "Other", + "UnauthorisedUnpaidTrans" + ] + }, + "NegotiableIndicator": { + "description": "Indicates whether fee and charges are negotiable", + "title": "NegotiableIndicator", + "type": "boolean" + }, + "OverdraftControlIndicator": { + "description": "Indicates if the fee/charge is already covered by an 'Overdraft Control' fee or not.", + "title": "OverdraftControlIndicator", + "type": "boolean" + }, + "IncrementalBorrowingAmount": { + "description": "Every additional tranche of an overdraft balance to which an overdraft fee is applied", + "title": "IncrementalBorrowingAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "FeeAmount": { + "description": "Amount charged for an overdraft fee/charge (where it is charged in terms of an amount rather than a rate)", + "title": "FeeAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "FeeRate": { + "description": "Rate charged for overdraft fee/charge (where it is charged in terms of a rate rather than an amount)", + "title": "FeeRate", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "FeeRateType": { + "description": "Rate type for overdraft fee/charge (where it is charged in terms of a rate rather than an amount)", + "title": "FeeRateType", + "type": "string", + "enum": [ + "Gross", + "Other" + ] + }, + "ApplicationFrequency": { + "description": "Frequency at which the overdraft charge is applied to the account", + "title": "ApplicationFrequency", + "type": "string", + "enum": [ + "OnClosing", + "OnOpening", + "ChargingPeriod", + "Daily", + "PerItem", + "Monthly", + "OnAnniversary", + "Other", + "PerHundredPounds", + "PerHour", + "PerOccurrence", + "PerSheet", + "PerTransaction", + "PerTransactionAmount", + "PerTransactionPercentage", + "Quarterly", + "SixMonthly", + "StatementMonthly", + "Weekly", + "Yearly" + ] + }, + "CalculationFrequency": { + "description": "How often is the overdraft fee/charge calculated for the account.", + "title": "CalculationFrequency", + "type": "string", + "enum": [ + "OnClosing", + "OnOpening", + "ChargingPeriod", + "Daily", + "PerItem", + "Monthly", + "OnAnniversary", + "Other", + "PerHundredPounds", + "PerHour", + "PerOccurrence", + "PerSheet", + "PerTransaction", + "PerTransactionAmount", + "PerTransactionPercentage", + "Quarterly", + "SixMonthly", + "StatementMonthly", + "Weekly", + "Yearly" + ] + }, + "Notes": { + "description": "Free text for capturing any other info related to Overdraft Fees Charge Details", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OverdraftFeeChargeCap": { + "description": "Details about any caps (maximum charges) that apply to a particular fee/charge. Capping can either be based on an amount (in gbp), an amount (in items) or a rate.", + "type": "array", + "title": "OverdraftFeeChargeCap", + "items": { + "description": "Details about any caps (maximum charges) that apply to a particular fee/charge. Capping can either be based on an amount (in gbp), an amount (in items) or a rate.", + "type": "object", + "properties": { + "FeeType": { + "description": "Fee/charge type which is being capped", + "title": "FeeType", + "type": "array", + "items": { + "description": "Overdraft fee type", + "type": "string", + "enum": [ + "ArrangedOverdraft", + "AnnualReview", + "EmergencyBorrowing", + "BorrowingItem", + "OverdraftRenewal", + "OverdraftSetup", + "Surcharge", + "TempOverdraft", + "UnauthorisedBorrowing", + "UnauthorisedPaidTrans", + "Other", + "UnauthorisedUnpaidTrans" + ] + }, + "minItems": 1 + }, + "MinMaxType": { + "description": "Min Max type", + "title": "MinMaxType", + "type": "string", + "enum": [ + "Minimum", + "Maximum" + ] + }, + "FeeCapOccurrence": { + "description": "Indicates whether the advertised overdraft rate is guaranteed to be offered to a borrower by the bank e.g. if it’s part of a government scheme, or whether the rate may vary dependent on the applicant’s circumstances.", + "title": "FeeCapOccurrence", + "type": "number", + "format": "float" + }, + "FeeCapAmount": { + "description": "Cap amount charged for a fee/charge", + "title": "FeeCapAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "CappingPeriod": { + "description": "Period e.g. day, week, month etc. for which the fee/charge is capped", + "title": "CappingPeriod", + "type": "string", + "enum": [ + "Day", + "Half Year", + "Month", + "Quarter", + "Week", + "Year" + ] + }, + "Notes": { + "description": "Notes related to Overdraft fee charge cap", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "description": "Other fee type code which is not available in the standard code set", + "type": "array", + "title": "OtherFeeType", + "items": { + "description": "Other fee type code which is not available in the standard code set", + "type": "object", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "required": [ + "Name", + "Description" + ] + } + } + }, + "required": [ + "FeeType", + "MinMaxType" + ] + } + }, + "OtherFeeType": { + "description": "Other Fee type which is not available in the standard code set", + "type": "object", + "title": "OtherFeeType", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OtherFeeRateType": { + "description": "Other fee rate type code which is not available in the standard code set", + "type": "object", + "title": "OtherFeeRateType", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OtherApplicationFrequency": { + "description": "Other application frequencies that are not available in the standard code list", + "type": "object", + "title": "OtherApplicationFrequency", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OtherCalculationFrequency": { + "description": "Other calculation frequency which is not available in the standard code set.", + "type": "object", + "title": "OtherCalculationFrequency", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + } + }, + "required": [ + "FeeType", + "ApplicationFrequency" + ] + }, + "minItems": 1 + } + }, + "required": [ + "OverdraftFeeChargeDetail" + ] + } + } + }, + "required": [ + "TierValueMin" + ] + }, + "minItems": 1 + }, + "OverdraftFeesCharges": { + "description": "Overdraft fees and charges details", + "type": "array", + "title": "OverdraftFeesCharges", + "items": { + "description": "Overdraft fees and charges details", + "type": "object", + "properties": { + "OverdraftFeeChargeCap": { + "description": "Details about any caps (maximum charges) that apply to a particular fee/charge. Capping can either be based on an amount (in gbp), an amount (in items) or a rate.", + "type": "array", + "title": "OverdraftFeeChargeCap", + "items": { + "description": "Details about any caps (maximum charges) that apply to a particular fee/charge. Capping can either be based on an amount (in gbp), an amount (in items) or a rate.", + "type": "object", + "properties": { + "FeeType": { + "description": "Fee/charge type which is being capped", + "title": "FeeType", + "type": "array", + "items": { + "description": "Overdraft fee type", + "type": "string", + "enum": [ + "ArrangedOverdraft", + "AnnualReview", + "EmergencyBorrowing", + "BorrowingItem", + "OverdraftRenewal", + "OverdraftSetup", + "Surcharge", + "TempOverdraft", + "UnauthorisedBorrowing", + "UnauthorisedPaidTrans", + "Other", + "UnauthorisedUnpaidTrans" + ] + }, + "minItems": 1 + }, + "MinMaxType": { + "description": "Min Max type", + "title": "MinMaxType", + "type": "string", + "enum": [ + "Minimum", + "Maximum" + ] + }, + "FeeCapOccurrence": { + "description": "Indicates whether the advertised overdraft rate is guaranteed to be offered to a borrower by the bank e.g. if it’s part of a government scheme, or whether the rate may vary dependent on the applicant’s circumstances.", + "title": "FeeCapOccurrence", + "type": "number", + "format": "float" + }, + "FeeCapAmount": { + "description": "Cap amount charged for a fee/charge", + "title": "FeeCapAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "CappingPeriod": { + "description": "Period e.g. day, week, month etc. for which the fee/charge is capped", + "title": "CappingPeriod", + "type": "string", + "enum": [ + "Day", + "Half Year", + "Month", + "Quarter", + "Week", + "Year" + ] + }, + "Notes": { + "description": "Notes related to Overdraft fee charge cap", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "description": "Other fee type code which is not available in the standard code set", + "type": "array", + "title": "OtherFeeType", + "items": { + "description": "Other fee type code which is not available in the standard code set", + "type": "object", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "required": [ + "Name", + "Description" + ] + } + } + }, + "required": [ + "FeeType", + "MinMaxType" + ] + } + }, + "OverdraftFeeChargeDetail": { + "description": "Details about the fees/charges", + "type": "array", + "title": "OverdraftFeeChargeDetail", + "items": { + "description": "Details about the fees/charges", + "type": "object", + "properties": { + "FeeType": { + "description": "Overdraft fee type", + "title": "FeeType", + "type": "string", + "enum": [ + "ArrangedOverdraft", + "AnnualReview", + "EmergencyBorrowing", + "BorrowingItem", + "OverdraftRenewal", + "OverdraftSetup", + "Surcharge", + "TempOverdraft", + "UnauthorisedBorrowing", + "UnauthorisedPaidTrans", + "Other", + "UnauthorisedUnpaidTrans" + ] + }, + "NegotiableIndicator": { + "description": "Indicates whether fee and charges are negotiable", + "title": "NegotiableIndicator", + "type": "boolean" + }, + "OverdraftControlIndicator": { + "description": "Indicates if the fee/charge is already covered by an 'Overdraft Control' fee or not.", + "title": "OverdraftControlIndicator", + "type": "boolean" + }, + "IncrementalBorrowingAmount": { + "description": "Every additional tranche of an overdraft balance to which an overdraft fee is applied", + "title": "IncrementalBorrowingAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "FeeAmount": { + "description": "Amount charged for an overdraft fee/charge (where it is charged in terms of an amount rather than a rate)", + "title": "FeeAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "FeeRate": { + "description": "Rate charged for overdraft fee/charge (where it is charged in terms of a rate rather than an amount)", + "title": "FeeRate", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "FeeRateType": { + "description": "Rate type for overdraft fee/charge (where it is charged in terms of a rate rather than an amount)", + "title": "FeeRateType", + "type": "string", + "enum": [ + "Gross", + "Other" + ] + }, + "ApplicationFrequency": { + "description": "Frequency at which the overdraft charge is applied to the account", + "title": "ApplicationFrequency", + "type": "string", + "enum": [ + "OnClosing", + "OnOpening", + "ChargingPeriod", + "Daily", + "PerItem", + "Monthly", + "OnAnniversary", + "Other", + "PerHundredPounds", + "PerHour", + "PerOccurrence", + "PerSheet", + "PerTransaction", + "PerTransactionAmount", + "PerTransactionPercentage", + "Quarterly", + "SixMonthly", + "StatementMonthly", + "Weekly", + "Yearly" + ] + }, + "CalculationFrequency": { + "description": "How often is the overdraft fee/charge calculated for the account.", + "title": "CalculationFrequency", + "type": "string", + "enum": [ + "OnClosing", + "OnOpening", + "ChargingPeriod", + "Daily", + "PerItem", + "Monthly", + "OnAnniversary", + "Other", + "PerHundredPounds", + "PerHour", + "PerOccurrence", + "PerSheet", + "PerTransaction", + "PerTransactionAmount", + "PerTransactionPercentage", + "Quarterly", + "SixMonthly", + "StatementMonthly", + "Weekly", + "Yearly" + ] + }, + "Notes": { + "description": "Free text for capturing any other info related to Overdraft Fees Charge Details", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OverdraftFeeChargeCap": { + "description": "Details about any caps (maximum charges) that apply to a particular fee/charge. Capping can either be based on an amount (in gbp), an amount (in items) or a rate.", + "type": "array", + "title": "OverdraftFeeChargeCap", + "items": { + "description": "Details about any caps (maximum charges) that apply to a particular fee/charge. Capping can either be based on an amount (in gbp), an amount (in items) or a rate.", + "type": "object", + "properties": { + "FeeType": { + "description": "Fee/charge type which is being capped", + "title": "FeeType", + "type": "array", + "items": { + "description": "Overdraft fee type", + "type": "string", + "enum": [ + "ArrangedOverdraft", + "AnnualReview", + "EmergencyBorrowing", + "BorrowingItem", + "OverdraftRenewal", + "OverdraftSetup", + "Surcharge", + "TempOverdraft", + "UnauthorisedBorrowing", + "UnauthorisedPaidTrans", + "Other", + "UnauthorisedUnpaidTrans" + ] + }, + "minItems": 1 + }, + "MinMaxType": { + "description": "Min Max type", + "title": "MinMaxType", + "type": "string", + "enum": [ + "Minimum", + "Maximum" + ] + }, + "FeeCapOccurrence": { + "description": "Indicates whether the advertised overdraft rate is guaranteed to be offered to a borrower by the bank e.g. if it’s part of a government scheme, or whether the rate may vary dependent on the applicant’s circumstances.", + "title": "FeeCapOccurrence", + "type": "number", + "format": "float" + }, + "FeeCapAmount": { + "description": "Cap amount charged for a fee/charge", + "title": "FeeCapAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "CappingPeriod": { + "description": "Period e.g. day, week, month etc. for which the fee/charge is capped", + "title": "CappingPeriod", + "type": "string", + "enum": [ + "Day", + "Half Year", + "Month", + "Quarter", + "Week", + "Year" + ] + }, + "Notes": { + "description": "Notes related to Overdraft fee charge cap", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "description": "Other fee type code which is not available in the standard code set", + "type": "array", + "title": "OtherFeeType", + "items": { + "description": "Other fee type code which is not available in the standard code set", + "type": "object", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "required": [ + "Name", + "Description" + ] + } + } + }, + "required": [ + "FeeType", + "MinMaxType" + ] + } + }, + "OtherFeeType": { + "description": "Other Fee type which is not available in the standard code set", + "type": "object", + "title": "OtherFeeType", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OtherFeeRateType": { + "description": "Other fee rate type code which is not available in the standard code set", + "type": "object", + "title": "OtherFeeRateType", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OtherApplicationFrequency": { + "description": "Other application frequencies that are not available in the standard code list", + "type": "object", + "title": "OtherApplicationFrequency", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OtherCalculationFrequency": { + "description": "Other calculation frequency which is not available in the standard code set.", + "type": "object", + "title": "OtherCalculationFrequency", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + } + }, + "required": [ + "FeeType", + "ApplicationFrequency" + ] + }, + "minItems": 1 + } + }, + "required": [ + "OverdraftFeeChargeDetail" + ] + } + } + }, + "required": [ + "TierBandMethod", + "OverdraftTierBand" + ] + }, + "minItems": 1 + } + }, + "additionalProperties": false, + "required": [ + "OverdraftTierBandSet" + ] + }, + "OtherFeesCharges": { + "description": "Contains details of fees and charges which are not associated with either Overdraft or features/benefits", + "type": "array", + "title": "OtherFeesCharges", + "items": { + "description": "Contains details of fees and charges which are not associated with either Overdraft or features/benefits", + "type": "object", + "properties": { + "TariffType": { + "description": "TariffType which defines the fee and charges.", + "title": "TariffType", + "type": "string", + "enum": [ + "Electronic", + "Mixed", + "Other" + ] + }, + "TariffName": { + "description": "Name of the tariff", + "title": "TariffName", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "OtherTariffType": { + "description": "Other tariff type which is not in the standard list.", + "type": "object", + "title": "OtherTariffType", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "FeeChargeDetail": { + "description": "Other fees/charges details", + "type": "array", + "title": "FeeChargeDetail", + "items": { + "description": "Other fees/charges details", + "type": "object", + "properties": { + "FeeCategory": { + "description": "Categorisation of fees and charges into standard categories.", + "title": "FeeCategory", + "type": "string", + "enum": [ + "Other", + "Servicing" + ] + }, + "FeeType": { + "description": "Fee/Charge Type", + "title": "FeeType", + "type": "string", + "enum": [ + "Other", + "ServiceCAccountFee", + "ServiceCAccountFeeMonthly", + "ServiceCAccountFeeQuarterly", + "ServiceCFixedTariff", + "ServiceCBusiDepAccBreakage", + "ServiceCMinimumMonthlyFee", + "ServiceCOther" + ] + }, + "NegotiableIndicator": { + "description": "Fee/charge which is usually negotiable rather than a fixed amount", + "title": "NegotiableIndicator", + "type": "boolean" + }, + "FeeAmount": { + "description": "Fee Amount charged for a fee/charge (where it is charged in terms of an amount rather than a rate)", + "title": "FeeAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "FeeRate": { + "description": "Rate charged for Fee/Charge (where it is charged in terms of a rate rather than an amount)", + "title": "FeeRate", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "FeeRateType": { + "description": "Rate type for Fee/Charge (where it is charged in terms of a rate rather than an amount)", + "title": "FeeRateType", + "type": "string", + "enum": [ + "Gross", + "Other" + ] + }, + "ApplicationFrequency": { + "description": "How frequently the fee/charge is applied to the account", + "title": "ApplicationFrequency", + "type": "string", + "enum": [ + "OnClosing", + "OnOpening", + "ChargingPeriod", + "Daily", + "PerItem", + "Monthly", + "OnAnniversary", + "Other", + "PerHundredPounds", + "PerHour", + "PerOccurrence", + "PerSheet", + "PerTransaction", + "PerTransactionAmount", + "PerTransactionPercentage", + "Quarterly", + "SixMonthly", + "StatementMonthly", + "Weekly", + "Yearly" + ] + }, + "CalculationFrequency": { + "description": "How frequently the fee/charge is calculated", + "title": "CalculationFrequency", + "type": "string", + "enum": [ + "OnClosing", + "OnOpening", + "ChargingPeriod", + "Daily", + "PerItem", + "Monthly", + "OnAnniversary", + "Other", + "PerHundredPounds", + "PerHour", + "PerOccurrence", + "PerSheet", + "PerTransaction", + "PerTransactionAmount", + "PerTransactionPercentage", + "Quarterly", + "SixMonthly", + "StatementMonthly", + "Weekly", + "Yearly" + ] + }, + "Notes": { + "description": "Optional additional notes to supplement the fee/charge details.", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "FeeChargeCap": { + "description": "Details about any caps (maximum charges) that apply to a particular or group of fee/charge", + "type": "array", + "title": "FeeChargeCap", + "items": { + "description": "Details about any caps (maximum charges) that apply to a particular or group of fee/charge", + "type": "object", + "properties": { + "FeeType": { + "description": "Fee/charge type which is being capped", + "title": "FeeType", + "type": "array", + "items": { + "description": "Fee/charge type which is being capped", + "type": "string", + "enum": [ + "Other", + "ServiceCAccountFee", + "ServiceCAccountFeeMonthly", + "ServiceCAccountFeeQuarterly", + "ServiceCFixedTariff", + "ServiceCBusiDepAccBreakage", + "ServiceCMinimumMonthlyFee", + "ServiceCOther" + ] + }, + "minItems": 1 + }, + "MinMaxType": { + "description": "Min Max type", + "title": "MinMaxType", + "type": "string", + "enum": [ + "Minimum", + "Maximum" + ] + }, + "FeeCapOccurrence": { + "description": "fee/charges are captured dependent on the number of occurrences rather than capped at a particular amount", + "title": "FeeCapOccurrence", + "type": "number", + "format": "float" + }, + "FeeCapAmount": { + "description": "Cap amount charged for a fee/charge (where it is charged in terms of an amount rather than a rate)", + "title": "FeeCapAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "CappingPeriod": { + "description": "Period e.g. day, week, month etc. for which the fee/charge is capped", + "title": "CappingPeriod", + "type": "string", + "enum": [ + "Day", + "Half Year", + "Month", + "Quarter", + "Week", + "Year" + ] + }, + "Notes": { + "description": "Free text for adding extra details for fee charge cap", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "description": "Other fee type code which is not available in the standard code set", + "type": "array", + "title": "OtherFeeType", + "items": { + "description": "Other fee type code which is not available in the standard code set", + "type": "object", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "required": [ + "Name", + "Description" + ] + } + } + }, + "required": [ + "FeeType", + "MinMaxType" + ] + } + }, + "OtherFeeCategoryType": { + "type": "object", + "title": "OtherFeeCategoryType", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OtherFeeType": { + "description": "Other Fee/charge type which is not available in the standard code set", + "type": "object", + "title": "OtherFeeType", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "FeeCategory": { + "description": "Categorisation of fees and charges into standard categories.", + "title": "FeeCategory", + "type": "string", + "enum": [ + "Other", + "Servicing" + ] + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "FeeCategory", + "Name", + "Description" + ] + }, + "OtherFeeRateType": { + "description": "Other fee rate type which is not available in the standard code set", + "type": "object", + "title": "OtherFeeRateType", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OtherApplicationFrequency": { + "description": "Other application frequencies not covered in the standard code list", + "type": "object", + "title": "OtherApplicationFrequency", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OtherCalculationFrequency": { + "description": "Other calculation frequency which is not available in standard code set.", + "type": "object", + "title": "OtherCalculationFrequency", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "FeeApplicableRange": { + "description": "Range or amounts or rates for which the fee/charge applies", + "type": "object", + "title": "FeeApplicableRange", + "properties": { + "MinimumAmount": { + "description": "Minimum Amount on which fee/charge is applicable (where it is expressed as an amount)", + "title": "MinimumAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "MaximumAmount": { + "description": "Maximum Amount on which fee is applicable (where it is expressed as an amount)", + "title": "MaximumAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "MinimumRate": { + "description": "Minimum rate on which fee/charge is applicable(where it is expressed as a rate)", + "title": "MinimumRate", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "MaximumRate": { + "description": "Maximum rate on which fee/charge is applicable(where it is expressed as a rate)", + "title": "MaximumRate", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + } + }, + "additionalProperties": false + } + }, + "required": [ + "FeeCategory", + "FeeType", + "ApplicationFrequency" + ] + }, + "minItems": 1 + }, + "FeeChargeCap": { + "description": "Details about any caps (maximum charges) that apply to a particular or group of fee/charge", + "type": "array", + "title": "FeeChargeCap", + "items": { + "description": "Details about any caps (maximum charges) that apply to a particular or group of fee/charge", + "type": "object", + "properties": { + "FeeType": { + "description": "Fee/charge type which is being capped", + "title": "FeeType", + "type": "array", + "items": { + "description": "Fee/charge type which is being capped", + "type": "string", + "enum": [ + "Other", + "ServiceCAccountFee", + "ServiceCAccountFeeMonthly", + "ServiceCAccountFeeQuarterly", + "ServiceCFixedTariff", + "ServiceCBusiDepAccBreakage", + "ServiceCMinimumMonthlyFee", + "ServiceCOther" + ] + }, + "minItems": 1 + }, + "MinMaxType": { + "description": "Min Max type", + "title": "MinMaxType", + "type": "string", + "enum": [ + "Minimum", + "Maximum" + ] + }, + "FeeCapOccurrence": { + "description": "fee/charges are captured dependent on the number of occurrences rather than capped at a particular amount", + "title": "FeeCapOccurrence", + "type": "number", + "format": "float" + }, + "FeeCapAmount": { + "description": "Cap amount charged for a fee/charge (where it is charged in terms of an amount rather than a rate)", + "title": "FeeCapAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "CappingPeriod": { + "description": "Period e.g. day, week, month etc. for which the fee/charge is capped", + "title": "CappingPeriod", + "type": "string", + "enum": [ + "Day", + "Half Year", + "Month", + "Quarter", + "Week", + "Year" + ] + }, + "Notes": { + "description": "Free text for adding extra details for fee charge cap", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "description": "Other fee type code which is not available in the standard code set", + "type": "array", + "title": "OtherFeeType", + "items": { + "description": "Other fee type code which is not available in the standard code set", + "type": "object", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "required": [ + "Name", + "Description" + ] + } + } + }, + "required": [ + "FeeType", + "MinMaxType" + ] + } + } + }, + "required": [ + "FeeChargeDetail" + ] + } + } + }, + "additionalProperties": false + }, + "OBBalanceType1Code": { + "description": "Balance type, in a coded form.
For a full list of enumeration values refer to `ExternalBalanceType1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets).", + "type": "string", + "example": "CLAV", + "enum": [ + "CLAV", + "CLBD", + "FWAV", + "INFO", + "ITAV", + "ITBD", + "OPAV", + "OPBD", + "PRCD", + "XPCD" + ] + }, + "OBBankTransactionCodeStructure1": { + "type": "object", + "required": [ + "Code", + "SubCode" + ], + "description": "Set of elements used to fully identify the type of underlying transaction resulting in an entry.", + "properties": { + "Code": { + "description": "Specifies the family within a domain.", + "type": "string" + }, + "SubCode": { + "description": "Specifies the sub-product family within a specific family.", + "type": "string" + } + } + }, + "OBBeneficiary5": { + "type": "object", + "properties": { + "AccountId": { + "$ref": "#/components/schemas/AccountId" + }, + "BeneficiaryId": { + "$ref": "#/components/schemas/BeneficiaryId" + }, + "BeneficiaryType": { + "$ref": "#/components/schemas/OBInternalBeneficiaryType1Code" + }, + "Reference": { + "$ref": "#/components/schemas/Reference" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + }, + "CreditorAgent": { + "$ref": "#/components/schemas/OBBranchAndFinancialInstitutionIdentification6_0" + }, + "CreditorAccount": { + "$ref": "#/components/schemas/OBCashAccount5_0" + } + }, + "additionalProperties": false + }, + "OBBeneficiary5Basic": { + "type": "object", + "properties": { + "AccountId": { + "$ref": "#/components/schemas/AccountId" + }, + "BeneficiaryId": { + "$ref": "#/components/schemas/BeneficiaryId" + }, + "BeneficiaryType": { + "$ref": "#/components/schemas/OBInternalBeneficiaryType1Code" + }, + "Reference": { + "$ref": "#/components/schemas/Reference" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + }, + "additionalProperties": false + }, + "OBBeneficiary5Detail": { + "type": "object", + "properties": { + "AccountId": { + "$ref": "#/components/schemas/AccountId" + }, + "BeneficiaryId": { + "$ref": "#/components/schemas/BeneficiaryId" + }, + "BeneficiaryType": { + "$ref": "#/components/schemas/OBInternalBeneficiaryType1Code" + }, + "Reference": { + "$ref": "#/components/schemas/Reference" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + }, + "CreditorAgent": { + "$ref": "#/components/schemas/OBBranchAndFinancialInstitutionIdentification6_0" + }, + "CreditorAccount": { + "$ref": "#/components/schemas/OBCashAccount5_0" + } + }, + "additionalProperties": false, + "required": [ + "CreditorAccount" + ] + }, + "OBBranchAndFinancialInstitutionIdentification5_0": { + "type": "object", + "required": [ + "SchemeName", + "Identification" + ], + "description": "Party that manages the account on behalf of the account owner, that is manages the registration and booking of entries on the account, calculates balances on the account and provides information about the account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_1" + }, + "Name": { + "$ref": "#/components/schemas/Name_1" + } + } + }, + "OBBranchAndFinancialInstitutionIdentification5_1": { + "type": "object", + "required": [ + "SchemeName", + "Identification" + ], + "description": "Party that manages the account on behalf of the account owner, that is manages the registration and booking of entries on the account, calculates balances on the account and provides information about the account.\nThis is the servicer of the beneficiary account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_1" + }, + "Name": { + "$ref": "#/components/schemas/Name_1" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + } + } + }, + "OBBranchAndFinancialInstitutionIdentification6_0": { + "type": "object", + "description": "Party that manages the account on behalf of the account owner, that is manages the registration and booking of entries on the account, calculates balances on the account and provides information about the account.\nThis is the servicer of the beneficiary account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_1" + }, + "Name": { + "$ref": "#/components/schemas/Name_1" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + } + } + }, + "OBBranchAndFinancialInstitutionIdentification6_1": { + "type": "object", + "description": "Financial institution servicing an account for the creditor.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_2" + }, + "Name": { + "$ref": "#/components/schemas/Name_1" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "OBBranchAndFinancialInstitutionIdentification6_2": { + "type": "object", + "description": "Financial institution servicing an account for the debtor.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_2" + }, + "Name": { + "$ref": "#/components/schemas/Name_1" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "OBCashAccount5_0": { + "type": "object", + "required": [ + "SchemeName", + "Identification" + ], + "description": "Provides the details to identify the beneficiary account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "$ref": "#/components/schemas/Name_0" + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "OBCashAccount5_1": { + "type": "object", + "required": [ + "SchemeName", + "Identification" + ], + "description": "Provides the details to identify the beneficiary account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "description": "Beneficiary account identification.", + "type": "string", + "minLength": 1, + "maxLength": 256 + }, + "Name": { + "$ref": "#/components/schemas/Name_0" + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "OBCashAccount6_0": { + "type": "object", + "description": "Unambiguous identification of the account of the creditor, in the case of a debit transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "$ref": "#/components/schemas/Name_0" + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "OBCashAccount6_1": { + "type": "object", + "description": "Unambiguous identification of the account of the debtor, in the case of a credit transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "$ref": "#/components/schemas/Name_0" + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "ExternalCategoryPurpose1Code": { + "description": "Enumeration of codes that outlines the type of purpose behind a transaction, payment or risk. For all enum values see `ExternalCategoryPurpose1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "BONU", + "CASH", + "CBLK", + "CCRD", + "CGWV", + "CIPC", + "CONC", + "CORT", + "DCRD", + "DIVI", + "DVPM", + "EPAY", + "FCDT", + "FCIN", + "FCOL", + "GOVT", + "GP2P", + "HEDG", + "ICCP", + "IDCP", + "INTC", + "INTE", + "LBOX", + "LOAN", + "MP2B", + "MP2P", + "OTHR", + "PENS", + "RPRE", + "RRCT", + "RVPM", + "SALA", + "SECU", + "SSBE", + "SUPP", + "SWEP", + "TAXS", + "TOPG", + "TRAD", + "TREA", + "VATX", + "VOST", + "WHLD", + "ZABA" + ] + }, + "OBExternalMandateClassification1Code": { + "description": "Type of mandate instruction. For a full list of values see `OBExternalClassification1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "example": "FIXE", + "enum": [ + "FIXE", + "USGB", + "VARI" + ] + }, + "OBCommunicationMethod": { + "description": "For a full list of enumeration values see `OBExternalCommunicationMethod2Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_internal_CodeSets) ", + "type": "string", + "enum": [ + "EMAL", + "FAXI", + "FILE", + "ONLI", + "POST" + ] + }, + "OBCreditDebitCode_0": { + "description": "Indicates whether the amount is a credit or a debit. For a full list of values see `OBInternalCreditDebitCode` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)
\nUsage: A zero amount is considered to be a credit amount.", + "type": "string", + "example": "Credit", + "enum": [ + "Credit", + "Debit" + ] + }, + "OBCreditDebitCode_1": { + "description": "Indicates whether the transaction is a credit or a debit entry.
\n
\nFor a full list of enumeration values refer to `OBInternalCreditDebitCode` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "Credit", + "Debit" + ] + }, + "OBCreditDebitCode_2": { + "description": "Indicates whether the balance is a credit or a debit balance. \nUsage: A zero balance is considered to be a credit balance.\n
\nFor a full list of enumeration values refer to `OBInternalCreditDebitCode` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "example": "Credit", + "enum": [ + "Credit", + "Debit" + ] + }, + "OBCurrencyExchange5": { + "type": "object", + "required": [ + "SourceCurrency", + "ExchangeRate" + ], + "description": "Set of elements used to provide details on the currency exchange.", + "properties": { + "SourceCurrency": { + "description": "Currency from which an amount is to be converted in a currency conversion.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "TargetCurrency": { + "description": "Currency into which an amount is to be converted in a currency conversion.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "UnitCurrency": { + "description": "Currency in which the rate of exchange is expressed in a currency exchange. In the example 1GBP = xxxCUR, the unit currency is GBP.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "ExchangeRate": { + "description": "Factor used to convert an amount from one currency into another. This reflects the price at which one currency was bought with another currency.\nUsage: ExchangeRate expresses the ratio between UnitCurrency and QuotedCurrency (ExchangeRate = UnitCurrency/QuotedCurrency).", + "type": "number" + }, + "ContractIdentification": { + "description": "Unique identification to unambiguously identify the foreign exchange contract.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "QuotationDate": { + "description": "Date and time at which an exchange rate is quoted. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "InstructedAmount": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "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.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + } + } + } + } + }, + "ExternalEntryStatus1Code": { + "description": "Status of a transaction entry on the books of the account servicer.
\nFor a full list of enumeration values refer to `ExternalEntryStatus1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "BOOK", + "FUTR", + "INFO", + "PDNG", + "RJCT" + ] + }, + "OBInternalTransactionMutability1Code": { + "description": "Specifies the Mutability of the Transaction record.
\nFor a full list of enumeration values refer to `OBInternalTransactionMutability1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "Mutable", + "Immutable" + ] + }, + "OBError1": { + "type": "object", + "properties": { + "ErrorCode": { + "$ref": "#/components/schemas/OBExternalStatusReason1Code" + }, + "Message": { + "description": "A description of the error that occurred. e.g., 'A mandatory field isn't supplied' or 'RequestedExecutionDateTime must be in future'\nOBL doesn't standardise this field", + "type": "string", + "minLength": 1, + "maxLength": 500 + }, + "Path": { + "description": "Recommended but optional reference to the JSON Path of the field with error, e.g., Data.Initiation.InstructedAmount.Currency", + "type": "string", + "minLength": 1, + "maxLength": 500 + }, + "Url": { + "description": "URL to help remediate the problem, or provide more information, or to API Reference, or help etc", + "type": "string" + } + }, + "required": [ + "ErrorCode" + ], + "additionalProperties": false, + "minProperties": 1 + }, + "OBErrorResponse1": { + "description": "An array of detail error codes, and messages, and URLs to documentation to help remediation.", + "type": "object", + "properties": { + "Id": { + "description": "A unique reference for the error instance, for audit purposes, in case of unknown/unclassified errors.", + "type": "string", + "minLength": 1, + "maxLength": 40 + }, + "Code": { + "description": "Deprecated
High level textual error code, to help categorise the errors.", + "type": "string", + "minLength": 1, + "example": "400 BadRequest", + "maxLength": 40 + }, + "Message": { + "description": "Deprecated
Brief Error message", + "type": "string", + "minLength": 1, + "example": "There is something wrong with the request parameters provided", + "maxLength": 500 + }, + "Errors": { + "items": { + "$ref": "#/components/schemas/OBError1" + }, + "type": "array", + "minItems": 1 + } + }, + "required": [ + "Errors" + ], + "additionalProperties": false + }, + "OBInternalAccountIdentification4Code": { + "description": "Name of the identification scheme, in a coded form as published in an external list.
For a full list of enumeration values refer to `OBInternalAccountIdentification4Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "x-namespaced-enum": [ + "UK.OBIE.BBAN", + "UK.OBIE.IBAN", + "UK.OBIE.PAN", + "UK.OBIE.Paym", + "UK.OBIE.SortCodeAccountNumber", + "UK.OBIE.Wallet" + ] + }, + "OBInternalAccountRole1Code": { + "description": "A party’s role with respect to the related account. For a full list refer to `OBInternalAccountRole1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "x-namespaced-enum": [ + "UK.OBIE.Administrator", + "UK.OBIE.Beneficiary", + "UK.OBIE.CustodianForMinor", + "UK.OBIE.Granter", + "UK.OBIE.LegalGuardian", + "UK.OBIE.OtherParty", + "UK.OBIE.PowerOfAttorney", + "UK.OBIE.Principal", + "UK.OBIE.Protector", + "UK.OBIE.RegisteredShareholderName", + "UK.OBIE.SecondaryOwner", + "UK.OBIE.SeniorManagingOfficial", + "UK.OBIE.Settlor", + "UK.OBIE.SuccessorOnDeath" + ] + }, + "OBExternalAccountSubType1Code": { + "description": "Specifies the sub type of account (product family group)
For a full list of enumeration values refer to `OBExternalCashAccountType1Code` *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "CACC", + "CARD", + "CASH", + "CHAR", + "CISH", + "COMM", + "CPAC", + "LLSV", + "LOAN", + "MGLD", + "MOMA", + "NREX", + "ODFT", + "ONDP", + "OTHR", + "SACC", + "SLRY", + "SVGS", + "TAXE", + "TRAN", + "TRAS", + "VACC", + "NFCA", + "MORT", + "WALT" + ] + }, + "OBInternalAccountType1Code": { + "description": "Specifies the type of account (personal or business).
For a full list of enumeration values refer to 'OBInternalAccountType1Code' in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "Business", + "Personal" + ] + }, + "OBExternalBalanceSubType1Code": { + "description": "Amount sub type, in a coded form. Default if not specified is BCUR of the account.", + "type": "string", + "enum": [ + "BCUR", + "LCUR" + ] + }, + "OBInternalFinancialInstitutionIdentification4Code": { + "description": "Name of the identification scheme, in a coded form as published in an external list.
For a full list of enumeration values refer to `OBInternalFinancialInstitutionIdentification4Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "example": "UK.OBIE.BICFI", + "x-namespaced-enum": [ + "UK.OBIE.BICFI" + ] + }, + "OBInternalSwitchStatusCode": { + "description": "Specifies the switch status for the account, in a coded form.
For a full list of enumeration values refer to `OBInternalSwitchStatusCode` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "x-namespaced-enum": [ + "UK.CASS.NotSwitched", + "UK.CASS.SwitchCompleted" + ] + }, + "OBInternalLegalStructureType1Code": { + "description": "Legal standing of the party. For a full list refer to `OBInternalLegalStructureType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "example": "UK.OBIE.Individual", + "x-namespaced-enum": [ + "UK.OBIE.CIC", + "UK.OBIE.CIO", + "UK.OBIE.Charity", + "UK.OBIE.CoOp", + "UK.OBIE.GeneralPartnership", + "UK.OBIE.Individual", + "UK.OBIE.LimitedLiabilityPartnership", + "UK.OBIE.LimitedPartnership", + "UK.OBIE.PrivateLimitedCompany", + "UK.OBIE.PublicLimitedCompany", + "UK.OBIE.ScottishLimitedPartnership", + "UK.OBIE.Sole" + ] + }, + "OBInternalPartyType1Code": { + "description": "Party type, in a coded form. For a full list see `OBInternalPartyType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "example": "Joint", + "enum": [ + "Delegate", + "Joint", + "Sole" + ] + }, + "OBExternalPurpose1Code": { + "type": "string", + "minLength": 1, + "maxLength": 4, + "description": "For a full list of enumeration values refer to `ExternalPurpose1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "enum": [ + "BKDF", + "BKFE", + "BKFM", + "BKIP", + "BKPP", + "CBLK", + "CDCB", + "CDCD", + "CDCS", + "CDDP", + "CDOC", + "CDQC", + "ETUP", + "FCOL", + "MTUP", + "ACCT", + "CASH", + "COLL", + "CSDB", + "DEPT", + "INTC", + "INTP", + "LIMA", + "NETT", + "BFWD", + "CCIR", + "CCPC", + "CCPM", + "CCSM", + "CRDS", + "CRPR", + "CRSP", + "CRTL", + "EQPT", + "EQUS", + "EXPT", + "EXTD", + "FIXI", + "FWBC", + "FWCC", + "FWSB", + "FWSC", + "MARG", + "MBSB", + "MBSC", + "MGCC", + "MGSC", + "OCCC", + "OPBC", + "OPCC", + "OPSB", + "OPSC", + "OPTN", + "OTCD", + "REPO", + "RPBC", + "RPCC", + "RPSB", + "RPSC", + "RVPO", + "SBSC", + "SCIE", + "SCIR", + "SCRP", + "SHBC", + "SHCC", + "SHSL", + "SLEB", + "SLOA", + "SWBC", + "SWCC", + "SWPT", + "SWSB", + "SWSC", + "TBAS", + "TBBC", + "TBCC", + "TRCP", + "AGRT", + "AREN", + "BEXP", + "BOCE", + "COMC", + "CPYR", + "GDDS", + "GDSV", + "GSCB", + "LICF", + "MP2B", + "POPE", + "ROYA", + "SCVE", + "SERV", + "SUBS", + "SUPP", + "TRAD", + "CHAR", + "COMT", + "MP2P", + "ECPG", + "ECPR", + "ECPU", + "EPAY", + "CLPR", + "COMP", + "DBTC", + "GOVI", + "HLRP", + "HLST", + "INPC", + "INPR", + "INSC", + "INSU", + "INTE", + "LBRI", + "LIFI", + "LOAN", + "LOAR", + "PENO", + "PPTI", + "RELG", + "RINP", + "TRFD", + "FORW", + "FXNT", + "ADMG", + "ADVA", + "BCDM", + "BCFG", + "BLDM", + "BNET", + "CBFF", + "CBFR", + "CCRD", + "CDBL", + "CFEE", + "CGDD", + "CORT", + "COST", + "CPKC", + "DCRD", + "DSMT", + "DVPM", + "EDUC", + "FACT", + "FAND", + "FCPM", + "FEES", + "GIFT", + "GOVT", + "ICCP", + "IDCP", + "IHRP", + "INSM", + "IVPT", + "MCDM", + "MCFG", + "MSVC", + "NOWS", + "OCDM", + "OCFG", + "OFEE", + "OTHR", + "PADD", + "PTSP", + "RCKE", + "RCPT", + "REBT", + "REFU", + "RENT", + "REOD", + "RIMB", + "RPNT", + "RRBN", + "RRCT", + "RRTP", + "RVPM", + "SLPI", + "SPLT", + "STDY", + "TBAN", + "TBIL", + "TCSC", + "TELI", + "TMPG", + "TPRI", + "TPRP", + "TRNC", + "TRVC", + "WEBI", + "IPAY", + "IPCA", + "IPDO", + "IPEA", + "IPEC", + "IPEW", + "IPPS", + "IPRT", + "IPU2", + "IPUW", + "ANNI", + "CAFI", + "CFDI", + "CMDT", + "DERI", + "DIVD", + "FREX", + "HEDG", + "INVS", + "PRME", + "SAVG", + "SECU", + "SEPI", + "TREA", + "UNIT", + "FNET", + "FUTR", + "ANTS", + "CVCF", + "DMEQ", + "DNTS", + "HLTC", + "HLTI", + "HSPC", + "ICRF", + "LTCF", + "MAFC", + "MARF", + "MDCS", + "VIEW", + "CDEP", + "SWFP", + "SWPP", + "SWRS", + "SWUF", + "ADCS", + "AEMP", + "ALLW", + "ALMY", + "BBSC", + "BECH", + "BENE", + "BONU", + "CCHD", + "COMM", + "CSLP", + "GFRP", + "GVEA", + "GVEB", + "GVEC", + "GVED", + "GWLT", + "HREC", + "PAYR", + "PEFC", + "PENS", + "PRCP", + "RHBS", + "SALA", + "SPSP", + "SSBE", + "LBIN", + "LCOL", + "LFEE", + "LMEQ", + "LMFI", + "LMRK", + "LREB", + "LREV", + "LSFL", + "ESTX", + "FWLV", + "GSTX", + "HSTX", + "INTX", + "NITX", + "PTXP", + "RDTX", + "TAXS", + "VATX", + "WHLD", + "TAXR", + "B112", + "BR12", + "TLRF", + "TLRR", + "AIRB", + "BUSB", + "FERB", + "RLWY", + "TRPT", + "CBTV", + "ELEC", + "ENRG", + "GASB", + "NWCH", + "NWCM", + "OTLC", + "PHON", + "UBIL", + "WTER", + "BOND", + "CABD", + "CAEQ", + "CBCR", + "DBCR", + "DICL", + "EQTS", + "FLCR", + "EFTC", + "EFTD", + "MOMA", + "RAPI", + "GAMB", + "LOTT", + "AMEX", + "SASW", + "AUCO", + "PCOM", + "PDEP", + "PLDS", + "PLRF", + "GAFA", + "GAHO", + "CPEN", + "DEPD", + "RETL", + "DEBT", + "CRYP" + ] + }, + "OBInternalScheduleType1Code": { + "description": "Specifies the scheduled payment date type requested. For a full list of enumeration values refer to `OBInternalScheduleType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "example": "Arrival", + "enum": [ + "Arrival", + "Execution" + ] + }, + "ExternalMandateStatus1Code": { + "description": "Specifies the status of the standing order in code form. For a full list of enumeration values refer to 'ExternalMandateStatus1Code' in *ISO_External_Codeset* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "ACTV", + "CANC", + "EXPI", + "SUSP" + ], + "example": "ACTV" + }, + "OBInternalStatementAmountType1Code": { + "description": "Amount type, in a coded form.", + "type": "string", + "example": "UK.OBIE.CreditLimit", + "x-namespaced-enum": [ + "UK.OBIE.ArrearsClosingBalance", + "UK.OBIE.AvailableBalance", + "UK.OBIE.AverageBalanceWhenInCredit", + "UK.OBIE.AverageBalanceWhenInDebit", + "UK.OBIE.AverageDailyBalance", + "UK.OBIE.BalanceTransferClosingBalance", + "UK.OBIE.CashClosingBalance", + "UK.OBIE.ClosingBalance", + "UK.OBIE.CreditLimit", + "UK.OBIE.CurrentPayment", + "UK.OBIE.DirectDebitPaymentDue", + "UK.OBIE.FSCSInsurance", + "UK.OBIE.MinimumPaymentDue", + "UK.OBIE.PendingTransactionsBalance", + "UK.OBIE.PreviousClosingBalance", + "UK.OBIE.PreviousPayment", + "UK.OBIE.PurchaseClosingBalance", + "UK.OBIE.StartingBalance", + "UK.OBIE.TotalAdjustments", + "UK.OBIE.TotalCashAdvances", + "UK.OBIE.TotalCharges", + "UK.OBIE.TotalCredits", + "UK.OBIE.TotalDebits", + "UK.OBIE.TotalPurchases" + ] + }, + "OBInternalStatementBenefitType1Code": { + "description": "Benefit type, in a coded form. For a full list of values see `OBInternalStatementBenefitType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "example": "UK.OBIE.Cashback", + "x-namespaced-enum": [ + "UK.OBIE.Cashback", + "UK.OBIE.Insurance", + "UK.OBIE.TravelDiscount", + "UK.OBIE.TravelInsurance" + ] + }, + "OBInternalStatementDateTimeType1Code": { + "description": "Date time type, in a coded form. For a full list of values see `OBInternalStatementDateTimeType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "example": "UK.OBIE.NextStatement", + "x-namespaced-enum": [ + "UK.OBIE.BalanceTransferPromoEnd", + "UK.OBIE.DirectDebitDue", + "UK.OBIE.LastPayment", + "UK.OBIE.LastStatement", + "UK.OBIE.NextStatement", + "UK.OBIE.PaymentDue", + "UK.OBIE.PurchasePromoEnd", + "UK.OBIE.StatementAvailable" + ] + }, + "OBInternalStatementFeeFrequency1Code": { + "description": "How frequently the fee is applied to the Account. For a full list of values see `OBInternalStatementFeeFrequency1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "example": "UK.OBIE.StatementMonthly", + "x-namespaced-enum": [ + "UK.OBIE.ChargingPeriod", + "UK.OBIE.PerTransactionAmount", + "UK.OBIE.PerTransactionPercentage", + "UK.OBIE.Quarterly", + "UK.OBIE.StatementMonthly", + "UK.OBIE.Weekly" + ] + }, + "OBInternalStatementFeeRateType1Code": { + "description": "This code indicates the specific type of fee rate (e.g., AER, EAR). For a full list of values see `OBInternalStatementFeeRateType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "example": "UK.OBIE.AER", + "x-namespaced-enum": [ + "UK.OBIE.AER", + "UK.OBIE.EAR" + ] + }, + "OBInternalStatementFeeType1Code": { + "description": "Fee type, in a coded form. For a full list of values see `OBInternalStatementFeeType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "example": "UK.OBIE.Annual", + "x-namespaced-enum": [ + "UK.OBIE.Annual", + "UK.OBIE.BalanceTransfer", + "UK.OBIE.CashAdvance", + "UK.OBIE.CashTransaction", + "UK.OBIE.ForeignCashTransaction", + "UK.OBIE.ForeignTransaction", + "UK.OBIE.Gambling", + "UK.OBIE.LatePayment", + "UK.OBIE.MoneyTransfer", + "UK.OBIE.Monthly", + "UK.OBIE.Overlimit", + "UK.OBIE.PostalOrder", + "UK.OBIE.PrizeEntry", + "UK.OBIE.StatementCopy", + "UK.OBIE.Total", + "UK.OBIE.InstalmentPlan", + "UK.OBIE.ReturnedPayment" + ] + }, + "OBInternalStatementInterestFrequency1Code": { + "description": "Specifies the statement fee type requested. For a full list of values see `OBInternalStatementInterestFrequency1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "example": "UK.OBIE.Monthly", + "x-namespaced-enum": [ + "UK.OBIE.Daily", + "UK.OBIE.HalfYearly", + "UK.OBIE.Monthly", + "UK.OBIE.PerStatementDate", + "UK.OBIE.Quarterly", + "UK.OBIE.Weekly", + "UK.OBIE.Yearly" + ] + }, + "OBInternalStatementInterestRateType1Code": { + "description": "This code specifies the type of interest (e.g., BOE Base Rate, Fixed Rate, Gross).", + "type": "string", + "example": "UK.OBIE.FixedRate", + "x-namespaced-enum": [ + "UK.OBIE.BOEBaseRate", + "UK.OBIE.FixedRate", + "UK.OBIE.Gross", + "UK.OBIE.LoanProviderBaseRate", + "UK.OBIE.Net" + ] + }, + "OBInternalStatementInterestType1Code": { + "description": "Interest amount type, in a coded form. For a full list of values see `OBInternalStatementInterestType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "example": "UK.OBIE.Total", + "x-namespaced-enum": [ + "UK.OBIE.BalanceTransfer", + "UK.OBIE.Cash", + "UK.OBIE.EstimatedNext", + "UK.OBIE.Purchase", + "UK.OBIE.Total", + "UK.OBIE.InstalmentPlan", + "UK.OBIE.MoneyTransfer" + ] + }, + "OBInternalStatementRateType1Code": { + "description": "Statement rate type, in a coded form. For a full list of values see `OBInternalStatementRateType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "example": "UK.OBIE.AnnualCash", + "x-namespaced-enum": [ + "UK.OBIE.AnnualBalanceTransfer", + "UK.OBIE.AnnualBalanceTransferAfterPromo", + "UK.OBIE.AnnualBalanceTransferPromo", + "UK.OBIE.AnnualCash", + "UK.OBIE.AnnualPurchase", + "UK.OBIE.AnnualPurchaseAfterPromo", + "UK.OBIE.AnnualPurchasePromo", + "UK.OBIE.MonthlyBalanceTransfer", + "UK.OBIE.MonthlyCash", + "UK.OBIE.MonthlyPurchase" + ] + }, + "OBInternalStatementType1Code": { + "description": "Statement type, in a coded form. For a full list of values see `OBInternalStatementType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "example": "RegularPeriodic", + "enum": [ + "AccountClosure", + "AccountOpening", + "Annual", + "Interim", + "RegularPeriodic" + ] + }, + "OBInternalStatementValueType1Code": { + "description": "Statement value type, in a coded form. For a full list of values see `OBInternalStatementValueType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "example": "UK.OBIE.Credit", + "x-namespaced-enum": [ + "UK.OBIE.AirMilesPoints", + "UK.OBIE.AirMilesPointsBalance", + "UK.OBIE.Credits", + "UK.OBIE.Debits", + "UK.OBIE.HotelPoints", + "UK.OBIE.HotelPointsBalance", + "UK.OBIE.RetailShoppingPoints", + "UK.OBIE.RetailShoppingPointsBalance" + ] + }, + "OBFrequency2": { + "description": "For a full list of enumeration values refer to `OBFrequency2Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_internal_CodeSets)", + "type": "string", + "enum": [ + "YEAR", + "DAIL", + "INDA", + "MNTH", + "QURT", + "MIAN", + "TEND", + "MOVE", + "WEEK", + "NONE", + "SLCT" + ] + }, + "OBFrequencyPeriodType": { + "description": "Individual Definitions:\n ADHO - Adhoc \n YEAR - Annual\nDAIL - Daily\nINDA - Intra Day\nMNTH - Monthly\nQURT - Quarterly\nWEEK - Weekly ", + "type": "string", + "enum": [ + "ADHO", + "YEAR", + "DAIL", + "INDA", + "MNTH", + "QURT", + "MIAN", + "WEEK" + ] + }, + "OBFileFormat": { + "description": "For a full list of enumeration values refer to `ExternalDocumentFormat1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_internal_CodeSets)", + "type": "string", + "enum": [ + "DPDF", + "DXML", + "SDSH", + "WORD", + "XSLT", + "DCSV" + ] + }, + "OBExternalStatusReason1Code": { + "description": "Low level textual error code, for all enum values see `OBExternalStatusReason1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "minLength": 4, + "maxLength": 4, + "example": "U001" + }, + "OBMandateRelatedInformation1": { + "type": "object", + "description": "Provides further details of the mandate signed between the creditor and the debtor.", + "required": [ + "Frequency" + ], + "properties": { + "MandateIdentification": { + "description": "Unique identification, as assigned by the creditor, to unambiguously identify the mandate.", + "type": "string", + "example": "Golfers", + "minLength": 1, + "maxLength": 35 + }, + "Classification": { + "$ref": "#/components/schemas/OBExternalMandateClassification1Code" + }, + "CategoryPurposeCode": { + "$ref": "#/components/schemas/ExternalCategoryPurpose1Code" + }, + "FirstPaymentDateTime": { + "description": "The date on which the first payment for a recurrent credit transfer will be made.", + "example": "2024-04-25T12:46:49.425Z", + "type": "string", + "format": "date-time" + }, + "RecurringPaymentDateTime": { + "description": "The date on which the first recurring payment for a Standing Order schedule will be made. \nUsage: This must be populated only if the first recurring date is different to the first payment date. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "example": "2024-04-25T12:46:49.425Z", + "format": "date-time" + }, + "FinalPaymentDateTime": { + "description": "The date on which the final payment for a recurrent credit transfer will be made.", + "type": "string", + "example": "2024-04-25T12:46:49.425Z", + "format": "date-time" + }, + "Frequency": { + "$ref": "#/components/schemas/OBFrequency6" + }, + "Reason": { + "description": "Reason for the setup of the credit transfer mandate.", + "type": "string", + "example": "To pay monthly membership", + "maxLength": 256, + "minLength": 1 + } + } + }, + "OBMerchantDetails1": { + "type": "object", + "description": "Details of the merchant involved in the transaction.", + "properties": { + "MerchantName": { + "description": "Name by which the merchant is known.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "MerchantCategoryCode": { + "description": "Category code conform to ISO 18245, related to the type of services or goods the merchant provides for the transaction.", + "type": "string", + "minLength": 3, + "maxLength": 4 + } + } + }, + "OBPCAData1": { + "type": "object", + "title": "PCA", + "properties": { + "ProductDetails": { + "type": "object", + "title": "ProductDetails", + "properties": { + "Segment": { + "description": "Market segmentation is a marketing term referring to the aggregating of prospective buyers into groups, or segments, that have common needs and respond similarly to a marketing action. Market segmentation enables companies to target different categories of consumers who perceive the full value of certain products and services differently from one another.\nRead more: Market Segmentation http://www.investopedia.com/terms/m/marketsegmentation.asp#ixzz4gfEEalTd \nWith respect to PCA products, they are segmented in relation to different markets that they wish to focus on. ", + "title": "Segment", + "type": "array", + "items": { + "description": "Market segmentation is a marketing term referring to the aggregating of prospective buyers into groups, or segments, that have common needs and respond similarly to a marketing action. Market segmentation enables companies to target different categories of consumers who perceive the full value of certain products and services differently from one another.\nRead more: Market Segmentation http://www.investopedia.com/terms/m/marketsegmentation.asp#ixzz4gfEEalTd \nWith respect to PCA products, they are segmented in relation to different markets that they wish to focus on. ", + "type": "string", + "enum": [ + "Basic", + "BenefitAndReward", + "CreditInterest", + "Cashback", + "General", + "Graduate", + "Other", + "Overdraft", + "Packaged", + "Premium", + "Reward", + "Student", + "YoungAdult", + "Youth" + ] + } + }, + "MonthlyMaximumCharge": { + "description": "The maximum relevant charges that could accrue as defined fully in Part 7 of the CMA order", + "title": "MonthlyMaximumCharge", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "Notes": { + "description": "Optional additional notes to supplement the Core product details", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + } + }, + "additionalProperties": false + }, + "CreditInterest": { + "description": "Details about the interest that may be payable to the PCA account holders", + "type": "object", + "title": "CreditInterest", + "properties": { + "TierBandSet": { + "description": "The group of tiers or bands for which credit interest can be applied.", + "type": "array", + "title": "TierBandSet", + "items": { + "description": "The group of tiers or bands for which credit interest can be applied.", + "type": "object", + "properties": { + "TierBandMethod": { + "description": "The methodology of how credit interest is charged. It can be:-\n\n1. Banded\nInterest rates are banded. i.e. Increasing rate on whole balance as balance increases.\n\n2. Tiered\nInterest rates are tiered. i.e. increasing rate for each tier as balance increases, but interest paid on tier fixed for that tier and not on whole balance.\n\n3. Whole\nThe same interest rate is applied irrespective of the PCA balance", + "title": "TierBandMethod", + "type": "string", + "enum": [ + "Tiered", + "Whole" + ] + }, + "CalculationMethod": { + "description": "Methods of calculating interest", + "title": "CalculationMethod", + "type": "string", + "enum": [ + "Compound", + "SimpleInterest" + ] + }, + "Destination": { + "description": "Describes whether accrued interest is payable only to the PCA or to another bank account", + "title": "Destination", + "type": "string", + "enum": [ + "PayAway", + "SelfCredit" + ] + }, + "Notes": { + "description": "Optional additional notes to supplement the Tier Band Set details", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "TierBand": { + "description": "Tier Band Details", + "type": "array", + "title": "TierBand", + "items": { + "description": "Tier Band Details", + "type": "object", + "properties": { + "Identification": { + "description": "Unique and unambiguous identification of a Tier Band for a PCA.", + "title": "Identification", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "TierValueMinimum": { + "description": "Minimum deposit value for which the credit interest tier applies.", + "title": "TierValueMinimum", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "TierValueMaximum": { + "description": "Maximum deposit value for which the credit interest tier applies.", + "title": "TierValueMaximum", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "CalculationFrequency": { + "description": "How often is credit interest calculated for the account.", + "title": "CalculationFrequency", + "type": "string", + "enum": [ + "PerAcademicTerm", + "Daily", + "HalfYearly", + "Monthly", + "Other", + "Quarterly", + "PerStatementDate", + "Weekly", + "Yearly" + ] + }, + "ApplicationFrequency": { + "description": "How often is interest applied to the PCA for this tier/band i.e. how often the financial institution pays accumulated interest to the customer's PCA.", + "title": "ApplicationFrequency", + "type": "string", + "enum": [ + "PerAcademicTerm", + "Daily", + "HalfYearly", + "Monthly", + "Other", + "Quarterly", + "PerStatementDate", + "Weekly", + "Yearly" + ] + }, + "DepositInterestAppliedCoverage": { + "description": "Amount on which Interest applied.", + "title": "DepositInterestAppliedCoverage", + "type": "string", + "enum": [ + "Tiered", + "Whole" + ] + }, + "FixedVariableInterestRateType": { + "description": "Type of interest rate, Fixed or Variable", + "title": "FixedVariableInterestRateType", + "type": "string", + "enum": [ + "Fixed", + "Variable" + ] + }, + "AER": { + "description": "The annual equivalent rate (AER) is interest that is calculated under the assumption that any interest paid is combined with the original balance and the next interest payment will be based on the slightly higher account balance. Overall, this means that interest can be compounded several times in a year depending on the number of times that interest payments are made. \nRead more: Annual Equivalent Rate (AER) http://www.investopedia.com/terms/a/aer.asp#ixzz4gfR7IO1A", + "title": "AER", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "BankInterestRateType": { + "description": "Interest rate types, other than AER, which financial institutions may use to describe the annual interest rate payable to the PCA.", + "title": "BankInterestRateType", + "type": "string", + "enum": [ + "LinkedBaseRate", + "Gross", + "Net", + "Other" + ] + }, + "BankInterestRate": { + "description": "Bank Interest for the PCA product", + "title": "BankInterestRate", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "Notes": { + "description": "Optional additional notes to supplement the Tier Band details", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherBankInterestType": { + "description": "Other interest rate types which are not available in the standard code list", + "type": "object", + "title": "OtherBankInterestType", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OtherApplicationFrequency": { + "description": "Other application frequencies that are not available in the standard code list", + "type": "object", + "title": "OtherApplicationFrequency", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OtherCalculationFrequency": { + "description": "Other calculation frequency which is not available in the standard code set.", + "type": "object", + "title": "OtherCalculationFrequency", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + } + }, + "required": [ + "TierValueMinimum", + "ApplicationFrequency", + "FixedVariableInterestRateType", + "AER" + ] + }, + "minItems": 1 + } + }, + "required": [ + "TierBandMethod", + "TierBand" + ] + }, + "minItems": 1 + } + }, + "additionalProperties": false, + "required": [ + "TierBandSet" + ] + }, + "Overdraft": { + "description": "Details about Overdraft rates, fees & charges", + "type": "object", + "title": "Overdraft", + "properties": { + "Notes": { + "description": "Associated Notes about the overdraft rates", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OverdraftTierBandSet": { + "description": "Tier band set details", + "type": "array", + "title": "OverdraftTierBandSet", + "items": { + "description": "Tier band set details", + "type": "object", + "properties": { + "TierBandMethod": { + "description": "The methodology of how overdraft is charged. It can be:\n'Whole' Where the same charge/rate is applied to the entirety of the overdraft balance (where charges are applicable). \n'Tiered' Where different charges/rates are applied dependent on overdraft maximum and minimum balance amount tiers defined by the lending financial organisation\n'Banded' Where different charges/rates are applied dependent on overdraft maximum and minimum balance amount bands defined by a government organisation.", + "title": "TierBandMethod", + "type": "string", + "enum": [ + "Tiered", + "Whole", + "Banded" + ] + }, + "OverdraftType": { + "description": "An overdraft can either be 'committed' which means that the facility cannot be withdrawn without reasonable notification before it's agreed end date, or 'on demand' which means that the financial institution can demand repayment at any point in time.", + "title": "OverdraftType", + "type": "string", + "enum": [ + "Committed", + "OnDemand", + "Other" + ] + }, + "Identification": { + "description": "Unique and unambiguous identification of a Tier Band for a overdraft product.", + "title": "Identification", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "AuthorisedIndicator": { + "description": "Indicates if the Overdraft is authorised (Y) or unauthorised (N)", + "title": "AuthorisedIndicator", + "type": "boolean" + }, + "BufferAmount": { + "description": "When a customer exceeds their credit limit, a financial institution will not charge the customer unauthorised overdraft charges if they do not exceed by more than the buffer amount. Note: Authorised overdraft charges may still apply.", + "title": "BufferAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "Notes": { + "description": "Optional additional notes to supplement the overdraft Tier Band Set details", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OverdraftTierBand": { + "description": "Provides overdraft details for a specific tier or band", + "type": "array", + "title": "OverdraftTierBand", + "items": { + "description": "Provides overdraft details for a specific tier or band", + "type": "object", + "properties": { + "Identification": { + "description": "Unique and unambiguous identification of a Tier Band for a overdraft.", + "title": "Identification", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "TierValueMin": { + "description": "Minimum value of Overdraft Tier/Band", + "title": "TierValueMin", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "TierValueMax": { + "description": "Maximum value of Overdraft Tier/Band", + "title": "TierValueMax", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "OverdraftInterestChargingCoverage": { + "description": "Interest charged on whole amount or tiered/banded", + "title": "OverdraftInterestChargingCoverage", + "type": "string", + "enum": [ + "Tiered", + "Whole" + ] + }, + "BankGuaranteedIndicator": { + "description": "Indicates that a bank provides the overdraft limit up to TierValueMIn to all customers automatically", + "title": "BankGuaranteedIndicator", + "type": "boolean" + }, + "EAR": { + "description": "EAR means Effective Annual Rate and/or Equivalent Annual Rate (frequently\nused interchangeably), being the actual annual interest rate of an Overdraft.", + "title": "EAR", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "RepresentativeAPR": { + "description": "An annual percentage rate (APR) is the annual rate charged for borrowing or earned through an investment. APR is expressed as a percentage that represents the actual yearly cost of funds over the term of a loan. This includes any fees or additional costs associated with the transaction but does not take compounding into account.", + "title": "RepresentativeAPR", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "Notes": { + "description": "Optional additional notes to supplement the Tier/band details", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OverdraftFeesCharges": { + "description": "Overdraft fees and charges", + "type": "array", + "title": "OverdraftFeesCharges", + "items": { + "description": "Overdraft fees and charges", + "type": "object", + "properties": { + "OverdraftFeeChargeCap": { + "description": "Details about any caps (maximum charges) that apply to a particular fee/charge", + "type": "array", + "title": "OverdraftFeeChargeCap", + "items": { + "description": "Details about any caps (maximum charges) that apply to a particular fee/charge", + "type": "object", + "properties": { + "FeeType": { + "description": "Fee/charge type which is being capped", + "title": "FeeType", + "type": "array", + "items": { + "description": "Overdraft fee type", + "type": "string", + "enum": [ + "ArrangedOverdraft", + "EmergencyBorrowing", + "BorrowingItem", + "OverdraftRenewal", + "AnnualReview", + "OverdraftSetup", + "Surcharge", + "TempOverdraft", + "UnauthorisedBorrowing", + "UnauthorisedPaidTrans", + "Other", + "UnauthorisedUnpaidTrans" + ] + }, + "minItems": 1 + }, + "OverdraftControlIndicator": { + "description": "Specifies for the overdraft control feature/benefit", + "title": "OverdraftControlIndicator", + "type": "boolean" + }, + "MinMaxType": { + "description": "Indicates that this is the minimum/ maximum fee/charge that can be applied by the financial institution", + "title": "MinMaxType", + "type": "string", + "enum": [ + "Minimum", + "Maximum" + ] + }, + "FeeCapOccurrence": { + "description": "fee/charges are captured dependent on the number of occurrences rather than capped at a particular amount", + "title": "FeeCapOccurrence", + "type": "number", + "format": "float" + }, + "FeeCapAmount": { + "description": "Cap amount charged for a fee/charge", + "title": "FeeCapAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "CappingPeriod": { + "description": "Period e.g. day, week, month etc. for which the fee/charge is capped", + "title": "CappingPeriod", + "type": "string", + "enum": [ + "AcademicTerm", + "Day", + "Half Year", + "Month", + "Quarter", + "Week", + "Year" + ] + }, + "Notes": { + "description": "Notes related to Overdraft fee charge cap", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "description": "Other fee type code which is not available in the standard code set", + "type": "array", + "title": "OtherFeeType", + "items": { + "description": "Other fee type code which is not available in the standard code set", + "type": "object", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "required": [ + "Name", + "Description" + ] + } + } + }, + "required": [ + "FeeType", + "MinMaxType" + ] + } + }, + "OverdraftFeeChargeDetail": { + "description": "Details about the fees/charges", + "type": "array", + "title": "OverdraftFeeChargeDetail", + "items": { + "description": "Details about the fees/charges", + "type": "object", + "properties": { + "FeeType": { + "description": "Overdraft fee type", + "title": "FeeType", + "type": "string", + "enum": [ + "ArrangedOverdraft", + "EmergencyBorrowing", + "BorrowingItem", + "OverdraftRenewal", + "AnnualReview", + "OverdraftSetup", + "Surcharge", + "TempOverdraft", + "UnauthorisedBorrowing", + "UnauthorisedPaidTrans", + "Other", + "UnauthorisedUnpaidTrans" + ] + }, + "OverdraftControlIndicator": { + "description": "Specifies for the overdraft control feature/benefit", + "title": "OverdraftControlIndicator", + "type": "boolean" + }, + "IncrementalBorrowingAmount": { + "description": "Every additional tranche of an overdraft balance to which an overdraft fee is applied", + "title": "IncrementalBorrowingAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "FeeAmount": { + "description": "Amount charged for an overdraft fee/charge (where it is charged in terms of an amount rather than a rate)", + "title": "FeeAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "FeeRate": { + "description": "Rate charged for overdraft fee/charge (where it is charged in terms of a rate rather than an amount)", + "title": "FeeRate", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "FeeRateType": { + "description": "Rate type for overdraft fee/charge (where it is charged in terms of a rate rather than an amount)", + "title": "FeeRateType", + "type": "string", + "enum": [ + "LinkedBaseRate", + "Gross", + "Net", + "Other" + ] + }, + "ApplicationFrequency": { + "description": "Frequency at which the overdraft charge is applied to the account", + "title": "ApplicationFrequency", + "type": "string", + "enum": [ + "AccountClosing", + "AccountOpening", + "AcademicTerm", + "ChargingPeriod", + "Daily", + "PerItem", + "Monthly", + "OnAccountAnniversary", + "Other", + "PerHour", + "PerOccurrence", + "PerSheet", + "PerTransaction", + "PerTransactionAmount", + "PerTransactionPercentage", + "Quarterly", + "SixMonthly", + "StatementMonthly", + "Weekly", + "Yearly" + ] + }, + "CalculationFrequency": { + "description": "How often is the overdraft fee/charge calculated for the account.", + "title": "CalculationFrequency", + "type": "string", + "enum": [ + "AccountClosing", + "AccountOpening", + "AcademicTerm", + "ChargingPeriod", + "Daily", + "PerItem", + "Monthly", + "OnAccountAnniversary", + "Other", + "PerHour", + "PerOccurrence", + "PerSheet", + "PerTransaction", + "PerTransactionAmount", + "PerTransactionPercentage", + "Quarterly", + "SixMonthly", + "StatementMonthly", + "Weekly", + "Yearly" + ] + }, + "Notes": { + "description": "Free text for capturing any other info related to Overdraft Fees Charge Details", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "description": "Other Fee type which is not available in the standard code set", + "type": "object", + "title": "OtherFeeType", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OtherFeeRateType": { + "description": "Other fee rate type code which is not available in the standard code set", + "type": "object", + "title": "OtherFeeRateType", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OtherApplicationFrequency": { + "description": "Other application frequencies that are not available in the standard code list", + "type": "object", + "title": "OtherApplicationFrequency", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OtherCalculationFrequency": { + "description": "Other calculation frequency which is not available in the standard code set.", + "type": "object", + "title": "OtherCalculationFrequency", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OverdraftFeeChargeCap": { + "description": "Details about any caps (maximum charges) that apply to a particular fee/charge", + "type": "object", + "title": "OverdraftFeeChargeCap", + "properties": { + "FeeType": { + "description": "Fee/charge type which is being capped", + "title": "FeeType", + "type": "array", + "items": { + "description": "Overdraft fee type", + "type": "string", + "enum": [ + "ArrangedOverdraft", + "EmergencyBorrowing", + "BorrowingItem", + "OverdraftRenewal", + "AnnualReview", + "OverdraftSetup", + "Surcharge", + "TempOverdraft", + "UnauthorisedBorrowing", + "UnauthorisedPaidTrans", + "Other", + "UnauthorisedUnpaidTrans" + ] + }, + "minItems": 1 + }, + "OverdraftControlIndicator": { + "description": "Specifies for the overdraft control feature/benefit", + "title": "OverdraftControlIndicator", + "type": "boolean" + }, + "MinMaxType": { + "description": "Indicates that this is the minimum/ maximum fee/charge that can be applied by the financial institution", + "title": "MinMaxType", + "type": "string", + "enum": [ + "Minimum", + "Maximum" + ] + }, + "FeeCapOccurrence": { + "description": "fee/charges are captured dependent on the number of occurrences rather than capped at a particular amount", + "title": "FeeCapOccurrence", + "type": "number", + "format": "float" + }, + "FeeCapAmount": { + "description": "Cap amount charged for a fee/charge", + "title": "FeeCapAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "CappingPeriod": { + "description": "Period e.g. day, week, month etc. for which the fee/charge is capped", + "title": "CappingPeriod", + "type": "string", + "enum": [ + "AcademicTerm", + "Day", + "Half Year", + "Month", + "Quarter", + "Week", + "Year" + ] + }, + "Notes": { + "description": "Notes related to Overdraft fee charge cap", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "description": "Other fee type code which is not available in the standard code set", + "type": "array", + "title": "OtherFeeType", + "items": { + "description": "Other fee type code which is not available in the standard code set", + "type": "object", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "required": [ + "Name", + "Description" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "FeeType", + "MinMaxType" + ] + } + }, + "required": [ + "FeeType", + "ApplicationFrequency" + ] + }, + "minItems": 1 + } + }, + "required": [ + "OverdraftFeeChargeDetail" + ] + } + } + }, + "required": [ + "TierValueMin" + ] + }, + "minItems": 1 + }, + "OverdraftFeesCharges": { + "description": "Overdraft fees and charges details", + "type": "array", + "title": "OverdraftFeesCharges", + "items": { + "description": "Overdraft fees and charges details", + "type": "object", + "properties": { + "OverdraftFeeChargeCap": { + "description": "Details about any caps (maximum charges) that apply to a particular fee/charge", + "type": "array", + "title": "OverdraftFeeChargeCap", + "items": { + "description": "Details about any caps (maximum charges) that apply to a particular fee/charge", + "type": "object", + "properties": { + "FeeType": { + "description": "Fee/charge type which is being capped", + "title": "FeeType", + "type": "array", + "items": { + "description": "Overdraft fee type", + "type": "string", + "enum": [ + "ArrangedOverdraft", + "EmergencyBorrowing", + "BorrowingItem", + "OverdraftRenewal", + "AnnualReview", + "OverdraftSetup", + "Surcharge", + "TempOverdraft", + "UnauthorisedBorrowing", + "UnauthorisedPaidTrans", + "Other", + "UnauthorisedUnpaidTrans" + ] + }, + "minItems": 1 + }, + "OverdraftControlIndicator": { + "description": "Specifies for the overdraft control feature/benefit", + "title": "OverdraftControlIndicator", + "type": "boolean" + }, + "MinMaxType": { + "description": "Indicates that this is the minimum/ maximum fee/charge that can be applied by the financial institution", + "title": "MinMaxType", + "type": "string", + "enum": [ + "Minimum", + "Maximum" + ] + }, + "FeeCapOccurrence": { + "description": "fee/charges are captured dependent on the number of occurrences rather than capped at a particular amount", + "title": "FeeCapOccurrence", + "type": "number", + "format": "float" + }, + "FeeCapAmount": { + "description": "Cap amount charged for a fee/charge", + "title": "FeeCapAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "CappingPeriod": { + "description": "Period e.g. day, week, month etc. for which the fee/charge is capped", + "title": "CappingPeriod", + "type": "string", + "enum": [ + "AcademicTerm", + "Day", + "Half Year", + "Month", + "Quarter", + "Week", + "Year" + ] + }, + "Notes": { + "description": "Notes related to Overdraft fee charge cap", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "description": "Other fee type code which is not available in the standard code set", + "type": "array", + "title": "OtherFeeType", + "items": { + "description": "Other fee type code which is not available in the standard code set", + "type": "object", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "required": [ + "Name", + "Description" + ] + } + } + }, + "required": [ + "FeeType", + "MinMaxType" + ] + } + }, + "OverdraftFeeChargeDetail": { + "description": "Details about the fees/charges", + "type": "array", + "title": "OverdraftFeeChargeDetail", + "items": { + "description": "Details about the fees/charges", + "type": "object", + "properties": { + "FeeType": { + "description": "Overdraft fee type", + "title": "FeeType", + "type": "string", + "enum": [ + "ArrangedOverdraft", + "EmergencyBorrowing", + "BorrowingItem", + "OverdraftRenewal", + "AnnualReview", + "OverdraftSetup", + "Surcharge", + "TempOverdraft", + "UnauthorisedBorrowing", + "UnauthorisedPaidTrans", + "Other", + "UnauthorisedUnpaidTrans" + ] + }, + "OverdraftControlIndicator": { + "description": "Specifies for the overdraft control feature/benefit", + "title": "OverdraftControlIndicator", + "type": "boolean" + }, + "IncrementalBorrowingAmount": { + "description": "Every additional tranche of an overdraft balance to which an overdraft fee is applied", + "title": "IncrementalBorrowingAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "FeeAmount": { + "description": "Amount charged for an overdraft fee/charge (where it is charged in terms of an amount rather than a rate)", + "title": "FeeAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "FeeRate": { + "description": "Rate charged for overdraft fee/charge (where it is charged in terms of a rate rather than an amount)", + "title": "FeeRate", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "FeeRateType": { + "description": "Rate type for overdraft fee/charge (where it is charged in terms of a rate rather than an amount)", + "title": "FeeRateType", + "type": "string", + "enum": [ + "LinkedBaseRate", + "Gross", + "Net", + "Other" + ] + }, + "ApplicationFrequency": { + "description": "Frequency at which the overdraft charge is applied to the account", + "title": "ApplicationFrequency", + "type": "string", + "enum": [ + "AccountClosing", + "AccountOpening", + "AcademicTerm", + "ChargingPeriod", + "Daily", + "PerItem", + "Monthly", + "OnAccountAnniversary", + "Other", + "PerHour", + "PerOccurrence", + "PerSheet", + "PerTransaction", + "PerTransactionAmount", + "PerTransactionPercentage", + "Quarterly", + "SixMonthly", + "StatementMonthly", + "Weekly", + "Yearly" + ] + }, + "CalculationFrequency": { + "description": "How often is the overdraft fee/charge calculated for the account.", + "title": "CalculationFrequency", + "type": "string", + "enum": [ + "AccountClosing", + "AccountOpening", + "AcademicTerm", + "ChargingPeriod", + "Daily", + "PerItem", + "Monthly", + "OnAccountAnniversary", + "Other", + "PerHour", + "PerOccurrence", + "PerSheet", + "PerTransaction", + "PerTransactionAmount", + "PerTransactionPercentage", + "Quarterly", + "SixMonthly", + "StatementMonthly", + "Weekly", + "Yearly" + ] + }, + "Notes": { + "description": "Free text for capturing any other info related to Overdraft Fees Charge Details", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "description": "Other Fee type which is not available in the standard code set", + "type": "object", + "title": "OtherFeeType", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OtherFeeRateType": { + "description": "Other fee rate type code which is not available in the standard code set", + "type": "object", + "title": "OtherFeeRateType", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OtherApplicationFrequency": { + "description": "Other application frequencies that are not available in the standard code list", + "type": "object", + "title": "OtherApplicationFrequency", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OtherCalculationFrequency": { + "description": "Other calculation frequency which is not available in the standard code set.", + "type": "object", + "title": "OtherCalculationFrequency", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OverdraftFeeChargeCap": { + "description": "Details about any caps (maximum charges) that apply to a particular fee/charge", + "type": "object", + "title": "OverdraftFeeChargeCap", + "properties": { + "FeeType": { + "description": "Fee/charge type which is being capped", + "title": "FeeType", + "type": "array", + "items": { + "description": "Overdraft fee type", + "type": "string", + "enum": [ + "ArrangedOverdraft", + "EmergencyBorrowing", + "BorrowingItem", + "OverdraftRenewal", + "AnnualReview", + "OverdraftSetup", + "Surcharge", + "TempOverdraft", + "UnauthorisedBorrowing", + "UnauthorisedPaidTrans", + "Other", + "UnauthorisedUnpaidTrans" + ] + }, + "minItems": 1 + }, + "OverdraftControlIndicator": { + "description": "Specifies for the overdraft control feature/benefit", + "title": "OverdraftControlIndicator", + "type": "boolean" + }, + "MinMaxType": { + "description": "Indicates that this is the minimum/ maximum fee/charge that can be applied by the financial institution", + "title": "MinMaxType", + "type": "string", + "enum": [ + "Minimum", + "Maximum" + ] + }, + "FeeCapOccurrence": { + "description": "fee/charges are captured dependent on the number of occurrences rather than capped at a particular amount", + "title": "FeeCapOccurrence", + "type": "number", + "format": "float" + }, + "FeeCapAmount": { + "description": "Cap amount charged for a fee/charge", + "title": "FeeCapAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "CappingPeriod": { + "description": "Period e.g. day, week, month etc. for which the fee/charge is capped", + "title": "CappingPeriod", + "type": "string", + "enum": [ + "AcademicTerm", + "Day", + "Half Year", + "Month", + "Quarter", + "Week", + "Year" + ] + }, + "Notes": { + "description": "Notes related to Overdraft fee charge cap", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "description": "Other fee type code which is not available in the standard code set", + "type": "array", + "title": "OtherFeeType", + "items": { + "description": "Other fee type code which is not available in the standard code set", + "type": "object", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "required": [ + "Name", + "Description" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "FeeType", + "MinMaxType" + ] + } + }, + "required": [ + "FeeType", + "ApplicationFrequency" + ] + }, + "minItems": 1 + } + }, + "required": [ + "OverdraftFeeChargeDetail" + ] + } + } + }, + "required": [ + "TierBandMethod", + "OverdraftTierBand" + ] + }, + "minItems": 1 + } + }, + "additionalProperties": false, + "required": [ + "OverdraftTierBandSet" + ] + }, + "OtherFeesCharges": { + "description": "Contains details of fees and charges which are not associated with either borrowing or features/benefits", + "type": "object", + "title": "OtherFeesCharges", + "properties": { + "FeeChargeDetail": { + "description": "Other fees/charges details", + "type": "array", + "title": "FeeChargeDetail", + "items": { + "description": "Other fees/charges details", + "type": "object", + "properties": { + "FeeCategory": { + "description": "Categorisation of fees and charges into standard categories.", + "title": "FeeCategory", + "type": "string", + "enum": [ + "Other", + "Servicing" + ] + }, + "FeeType": { + "description": "Fee/Charge Type", + "title": "FeeType", + "type": "string", + "enum": [ + "ServiceCAccountFee", + "ServiceCAccountFeeMonthly", + "ServiceCOther", + "Other" + ] + }, + "FeeAmount": { + "description": "Fee Amount charged for a fee/charge (where it is charged in terms of an amount rather than a rate)", + "title": "FeeAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "FeeRate": { + "description": "Rate charged for Fee/Charge (where it is charged in terms of a rate rather than an amount)", + "title": "FeeRate", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "FeeRateType": { + "description": "Rate type for Fee/Charge (where it is charged in terms of a rate rather than an amount)", + "title": "FeeRateType", + "type": "string", + "enum": [ + "LinkedBaseRate", + "Gross", + "Net", + "Other" + ] + }, + "ApplicationFrequency": { + "description": "How frequently the fee/charge is applied to the account", + "title": "ApplicationFrequency", + "type": "string", + "enum": [ + "AccountClosing", + "AccountOpening", + "AcademicTerm", + "ChargingPeriod", + "Daily", + "PerItem", + "Monthly", + "OnAccountAnniversary", + "Other", + "PerHour", + "PerOccurrence", + "PerSheet", + "PerTransaction", + "PerTransactionAmount", + "PerTransactionPercentage", + "Quarterly", + "SixMonthly", + "StatementMonthly", + "Weekly", + "Yearly" + ] + }, + "CalculationFrequency": { + "description": "How frequently the fee/charge is calculated", + "title": "CalculationFrequency", + "type": "string", + "enum": [ + "AccountClosing", + "AccountOpening", + "AcademicTerm", + "ChargingPeriod", + "Daily", + "PerItem", + "Monthly", + "OnAccountAnniversary", + "Other", + "PerHour", + "PerOccurrence", + "PerSheet", + "PerTransaction", + "PerTransactionAmount", + "PerTransactionPercentage", + "Quarterly", + "SixMonthly", + "StatementMonthly", + "Weekly", + "Yearly" + ] + }, + "Notes": { + "description": "Optional additional notes to supplement the fee/charge details.", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeCategoryType": { + "type": "object", + "title": "OtherFeeCategoryType", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OtherFeeType": { + "description": "Other Fee/charge type which is not available in the standard code set", + "type": "object", + "title": "OtherFeeType", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "FeeCategory": { + "description": "Categorisation of fees and charges into standard categories.", + "title": "FeeCategory", + "type": "string", + "enum": [ + "Other", + "Servicing" + ] + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "FeeCategory", + "Name", + "Description" + ] + }, + "OtherFeeRateType": { + "description": "Other fee rate type which is not available in the standard code set", + "type": "object", + "title": "OtherFeeRateType", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OtherApplicationFrequency": { + "description": "Other application frequencies not covered in the standard code list", + "type": "object", + "title": "OtherApplicationFrequency", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "OtherCalculationFrequency": { + "description": "Other calculation frequency which is not available in standard code set.", + "type": "object", + "title": "OtherCalculationFrequency", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "additionalProperties": false, + "required": [ + "Name", + "Description" + ] + }, + "FeeChargeCap": { + "description": "Details about any caps (maximum charges) that apply to a particular fee/charge", + "type": "array", + "title": "FeeChargeCap", + "items": { + "description": "Details about any caps (maximum charges) that apply to a particular fee/charge", + "type": "object", + "properties": { + "FeeType": { + "description": "Fee/charge type which is being capped", + "title": "FeeType", + "type": "array", + "items": { + "description": "Fee/charge type which is being capped", + "type": "string", + "enum": [ + "ServiceCAccountFee", + "ServiceCAccountFeeMonthly", + "ServiceCOther", + "Other" + ] + }, + "minItems": 1 + }, + "MinMaxType": { + "description": "Indicates that this is the minimum/ maximum fee/charge that can be applied by the financial institution", + "title": "MinMaxType", + "type": "string", + "enum": [ + "Minimum", + "Maximum" + ] + }, + "FeeCapOccurrence": { + "description": "fee/charges are captured dependent on the number of occurrences rather than capped at a particular amount", + "title": "FeeCapOccurrence", + "type": "number", + "format": "float" + }, + "FeeCapAmount": { + "description": "Cap amount charged for a fee/charge (where it is charged in terms of an amount rather than a rate)", + "title": "FeeCapAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "CappingPeriod": { + "description": "Period e.g. day, week, month etc. for which the fee/charge is capped", + "title": "CappingPeriod", + "type": "string", + "enum": [ + "AcademicTerm", + "Day", + "Half Year", + "Month", + "Quarter", + "Week", + "Year" + ] + }, + "Notes": { + "description": "Free text for adding extra details for fee charge cap", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "description": "Other fee type code which is not available in the standard code set", + "type": "array", + "title": "OtherFeeType", + "items": { + "description": "Other fee type code which is not available in the standard code set", + "type": "object", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "required": [ + "Name", + "Description" + ] + } + } + }, + "required": [ + "FeeType", + "MinMaxType" + ] + } + }, + "FeeApplicableRange": { + "description": "Range or amounts or rates for which the fee/charge applies", + "type": "object", + "title": "FeeApplicableRange", + "properties": { + "MinimumAmount": { + "description": "Minimum Amount on which fee/charge is applicable (where it is expressed as an amount)", + "title": "MinimumAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "MaximumAmount": { + "description": "Maximum Amount on which fee is applicable (where it is expressed as an amount)", + "title": "MaximumAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "MinimumRate": { + "description": "Minimum rate on which fee/charge is applicable(where it is expressed as a rate)", + "title": "MinimumRate", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "MaximumRate": { + "description": "Maximum rate on which fee/charge is applicable(where it is expressed as a rate)", + "title": "MaximumRate", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + } + }, + "additionalProperties": false + } + }, + "required": [ + "FeeCategory", + "FeeType", + "ApplicationFrequency" + ] + }, + "minItems": 1 + }, + "FeeChargeCap": { + "description": "Details about any caps (maximum charges) that apply to a particular fee/charge", + "type": "array", + "title": "FeeChargeCap", + "items": { + "description": "Details about any caps (maximum charges) that apply to a particular fee/charge", + "type": "object", + "properties": { + "FeeType": { + "description": "Fee/charge type which is being capped", + "title": "FeeType", + "type": "array", + "items": { + "description": "Fee/charge type which is being capped", + "type": "string", + "enum": [ + "ServiceCAccountFee", + "ServiceCAccountFeeMonthly", + "ServiceCOther", + "Other" + ] + }, + "minItems": 1 + }, + "MinMaxType": { + "description": "Indicates that this is the minimum/ maximum fee/charge that can be applied by the financial institution", + "title": "MinMaxType", + "type": "string", + "enum": [ + "Minimum", + "Maximum" + ] + }, + "FeeCapOccurrence": { + "description": "fee/charges are captured dependent on the number of occurrences rather than capped at a particular amount", + "title": "FeeCapOccurrence", + "type": "number", + "format": "float" + }, + "FeeCapAmount": { + "description": "Cap amount charged for a fee/charge (where it is charged in terms of an amount rather than a rate)", + "title": "FeeCapAmount", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "CappingPeriod": { + "description": "Period e.g. day, week, month etc. for which the fee/charge is capped", + "title": "CappingPeriod", + "type": "string", + "enum": [ + "AcademicTerm", + "Day", + "Half Year", + "Month", + "Quarter", + "Week", + "Year" + ] + }, + "Notes": { + "description": "Free text for adding extra details for fee charge cap", + "title": "Notes", + "type": "array", + "items": { + "description": "maxLength 2000 text", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "description": "Other fee type code which is not available in the standard code set", + "type": "array", + "title": "OtherFeeType", + "items": { + "description": "Other fee type code which is not available in the standard code set", + "type": "object", + "properties": { + "Code": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "title": "Code", + "type": "string", + "pattern": "^\\w{0,4}$", + "minLength": 0, + "maxLength": 4 + }, + "Name": { + "description": "Long name associated with the code", + "title": "Name", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Description": { + "description": "Description to describe the purpose of the code", + "title": "Description", + "type": "string", + "minLength": 1, + "maxLength": 350 + } + }, + "required": [ + "Name", + "Description" + ] + } + } + }, + "required": [ + "FeeType", + "MinMaxType" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "FeeChargeDetail" + ] + } + }, + "additionalProperties": false + }, + "OBParty2": { + "type": "object", + "required": [ + "PartyId" + ], + "properties": { + "PartyId": { + "$ref": "#/components/schemas/PartyId" + }, + "PartyNumber": { + "$ref": "#/components/schemas/PartyNumber" + }, + "PartyType": { + "$ref": "#/components/schemas/OBInternalPartyType1Code" + }, + "Name": { + "$ref": "#/components/schemas/Name_3" + }, + "FullLegalName": { + "$ref": "#/components/schemas/FullLegalName" + }, + "LegalStructure": { + "$ref": "#/components/schemas/OBInternalLegalStructureType1Code" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "BeneficialOwnership": { + "description": "A flag to indicate a party's beneficial ownership of the related account", + "type": "boolean" + }, + "AccountRole": { + "$ref": "#/components/schemas/OBInternalAccountRole1Code" + }, + "EmailAddress": { + "$ref": "#/components/schemas/EmailAddress" + }, + "Phone": { + "$ref": "#/components/schemas/PhoneNumber_0" + }, + "Mobile": { + "$ref": "#/components/schemas/PhoneNumber_1" + }, + "Relationships": { + "$ref": "#/components/schemas/OBPartyRelationships1" + }, + "Address": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "additionalProperties": false + }, + "OBPartyRelationships1": { + "type": "object", + "description": "The Party's relationships with other resources.", + "properties": { + "Account": { + "type": "object", + "required": [ + "Related", + "Id" + ], + "description": "Relationship to the Account resource.", + "properties": { + "Related": { + "description": "Absolute URI to the related resource.", + "type": "string", + "example": "https://api.alphabank.com/open-banking/v4.0/aisp/accounts/89019", + "format": "uri" + }, + "Id": { + "description": "Unique identification as assigned by the ASPSP to uniquely identify the related resource.", + "type": "string", + "example": "89019", + "minLength": 1, + "maxLength": 40 + } + } + } + } + }, + "OBPostalAddress7": { + "type": "object", + "description": "Information that locates and identifies a specific address, as defined by postal services.", + "properties": { + "AddressType": { + "$ref": "#/components/schemas/OBAddressType2Code" + }, + "Department": { + "description": "Identification of a division of a large organisation or building.", + "example": "Finance", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "SubDepartment": { + "description": "Identification of a sub-division of a large organisation or building.", + "example": "Payroll", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "StreetName": { + "$ref": "#/components/schemas/StreetName" + }, + "BuildingNumber": { + "$ref": "#/components/schemas/BuildingNumber" + }, + "BuildingName": { + "$ref": "#/components/schemas/BuildingName" + }, + "Floor": { + "$ref": "#/components/schemas/Floor" + }, + "UnitNumber": { + "$ref": "#/components/schemas/UnitNumber" + }, + "Room": { + "$ref": "#/components/schemas/Room" + }, + "PostBox": { + "$ref": "#/components/schemas/PostBox" + }, + "TownLocationName": { + "$ref": "#/components/schemas/TownName" + }, + "DistrictName": { + "$ref": "#/components/schemas/DistrictName" + }, + "CareOf": { + "$ref": "#/components/schemas/CareOf" + }, + "PostCode": { + "$ref": "#/components/schemas/PostCode" + }, + "TownName": { + "$ref": "#/components/schemas/TownName" + }, + "CountrySubDivision": { + "description": "Identifies a subdivision of a country such as state, region, county.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "Country": { + "description": "Nation with its own government.", + "type": "string", + "pattern": "^[A-Z]{2,2}$" + }, + "AddressLine": { + "type": "array", + "items": { + "description": "Information that locates and identifies a specific address, as defined by postal services, presented in free format text.", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "minItems": 0, + "maxItems": 7 + } + } + }, + "OBRate1_0": { + "description": "Rate charged for Statement Fee (where it is charged in terms of a rate rather than an amount)", + "example": 0.05, + "type": "number" + }, + "OBRate1_1": { + "description": "Rate for Statement Interest (where it is applicable in terms of a rate rather than an amount)", + "example": 0.05, + "type": "number" + }, + "OBReadAccount6": { + "type": "object", + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "properties": { + "Account": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBAccount6" + } + } + } + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + }, + "additionalProperties": false + }, + "OBReadBalance1": { + "type": "object", + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "required": [ + "Balance" + ], + "properties": { + "Balance": { + "type": "array", + "items": { + "type": "object", + "description": "Set of elements used to define the balance details.", + "required": [ + "AccountId", + "CreditDebitIndicator", + "Type", + "DateTime", + "Amount" + ], + "properties": { + "AccountId": { + "$ref": "#/components/schemas/AccountId" + }, + "CreditDebitIndicator": { + "$ref": "#/components/schemas/OBCreditDebitCode_2" + }, + "Type": { + "$ref": "#/components/schemas/OBBalanceType1Code" + }, + "DateTime": { + "description": "Indicates the date (and time) of the balance. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Amount": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "Amount of money of the cash balance.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + }, + "SubType": { + "description": "Balance sub type, in a coded form. Default if not specified is BCUR of the account", + "type": "string", + "enum": [ + "BCUR", + "LCUR" + ], + "default": "BCUR" + } + } + }, + "CreditLine": { + "type": "array", + "items": { + "type": "object", + "description": "Set of elements used to provide details on the credit line.", + "required": [ + "Included" + ], + "properties": { + "Included": { + "description": "Indicates whether or not the credit line is included in the balance of the account.\nUsage: If not present, credit line is not included in the balance amount of the account.", + "type": "boolean" + }, + "Type": { + "description": "Limit type, in a coded form.
For a full list of enumeration values refer to `OBInternalLimitType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "Available", + "Credit", + "Emergency", + "Pre-Agreed", + "Temporary" + ] + }, + "Amount": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "Amount of money of the credit line.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + } + } + } + } + } + }, + "LocalAmount": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "Optional component providing the equivalent of Amount in local currency. Default is Local Currency (LCUR) if not specified", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + }, + "SubType": { + "description": "Balance sub type, in a coded form. Default if not specified is LCUR of the account", + "type": "string", + "enum": [ + "BCUR", + "LCUR" + ], + "default": "LCUR" + } + } + } + } + }, + "minItems": 1 + }, + "TotalValue": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "Combined sum of all Amounts in the accounts base currency", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + } + } + } + } + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + }, + "additionalProperties": false + }, + "OBReadBeneficiary5": { + "type": "object", + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "properties": { + "Beneficiary": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBBeneficiary5" + } + } + } + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "OBReadConsent1": { + "type": "object", + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "required": [ + "Permissions" + ], + "properties": { + "Permissions": { + "type": "array", + "items": { + "description": "Specifies the Open Banking account access data types.
This is a list of the data clusters being consented by the PSU, and requested for authorisation with the ASPSP.
For a full list of enumeration values refer to `OBInternalPermissions1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_internal_CodeSets)", + "type": "string", + "enum": [ + "ReadAccountsBasic", + "ReadAccountsDetail", + "ReadBalances", + "ReadBeneficiariesBasic", + "ReadBeneficiariesDetail", + "ReadDirectDebits", + "ReadOffers", + "ReadPAN", + "ReadParty", + "ReadPartyPSU", + "ReadProducts", + "ReadScheduledPaymentsBasic", + "ReadScheduledPaymentsDetail", + "ReadStandingOrdersBasic", + "ReadStandingOrdersDetail", + "ReadStatementsBasic", + "ReadStatementsDetail", + "ReadTransactionsBasic", + "ReadTransactionsCredits", + "ReadTransactionsDebits", + "ReadTransactionsDetail" + ] + }, + "minItems": 1 + }, + "ExpirationDateTime": { + "description": "Specified date and time the permissions will expire.\nIf this is not populated, the permissions will be open ended. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "TransactionFromDateTime": { + "description": "Specified start date and time for the transaction query period.\nIf this is not populated, the start date will be open ended, and data will be returned from the earliest available transaction. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "TransactionToDateTime": { + "description": "Specified end date and time for the transaction query period.\nIf this is not populated, the end date will be open ended, and data will be returned to the latest available transaction. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk2" + } + } + }, + "OBReadConsentResponse1": { + "type": "object", + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "required": [ + "ConsentId", + "CreationDateTime", + "Status", + "StatusUpdateDateTime", + "Permissions" + ], + "properties": { + "ConsentId": { + "description": "Unique identification as assigned to identify the account access consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "CreationDateTime": { + "$ref": "#/components/schemas/CreationDateTime" + }, + "Status": { + "$ref": "#/components/schemas/OBInternalConsentStatus1Code" + }, + "StatusReason": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBStatusReason" + }, + "description": "Specifies the status reason." + }, + "StatusUpdateDateTime": { + "$ref": "#/components/schemas/StatusUpdateDateTime" + }, + "Permissions": { + "type": "array", + "items": { + "description": "Specifies the Open Banking account access data types.
This is a list of the data clusters being consented by the PSU, and requested for authorisation with the ASPSP.
For a full list of enumeration values refer to `OBInternalPermissions1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_internal_CodeSets)", + "type": "string", + "enum": [ + "ReadAccountsBasic", + "ReadAccountsDetail", + "ReadBalances", + "ReadBeneficiariesBasic", + "ReadBeneficiariesDetail", + "ReadDirectDebits", + "ReadOffers", + "ReadPAN", + "ReadParty", + "ReadPartyPSU", + "ReadProducts", + "ReadScheduledPaymentsBasic", + "ReadScheduledPaymentsDetail", + "ReadStandingOrdersBasic", + "ReadStandingOrdersDetail", + "ReadStatementsBasic", + "ReadStatementsDetail", + "ReadTransactionsBasic", + "ReadTransactionsCredits", + "ReadTransactionsDebits", + "ReadTransactionsDetail" + ] + }, + "minItems": 1 + }, + "ExpirationDateTime": { + "description": "Specified date and time the permissions will expire.\nIf this is not populated, the permissions will be open ended. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "TransactionFromDateTime": { + "description": "Specified start date and time for the transaction query period.\nIf this is not populated, the start date will be open ended, and data will be returned from the earliest available transaction. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "TransactionToDateTime": { + "description": "Specified end date and time for the transaction query period.\nIf this is not populated, the end date will be open ended, and data will be returned to the latest available transaction. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk2" + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + }, + "additionalProperties": false + }, + "OBInternalConsentStatus1Code": { + "description": "Specifies the status of consent resource in code form.", + "type": "string", + "enum": [ + "AWAU", + "RJCT", + "AUTH", + "CANC", + "EXPD" + ] + }, + "OBReadDataStatement2": { + "type": "object", + "properties": { + "Statement": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBStatement2" + } + } + }, + "additionalProperties": false + }, + "OBReadDataTransaction6": { + "type": "object", + "properties": { + "Transaction": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBTransaction6" + } + } + }, + "additionalProperties": false + }, + "OBReadDirectDebit2": { + "type": "object", + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "properties": { + "DirectDebit": { + "type": "array", + "items": { + "type": "object", + "description": "Account to or from which a cash entry is made.", + "required": [ + "AccountId", + "Name" + ], + "properties": { + "AccountId": { + "$ref": "#/components/schemas/AccountId" + }, + "DirectDebitId": { + "$ref": "#/components/schemas/DirectDebitId" + }, + "DirectDebitStatusCode": { + "$ref": "#/components/schemas/ExternalMandateStatus1Code" + }, + "MandateRelatedInformation": { + "$ref": "#/components/schemas/OBMandateRelatedInformation1" + }, + "Name": { + "$ref": "#/components/schemas/Name_2" + }, + "PreviousPaymentDateTime": { + "$ref": "#/components/schemas/PreviousPaymentDateTime" + }, + "PreviousPaymentAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_0" + } + } + } + } + } + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + }, + "additionalProperties": false + }, + "OBReadOffer1": { + "type": "object", + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "properties": { + "Offer": { + "type": "array", + "items": { + "type": "object", + "required": [ + "AccountId" + ], + "properties": { + "AccountId": { + "$ref": "#/components/schemas/AccountId" + }, + "OfferId": { + "description": "A unique and immutable identifier used to identify the offer resource. This identifier has no meaning to the account owner.", + "type": "string", + "example": "Offer1", + "minLength": 1, + "maxLength": 40 + }, + "OfferType": { + "description": "Offer type, in a coded form. For a full list of values refer to `OBExternalOfferType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "example": "LimitIncrease", + "enum": [ + "BalanceTransfer", + "LimitIncrease", + "MoneyTransfer", + "Other", + "PromotionalRate" + ] + }, + "Description": { + "description": "Further details of the offer.", + "type": "string", + "example": "Credit limit increase for the account up to £10000.00", + "minLength": 1, + "maxLength": 500 + }, + "StartDateTime": { + "description": "Date and time at which the offer starts. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "example": "2024-05-29T00:00:00Z", + "format": "date-time" + }, + "EndDateTime": { + "description": "Date and time at which the offer ends. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "example": "2024-06-29T00:00:00Z", + "format": "date-time" + }, + "Rate": { + "description": "Rate associated with the offer type.", + "type": "string", + "example": "100.00", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "Value": { + "description": "Value associated with the offer type.", + "example": 10, + "type": "integer" + }, + "Term": { + "description": "Further details of the term of the offer.", + "type": "string", + "example": "Starting first of the month and ending at the end of year", + "minLength": 1, + "maxLength": 500 + }, + "URL": { + "description": "URL (Uniform Resource Locator) where documentation on the offer can be found", + "type": "string", + "example": "http://modelbank.com/offer/offer1", + "minLength": 1, + "maxLength": 256 + }, + "Amount": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "Amount of money associated with the offer type.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + } + } + }, + "Fee": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "Fee associated with the offer type.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + } + } + } + } + } + } + } + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + }, + "additionalProperties": false + }, + "OBReadParty2": { + "type": "object", + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "properties": { + "Party": { + "$ref": "#/components/schemas/OBParty2" + } + } + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + }, + "additionalProperties": false + }, + "OBReadParty3": { + "type": "object", + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "properties": { + "Party": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBParty2" + } + } + } + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + }, + "additionalProperties": false + }, + "OBReadProduct2": { + "type": "object", + "required": [ + "Data" + ], + "description": "Product details of Other Product which is not available in the standard list", + "properties": { + "Data": { + "type": "object", + "description": "Aligning with the read write specs structure.", + "properties": { + "Product": { + "type": "array", + "items": { + "type": "object", + "description": "Product details associated with the Account", + "required": [ + "AccountId", + "ProductType" + ], + "properties": { + "ProductName": { + "description": "The name of the Product used for marketing purposes from a customer perspective. I.e. what the customer would recognise.", + "type": "string", + "example": "321 Product", + "minLength": 1, + "maxLength": 350 + }, + "ProductId": { + "description": "Identifier within the parent organisation for the product. Must be unique in the organisation", + "type": "string", + "example": "51B", + "minLength": 1, + "maxLength": 40 + }, + "AccountId": { + "$ref": "#/components/schemas/AccountId" + }, + "SecondaryProductId": { + "description": "Any secondary Identification which supports Product Identifier to uniquely identify the current account banking products.", + "type": "string", + "example": "CA78", + "minLength": 1, + "maxLength": 70 + }, + "ProductType": { + "description": "Descriptive code for the product category. For a full list refer to `OBInternalProductType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)

If ProductType - \"Other\" is chosen, the object OtherProductType must be populated with name, and description.", + "type": "string", + "example": "PersonalCurrentAccount", + "enum": [ + "BusinessCurrentAccount", + "CommercialCreditCard", + "Other", + "PersonalCurrentAccount", + "SMELoan" + ] + }, + "MarketingStateId": { + "description": "Unique and unambiguous identification of a Product Marketing State.", + "type": "string", + "example": "22878123", + "minLength": 1, + "maxLength": 35 + }, + "OtherProductType": { + "type": "object", + "required": [ + "Name", + "Description" + ], + "description": "This field provides extension to the ProductType enumeration. If ProductType - \"Other\" is chosen, this field must be populated with name, and description for ASPSP specific product type.", + "properties": { + "Name": { + "description": "Name of \"Other\" product type.", + "type": "string", + "example": "e-Wallet", + "minLength": 1, + "maxLength": 350 + }, + "Description": { + "description": "Description of \"Other\" product type", + "type": "string", + "example": "Virtual wallet", + "minLength": 1, + "maxLength": 350 + }, + "ProductDetails": { + "type": "object", + "properties": { + "Segment": { + "type": "array", + "items": { + "description": "Market segmentation is a marketing term referring to the aggregating of prospective buyers into groups, or segments, that have common needs and respond similarly to a marketing action. Market segmentation enables companies to target different categories of consumers who perceive the full value of certain products and services differently from one another.\nRead more: Market Segmentation http://www.investopedia.com/terms/m/marketsegmentation.asp#ixzz4gfEEalTd ", + "type": "string", + "enum": [ + "GEAS", + "GEBA", + "GEBR", + "GEBU", + "GECI", + "GECS", + "GEFB", + "GEFG", + "GEG", + "GEGR", + "GEGS", + "GEOT", + "GEOV", + "GEPA", + "GEPR", + "GERE", + "GEST", + "GEYA", + "GEYO", + "PSCA", + "PSES", + "PSNC", + "PSNP", + "PSRG", + "PSSS", + "PSST", + "PSSW" + ] + } + }, + "FeeFreeLength": { + "description": "The length/duration of the fee free period", + "type": "integer" + }, + "FeeFreeLengthPeriod": { + "description": "The unit of period (days, weeks, months etc.) of the promotional length", + "type": "string", + "enum": [ + "PACT", + "PDAY", + "PHYR", + "PMTH", + "PQTR", + "PWEK", + "PYER" + ] + }, + "MonthlyMaximumCharge": { + "description": "The maximum relevant charges that could accrue as defined fully in Part 7 of the CMA order", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "Notes": { + "type": "array", + "items": { + "description": "Optional additional notes to supplement the Core product details", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherSegment": { + "$ref": "#/components/schemas/OB_OtherCodeType1_0" + } + } + }, + "CreditInterest": { + "type": "object", + "required": [ + "TierBandSet" + ], + "description": "Details about the interest that may be payable to the Account holders", + "properties": { + "TierBandSet": { + "type": "array", + "items": { + "type": "object", + "description": "The group of tiers or bands for which credit interest can be applied.", + "required": [ + "TierBandMethod", + "Destination", + "TierBand" + ], + "properties": { + "TierBandMethod": { + "description": "The methodology of how credit interest is paid/applied. It can be:-\n1. Banded\nInterest rates are banded. i.e. Increasing rate on whole balance as balance increases.\n2. Tiered\nInterest rates are tiered. i.e. increasing rate for each tier as balance increases, but interest paid on tier fixed for that tier and not on whole balance.\n3. Whole\nThe same interest rate is applied irrespective of the product holder's account balance", + "type": "string", + "enum": [ + "INBA", + "INTI", + "INWH" + ] + }, + "CalculationMethod": { + "$ref": "#/components/schemas/OB_InterestCalculationMethod1Code" + }, + "Destination": { + "description": "Describes whether accrued interest is payable only to the BCA or to another bank account", + "type": "string", + "enum": [ + "INOT", + "INPA", + "INSC" + ] + }, + "Notes": { + "type": "array", + "items": { + "description": "Optional additional notes to supplement the Tier Band Set details", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherCalculationMethod": { + "$ref": "#/components/schemas/OB_OtherCodeType1_0" + }, + "OtherDestination": { + "$ref": "#/components/schemas/OB_OtherCodeType1_0" + }, + "TierBand": { + "type": "array", + "items": { + "type": "object", + "description": "Tier Band Details", + "required": [ + "TierValueMinimum", + "ApplicationFrequency", + "FixedVariableInterestRateType", + "AER" + ], + "properties": { + "Identification": { + "description": "Unique and unambiguous identification of a Tier Band for the Product.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "TierValueMinimum": { + "description": "Minimum deposit value for which the credit interest tier applies.", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "TierValueMaximum": { + "description": "Maximum deposit value for which the credit interest tier applies.", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "CalculationFrequency": { + "description": "How often is credit interest calculated for the account.", + "type": "string", + "enum": [ + "FQAT", + "FQDY", + "FQHY", + "FQMY", + "FQOT", + "FQQY", + "FQSD", + "FQWY", + "FQYY" + ] + }, + "ApplicationFrequency": { + "description": "How often is interest applied to the Product for this tier/band i.e. how often the financial institution pays accumulated interest to the customer's account.", + "type": "string", + "enum": [ + "FQAT", + "FQDY", + "FQHY", + "FQMY", + "FQOT", + "FQQY", + "FQSD", + "FQWY", + "FQYY" + ] + }, + "DepositInterestAppliedCoverage": { + "description": "Amount on which Interest applied.", + "type": "string", + "enum": [ + "INBA", + "INTI", + "INWH" + ] + }, + "FixedVariableInterestRateType": { + "$ref": "#/components/schemas/OB_InterestFixedVariableType1Code" + }, + "AER": { + "description": "The annual equivalent rate (AER) is interest that is calculated under the assumption that any interest paid is combined with the original balance and the next interest payment will be based on the slightly higher account balance. Overall, this means that interest can be compounded several times in a year depending on the number of times that interest payments are made. \nRead more: Annual Equivalent Rate (AER) http://www.investopedia.com/terms/a/aer.asp#ixzz4gfR7IO1A", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "BankInterestRateType": { + "description": "Interest rate types, other than AER, which financial institutions may use to describe the annual interest rate payable to the account holder's account.", + "type": "string", + "enum": [ + "INBB", + "INFR", + "INGR", + "INLR", + "INNE", + "INOT" + ] + }, + "BankInterestRate": { + "description": "Bank Interest for the product", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "Notes": { + "type": "array", + "items": { + "description": "Optional additional notes to supplement the Tier Band details", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherBankInterestType": { + "type": "object", + "required": [ + "Name", + "Description" + ], + "description": "Other interest rate types which are not available in the standard code list", + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + } + }, + "OtherApplicationFrequency": { + "$ref": "#/components/schemas/OB_OtherCodeType1_1" + }, + "OtherCalculationFrequency": { + "$ref": "#/components/schemas/OB_OtherCodeType1_2" + } + } + }, + "minItems": 1 + } + } + }, + "minItems": 1 + } + } + }, + "Overdraft": { + "type": "object", + "required": [ + "OverdraftTierBandSet" + ], + "description": "Borrowing details", + "properties": { + "Notes": { + "type": "array", + "items": { + "description": "Associated Notes about the overdraft rates", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OverdraftTierBandSet": { + "type": "array", + "items": { + "type": "object", + "description": "Tier band set details", + "required": [ + "TierBandMethod", + "OverdraftTierBand" + ], + "properties": { + "TierBandMethod": { + "description": "The methodology of how overdraft is charged. It can be:\n'Whole' Where the same charge/rate is applied to the entirety of the overdraft balance (where charges are applicable). \n'Tiered' Where different charges/rates are applied dependent on overdraft maximum and minimum balance amount tiers defined by the lending financial organisation\n'Banded' Where different charges/rates are applied dependent on overdraft maximum and minimum balance amount bands defined by a government organisation.", + "type": "string", + "enum": [ + "INBA", + "INTI", + "INWH" + ] + }, + "OverdraftType": { + "description": "An overdraft can either be 'committed' which means that the facility cannot be withdrawn without reasonable notification before it's agreed end date, or 'on demand' which means that the financial institution can demand repayment at any point in time.", + "type": "string", + "enum": [ + "OVCO", + "OVOD", + "OVOT" + ] + }, + "Identification": { + "description": "Unique and unambiguous identification of a Tier Band for a overdraft product.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "AuthorisedIndicator": { + "description": "Indicates if the Overdraft is authorised (Y) or unauthorised (N)", + "type": "boolean" + }, + "BufferAmount": { + "description": "When a customer exceeds their credit limit, a financial institution will not charge the customer unauthorised overdraft charges if they do not exceed by more than the buffer amount. Note: Authorised overdraft charges may still apply.", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "Notes": { + "type": "array", + "items": { + "description": "Optional additional notes to supplement the overdraft Tier Band Set details", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OverdraftTierBand": { + "type": "array", + "items": { + "type": "object", + "description": "Provides overdraft details for a specific tier or band", + "required": [ + "TierValueMin" + ], + "properties": { + "Identification": { + "description": "Unique and unambiguous identification of a Tier Band for a overdraft.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "TierValueMin": { + "description": "Minimum value of Overdraft Tier/Band", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "TierValueMax": { + "description": "Maximum value of Overdraft Tier/Band", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "EAR": { + "description": "EAR means Effective Annual Rate and/or Equivalent Annual Rate (frequently\nused interchangeably), being the actual annual interest rate of an Overdraft.", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "AgreementLengthMin": { + "description": "Specifies the minimum length of a band for a fixed overdraft agreement", + "type": "integer" + }, + "AgreementLengthMax": { + "description": "Specifies the maximum length of a band for a fixed overdraft agreement", + "type": "integer" + }, + "AgreementPeriod": { + "description": "Specifies the period of a fixed length overdraft agreement", + "type": "string", + "enum": [ + "PACT", + "PDAY", + "PHYR", + "PMTH", + "PQTR", + "PWEK", + "PYER" + ] + }, + "OverdraftInterestChargingCoverage": { + "description": "Refers to which interest rate is applied when interests are tiered. For example, if an overdraft balance is 2k and the interest tiers are:- 0- 500 0.1%, 500-1000 0.2%, 1000-10000 0.5%, then the applicable interest rate could either be 0.5% of the entire balance (since the account balance sits in the top interest tier) or (0.1%*500)+(0.2%*500)+(0.5%*1000). In the 1st situation, we say the interest is applied to the Whole of the account balance, and in the 2nd that it is Tiered .", + "type": "string", + "enum": [ + "INBA", + "INTI", + "INWH" + ] + }, + "BankGuaranteedIndicator": { + "description": "Indicates whether the advertised overdraft rate is guaranteed to be offered to a borrower by the bank e.g. if it s part of a government scheme, or whether the rate may vary dependent on the applicant s circumstances.", + "type": "boolean" + }, + "Notes": { + "type": "array", + "items": { + "description": "Optional additional notes to supplement the Tier/band details", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OverdraftFeesCharges": { + "type": "array", + "items": { + "type": "object", + "description": "Overdraft fees and charges", + "required": [ + "OverdraftFeeChargeDetail" + ], + "properties": { + "OverdraftFeeChargeCap": { + "type": "array", + "items": { + "type": "object", + "description": "Details about any caps (maximum charges) that apply to a particular fee/charge. Capping can either be based on an amount (in gbp), an amount (in items) or a rate.", + "required": [ + "FeeType", + "MinMaxType" + ], + "properties": { + "FeeType": { + "type": "array", + "items": { + "description": "Fee/charge type which is being capped", + "type": "string", + "enum": [ + "FBAO", + "FBAR", + "FBEB", + "FBIT", + "FBOR", + "FBOS", + "FBSC", + "FBTO", + "FBUB", + "FBUT", + "FTOT", + "FTUT" + ] + }, + "minItems": 1 + }, + "MinMaxType": { + "$ref": "#/components/schemas/OB_MinMaxType1Code" + }, + "FeeCapOccurrence": { + "$ref": "#/components/schemas/Number_0" + }, + "FeeCapAmount": { + "$ref": "#/components/schemas/OB_Amount1_0" + }, + "CappingPeriod": { + "$ref": "#/components/schemas/OB_Period1Code" + }, + "Notes": { + "type": "array", + "items": { + "description": "Notes related to Overdraft fee charge cap", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "type": "array", + "items": { + "type": "object", + "description": "Other fee type code which is not available in the standard code set", + "required": [ + "Name", + "Description" + ], + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + } + } + } + } + } + }, + "OverdraftFeeChargeDetail": { + "type": "array", + "items": { + "type": "object", + "description": "Details about the fees/charges", + "required": [ + "FeeType", + "ApplicationFrequency" + ], + "properties": { + "FeeType": { + "$ref": "#/components/schemas/OB_OverdraftFeeType1Code" + }, + "NegotiableIndicator": { + "description": "Indicates whether fee and charges are negotiable", + "type": "boolean" + }, + "OverdraftControlIndicator": { + "description": "Indicates if the fee/charge is already covered by an 'Overdraft Control' fee or not.", + "type": "boolean" + }, + "IncrementalBorrowingAmount": { + "$ref": "#/components/schemas/OB_Amount1_1" + }, + "FeeAmount": { + "$ref": "#/components/schemas/OB_Amount1_2" + }, + "FeeRate": { + "$ref": "#/components/schemas/OB_Rate1_0" + }, + "FeeRateType": { + "$ref": "#/components/schemas/OB_InterestRateType1Code_0" + }, + "ApplicationFrequency": { + "$ref": "#/components/schemas/OB_FeeFrequency1Code_0" + }, + "CalculationFrequency": { + "$ref": "#/components/schemas/OB_FeeFrequency1Code_1" + }, + "Notes": { + "type": "array", + "items": { + "description": "Free text for capturing any other info related to Overdraft Fees Charge Details", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OverdraftFeeChargeCap": { + "type": "array", + "items": { + "type": "object", + "description": "Details about any caps (maximum charges) that apply to a particular fee/charge. Capping can either be based on an amount (in gbp), an amount (in items) or a rate.", + "required": [ + "FeeType", + "MinMaxType" + ], + "properties": { + "FeeType": { + "type": "array", + "items": { + "description": "Fee/charge type which is being capped", + "type": "string", + "enum": [ + "FBAO", + "FBAR", + "FBEB", + "FBIT", + "FBOR", + "FBOS", + "FBSC", + "FBTO", + "FBUB", + "FBUT", + "FTOT", + "FTUT" + ] + }, + "minItems": 1 + }, + "MinMaxType": { + "$ref": "#/components/schemas/OB_MinMaxType1Code" + }, + "FeeCapOccurrence": { + "$ref": "#/components/schemas/Number_0" + }, + "FeeCapAmount": { + "$ref": "#/components/schemas/OB_Amount1_0" + }, + "CappingPeriod": { + "$ref": "#/components/schemas/OB_Period1Code" + }, + "Notes": { + "type": "array", + "items": { + "description": "Notes related to Overdraft fee charge cap", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "type": "array", + "items": { + "type": "object", + "description": "Other fee type code which is not available in the standard code set", + "required": [ + "Name", + "Description" + ], + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + } + } + } + } + } + }, + "OtherFeeType": { + "$ref": "#/components/schemas/OB_OtherCodeType1_3" + }, + "OtherFeeRateType": { + "$ref": "#/components/schemas/OB_OtherCodeType1_4" + }, + "OtherApplicationFrequency": { + "$ref": "#/components/schemas/OB_OtherCodeType1_1" + }, + "OtherCalculationFrequency": { + "$ref": "#/components/schemas/OB_OtherCodeType1_2" + } + } + }, + "minItems": 1 + } + } + } + } + } + }, + "minItems": 1 + }, + "OverdraftFeesCharges": { + "type": "array", + "items": { + "type": "object", + "description": "Overdraft fees and charges details", + "required": [ + "OverdraftFeeChargeDetail" + ], + "properties": { + "OverdraftFeeChargeCap": { + "type": "array", + "items": { + "type": "object", + "description": "Details about any caps (maximum charges) that apply to a particular fee/charge. Capping can either be based on an amount (in gbp), an amount (in items) or a rate.", + "required": [ + "FeeType", + "MinMaxType" + ], + "properties": { + "FeeType": { + "type": "array", + "items": { + "description": "Fee/charge type which is being capped", + "type": "string", + "enum": [ + "FBAO", + "FBAR", + "FBEB", + "FBIT", + "FBOR", + "FBOS", + "FBSC", + "FBTO", + "FBUB", + "FBUT", + "FTOT", + "FTUT" + ] + }, + "minItems": 1 + }, + "MinMaxType": { + "$ref": "#/components/schemas/OB_MinMaxType1Code" + }, + "FeeCapOccurrence": { + "$ref": "#/components/schemas/Number_0" + }, + "FeeCapAmount": { + "$ref": "#/components/schemas/OB_Amount1_0" + }, + "CappingPeriod": { + "$ref": "#/components/schemas/OB_Period1Code" + }, + "Notes": { + "type": "array", + "items": { + "description": "Notes related to Overdraft fee charge cap", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "type": "array", + "items": { + "type": "object", + "description": "Other fee type code which is not available in the standard code set", + "required": [ + "Name", + "Description" + ], + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + } + } + } + } + } + }, + "OverdraftFeeChargeDetail": { + "type": "array", + "items": { + "type": "object", + "description": "Details about the fees/charges", + "required": [ + "FeeType", + "ApplicationFrequency" + ], + "properties": { + "FeeType": { + "$ref": "#/components/schemas/OB_OverdraftFeeType1Code" + }, + "NegotiableIndicator": { + "description": "Indicates whether fee and charges are negotiable", + "type": "boolean" + }, + "OverdraftControlIndicator": { + "description": "Indicates if the fee/charge is already covered by an 'Overdraft Control' fee or not.", + "type": "boolean" + }, + "IncrementalBorrowingAmount": { + "$ref": "#/components/schemas/OB_Amount1_1" + }, + "FeeAmount": { + "$ref": "#/components/schemas/OB_Amount1_2" + }, + "FeeRate": { + "$ref": "#/components/schemas/OB_Rate1_0" + }, + "FeeRateType": { + "$ref": "#/components/schemas/OB_InterestRateType1Code_0" + }, + "ApplicationFrequency": { + "$ref": "#/components/schemas/OB_FeeFrequency1Code_0" + }, + "CalculationFrequency": { + "$ref": "#/components/schemas/OB_FeeFrequency1Code_1" + }, + "Notes": { + "type": "array", + "items": { + "description": "Free text for capturing any other info related to Overdraft Fees Charge Details", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OverdraftFeeChargeCap": { + "type": "array", + "items": { + "type": "object", + "description": "Details about any caps (maximum charges) that apply to a particular fee/charge. Capping can either be based on an amount (in gbp), an amount (in items) or a rate.", + "required": [ + "FeeType", + "MinMaxType" + ], + "properties": { + "FeeType": { + "type": "array", + "items": { + "description": "Fee/charge type which is being capped", + "type": "string", + "enum": [ + "FBAO", + "FBAR", + "FBEB", + "FBIT", + "FBOR", + "FBOS", + "FBSC", + "FBTO", + "FBUB", + "FBUT", + "FTOT", + "FTUT" + ] + }, + "minItems": 1 + }, + "MinMaxType": { + "$ref": "#/components/schemas/OB_MinMaxType1Code" + }, + "FeeCapOccurrence": { + "$ref": "#/components/schemas/Number_0" + }, + "FeeCapAmount": { + "$ref": "#/components/schemas/OB_Amount1_0" + }, + "CappingPeriod": { + "$ref": "#/components/schemas/OB_Period1Code" + }, + "Notes": { + "type": "array", + "items": { + "description": "Notes related to Overdraft fee charge cap", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "type": "array", + "items": { + "type": "object", + "description": "Other fee type code which is not available in the standard code set", + "required": [ + "Name", + "Description" + ], + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + } + } + } + } + } + }, + "OtherFeeType": { + "$ref": "#/components/schemas/OB_OtherCodeType1_3" + }, + "OtherFeeRateType": { + "$ref": "#/components/schemas/OB_OtherCodeType1_4" + }, + "OtherApplicationFrequency": { + "$ref": "#/components/schemas/OB_OtherCodeType1_1" + }, + "OtherCalculationFrequency": { + "$ref": "#/components/schemas/OB_OtherCodeType1_2" + } + } + }, + "minItems": 1 + } + } + } + } + } + }, + "minItems": 1 + } + } + }, + "LoanInterest": { + "type": "object", + "required": [ + "LoanInterestTierBandSet" + ], + "description": "Details about the interest that may be payable to the SME Loan holders", + "properties": { + "Notes": { + "type": "array", + "items": { + "description": "Optional additional notes to supplement the LoanInterest", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "LoanInterestTierBandSet": { + "type": "array", + "items": { + "type": "object", + "description": "The group of tiers or bands for which debit interest can be applied.", + "required": [ + "TierBandMethod", + "CalculationMethod", + "LoanInterestTierBand" + ], + "properties": { + "TierBandMethod": { + "description": "The methodology of how credit interest is charged. It can be:-\n1. Banded\nInterest rates are banded. i.e. Increasing rate on whole balance as balance increases.\n2. Tiered\nInterest rates are tiered. i.e. increasing rate for each tier as balance increases, but interest paid on tier fixed for that tier and not on whole balance.\n3. Whole\nThe same interest rate is applied irrespective of the SME Loan balance", + "type": "string", + "enum": [ + "INBA", + "INTI", + "INWH" + ] + }, + "Identification": { + "description": "Loan interest tierbandset identification. Used by loan providers for internal use purpose.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "CalculationMethod": { + "$ref": "#/components/schemas/OB_InterestCalculationMethod1Code" + }, + "Notes": { + "type": "array", + "items": { + "description": "Optional additional notes to supplement the Tier Band Set details", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherCalculationMethod": { + "$ref": "#/components/schemas/OB_OtherCodeType1_0" + }, + "LoanInterestTierBand": { + "type": "array", + "items": { + "type": "object", + "description": "Tier Band Details", + "required": [ + "TierValueMinimum", + "TierValueMinTerm", + "MinTermPeriod", + "FixedVariableInterestRateType", + "RepAPR" + ], + "properties": { + "Identification": { + "description": "Unique and unambiguous identification of a Tier Band for a SME Loan.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "TierValueMinimum": { + "description": "Minimum loan value for which the loan interest tier applies.", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "TierValueMaximum": { + "description": "Maximum loan value for which the loan interest tier applies.", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "TierValueMinTerm": { + "description": "Minimum loan term for which the loan interest tier applies.", + "type": "integer" + }, + "MinTermPeriod": { + "description": "The unit of period (days, weeks, months etc.) of the Minimum Term", + "type": "string", + "enum": [ + "PACT", + "PDAY", + "PHYR", + "PMTH", + "PQTR", + "PWEK", + "PYER" + ] + }, + "TierValueMaxTerm": { + "description": "Maximum loan term for which the loan interest tier applies.", + "type": "integer" + }, + "MaxTermPeriod": { + "description": "The unit of period (days, weeks, months etc.) of the Maximum Term", + "type": "string", + "enum": [ + "PACT", + "PDAY", + "PHYR", + "PMTH", + "PQTR", + "PWEK", + "PYER" + ] + }, + "FixedVariableInterestRateType": { + "$ref": "#/components/schemas/OB_InterestFixedVariableType1Code" + }, + "RepAPR": { + "description": "The annual equivalent rate (AER) is interest that is calculated under the assumption that any interest paid is combined with the original balance and the next interest payment will be based on the slightly higher account balance. Overall, this means that interest can be compounded several times in a year depending on the number of times that interest payments are made. \nFor SME Loan, this APR is the representative APR which includes any account fees.", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "LoanProviderInterestRateType": { + "description": "Interest rate types, other than APR, which financial institutions may use to describe the annual interest rate payable for the SME Loan.", + "type": "string", + "enum": [ + "INBB", + "INFR", + "INGR", + "INLR", + "INNE", + "INOT" + ] + }, + "LoanProviderInterestRate": { + "description": "Loan provider Interest for the SME Loan product", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "Notes": { + "type": "array", + "items": { + "description": "Optional additional notes to supplement the Tier Band details", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherLoanProviderInterestRateType": { + "type": "object", + "required": [ + "Name", + "Description" + ], + "description": "Other loan interest rate types which are not available in the standard code list", + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + } + }, + "LoanInterestFeesCharges": { + "type": "array", + "items": { + "type": "object", + "description": "Contains details of fees and charges which are not associated with either LoanRepayment or features/benefits", + "required": [ + "LoanInterestFeeChargeDetail" + ], + "properties": { + "LoanInterestFeeChargeDetail": { + "type": "array", + "items": { + "type": "object", + "description": "Other fees/charges details", + "required": [ + "FeeType", + "ApplicationFrequency", + "CalculationFrequency" + ], + "properties": { + "FeeType": { + "$ref": "#/components/schemas/OB_FeeType1Code" + }, + "NegotiableIndicator": { + "description": "Fee/charge which is usually negotiable rather than a fixed amount", + "type": "boolean" + }, + "FeeAmount": { + "$ref": "#/components/schemas/OB_Amount1_3" + }, + "FeeRate": { + "$ref": "#/components/schemas/OB_Rate1_1" + }, + "FeeRateType": { + "$ref": "#/components/schemas/OB_InterestRateType1Code_1" + }, + "ApplicationFrequency": { + "$ref": "#/components/schemas/OB_FeeFrequency1Code_2" + }, + "CalculationFrequency": { + "$ref": "#/components/schemas/OB_FeeFrequency1Code_3" + }, + "Notes": { + "type": "array", + "items": { + "description": "Optional additional notes to supplement the fee/charge details.", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "$ref": "#/components/schemas/OB_OtherFeeChargeDetailType" + }, + "OtherFeeRateType": { + "$ref": "#/components/schemas/OB_OtherCodeType1_5" + }, + "OtherApplicationFrequency": { + "$ref": "#/components/schemas/OB_OtherCodeType1_6" + }, + "OtherCalculationFrequency": { + "$ref": "#/components/schemas/OB_OtherCodeType1_7" + } + } + }, + "minItems": 1 + }, + "LoanInterestFeeChargeCap": { + "type": "array", + "items": { + "type": "object", + "description": "Details about any caps (minimum/maximum charges) that apply to a particular fee/charge", + "required": [ + "FeeType", + "MinMaxType" + ], + "properties": { + "FeeType": { + "type": "array", + "items": { + "description": "Fee/charge type which is being capped", + "type": "string", + "enum": [ + "FEPF", + "FTOT", + "FYAF", + "FYAM", + "FYAQ", + "FYCP", + "FYDB", + "FYMI", + "FYXX" + ] + }, + "minItems": 1 + }, + "MinMaxType": { + "$ref": "#/components/schemas/OB_MinMaxType1Code" + }, + "FeeCapOccurrence": { + "$ref": "#/components/schemas/Number_1" + }, + "FeeCapAmount": { + "$ref": "#/components/schemas/OB_Amount1_4" + }, + "CappingPeriod": { + "$ref": "#/components/schemas/OB_FeeFrequency1Code_4" + }, + "Notes": { + "type": "array", + "items": { + "description": "Free text for adding extra details for fee charge cap", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "type": "array", + "items": { + "type": "object", + "description": "Other fee type code which is not available in the standard code set", + "required": [ + "Name", + "Description" + ], + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + } + } + } + } + } + } + } + } + } + } + }, + "minItems": 1 + }, + "LoanInterestFeesCharges": { + "type": "array", + "items": { + "type": "object", + "description": "Contains details of fees and charges which are not associated with either LoanRepayment or features/benefits", + "required": [ + "LoanInterestFeeChargeDetail" + ], + "properties": { + "LoanInterestFeeChargeDetail": { + "type": "array", + "items": { + "type": "object", + "description": "Other fees/charges details", + "required": [ + "FeeType", + "ApplicationFrequency", + "CalculationFrequency" + ], + "properties": { + "FeeType": { + "$ref": "#/components/schemas/OB_FeeType1Code" + }, + "NegotiableIndicator": { + "description": "Fee/charge which is usually negotiable rather than a fixed amount", + "type": "boolean" + }, + "FeeAmount": { + "$ref": "#/components/schemas/OB_Amount1_3" + }, + "FeeRate": { + "$ref": "#/components/schemas/OB_Rate1_1" + }, + "FeeRateType": { + "$ref": "#/components/schemas/OB_InterestRateType1Code_1" + }, + "ApplicationFrequency": { + "$ref": "#/components/schemas/OB_FeeFrequency1Code_2" + }, + "CalculationFrequency": { + "$ref": "#/components/schemas/OB_FeeFrequency1Code_3" + }, + "Notes": { + "type": "array", + "items": { + "description": "Optional additional notes to supplement the fee/charge details.", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "$ref": "#/components/schemas/OB_OtherFeeChargeDetailType" + }, + "OtherFeeRateType": { + "$ref": "#/components/schemas/OB_OtherCodeType1_5" + }, + "OtherApplicationFrequency": { + "$ref": "#/components/schemas/OB_OtherCodeType1_6" + }, + "OtherCalculationFrequency": { + "$ref": "#/components/schemas/OB_OtherCodeType1_7" + } + } + }, + "minItems": 1 + }, + "LoanInterestFeeChargeCap": { + "type": "array", + "items": { + "type": "object", + "description": "Details about any caps (minimum/maximum charges) that apply to a particular fee/charge", + "required": [ + "FeeType", + "MinMaxType" + ], + "properties": { + "FeeType": { + "type": "array", + "items": { + "description": "Fee/charge type which is being capped", + "type": "string", + "enum": [ + "FEPF", + "FTOT", + "FYAF", + "FYAM", + "FYAQ", + "FYCP", + "FYDB", + "FYMI", + "FYXX" + ] + }, + "minItems": 1 + }, + "MinMaxType": { + "$ref": "#/components/schemas/OB_MinMaxType1Code" + }, + "FeeCapOccurrence": { + "$ref": "#/components/schemas/Number_1" + }, + "FeeCapAmount": { + "$ref": "#/components/schemas/OB_Amount1_4" + }, + "CappingPeriod": { + "$ref": "#/components/schemas/OB_FeeFrequency1Code_4" + }, + "Notes": { + "type": "array", + "items": { + "description": "Free text for adding extra details for fee charge cap", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "type": "array", + "items": { + "type": "object", + "description": "Other fee type code which is not available in the standard code set", + "required": [ + "Name", + "Description" + ], + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + } + } + } + } + } + } + } + } + } + } + }, + "minItems": 1 + } + } + }, + "Repayment": { + "type": "object", + "description": "Repayment details of the Loan product", + "properties": { + "RepaymentType": { + "description": "Repayment type", + "type": "string", + "enum": [ + "USBA", + "USBU", + "USCI", + "USCS", + "USER", + "USFA", + "USFB", + "USFI", + "USIO", + "USOT", + "USPF", + "USRW", + "USSL" + ] + }, + "RepaymentFrequency": { + "description": "Repayment frequency", + "type": "string", + "enum": [ + "SMDA", + "SMFL", + "SMFO", + "SMHY", + "SMMO", + "SMOT", + "SMQU", + "SMWE", + "SMYE" + ] + }, + "AmountType": { + "description": "The repayment is for paying just the interest only or both interest and capital or bullet amount or balance to date etc", + "type": "string", + "enum": [ + "RABD", + "RABL", + "RACI", + "RAFC", + "RAIO", + "RALT", + "USOT" + ] + }, + "Notes": { + "type": "array", + "items": { + "description": "Optional additional notes to supplement the Repayment", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherRepaymentType": { + "type": "object", + "required": [ + "Name", + "Description" + ], + "description": "Other repayment type which is not in the standard code list", + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + } + }, + "OtherRepaymentFrequency": { + "type": "object", + "required": [ + "Name", + "Description" + ], + "description": "Other repayment frequency which is not in the standard code list", + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + } + }, + "OtherAmountType": { + "type": "object", + "required": [ + "Name", + "Description" + ], + "description": "Other amount type which is not in the standard code list", + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + } + }, + "RepaymentFeeCharges": { + "type": "object", + "required": [ + "RepaymentFeeChargeDetail" + ], + "description": "Applicable fee/charges for repayment such as prepayment, full early repayment or non repayment.", + "properties": { + "RepaymentFeeChargeDetail": { + "type": "array", + "items": { + "type": "object", + "description": "Details about specific fees/charges that are applied for repayment", + "required": [ + "FeeType", + "ApplicationFrequency", + "CalculationFrequency" + ], + "properties": { + "FeeType": { + "$ref": "#/components/schemas/OB_FeeType1Code" + }, + "NegotiableIndicator": { + "description": "Fee/charge which is usually negotiable rather than a fixed amount", + "type": "boolean" + }, + "FeeAmount": { + "$ref": "#/components/schemas/OB_Amount1_3" + }, + "FeeRate": { + "$ref": "#/components/schemas/OB_Rate1_1" + }, + "FeeRateType": { + "$ref": "#/components/schemas/OB_InterestRateType1Code_1" + }, + "ApplicationFrequency": { + "$ref": "#/components/schemas/OB_FeeFrequency1Code_2" + }, + "CalculationFrequency": { + "$ref": "#/components/schemas/OB_FeeFrequency1Code_3" + }, + "Notes": { + "type": "array", + "items": { + "description": "Optional additional notes to supplement the fee/charge details.", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "$ref": "#/components/schemas/OB_OtherFeeChargeDetailType" + }, + "OtherFeeRateType": { + "$ref": "#/components/schemas/OB_OtherCodeType1_8" + }, + "OtherApplicationFrequency": { + "$ref": "#/components/schemas/OB_OtherCodeType1_6" + }, + "OtherCalculationFrequency": { + "$ref": "#/components/schemas/OB_OtherCodeType1_7" + } + } + }, + "minItems": 1 + }, + "RepaymentFeeChargeCap": { + "type": "array", + "items": { + "type": "object", + "description": "RepaymentFeeChargeCap sets daily, weekly, monthly, yearly limits on the fees that are charged", + "required": [ + "FeeType", + "MinMaxType" + ], + "properties": { + "FeeType": { + "type": "array", + "items": { + "description": "Fee/charge type which is being capped", + "type": "string", + "enum": [ + "FEPF", + "FTOT", + "FYAF", + "FYAM", + "FYAQ", + "FYCP", + "FYDB", + "FYMI", + "FYXX" + ] + }, + "minItems": 1 + }, + "MinMaxType": { + "$ref": "#/components/schemas/OB_MinMaxType1Code" + }, + "FeeCapOccurrence": { + "$ref": "#/components/schemas/Number_1" + }, + "FeeCapAmount": { + "$ref": "#/components/schemas/OB_Amount1_4" + }, + "CappingPeriod": { + "$ref": "#/components/schemas/OB_Period1Code" + }, + "Notes": { + "type": "array", + "items": { + "description": "Free text for adding extra details for fee charge cap", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "type": "array", + "items": { + "type": "object", + "description": "Other fee type code which is not available in the standard code set", + "required": [ + "Name", + "Description" + ], + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + } + } + } + } + } + } + } + }, + "RepaymentHoliday": { + "type": "array", + "items": { + "type": "object", + "description": "Details of capital repayment holiday if any", + "properties": { + "MaxHolidayLength": { + "description": "The maximum length/duration of a Repayment Holiday", + "type": "integer" + }, + "MaxHolidayPeriod": { + "description": "The unit of period (days, weeks, months etc.) of the repayment holiday", + "type": "string", + "enum": [ + "PACT", + "PDAY", + "PHYR", + "PMTH", + "PQTR", + "PWEK", + "PYER" + ] + }, + "Notes": { + "type": "array", + "items": { + "description": "Free text for adding details for repayment holiday", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + } + } + } + } + } + }, + "OtherFeesCharges": { + "type": "array", + "items": { + "type": "object", + "description": "Contains details of fees and charges which are not associated with either Overdraft or features/benefits", + "required": [ + "FeeChargeDetail" + ], + "properties": { + "TariffType": { + "description": "TariffType which defines the fee and charges.", + "type": "string", + "enum": [ + "TTEL", + "TTMX", + "TTOT" + ] + }, + "TariffName": { + "description": "Name of the tariff", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "OtherTariffType": { + "type": "object", + "required": [ + "Name", + "Description" + ], + "description": "Other tariff type which is not in the standard list.", + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + } + }, + "FeeChargeDetail": { + "type": "array", + "items": { + "type": "object", + "description": "Other fees/charges details", + "required": [ + "FeeCategory", + "FeeType", + "ApplicationFrequency" + ], + "properties": { + "FeeCategory": { + "$ref": "#/components/schemas/OB_FeeCategory1Code" + }, + "FeeType": { + "$ref": "#/components/schemas/OB_FeeType1Code" + }, + "NegotiableIndicator": { + "description": "Fee/charge which is usually negotiable rather than a fixed amount", + "type": "boolean" + }, + "FeeAmount": { + "$ref": "#/components/schemas/OB_Amount1_3" + }, + "FeeRate": { + "$ref": "#/components/schemas/OB_Rate1_1" + }, + "FeeRateType": { + "$ref": "#/components/schemas/OB_InterestRateType1Code_1" + }, + "ApplicationFrequency": { + "$ref": "#/components/schemas/OB_FeeFrequency1Code_2" + }, + "CalculationFrequency": { + "$ref": "#/components/schemas/OB_FeeFrequency1Code_3" + }, + "Notes": { + "type": "array", + "items": { + "description": "Optional additional notes to supplement the fee/charge details.", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "FeeChargeCap": { + "type": "array", + "items": { + "type": "object", + "description": "Details about any caps (maximum charges) that apply to a particular or group of fee/charge", + "required": [ + "FeeType", + "MinMaxType" + ], + "properties": { + "FeeType": { + "type": "array", + "items": { + "description": "Fee/charge type which is being capped", + "type": "string", + "enum": [ + "FEPF", + "FTOT", + "FYAF", + "FYAM", + "FYAQ", + "FYCP", + "FYDB", + "FYMI", + "FYXX" + ] + }, + "minItems": 1 + }, + "MinMaxType": { + "$ref": "#/components/schemas/OB_MinMaxType1Code" + }, + "FeeCapOccurrence": { + "$ref": "#/components/schemas/Number_1" + }, + "FeeCapAmount": { + "$ref": "#/components/schemas/OB_Amount1_4" + }, + "CappingPeriod": { + "$ref": "#/components/schemas/OB_Period1Code" + }, + "Notes": { + "type": "array", + "items": { + "description": "Free text for adding extra details for fee charge cap", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "type": "array", + "items": { + "type": "object", + "description": "Other fee type code which is not available in the standard code set", + "required": [ + "Name", + "Description" + ], + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + } + } + } + } + } + }, + "OtherFeeCategoryType": { + "$ref": "#/components/schemas/OB_OtherCodeType1_0" + }, + "OtherFeeType": { + "$ref": "#/components/schemas/OB_OtherFeeChargeDetailType" + }, + "OtherFeeRateType": { + "$ref": "#/components/schemas/OB_OtherCodeType1_8" + }, + "OtherApplicationFrequency": { + "$ref": "#/components/schemas/OB_OtherCodeType1_6" + }, + "OtherCalculationFrequency": { + "$ref": "#/components/schemas/OB_OtherCodeType1_7" + }, + "FeeApplicableRange": { + "type": "object", + "description": "Range or amounts or rates for which the fee/charge applies", + "properties": { + "MinimumAmount": { + "description": "Minimum Amount on which fee/charge is applicable (where it is expressed as an amount)", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "MaximumAmount": { + "description": "Maximum Amount on which fee is applicable (where it is expressed as an amount)", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "MinimumRate": { + "description": "Minimum rate on which fee/charge is applicable(where it is expressed as a rate)", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "MaximumRate": { + "description": "Maximum rate on which fee/charge is applicable(where it is expressed as a rate)", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + } + } + } + } + }, + "minItems": 1 + }, + "FeeChargeCap": { + "type": "array", + "items": { + "type": "object", + "description": "Details about any caps (maximum charges) that apply to a particular or group of fee/charge", + "required": [ + "FeeType", + "MinMaxType" + ], + "properties": { + "FeeType": { + "type": "array", + "items": { + "description": "Fee/charge type which is being capped", + "type": "string", + "enum": [ + "FEPF", + "FTOT", + "FYAF", + "FYAM", + "FYAQ", + "FYCP", + "FYDB", + "FYMI", + "FYXX" + ] + }, + "minItems": 1 + }, + "MinMaxType": { + "$ref": "#/components/schemas/OB_MinMaxType1Code" + }, + "FeeCapOccurrence": { + "$ref": "#/components/schemas/Number_1" + }, + "FeeCapAmount": { + "$ref": "#/components/schemas/OB_Amount1_4" + }, + "CappingPeriod": { + "$ref": "#/components/schemas/OB_Period1Code" + }, + "Notes": { + "type": "array", + "items": { + "description": "Free text for adding extra details for fee charge cap", + "type": "string", + "minLength": 1, + "maxLength": 2000 + } + }, + "OtherFeeType": { + "type": "array", + "items": { + "type": "object", + "description": "Other fee type code which is not available in the standard code set", + "required": [ + "Name", + "Description" + ], + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + } + } + } + } + } + } + } + } + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + }, + "BCA": { + "$ref": "#/components/schemas/OBBCAData1" + }, + "PCA": { + "$ref": "#/components/schemas/OBPCAData1" + } + } + } + } + } + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + }, + "additionalProperties": false + }, + "OBReadScheduledPayment3": { + "type": "object", + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "properties": { + "ScheduledPayment": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBScheduledPayment3" + } + } + } + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + }, + "additionalProperties": false + }, + "OBReadStandingOrder6": { + "type": "object", + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "properties": { + "StandingOrder": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBStandingOrder6" + } + } + } + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + }, + "additionalProperties": false + }, + "OBReadStatement2": { + "type": "object", + "required": [ + "Data" + ], + "properties": { + "Data": { + "$ref": "#/components/schemas/OBReadDataStatement2" + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + }, + "additionalProperties": false + }, + "OBReadTransaction6": { + "type": "object", + "required": [ + "Data" + ], + "properties": { + "Data": { + "$ref": "#/components/schemas/OBReadDataTransaction6" + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + }, + "additionalProperties": false + }, + "OBScheduledPayment3": { + "type": "object", + "required": [ + "AccountId", + "ScheduledPaymentDateTime", + "ScheduledType", + "InstructedAmount" + ], + "properties": { + "AccountId": { + "$ref": "#/components/schemas/AccountId" + }, + "ScheduledPaymentId": { + "$ref": "#/components/schemas/ScheduledPaymentId" + }, + "ScheduledPaymentDateTime": { + "$ref": "#/components/schemas/ScheduledPaymentDateTime" + }, + "ScheduledType": { + "$ref": "#/components/schemas/OBInternalScheduleType1Code" + }, + "Reference": { + "$ref": "#/components/schemas/Reference" + }, + "DebtorReference": { + "$ref": "#/components/schemas/DebtorReference" + }, + "InstructedAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_1" + }, + "CreditorAgent": { + "$ref": "#/components/schemas/OBBranchAndFinancialInstitutionIdentification5_1" + }, + "CreditorAccount": { + "$ref": "#/components/schemas/OBCashAccount5_1" + } + }, + "additionalProperties": false + }, + "OBScheduledPayment3Basic": { + "type": "object", + "required": [ + "AccountId", + "ScheduledPaymentDateTime", + "ScheduledType", + "InstructedAmount" + ], + "properties": { + "AccountId": { + "$ref": "#/components/schemas/AccountId" + }, + "ScheduledPaymentId": { + "$ref": "#/components/schemas/ScheduledPaymentId" + }, + "ScheduledPaymentDateTime": { + "$ref": "#/components/schemas/ScheduledPaymentDateTime" + }, + "ScheduledType": { + "$ref": "#/components/schemas/OBInternalScheduleType1Code" + }, + "Reference": { + "$ref": "#/components/schemas/Reference" + }, + "DebtorReference": { + "$ref": "#/components/schemas/DebtorReference" + }, + "InstructedAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_1" + } + }, + "additionalProperties": false + }, + "OBScheduledPayment3Detail": { + "type": "object", + "required": [ + "AccountId", + "ScheduledPaymentDateTime", + "ScheduledType", + "InstructedAmount", + "CreditorAccount" + ], + "properties": { + "AccountId": { + "$ref": "#/components/schemas/AccountId" + }, + "ScheduledPaymentId": { + "$ref": "#/components/schemas/ScheduledPaymentId" + }, + "ScheduledPaymentDateTime": { + "$ref": "#/components/schemas/ScheduledPaymentDateTime" + }, + "ScheduledType": { + "$ref": "#/components/schemas/OBInternalScheduleType1Code" + }, + "Reference": { + "$ref": "#/components/schemas/Reference" + }, + "DebtorReference": { + "$ref": "#/components/schemas/DebtorReference" + }, + "InstructedAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_1" + }, + "CreditorAgent": { + "$ref": "#/components/schemas/OBBranchAndFinancialInstitutionIdentification5_1" + }, + "CreditorAccount": { + "$ref": "#/components/schemas/OBCashAccount5_1" + } + }, + "additionalProperties": false + }, + "OBStandingOrder6": { + "type": "object", + "required": [ + "AccountId" + ], + "properties": { + "AccountId": { + "$ref": "#/components/schemas/AccountId" + }, + "StandingOrderId": { + "$ref": "#/components/schemas/StandingOrderId" + }, + "NextPaymentDateTime": { + "$ref": "#/components/schemas/NextPaymentDateTime" + }, + "LastPaymentDateTime": { + "$ref": "#/components/schemas/LastPaymentDateTime" + }, + "NumberOfPayments": { + "$ref": "#/components/schemas/NumberOfPayments" + }, + "StandingOrderStatusCode": { + "$ref": "#/components/schemas/ExternalMandateStatus1Code" + }, + "FirstPaymentAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_2" + }, + "NextPaymentAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_3" + }, + "LastPaymentAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_11" + }, + "FinalPaymentAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_4" + }, + "CreditorAgent": { + "$ref": "#/components/schemas/OBBranchAndFinancialInstitutionIdentification5_1" + }, + "CreditorAccount": { + "$ref": "#/components/schemas/OBCashAccount5_1" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + }, + "MandateRelatedInformation": { + "$ref": "#/components/schemas/OBMandateRelatedInformation1" + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + } + }, + "additionalProperties": false + }, + "OBStandingOrder6Basic": { + "type": "object", + "required": [ + "AccountId" + ], + "properties": { + "AccountId": { + "$ref": "#/components/schemas/AccountId" + }, + "StandingOrderId": { + "$ref": "#/components/schemas/StandingOrderId" + }, + "NextPaymentDateTime": { + "$ref": "#/components/schemas/NextPaymentDateTime" + }, + "LastPaymentDateTime": { + "$ref": "#/components/schemas/LastPaymentDateTime" + }, + "NumberOfPayments": { + "$ref": "#/components/schemas/NumberOfPayments" + }, + "StandingOrderStatusCode": { + "$ref": "#/components/schemas/ExternalMandateStatus1Code" + }, + "FirstPaymentAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_2" + }, + "NextPaymentAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_3" + }, + "LastPaymentAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_11" + }, + "FinalPaymentAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_4" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + }, + "MandateRelatedInformation": { + "$ref": "#/components/schemas/OBMandateRelatedInformation1" + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + } + }, + "additionalProperties": false + }, + "OBStandingOrder6Detail": { + "type": "object", + "required": [ + "AccountId", + "CreditorAccount" + ], + "properties": { + "AccountId": { + "$ref": "#/components/schemas/AccountId" + }, + "StandingOrderId": { + "$ref": "#/components/schemas/StandingOrderId" + }, + "NextPaymentDateTime": { + "$ref": "#/components/schemas/NextPaymentDateTime" + }, + "LastPaymentDateTime": { + "$ref": "#/components/schemas/LastPaymentDateTime" + }, + "NumberOfPayments": { + "$ref": "#/components/schemas/NumberOfPayments" + }, + "StandingOrderStatusCode": { + "$ref": "#/components/schemas/ExternalMandateStatus1Code" + }, + "FirstPaymentAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_2" + }, + "NextPaymentAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_3" + }, + "LastPaymentAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_11" + }, + "FinalPaymentAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_4" + }, + "CreditorAgent": { + "$ref": "#/components/schemas/OBBranchAndFinancialInstitutionIdentification5_1" + }, + "CreditorAccount": { + "$ref": "#/components/schemas/OBCashAccount5_1" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + }, + "MandateRelatedInformation": { + "$ref": "#/components/schemas/OBMandateRelatedInformation1" + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + } + }, + "additionalProperties": false + }, + "OBStatement2": { + "type": "object", + "description": "Provides further details on a statement resource.", + "required": [ + "AccountId", + "Type", + "StartDateTime", + "EndDateTime", + "CreationDateTime" + ], + "properties": { + "AccountId": { + "$ref": "#/components/schemas/AccountId" + }, + "StatementId": { + "$ref": "#/components/schemas/StatementId" + }, + "StatementReference": { + "$ref": "#/components/schemas/StatementReference" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalStatementType1Code" + }, + "StartDateTime": { + "$ref": "#/components/schemas/StartDateTime" + }, + "EndDateTime": { + "$ref": "#/components/schemas/EndDateTime" + }, + "CreationDateTime": { + "$ref": "#/components/schemas/CreationDateTime" + }, + "StatementDescription": { + "type": "array", + "items": { + "description": "Other descriptions that may be available for the statement resource.", + "type": "string", + "example": "August 2017 Statement", + "minLength": 1, + "maxLength": 500 + } + }, + "StatementBenefit": { + "type": "array", + "items": { + "type": "object", + "description": "Set of elements used to provide details of a benefit or reward amount for the statement resource.", + "required": [ + "Type", + "Amount" + ], + "properties": { + "Type": { + "$ref": "#/components/schemas/OBInternalStatementBenefitType1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_5" + } + } + } + }, + "StatementFee": { + "type": "array", + "items": { + "type": "object", + "description": "Set of elements used to provide details of a fee for the statement resource.", + "required": [ + "CreditDebitIndicator", + "Type", + "Amount" + ], + "properties": { + "Description": { + "$ref": "#/components/schemas/Description_1" + }, + "CreditDebitIndicator": { + "$ref": "#/components/schemas/OBCreditDebitCode_0" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalStatementFeeType1Code" + }, + "Rate": { + "$ref": "#/components/schemas/OBRate1_0" + }, + "RateType": { + "$ref": "#/components/schemas/OBInternalStatementFeeRateType1Code" + }, + "Frequency": { + "$ref": "#/components/schemas/OBInternalStatementFeeFrequency1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_6" + } + } + } + }, + "StatementInterest": { + "type": "array", + "items": { + "type": "object", + "description": "Set of elements used to provide details of a generic interest amount related to the statement resource.", + "required": [ + "CreditDebitIndicator", + "Type", + "Amount" + ], + "properties": { + "Description": { + "$ref": "#/components/schemas/Description_2" + }, + "CreditDebitIndicator": { + "$ref": "#/components/schemas/OBCreditDebitCode_0" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalStatementInterestType1Code" + }, + "Rate": { + "$ref": "#/components/schemas/OBRate1_1" + }, + "RateType": { + "$ref": "#/components/schemas/OBInternalStatementInterestRateType1Code" + }, + "Frequency": { + "$ref": "#/components/schemas/OBInternalStatementInterestFrequency1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_7" + } + } + } + }, + "StatementAmount": { + "type": "array", + "items": { + "type": "object", + "description": "Set of elements used to provide details of a generic amount for the statement resource.", + "required": [ + "CreditDebitIndicator", + "Type", + "Amount" + ], + "properties": { + "CreditDebitIndicator": { + "$ref": "#/components/schemas/OBCreditDebitCode_0" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalStatementAmountType1Code" + }, + "Amount": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "Amount of money of the cash balance.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + }, + "SubType": { + "description": "The amount in the domestic or base accounting currency. Default is Base Currency (BCUR) if not specified", + "type": "string", + "enum": [ + "BCUR", + "LCUR" + ], + "default": "BCUR" + } + } + }, + "LocalAmount": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "Optional component providing the equivalent of Amount in local currency.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + }, + "SubType": { + "description": "The amount in the local market currency for which the asset is held. Default is Local Currency (LCUR) if not specified", + "type": "string", + "enum": [ + "BCUR", + "LCUR" + ], + "default": "LCUR" + } + } + } + } + } + }, + "StatementDateTime": { + "type": "array", + "items": { + "type": "object", + "description": "Set of elements used to provide details of a generic date time for the statement resource.", + "required": [ + "DateTime", + "Type" + ], + "properties": { + "DateTime": { + "$ref": "#/components/schemas/DateTime" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalStatementDateTimeType1Code" + } + } + } + }, + "StatementRate": { + "type": "array", + "items": { + "type": "object", + "description": "Set of elements used to provide details of a generic rate related to the statement resource.", + "required": [ + "Rate", + "Type" + ], + "properties": { + "Rate": { + "$ref": "#/components/schemas/Rate" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalStatementRateType1Code" + } + } + } + }, + "StatementValue": { + "type": "array", + "items": { + "type": "object", + "description": "Set of elements used to provide details of a generic number value related to the statement resource.", + "required": [ + "Value", + "Type" + ], + "properties": { + "Value": { + "$ref": "#/components/schemas/Value" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalStatementValueType1Code" + } + } + } + }, + "TotalValue": { + "type": "object", + "description": "Combined sum of all Amounts in the accounts base currency", + "required": [ + "Amount", + "Currency" + ], + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + } + } + } + }, + "additionalProperties": false + }, + "OBStatement2Basic": { + "type": "object", + "description": "Provides further details on a statement resource.", + "required": [ + "AccountId", + "Type", + "StartDateTime", + "EndDateTime", + "CreationDateTime" + ], + "properties": { + "AccountId": { + "$ref": "#/components/schemas/AccountId" + }, + "StatementId": { + "$ref": "#/components/schemas/StatementId" + }, + "StatementReference": { + "$ref": "#/components/schemas/StatementReference" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalStatementType1Code" + }, + "StartDateTime": { + "$ref": "#/components/schemas/StartDateTime" + }, + "EndDateTime": { + "$ref": "#/components/schemas/EndDateTime" + }, + "CreationDateTime": { + "$ref": "#/components/schemas/CreationDateTime" + }, + "StatementDescription": { + "type": "array", + "items": { + "description": "Other descriptions that may be available for the statement resource.", + "type": "string", + "minLength": 1, + "maxLength": 500 + } + }, + "StatementBenefit": { + "type": "array", + "items": { + "type": "object", + "description": "Set of elements used to provide details of a benefit or reward amount for the statement resource.", + "required": [ + "Type", + "Amount" + ], + "properties": { + "Type": { + "$ref": "#/components/schemas/OBInternalStatementBenefitType1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_5" + } + } + } + }, + "StatementFee": { + "type": "array", + "items": { + "type": "object", + "description": "Set of elements used to provide details of a fee for the statement resource.", + "required": [ + "CreditDebitIndicator", + "Type", + "Amount" + ], + "properties": { + "Description": { + "$ref": "#/components/schemas/Description_1" + }, + "CreditDebitIndicator": { + "$ref": "#/components/schemas/OBCreditDebitCode_0" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalStatementFeeType1Code" + }, + "Rate": { + "$ref": "#/components/schemas/OBRate1_0" + }, + "RateType": { + "$ref": "#/components/schemas/OBInternalStatementFeeRateType1Code" + }, + "Frequency": { + "$ref": "#/components/schemas/OBInternalStatementFeeFrequency1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_6" + } + } + } + }, + "StatementInterest": { + "type": "array", + "items": { + "type": "object", + "description": "Set of elements used to provide details of a generic interest amount related to the statement resource.", + "required": [ + "CreditDebitIndicator", + "Type", + "Amount" + ], + "properties": { + "Description": { + "$ref": "#/components/schemas/Description_2" + }, + "CreditDebitIndicator": { + "$ref": "#/components/schemas/OBCreditDebitCode_0" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalStatementInterestType1Code" + }, + "Rate": { + "$ref": "#/components/schemas/OBRate1_1" + }, + "RateType": { + "$ref": "#/components/schemas/OBInternalStatementInterestRateType1Code" + }, + "Frequency": { + "$ref": "#/components/schemas/OBInternalStatementInterestFrequency1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_7" + } + } + } + }, + "StatementDateTime": { + "type": "array", + "items": { + "type": "object", + "description": "Set of elements used to provide details of a generic date time for the statement resource.", + "required": [ + "DateTime", + "Type" + ], + "properties": { + "DateTime": { + "$ref": "#/components/schemas/DateTime" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalStatementDateTimeType1Code" + } + } + } + }, + "StatementRate": { + "type": "array", + "items": { + "type": "object", + "description": "Set of elements used to provide details of a generic rate related to the statement resource.", + "required": [ + "Rate", + "Type" + ], + "properties": { + "Rate": { + "$ref": "#/components/schemas/Rate" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalStatementRateType1Code" + } + } + } + }, + "StatementValue": { + "type": "array", + "items": { + "type": "object", + "description": "Set of elements used to provide details of a generic number value related to the statement resource.", + "required": [ + "Value", + "Type" + ], + "properties": { + "Value": { + "$ref": "#/components/schemas/Value" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalStatementValueType1Code" + } + } + } + }, + "TotalValue": { + "type": "object", + "description": "Combined sum of all Amounts in the accounts base currency", + "required": [ + "Amount", + "Currency" + ], + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + } + } + } + }, + "additionalProperties": false + }, + "OBStatement2Detail": { + "type": "object", + "description": "Provides further details on a statement resource.", + "required": [ + "AccountId", + "Type", + "StartDateTime", + "EndDateTime", + "CreationDateTime" + ], + "properties": { + "AccountId": { + "$ref": "#/components/schemas/AccountId" + }, + "StatementId": { + "$ref": "#/components/schemas/StatementId" + }, + "StatementReference": { + "$ref": "#/components/schemas/StatementReference" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalStatementType1Code" + }, + "StartDateTime": { + "$ref": "#/components/schemas/StartDateTime" + }, + "EndDateTime": { + "$ref": "#/components/schemas/EndDateTime" + }, + "CreationDateTime": { + "$ref": "#/components/schemas/CreationDateTime" + }, + "StatementDescription": { + "type": "array", + "items": { + "description": "Other descriptions that may be available for the statement resource.", + "type": "string", + "minLength": 1, + "maxLength": 500 + } + }, + "StatementBenefit": { + "type": "array", + "items": { + "type": "object", + "description": "Set of elements used to provide details of a benefit or reward amount for the statement resource.", + "required": [ + "Type", + "Amount" + ], + "properties": { + "Type": { + "$ref": "#/components/schemas/OBInternalStatementBenefitType1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_5" + } + } + } + }, + "StatementFee": { + "type": "array", + "items": { + "type": "object", + "description": "Set of elements used to provide details of a fee for the statement resource.", + "required": [ + "CreditDebitIndicator", + "Type", + "Amount" + ], + "properties": { + "Description": { + "$ref": "#/components/schemas/Description_1" + }, + "CreditDebitIndicator": { + "$ref": "#/components/schemas/OBCreditDebitCode_0" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalStatementFeeType1Code" + }, + "Rate": { + "$ref": "#/components/schemas/OBRate1_0" + }, + "RateType": { + "$ref": "#/components/schemas/OBInternalStatementFeeRateType1Code" + }, + "Frequency": { + "$ref": "#/components/schemas/OBInternalStatementFeeFrequency1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_6" + } + } + } + }, + "StatementInterest": { + "type": "array", + "items": { + "type": "object", + "description": "Set of elements used to provide details of a generic interest amount related to the statement resource.", + "required": [ + "CreditDebitIndicator", + "Type", + "Amount" + ], + "properties": { + "Description": { + "$ref": "#/components/schemas/Description_2" + }, + "CreditDebitIndicator": { + "$ref": "#/components/schemas/OBCreditDebitCode_0" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalStatementInterestType1Code" + }, + "Rate": { + "$ref": "#/components/schemas/OBRate1_1" + }, + "RateType": { + "$ref": "#/components/schemas/OBInternalStatementInterestRateType1Code" + }, + "Frequency": { + "$ref": "#/components/schemas/OBInternalStatementInterestFrequency1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_7" + } + } + } + }, + "StatementAmount": { + "type": "array", + "items": { + "type": "object", + "description": "Set of elements used to provide details of a generic amount for the statement resource.", + "required": [ + "CreditDebitIndicator", + "Type", + "Amount" + ], + "properties": { + "CreditDebitIndicator": { + "$ref": "#/components/schemas/OBCreditDebitCode_0" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalStatementAmountType1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_8" + }, + "LocalAmount": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "Optional component providing the equivalent of Amount in local currency.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + }, + "SubType": { + "description": "The amount in the local market currency for which the asset is held. Default is Local Currency (LCUR) if not specified", + "type": "string", + "enum": [ + "BCUR", + "LCUR" + ], + "default": "LCUR" + } + } + } + } + } + }, + "StatementDateTime": { + "type": "array", + "items": { + "type": "object", + "description": "Set of elements used to provide details of a generic date time for the statement resource.", + "required": [ + "DateTime", + "Type" + ], + "properties": { + "DateTime": { + "$ref": "#/components/schemas/DateTime" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalStatementDateTimeType1Code" + } + } + } + }, + "StatementRate": { + "type": "array", + "items": { + "type": "object", + "description": "Set of elements used to provide details of a generic rate related to the statement resource.", + "required": [ + "Rate", + "Type" + ], + "properties": { + "Rate": { + "$ref": "#/components/schemas/Rate" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalStatementRateType1Code" + } + } + } + }, + "StatementValue": { + "type": "array", + "items": { + "type": "object", + "description": "Set of elements used to provide details of a generic number value related to the statement resource.", + "required": [ + "Value", + "Type" + ], + "properties": { + "Value": { + "$ref": "#/components/schemas/Value" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalStatementValueType1Code" + } + } + } + }, + "TotalValue": { + "type": "object", + "description": "Combined sum of all Amounts in the accounts base currency", + "required": [ + "Amount", + "Currency" + ], + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + } + } + } + }, + "additionalProperties": false + }, + "OBStatusReason": { + "type": "object", + "properties": { + "StatusReasonCode": { + "type": "string", + "description": "Specifies the status reason in a code form. \n For a full description see `OBExternalStatusReason1Code` [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "minLength": 1, + "maxLength": 4, + "example": "U004" + }, + "StatusReasonDescription": { + "description": "Description supporting the StatusReasonCode.", + "type": "string", + "minLength": 1, + "maxLength": 500, + "example": "Permissions field is missing" + }, + "Path": { + "type": "string", + "description": "Recommended but optional reference to JSON path if relevant to the StatusReasonCode.", + "minLength": 1, + "maxLength": 500, + "example": "Data.Permissions" + } + } + }, + "OBSupplementaryData1": { + "type": "object", + "properties": {}, + "additionalProperties": true, + "description": "Additional information that can not be captured in the structured fields and/or any other specific block." + }, + "OBTransaction6": { + "type": "object", + "description": "Provides further details on an entry in the report.", + "required": [ + "AccountId", + "CreditDebitIndicator", + "Status", + "BookingDateTime", + "Amount" + ], + "properties": { + "AccountId": { + "$ref": "#/components/schemas/AccountId" + }, + "TransactionId": { + "$ref": "#/components/schemas/TransactionId" + }, + "TransactionReference": { + "$ref": "#/components/schemas/TransactionReference" + }, + "StatementReference": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StatementReference" + } + }, + "CreditDebitIndicator": { + "$ref": "#/components/schemas/OBCreditDebitCode_1" + }, + "Status": { + "$ref": "#/components/schemas/ExternalEntryStatus1Code" + }, + "TransactionMutability": { + "$ref": "#/components/schemas/OBInternalTransactionMutability1Code" + }, + "BookingDateTime": { + "$ref": "#/components/schemas/BookingDateTime" + }, + "ValueDateTime": { + "$ref": "#/components/schemas/ValueDateTime" + }, + "TransactionInformation": { + "$ref": "#/components/schemas/TransactionInformation" + }, + "AddressLine": { + "$ref": "#/components/schemas/AddressLine" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_9" + }, + "ChargeAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_10" + }, + "CurrencyExchange": { + "$ref": "#/components/schemas/OBCurrencyExchange5" + }, + "BankTransactionCode": { + "$ref": "#/components/schemas/OBBankTransactionCodeStructure1" + }, + "ProprietaryBankTransactionCode": { + "$ref": "#/components/schemas/ProprietaryBankTransactionCodeStructure1" + }, + "ExtendedProprietaryBankTransactionCodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBExtendedProprietaryBankTransactionCode" + } + }, + "Balance": { + "$ref": "#/components/schemas/OBTransactionCashBalance" + }, + "MerchantDetails": { + "$ref": "#/components/schemas/OBMerchantDetails1" + }, + "CreditorAgent": { + "$ref": "#/components/schemas/OBBranchAndFinancialInstitutionIdentification6_1" + }, + "CreditorAccount": { + "$ref": "#/components/schemas/OBCashAccount6_0" + }, + "DebtorAgent": { + "$ref": "#/components/schemas/OBBranchAndFinancialInstitutionIdentification6_2" + }, + "DebtorAccount": { + "$ref": "#/components/schemas/OBCashAccount6_1" + }, + "CardInstrument": { + "$ref": "#/components/schemas/OBTransactionCardInstrument1" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + }, + "CategoryPurposeCode": { + "$ref": "#/components/schemas/ExternalCategoryPurpose1Code" + }, + "PaymentPurposeCode": { + "$ref": "#/components/schemas/OBExternalPurpose1Code" + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "IntermediaryAgent1": { + "$ref": "#/components/schemas/OBIntermediaryAgent" + }, + "IntermediaryAgent2": { + "$ref": "#/components/schemas/OBIntermediaryAgent" + }, + "IntermediaryAgent3": { + "$ref": "#/components/schemas/OBIntermediaryAgent" + } + }, + "additionalProperties": false + }, + "OBTransaction6Basic": { + "type": "object", + "description": "Provides further details on an entry in the report.", + "required": [ + "AccountId", + "CreditDebitIndicator", + "Status", + "BookingDateTime", + "Amount" + ], + "properties": { + "AccountId": { + "$ref": "#/components/schemas/AccountId" + }, + "TransactionId": { + "$ref": "#/components/schemas/TransactionId" + }, + "TransactionReference": { + "$ref": "#/components/schemas/TransactionReference" + }, + "StatementReference": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StatementReference" + } + }, + "CreditDebitIndicator": { + "$ref": "#/components/schemas/OBCreditDebitCode_1" + }, + "Status": { + "$ref": "#/components/schemas/ExternalEntryStatus1Code" + }, + "TransactionMutability": { + "$ref": "#/components/schemas/OBInternalTransactionMutability1Code" + }, + "BookingDateTime": { + "$ref": "#/components/schemas/BookingDateTime" + }, + "ValueDateTime": { + "$ref": "#/components/schemas/ValueDateTime" + }, + "AddressLine": { + "$ref": "#/components/schemas/AddressLine" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_9" + }, + "ChargeAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_10" + }, + "CurrencyExchange": { + "$ref": "#/components/schemas/OBCurrencyExchange5" + }, + "BankTransactionCode": { + "$ref": "#/components/schemas/OBBankTransactionCodeStructure1" + }, + "ProprietaryBankTransactionCode": { + "$ref": "#/components/schemas/ProprietaryBankTransactionCodeStructure1" + }, + "ExtendedProprietaryBankTransactionCodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBExtendedProprietaryBankTransactionCode" + } + }, + "CardInstrument": { + "$ref": "#/components/schemas/OBTransactionCardInstrument1" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + }, + "CategoryPurposeCode": { + "$ref": "#/components/schemas/ExternalCategoryPurpose1Code" + }, + "PaymentPurposeCode": { + "$ref": "#/components/schemas/OBExternalPurpose1Code" + } + }, + "additionalProperties": false + }, + "OBTransaction6Detail": { + "type": "object", + "description": "Provides further details on an entry in the report.", + "required": [ + "AccountId", + "CreditDebitIndicator", + "Status", + "BookingDateTime", + "Amount" + ], + "properties": { + "AccountId": { + "$ref": "#/components/schemas/AccountId" + }, + "TransactionId": { + "$ref": "#/components/schemas/TransactionId" + }, + "TransactionReference": { + "$ref": "#/components/schemas/TransactionReference" + }, + "StatementReference": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StatementReference" + } + }, + "CreditDebitIndicator": { + "$ref": "#/components/schemas/OBCreditDebitCode_1" + }, + "Status": { + "$ref": "#/components/schemas/ExternalEntryStatus1Code" + }, + "TransactionMutability": { + "$ref": "#/components/schemas/OBInternalTransactionMutability1Code" + }, + "BookingDateTime": { + "$ref": "#/components/schemas/BookingDateTime" + }, + "ValueDateTime": { + "$ref": "#/components/schemas/ValueDateTime" + }, + "TransactionInformation": { + "$ref": "#/components/schemas/TransactionInformation" + }, + "AddressLine": { + "$ref": "#/components/schemas/AddressLine" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_9" + }, + "ChargeAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_10" + }, + "CurrencyExchange": { + "$ref": "#/components/schemas/OBCurrencyExchange5" + }, + "BankTransactionCode": { + "$ref": "#/components/schemas/OBBankTransactionCodeStructure1" + }, + "ProprietaryBankTransactionCode": { + "$ref": "#/components/schemas/ProprietaryBankTransactionCodeStructure1" + }, + "ExtendedProprietaryBankTransactionCodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBExtendedProprietaryBankTransactionCode" + } + }, + "Balance": { + "$ref": "#/components/schemas/OBTransactionCashBalance" + }, + "MerchantDetails": { + "$ref": "#/components/schemas/OBMerchantDetails1" + }, + "CreditorAgent": { + "$ref": "#/components/schemas/OBBranchAndFinancialInstitutionIdentification6_1" + }, + "CreditorAccount": { + "$ref": "#/components/schemas/OBCashAccount6_0" + }, + "DebtorAgent": { + "$ref": "#/components/schemas/OBBranchAndFinancialInstitutionIdentification6_2" + }, + "DebtorAccount": { + "$ref": "#/components/schemas/OBCashAccount6_1" + }, + "CardInstrument": { + "$ref": "#/components/schemas/OBTransactionCardInstrument1" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + }, + "CategoryPurposeCode": { + "$ref": "#/components/schemas/ExternalCategoryPurpose1Code" + }, + "PaymentPurposeCode": { + "$ref": "#/components/schemas/OBExternalPurpose1Code" + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + } + }, + "additionalProperties": false + }, + "OBTransactionCardInstrument1": { + "type": "object", + "required": [ + "CardSchemeName" + ], + "description": "Set of elements to describe the card instrument used in the transaction.
\nFor a full list of enumeration values refer to `OBInternalCardSchemeType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "properties": { + "CardSchemeName": { + "description": "Name of the card scheme.
\nFor a full list of enumeration values refer to `OBInternalCardSchemeType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "AmericanExpress", + "Diners", + "Discover", + "MasterCard", + "VISA" + ] + }, + "AuthorisationType": { + "description": "The card authorisation type.
\nFor a full list of enumeration values refer to `OBInternalCardAuthorisationType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "ConsumerDevice", + "Contactless", + "None", + "PIN" + ] + }, + "Name": { + "description": "Name of the cardholder using the card instrument.", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Identification": { + "description": "Identification assigned by an institution to identify the card instrument used in the transaction. This identification is known by the account owner, and may be masked.", + "type": "string", + "minLength": 1, + "maxLength": 34 + } + }, + "additionalProperties": false + }, + "OBTransactionCashBalance": { + "type": "object", + "required": [ + "CreditDebitIndicator", + "Type", + "Amount" + ], + "description": "Set of elements used to define the balance as a numerical representation of the net increases and decreases in an account after a transaction entry is applied to the account.", + "properties": { + "CreditDebitIndicator": { + "$ref": "#/components/schemas/OBCreditDebitCode_2" + }, + "Type": { + "$ref": "#/components/schemas/OBBalanceType1Code" + }, + "Amount": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "Amount of money of the cash balance after a transaction entry is applied to the account..", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode_1" + } + } + } + }, + "additionalProperties": false + }, + "OBRisk2": { + "type": "object", + "additionalProperties": false, + "properties": {}, + "description": "The Risk section is sent by the initiating party to the ASPSP.
\nIt is used to specify additional details for risk scoring for Account Info." + }, + "OB_Amount1_0": { + "description": "Cap amount charged for a fee/charge", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "OB_Amount1_1": { + "description": "Every additional tranche of an overdraft balance to which an overdraft fee is applied", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "OB_Amount1_2": { + "description": "Amount charged for an overdraft fee/charge (where it is charged in terms of an amount rather than a rate)", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "OB_Amount1_3": { + "description": "Fee Amount charged for a fee/charge (where it is charged in terms of an amount rather than a rate)", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "OB_Amount1_4": { + "description": "Cap amount charged for a fee/charge (where it is charged in terms of an amount rather than a rate)", + "type": "string", + "pattern": "^(-?\\d{1,14}){1}(\\.\\d{1,4}){0,1}$" + }, + "OB_CodeMnemonic": { + "description": "The four letter Mnemonic used within an XML file to identify a code", + "type": "string", + "pattern": "^\\w{0,4}$" + }, + "OB_FeeCategory1Code": { + "description": "Categorisation of fees and charges into standard categories.", + "type": "string", + "enum": [ + "FCOT", + "FCRE", + "FCSV" + ] + }, + "OB_FeeFrequency1Code_0": { + "description": "Frequency at which the overdraft charge is applied to the account", + "type": "string", + "enum": [ + "FEAC", + "FEAO", + "FECP", + "FEDA", + "FEHO", + "FEI", + "FEMO", + "FEOA", + "FEOT", + "FEPC", + "FEPH", + "FEPO", + "FEPS", + "FEPT", + "FEPTA", + "FEPTP", + "FEQU", + "FESM", + "FEST", + "FEWE", + "FEYE" + ] + }, + "OB_FeeFrequency1Code_1": { + "description": "How often is the overdraft fee/charge calculated for the account.", + "type": "string", + "enum": [ + "FEAC", + "FEAO", + "FECP", + "FEDA", + "FEHO", + "FEI", + "FEMO", + "FEOA", + "FEOT", + "FEPC", + "FEPH", + "FEPO", + "FEPS", + "FEPT", + "FEPTA", + "FEPTP", + "FEQU", + "FESM", + "FEST", + "FEWE", + "FEYE" + ] + }, + "OB_FeeFrequency1Code_2": { + "description": "How frequently the fee/charge is applied to the account", + "type": "string", + "enum": [ + "FEAC", + "FEAO", + "FECP", + "FEDA", + "FEHO", + "FEI", + "FEMO", + "FEOA", + "FEOT", + "FEPC", + "FEPH", + "FEPO", + "FEPS", + "FEPT", + "FEPTA", + "FEPTP", + "FEQU", + "FESM", + "FEST", + "FEWE", + "FEYE" + ] + }, + "OB_FeeFrequency1Code_3": { + "description": "How frequently the fee/charge is calculated", + "type": "string", + "enum": [ + "FEAC", + "FEAO", + "FECP", + "FEDA", + "FEHO", + "FEI", + "FEMO", + "FEOA", + "FEOT", + "FEPC", + "FEPH", + "FEPO", + "FEPS", + "FEPT", + "FEPTA", + "FEPTP", + "FEQU", + "FESM", + "FEST", + "FEWE", + "FEYE" + ] + }, + "OB_FeeFrequency1Code_4": { + "description": "Period e.g. day, week, month etc. for which the fee/charge is capped", + "type": "string", + "enum": [ + "FEAC", + "FEAO", + "FECP", + "FEDA", + "FEHO", + "FEI", + "FEMO", + "FEOA", + "FEOT", + "FEPC", + "FEPH", + "FEPO", + "FEPS", + "FEPT", + "FEPTA", + "FEPTP", + "FEQU", + "FESM", + "FEST", + "FEWE", + "FEYE" + ] + }, + "OB_FeeType1Code": { + "description": "Fee/Charge Type", + "type": "string", + "enum": [ + "FEPF", + "FTOT", + "FYAF", + "FYAM", + "FYAQ", + "FYCP", + "FYDB", + "FYMI", + "FYXX" + ] + }, + "OB_InterestCalculationMethod1Code": { + "description": "Methods of calculating interest", + "type": "string", + "enum": [ + "ITCO", + "ITOT", + "ITSI" + ] + }, + "OB_InterestFixedVariableType1Code": { + "description": "Type of interest rate, Fixed or Variable", + "type": "string", + "enum": [ + "INFI", + "INVA" + ] + }, + "OB_InterestRateType1Code_0": { + "description": "Rate type for overdraft fee/charge (where it is charged in terms of a rate rather than an amount)", + "type": "string", + "enum": [ + "INBB", + "INFR", + "INGR", + "INLR", + "INNE", + "INOT" + ] + }, + "OB_InterestRateType1Code_1": { + "description": "Rate type for Fee/Charge (where it is charged in terms of a rate rather than an amount)", + "type": "string", + "enum": [ + "INBB", + "INFR", + "INGR", + "INLR", + "INNE", + "INOT" + ] + }, + "OB_MinMaxType1Code": { + "description": "Min Max type", + "type": "string", + "enum": [ + "FMMN", + "FMMX" + ] + }, + "OB_OtherCodeType1_0": { + "type": "object", + "required": [ + "Name", + "Description" + ], + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + }, + "additionalProperties": false + }, + "OB_OtherCodeType1_1": { + "type": "object", + "required": [ + "Name", + "Description" + ], + "description": "Other application frequencies that are not available in the standard code list", + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + }, + "additionalProperties": false + }, + "OB_OtherCodeType1_2": { + "type": "object", + "required": [ + "Name", + "Description" + ], + "description": "Other calculation frequency which is not available in the standard code set.", + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + }, + "additionalProperties": false + }, + "OB_OtherCodeType1_3": { + "type": "object", + "required": [ + "Name", + "Description" + ], + "description": "Other Fee type which is not available in the standard code set", + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + }, + "additionalProperties": false + }, + "OB_OtherCodeType1_4": { + "type": "object", + "required": [ + "Name", + "Description" + ], + "description": "Other fee rate type code which is not available in the standard code set", + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + }, + "additionalProperties": false + }, + "OB_OtherCodeType1_5": { + "type": "object", + "required": [ + "Name", + "Description" + ], + "description": "Other fee rate type which is not in the standard rate type list", + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + }, + "additionalProperties": false + }, + "OB_OtherCodeType1_6": { + "type": "object", + "required": [ + "Name", + "Description" + ], + "description": "Other application frequencies not covered in the standard code list", + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + }, + "additionalProperties": false + }, + "OB_OtherCodeType1_7": { + "type": "object", + "required": [ + "Name", + "Description" + ], + "description": "Other calculation frequency which is not available in standard code set.", + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + }, + "additionalProperties": false + }, + "OB_OtherCodeType1_8": { + "type": "object", + "required": [ + "Name", + "Description" + ], + "description": "Other fee rate type which is not available in the standard code set", + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + }, + "additionalProperties": false + }, + "OB_OtherFeeChargeDetailType": { + "type": "object", + "required": [ + "FeeCategory", + "Name", + "Description" + ], + "description": "Other Fee/charge type which is not available in the standard code set", + "properties": { + "Code": { + "$ref": "#/components/schemas/OB_CodeMnemonic" + }, + "FeeCategory": { + "$ref": "#/components/schemas/OB_FeeCategory1Code" + }, + "Name": { + "$ref": "#/components/schemas/Name_4" + }, + "Description": { + "$ref": "#/components/schemas/Description_3" + } + }, + "additionalProperties": false + }, + "OB_OverdraftFeeType1Code": { + "description": "Overdraft fee type", + "type": "string", + "enum": [ + "FBAO", + "FBAR", + "FBEB", + "FBIT", + "FBOR", + "FBOS", + "FBSC", + "FBTO", + "FBUB", + "FBUT", + "FTOT", + "FTUT" + ] + }, + "OB_Period1Code": { + "description": "Period e.g. day, week, month etc. for which the fee/charge is capped", + "type": "string", + "enum": [ + "PACT", + "PDAY", + "PHYR", + "PMTH", + "PQTR", + "PWEK", + "PYER" + ] + }, + "OB_Rate1_0": { + "description": "Rate charged for overdraft fee/charge (where it is charged in terms of a rate rather than an amount)", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "OB_Rate1_1": { + "description": "Rate charged for Fee/Charge (where it is charged in terms of a rate rather than an amount)", + "type": "string", + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "OpeningDate": { + "description": "Date on which the account and related basic services are effectively operational for the account owner. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "PartyId": { + "description": "A unique and immutable identifier used to identify the customer resource. This identifier has no meaning to the account owner.", + "type": "string", + "example": "PXSIF023", + "minLength": 1, + "maxLength": 40 + }, + "PartyNumber": { + "description": "Number assigned by an agent to identify its customer.", + "type": "string", + "example": "20202002", + "minLength": 1, + "maxLength": 35 + }, + "PhoneNumber_0": { + "description": "Collection of information that identifies a phone number, as defined by telecom services.", + "example": "+44-2079460000", + "type": "string", + "pattern": "\\+[0-9]{1,3}-[0-9()+\\-]{1,30}" + }, + "PhoneNumber_1": { + "description": "Collection of information that identifies a mobile phone number, as defined by telecom services.", + "type": "string", + "example": "+44-7700900000", + "pattern": "\\+[0-9]{1,3}-[0-9()+\\-]{1,30}" + }, + "PostBox": { + "description": "Information that locates and identifies a box in a post office assigned to a person or organization, where letters for them are kept until called for.", + "type": "string", + "example": "PO Box 123456", + "minLength": 1, + "maxLength": 16 + }, + "PostCode": { + "description": "Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail.", + "type": "string", + "example": "EC2N 4AG", + "minLength": 1, + "maxLength": 16 + }, + "PreviousPaymentDateTime": { + "description": "Date of most recent direct debit collection. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "ProprietaryBankTransactionCodeStructure1": { + "type": "object", + "required": [ + "Code" + ], + "description": "Set of elements to fully identify a proprietary bank transaction code.", + "properties": { + "Code": { + "description": "Proprietary bank transaction code to identify the underlying transaction.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "Issuer": { + "description": "Identification of the issuer of the proprietary bank transaction code.", + "type": "string", + "minLength": 1, + "maxLength": 35 + } + }, + "additionalProperties": false + }, + "Rate": { + "description": "Rate associated with the statement rate type.", + "type": "string", + "example": "0.224", + "maxLength": 40, + "pattern": "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + }, + "Reference": { + "description": "Unique reference, as assigned by the creditor, to unambiguously refer to the payment transaction.\nUsage: If available, the initiating party should provide this reference in the structured remittance information, to enable reconciliation by the creditor upon receipt of the amount of money.\nIf the business context requires the use of a creditor reference or a payment remit identification, and only one identifier can be passed through the end-to-end chain, the creditor's reference or payment remittance identification should be quoted in the end-to-end transaction identification.", + "type": "string", + "example": "Towbar Club", + "minLength": 1, + "maxLength": 35 + }, + "Room": { + "description": "Information that locates and identifies a room to form part of an address", + "type": "string", + "example": "Basement 03", + "minLength": 1, + "maxLength": 70 + }, + "OBExtendedProprietaryBankTransactionCode": { + "type": "object", + "description": "Additional proprietary bank transaction codes used by the ASPSP for the underlying transaction", + "required": [ + "Code" + ], + "properties": { + "Code": { + "type": "string", + "description": "Proprietary bank transaction code to identify the underlying transaction.", + "minLength": 1, + "maxLength": 35 + }, + "Issuer": { + "type": "string", + "description": "Identification of the issuer of the proprietary bank transaction code.", + "minLength": 1, + "maxLength": 35 + }, + "Description": { + "type": "string", + "description": "Description of the code and its usage on the ASPSP channel", + "minLength": 1, + "maxLength": 500 + } + } + }, + "OBInternalBeneficiaryType1Code": { + "description": "Specifies the Beneficiary Type.", + "type": "string", + "example": "Ordinary", + "enum": [ + "Trusted", + "Ordinary" + ] + }, + "ScheduledPaymentDateTime": { + "description": "The date on which the scheduled payment will be made. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "example": "2017-07-12T00:00:00+00:00", + "format": "date-time" + }, + "ScheduledPaymentId": { + "description": "A unique and immutable identifier used to identify the scheduled payment resource. This identifier has no meaning to the account owner.", + "type": "string", + "example": "SP03", + "minLength": 1, + "maxLength": 40 + }, + "SecondaryIdentification": { + "description": "This is secondary identification of the account, as assigned by the account servicing institution. \nThis can be used by building societies to additionally identify accounts with a roll number (in addition to a sort code and account number combination).", + "type": "string", + "example": "87562298675897", + "minLength": 1, + "maxLength": 34 + }, + "StandingOrderId": { + "description": "A unique and immutable identifier used to identify the standing order resource. This identifier has no meaning to the account owner.", + "type": "string", + "example": "Ben5", + "minLength": 1, + "maxLength": 40 + }, + "StartDateTime": { + "description": "Date and time at which the statement period starts. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "example": "2017-07-12T00:00:00+00:00", + "format": "date-time" + }, + "StatementFrequencyAndFormat": { + "type": "array", + "items": { + "type": "object", + "description": "Frequency and format of statements for an account", + "properties": { + "Frequency": { + "$ref": "#/components/schemas/OBFrequency2" + }, + "CommunicationMethod": { + "$ref": "#/components/schemas/OBCommunicationMethod" + }, + "Format": { + "$ref": "#/components/schemas/OBFileFormat" + }, + "DeliveryAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + } + }, + "StatementId": { + "description": "Unique identifier for the statement resource within a servicing institution. This identifier is both unique and immutable.", + "type": "string", + "example": "8sfhke-sifhkeuf-97813", + "minLength": 1, + "maxLength": 40 + }, + "StatementReference": { + "description": "Unique reference for the statement. This reference may be optionally populated if available.", + "type": "string", + "example": "002", + "minLength": 1, + "maxLength": 35 + }, + "StatusUpdateDateTime": { + "description": "Date and time at which the resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "StreetName": { + "description": "Name of a street or thoroughfare.", + "type": "string", + "example": "Bank Street", + "minLength": 1, + "maxLength": 140 + }, + "Time": { + "description": "Time at which assets become available to the account owner in case of a credit entry, or cease to be available to the account owner in case of a debit transaction entry.\nUsage: If transaction entry status is pending and value date is present, then the value date refers to an expected/requested value date.\nFor transaction entries subject to availability/float and for which availability information is provided, the value date must not be used. In this case the availability component identifies the number of availability days. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\nT10:43:07+00:00", + "type": "string", + "format": "time" + }, + "TownName": { + "description": "Name of a built-up area, with defined boundaries, and a local government.", + "type": "string", + "example": "London", + "minLength": 1, + "maxLength": 140 + }, + "TransactionId": { + "description": "Unique identifier for the transaction within a servicing institution. This identifier is both unique and immutable.", + "type": "string", + "minLength": 1, + "maxLength": 210 + }, + "TransactionInformation": { + "description": "Further details of the transaction. \nThis is the transaction narrative, which is unstructured text.", + "type": "string", + "minLength": 1, + "maxLength": 500 + }, + "TransactionReference": { + "description": "Unique reference for the transaction. This reference is optionally populated, and may as an example be the FPID in the Faster Payments context.", + "type": "string", + "minLength": 1, + "maxLength": 210 + }, + "UnitNumber": { + "description": "Number that identifies the unit of a specific address .", + "type": "string", + "example": "A88", + "minLength": 1, + "maxLength": 16 + }, + "Value": { + "description": "Value associated with the statement value type.", + "type": "string", + "minLength": 1, + "maxLength": 40 + }, + "ValueDateTime": { + "description": "Date and time at which assets become available to the account owner in case of a credit entry, or cease to be available to the account owner in case of a debit transaction entry.\nUsage: If transaction entry status is pending and value date is present, then the value date refers to an expected/requested value date.\nFor transaction entries subject to availability/float and for which availability information is provided, the value date must not be used. In this case the availability component identifies the number of availability days. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Model": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + } + } + } + } + } +} \ No newline at end of file diff --git a/pkg/schema/spec/v4.0.1/confirmation-funds-openapi.json b/pkg/schema/spec/v4.0.1/confirmation-funds-openapi.json new file mode 100644 index 00000000..7cf7ea1d --- /dev/null +++ b/pkg/schema/spec/v4.0.1/confirmation-funds-openapi.json @@ -0,0 +1,1240 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "Confirmation of Funds API Specification", + "description": "Swagger for Confirmation of Funds API Specification.\n\n**Please Note**: There are no optional fields, if a field is not marked as “Required” it is a Conditional field.\n", + "termsOfService": "https://www.openbanking.org.uk/terms", + "contact": { + "name": "Service Desk", + "email": "ServiceDesk@openbanking.org.uk" + }, + "license": { + "name": "open-licence", + "url": "https://www.openbanking.org.uk/open-licence" + }, + "version": "4.0.1" + }, + "paths": { + "/funds-confirmation-consents": { + "post": { + "tags": [ + "Funds Confirmation Consents" + ], + "summary": "Create a Funds Confirmation Consent", + "description": "Enables a CBPII to ask an ASPSP to create a new funds-confirmation-consent resource, by sending a copy of the consent to the ASPSP.", + "operationId": "CreateFundsConfirmationConsents", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBFundsConfirmationConsent1" + } + } + }, + "description": "Default", + "required": true + }, + "responses": { + "201": { + "$ref": "#/components/responses/201FundsConfirmationConsentsCreated" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "fundsconfirmations" + ] + } + ] + } + }, + "/funds-confirmation-consents/{ConsentId}": { + "get": { + "tags": [ + "Funds Confirmation Consents" + ], + "summary": "Get a Funds Confirmation Consent", + "description": "Enables a CBPII to retrieve the status of a Funds Confirmation Consent resource.", + "operationId": "GetFundsConfirmationConsentsConsentId", + "parameters": [ + { + "$ref": "#/components/parameters/ConsentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200FundsConfirmationConsentsConsentIdRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "fundsconfirmations" + ] + } + ] + }, + "delete": { + "tags": [ + "Funds Confirmation Consents" + ], + "summary": "Delete a Funds Confirmation Consent", + "description": "Enables a CBPII to inform the PSU’s ASPSP that the PSU has revoked their consent to provide funds confirmations.", + "operationId": "DeleteFundsConfirmationConsentsConsentId", + "parameters": [ + { + "$ref": "#/components/parameters/ConsentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/204FundsConfirmationConsentsConsentIdDeleted" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "fundsconfirmations" + ] + } + ] + } + }, + "/funds-confirmations": { + "post": { + "tags": [ + "Funds Confirmations" + ], + "summary": "Create a Funds Confirmation Request", + "description": "Enables a CBPII to check whether a PSU has sufficient available funds for a CBPII transaction.", + "operationId": "CreateFundsConfirmations", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBFundsConfirmation1" + } + } + }, + "description": "Default", + "required": true + }, + "responses": { + "201": { + "$ref": "#/components/responses/201FundsConfirmationsCreated" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "fundsconfirmations" + ] + } + ] + } + } + }, + "servers": [ + { + "url": "/open-banking/v4.0/cbpii" + } + ], + "components": { + "parameters": { + "ConsentId": { + "name": "ConsentId", + "in": "path", + "description": "ConsentId", + "required": true, + "schema": { + "type": "string" + } + }, + "Authorization": { + "in": "header", + "name": "Authorization", + "required": true, + "description": "An Authorisation Token as per https://tools.ietf.org/html/rfc6750", + "schema": { + "type": "string" + } + }, + "x-customer-user-agent": { + "in": "header", + "name": "x-customer-user-agent", + "description": "Indicates the user-agent that the PSU is using.", + "required": false, + "schema": { + "type": "string" + } + }, + "x-fapi-customer-ip-address": { + "in": "header", + "name": "x-fapi-customer-ip-address", + "required": false, + "description": "The PSU's IP address if the PSU is currently logged in with the TPP.", + "schema": { + "type": "string" + } + }, + "x-fapi-auth-date": { + "in": "header", + "name": "x-fapi-auth-date", + "required": false, + "description": "The time when the PSU last logged in with the TPP. \nAll dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: \nSun, 10 Sep 2017 19:43:31 UTC", + "schema": { + "type": "string", + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \\d{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \\d{4} \\d{2}:\\d{2}:\\d{2} (GMT|UTC)$" + } + }, + "x-fapi-interaction-id": { + "in": "header", + "name": "x-fapi-interaction-id", + "required": false, + "description": "An RFC4122 UID used as a correlation id.", + "schema": { + "type": "string" + } + }, + "x-idempotency-key": { + "name": "x-idempotency-key", + "in": "header", + "description": "Every request will be processed only once per x-idempotency-key. The\nIdempotency Key will be valid for 24 hours.\n", + "required": true, + "schema": { + "type": "string", + "maxLength": 40, + "pattern": "^(?!\\s)(.*)(\\S)$" + } + }, + "x-jws-signature": { + "in": "header", + "name": "x-jws-signature", + "required": true, + "description": "A detached JWS signature of the body of the payload.", + "schema": { + "type": "string" + } + }, + "x-client-id": { + "in": "header", + "name": "x-client-id", + "required": false, + "description": "Only used if an ASPSP requires the client ID in order to return rate limit headers. \n\nTPPs __must__ refer to ASPSP developer portals for further information on any rate limit policies, if the headers are supported and any additional requirements.\n\nThis header __must not__ be used for client authentication\n", + "schema": { + "type": "string" + } + } + }, + "headers": { + "RateLimit-Policy": { + "required": false, + "description": "TPPs __must__ refer to ASPSP developer portals for further information on any rate limit policies, if the headers are supported and any additional requirements.\n\nA non-empty list of Quota Policy Items. The Item value __MUST__ be a String.\n\nExample:\n`RateLimit-Policy: \"default\";q=100;w=10`\n\nThe **REQUIRED** \"q\" parameter indicates the quota allocated by this policy measured in quota units.\n\nThe **OPTIONAL** \"w\" parameter value conveys a time window.\n", + "schema": { + "type": "string" + } + }, + "RateLimit": { + "required": false, + "description": "TPPs __must__ refer to ASPSP developer portals for further information on any rate limit policies, if the headers are supported and any additional requirements.\n\nA server uses the \"RateLimit\" response header field to communicate the current service limit for a quota policy for a particular partition key.\n\nExample:\n`RateLimit: \"default\";r=50;t=30`\n\nThe **REQUIRED** \"r\" parameter value conveys the remaining quota units for the identified policy.\n\nThe **OPTIONAL** \"t\" parameter value conveys the time window reset time for the identified policy.\n", + "schema": { + "type": "string" + } + } + }, + "responses": { + "201FundsConfirmationConsentsCreated": { + "description": "Funds Confirmation Consent Created", + "headers": { + "x-fapi-interaction-id": { + "required": true, + "description": "An RFC4122 UID used as a correlation id.", + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBFundsConfirmationConsentResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBFundsConfirmationConsentResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBFundsConfirmationConsentResponse1" + } + } + } + }, + "200FundsConfirmationConsentsConsentIdRead": { + "description": "Funds Confirmation Consent Read", + "headers": { + "x-fapi-interaction-id": { + "required": true, + "description": "An RFC4122 UID used as a correlation id.", + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBFundsConfirmationConsentResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBFundsConfirmationConsentResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBFundsConfirmationConsentResponse1" + } + } + } + }, + "204FundsConfirmationConsentsConsentIdDeleted": { + "description": "Funds Confirmation Consent Deleted", + "headers": { + "x-fapi-interaction-id": { + "required": true, + "description": "An RFC4122 UID used as a correlation id.", + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + } + }, + "201FundsConfirmationsCreated": { + "description": "Funds Confirmation Created", + "headers": { + "x-fapi-interaction-id": { + "required": true, + "description": "An RFC4122 UID used as a correlation id.", + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBFundsConfirmationResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBFundsConfirmationResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBFundsConfirmationResponse1" + } + } + } + }, + "400Error": { + "description": "Bad request", + "headers": { + "x-fapi-interaction-id": { + "required": true, + "description": "An RFC4122 UID used as a correlation id.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + } + } + }, + "401Error": { + "description": "Unauthorized", + "headers": { + "x-fapi-interaction-id": { + "required": true, + "description": "An RFC4122 UID used as a correlation id.", + "schema": { + "type": "string" + } + } + } + }, + "403Error": { + "description": "Forbidden", + "headers": { + "x-fapi-interaction-id": { + "required": true, + "description": "An RFC4122 UID used as a correlation id.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + } + } + }, + "404Error": { + "description": "Not found", + "headers": { + "x-fapi-interaction-id": { + "required": true, + "description": "An RFC4122 UID used as a correlation id.", + "schema": { + "type": "string" + } + } + } + }, + "405Error": { + "description": "Method Not Allowed", + "headers": { + "x-fapi-interaction-id": { + "required": true, + "description": "An RFC4122 UID used as a correlation id.", + "schema": { + "type": "string" + } + } + } + }, + "406Error": { + "description": "Not Acceptable", + "headers": { + "x-fapi-interaction-id": { + "required": true, + "description": "An RFC4122 UID used as a correlation id.", + "schema": { + "type": "string" + } + } + } + }, + "415Error": { + "description": "Unsupported Media Type", + "headers": { + "x-fapi-interaction-id": { + "required": true, + "description": "An RFC4122 UID used as a correlation id.", + "schema": { + "type": "string" + } + } + } + }, + "429Error": { + "description": "Too Many Requests", + "headers": { + "Retry-After": { + "description": "Number in seconds to wait", + "schema": { + "type": "integer" + } + }, + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "schema": { + "type": "string" + } + } + } + }, + "500Error": { + "description": "Internal Server Error", + "headers": { + "x-fapi-interaction-id": { + "required": true, + "description": "An RFC4122 UID used as a correlation id.", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + } + } + } + }, + "securitySchemes": { + "TPPOAuth2Security": { + "type": "oauth2", + "description": "TPP client credential authorisation flow with the ASPSP", + "flows": { + "clientCredentials": { + "tokenUrl": "https://authserver.example/token", + "scopes": { + "fundsconfirmations": "Funds confirmation entitlement" + } + } + } + }, + "PSUOAuth2Security": { + "type": "oauth2", + "description": "OAuth flow, it is required when the PSU needs to perform SCA with the ASPSP when a TPP wants to access an ASPSP resource owned by the PSU", + "flows": { + "authorizationCode": { + "authorizationUrl": "https://authserver.example/authorization", + "tokenUrl": "https://authserver.example/token", + "scopes": { + "fundsconfirmations": "Funds confirmation entitlement" + } + } + } + } + }, + "schemas": { + "Identification_0": { + "description": "Identification assigned by an institution to identify an account. This identification is known by the account owner.", + "type": "string", + "minLength": 1, + "maxLength": 256 + }, + "OBProxy1": { + "description": "Specifies an alternate assumed name for the identification of the account.", + "type": "object", + "required": [ + "Identification", + "Code" + ], + "properties": { + "Identification": { + "description": "Identification used to indicate the account identification under another specified name.", + "type": "string", + "minLength": 1, + "maxLength": 2048 + }, + "Code": { + "$ref": "#/components/schemas/ExternalProxyAccountType1Code" + }, + "Type": { + "type": "string", + "description": "Type of the proxy identification.", + "minLength": 1, + "maxLength": 35 + } + } + }, + "ExternalProxyAccountType1Code": { + "description": "Specifies the external proxy account type code, as published in the proxy account type external code set.
For a full list of values refer to `ExternalProxyAccountType1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "TELE", + "EMAL", + "DNAM", + "CINC", + "COTX", + "COID", + "CUST", + "DRLC", + "EIDN", + "EWAL", + "PVTX", + "LEIC", + "MBNO", + "NIDN", + "CCPT", + "SHID", + "SOSE", + "TOKN", + "UBIL", + "VIPN", + "BIID" + ] + }, + "ISODateTime": { + "description": "All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Links": { + "type": "object", + "description": "Links relevant to the payload", + "properties": { + "Self": { + "type": "string", + "format": "uri" + }, + "First": { + "type": "string", + "format": "uri" + }, + "Prev": { + "type": "string", + "format": "uri" + }, + "Next": { + "type": "string", + "format": "uri" + }, + "Last": { + "type": "string", + "format": "uri" + } + }, + "additionalProperties": false, + "required": [ + "Self" + ] + }, + "Meta": { + "title": "MetaData", + "type": "object", + "description": "Meta Data relevant to the payload", + "properties": { + "TotalPages": { + "type": "integer", + "format": "int32" + }, + "FirstAvailableDateTime": { + "$ref": "#/components/schemas/ISODateTime" + }, + "LastAvailableDateTime": { + "$ref": "#/components/schemas/ISODateTime" + } + }, + "additionalProperties": false + }, + "OBError1": { + "type": "object", + "properties": { + "ErrorCode": { + "$ref": "#/components/schemas/OBExternalStatusReason1Code" + }, + "Message": { + "description": "A description of the error that occurred. e.g., 'A mandatory field isn't supplied' or 'RequestedExecutionDateTime must be in future'\nOBL doesn't standardise this field", + "type": "string", + "minLength": 1, + "maxLength": 500 + }, + "Path": { + "description": "Recommended but optional reference to the JSON Path of the field with error, e.g., Data.Initiation.InstructedAmount.Currency", + "type": "string", + "minLength": 1, + "maxLength": 500 + }, + "Url": { + "description": "URL to help remediate the problem, or provide more information, or to API Reference, or help etc", + "type": "string" + } + }, + "required": [ + "ErrorCode" + ], + "additionalProperties": false, + "minProperties": 1 + }, + "OBErrorResponse1": { + "description": "An array of detail error codes, and messages, and URLs to documentation to help remediation.", + "type": "object", + "properties": { + "Id": { + "description": "A unique reference for the error instance, for audit purposes, in case of unknown/unclassified errors.", + "type": "string", + "minLength": 1, + "maxLength": 40 + }, + "Code": { + "description": "Deprecated
High level textual error code, to help categorise the errors.", + "type": "string", + "minLength": 1, + "example": "400 BadRequest", + "maxLength": 40 + }, + "Message": { + "description": "Deprecated
Brief Error message", + "type": "string", + "minLength": 1, + "example": "There is something wrong with the request parameters provided", + "maxLength": 500 + }, + "Errors": { + "items": { + "$ref": "#/components/schemas/OBError1" + }, + "type": "array", + "minItems": 1 + } + }, + "required": [ + "Errors" + ], + "additionalProperties": false + }, + "OBFundsConfirmation1": { + "type": "object", + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "required": [ + "ConsentId", + "Reference", + "InstructedAmount" + ], + "properties": { + "ConsentId": { + "description": "Unique identification as assigned by the ASPSP to uniquely identify the funds confirmation consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "Reference": { + "description": "Unique reference, as assigned by the CBPII, to unambiguously refer to the request related to the payment transaction.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "InstructedAmount": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "Amount of money to be confirmed as available funds in the debtor account. Contains an Amount and a Currency.", + "properties": { + "Amount": { + "description": "A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217.", + "type": "string", + "pattern": "^\\d{1,13}$|^\\d{1,13}\\.\\d{1,5}$" + }, + "Currency": { + "description": "A 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\".", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + } + } + } + } + } + }, + "additionalProperties": false + }, + "OBFundsConfirmationConsent1": { + "type": "object", + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "required": [ + "DebtorAccount" + ], + "properties": { + "ExpirationDateTime": { + "description": "Specified date and time the funds confirmation authorisation will expire.\n If this is not populated, the authorisation will be open ended. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "DebtorAccount": { + "type": "object", + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a confirmation of funds consent will be applied.", + "properties": { + "SchemeName": { + "description": "Name of the identification scheme, in a coded form as published in an external list. For a full list of values see `OBInternalAccountIdentification4Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "x-namespaced-enum": [ + "UK.OBIE.BBAN", + "UK.OBIE.IBAN", + "UK.OBIE.PAN", + "UK.OBIE.Paym", + "UK.OBIE.SortCodeAccountNumber", + "UK.OBIE.Wallet" + ] + }, + "Identification": { + "description": "Identification assigned by an institution to identify an account. This identification is known by the account owner.", + "type": "string", + "minLength": 1, + "maxLength": 256 + }, + "Name": { + "description": "Name of the account, as assigned by the account servicing institution.\nUsage: The account name is the name or names of the account owner(s) represented at an account level. The account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "description": "This is secondary identification of the account, as assigned by the account servicing institution. \nThis can be used by building societies to additionally identify accounts with a roll number (in addition to a sort code and account number combination).", + "type": "string", + "minLength": 1, + "maxLength": 34 + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + } + } + } + }, + "additionalProperties": false + }, + "OBFundsConfirmationConsentResponse1": { + "type": "object", + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "required": [ + "ConsentId", + "CreationDateTime", + "Status", + "StatusUpdateDateTime", + "DebtorAccount" + ], + "properties": { + "ConsentId": { + "description": "Unique identification as assigned to identify the funds confirmation consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "CreationDateTime": { + "description": "Date and time at which the resource was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Status": { + "$ref": "#/components/schemas/OBInternalConsentStatus1Code" + }, + "StatusReason": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBStatusReason" + } + }, + "StatusUpdateDateTime": { + "description": "Date and time at which the resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "ExpirationDateTime": { + "description": "Specified date and time the funds confirmation authorisation will expire.\nIf this is not populated, the authorisation will be open ended. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "DebtorAccount": { + "type": "object", + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a confirmation of funds consent will be applied.", + "properties": { + "SchemeName": { + "description": "Name of the identification scheme, in a coded form as published in an external list. For a full list of values refer to `OBInternalAccountIdentification4Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "x-namespaced-enum": [ + "UK.OBIE.BBAN", + "UK.OBIE.IBAN", + "UK.OBIE.PAN", + "UK.OBIE.Paym", + "UK.OBIE.SortCodeAccountNumber", + "UK.OBIE.Wallet" + ] + }, + "Identification": { + "description": "Identification assigned by an institution to identify an account. This identification is known by the account owner.", + "type": "string", + "minLength": 1, + "maxLength": 256 + }, + "Name": { + "description": "Name of the account, as assigned by the account servicing institution.\nUsage: The account name is the name or names of the account owner(s) represented at an account level. The account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "description": "This is secondary identification of the account, as assigned by the account servicing institution. \nThis can be used by building societies to additionally identify accounts with a roll number (in addition to a sort code and account number combination).", + "type": "string", + "minLength": 1, + "maxLength": 34 + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + } + } + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + }, + "additionalProperties": false + }, + "OBInternalConsentStatus1Code": { + "description": "Specifies the status of consent resource in code form. For a full list of values refer to `OBInternalConsentStatus1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "AWAU", + "RJCT", + "AUTH", + "CANC", + "EXPD" + ] + }, + "OBFundsConfirmationResponse1": { + "type": "object", + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "required": [ + "FundsConfirmationId", + "ConsentId", + "CreationDateTime", + "FundsAvailable", + "Reference", + "InstructedAmount" + ], + "properties": { + "FundsConfirmationId": { + "description": "Unique identification as assigned by the ASPSP to uniquely identify the funds confirmation resource.", + "type": "string", + "minLength": 1, + "maxLength": 40 + }, + "ConsentId": { + "description": "Unique identification as assigned by the ASPSP to uniquely identify the funds confirmation consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "CreationDateTime": { + "description": "Date and time at which the resource was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "FundsAvailable": { + "description": "Flag to indicate the result of a confirmation of funds check.", + "type": "boolean" + }, + "Reference": { + "description": "Unique reference, as assigned by the CBPII, to unambiguously refer to the request related to the payment transaction.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "InstructedAmount": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "Amount of money to be confirmed as available funds in the debtor account. Contains an Amount and a Currency.", + "properties": { + "Amount": { + "description": "A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217.", + "type": "string", + "pattern": "^\\d{1,13}$|^\\d{1,13}\\.\\d{1,5}$" + }, + "Currency": { + "description": "A 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\".", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + } + } + } + } + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + }, + "additionalProperties": false + }, + "OBExternalStatusReason1Code": { + "description": "Low level textual error code, for all enum values see `OBExternalStatusReason1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "minLength": 4, + "maxLength": 4, + "example": "U001" + }, + "OBStatusReason": { + "type": "object", + "properties": { + "StatusReasonCode": { + "type": "string", + "description": "Specifies the status reason in a code form. \n For a full list of values see `OBExternalStatusReason1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "minLength": 1, + "maxLength": 4, + "example": "ERIN" + }, + "StatusReasonDescription": { + "description": "Description supporting the StatusReasonCode.", + "type": "string", + "minLength": 1, + "maxLength": 500 + }, + "Path": { + "type": "string", + "description": "Optional reference to the JSON Path of the field when status reason refers to an object/field, e.g., Data.DebtorAccount.SchemeName", + "minLength": 1, + "maxLength": 500 + } + } + } + } + } +} \ No newline at end of file diff --git a/pkg/schema/spec/v4.0.1/payment-initiation-openapi.json b/pkg/schema/spec/v4.0.1/payment-initiation-openapi.json new file mode 100644 index 00000000..4645f4ac --- /dev/null +++ b/pkg/schema/spec/v4.0.1/payment-initiation-openapi.json @@ -0,0 +1,14560 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "Payment Initiation API", + "description": "Swagger for Payment Initiation API Specification.\n\n**Please Note**: There are no optional fields, if a field is not marked as “Required” it is a Conditional field.\n", + "termsOfService": "https://www.openbanking.org.uk/terms", + "contact": { + "name": "Service Desk", + "email": "ServiceDesk@openbanking.org.uk" + }, + "license": { + "name": "open-licence", + "url": "https://www.openbanking.org.uk/open-licence" + }, + "version": "4.0.1" + }, + "paths": { + "/domestic-payment-consents": { + "post": { + "tags": [ + "Domestic Payment Consents" + ], + "summary": "Create a Domestic Payment Consent", + "description": "Enables a PISP to register an intent to initiate a Domestic Payment.", + "operationId": "CreateDomesticPaymentConsents", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-idempotency-key" + }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "requestBody": { + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticConsent4" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticConsent4" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticConsent4" + } + } + }, + "description": "Default", + "required": true + }, + "responses": { + "201": { + "$ref": "#/components/responses/201DomesticPaymentConsentsCreated" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "422": { + "$ref": "#/components/responses/422Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/domestic-payment-consents/{ConsentId}": { + "get": { + "tags": [ + "Domestic Payment Consents" + ], + "summary": "Get a Domestic Payment Consent", + "description": "Enables a PISP to retrieve the status of an intent to initiate a Domestic Payment.", + "operationId": "GetDomesticPaymentConsentsConsentId", + "parameters": [ + { + "$ref": "#/components/parameters/ConsentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200DomesticPaymentConsentsConsentIdRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/domestic-payment-consents/{ConsentId}/funds-confirmation": { + "get": { + "tags": [ + "Domestic Payment Consents" + ], + "summary": "Confirm availability of funds for a Domestic Payment", + "description": "Enables a PISP to check whether a PSU has sufficient available funds for a Domestic Payment.", + "operationId": "GetDomesticPaymentConsentsConsentIdFundsConfirmation", + "parameters": [ + { + "$ref": "#/components/parameters/ConsentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200DomesticPaymentConsentsConsentIdFundsConfirmationRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/domestic-payments": { + "post": { + "tags": [ + "Domestic Payments" + ], + "summary": "Initiate a Domestic Payment", + "description": "Enables a PISP to initiate an already PSU-approved Domestic Payment.", + "operationId": "CreateDomesticPayments", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-idempotency-key" + }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "requestBody": { + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomestic2" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomestic2" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomestic2" + } + } + }, + "description": "Default", + "required": true + }, + "responses": { + "201": { + "$ref": "#/components/responses/201DomesticPaymentsCreated" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "409": { + "$ref": "#/components/responses/409Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "422": { + "$ref": "#/components/responses/422Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/domestic-payments/{DomesticPaymentId}": { + "get": { + "tags": [ + "Domestic Payments" + ], + "summary": "Get a Domestic Payment", + "description": "Enables a PISP to retrieve the status of a Domestic Payment.", + "operationId": "GetDomesticPaymentsDomesticPaymentId", + "parameters": [ + { + "$ref": "#/components/parameters/DomesticPaymentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200DomesticPaymentsDomesticPaymentIdRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/domestic-payments/{DomesticPaymentId}/payment-details": { + "get": { + "tags": [ + "Domestic Payments" + ], + "summary": "Get details of a Domestic Payment", + "description": "Enables a PISP to retrieve detailed information on the status of a Domestic Payment.", + "operationId": "GetDomesticPaymentsDomesticPaymentIdPaymentDetails", + "parameters": [ + { + "$ref": "#/components/parameters/DomesticPaymentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200DomesticPaymentsDomesticPaymentIdPaymentDetailsRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/domestic-scheduled-payment-consents": { + "post": { + "tags": [ + "Domestic Scheduled Payment Consents" + ], + "summary": "Create a Domestic Scheduled Payment Consent", + "description": "Enables a PISP to register an intent to initiate a Domestic Scheduled Payment.", + "operationId": "CreateDomesticScheduledPaymentConsents", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-idempotency-key" + }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "requestBody": { + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticScheduledConsent4" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticScheduledConsent4" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticScheduledConsent4" + } + } + }, + "description": "Default", + "required": true + }, + "responses": { + "201": { + "$ref": "#/components/responses/201DomesticScheduledPaymentConsentsCreated" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "409": { + "$ref": "#/components/responses/409Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "422": { + "$ref": "#/components/responses/422Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/domestic-scheduled-payment-consents/{ConsentId}": { + "get": { + "tags": [ + "Domestic Scheduled Payment Consents" + ], + "summary": "Get a Domestic Scheduled Payment Consent", + "description": "Enables a PISP to retrieve the status of an intent to initiate a Domestic Scheduled Payment.", + "operationId": "GetDomesticScheduledPaymentConsentsConsentId", + "parameters": [ + { + "$ref": "#/components/parameters/ConsentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200DomesticScheduledPaymentConsentsConsentIdRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/domestic-scheduled-payments": { + "post": { + "tags": [ + "Domestic Scheduled Payments" + ], + "summary": "Initiate a Domestic Scheduled Payment", + "description": "Enables a PISP to initiate an already PSU-approved Domestic Scheduled Payment.", + "operationId": "CreateDomesticScheduledPayments", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-idempotency-key" + }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "requestBody": { + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticScheduled2" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticScheduled2" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticScheduled2" + } + } + }, + "description": "Default", + "required": true + }, + "responses": { + "201": { + "$ref": "#/components/responses/201DomesticScheduledPaymentsCreated" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "409": { + "$ref": "#/components/responses/409Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "422": { + "$ref": "#/components/responses/422Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/domestic-scheduled-payments/{DomesticScheduledPaymentId}": { + "get": { + "tags": [ + "Domestic Scheduled Payments" + ], + "summary": "Get a Domestic Scheduled Payment", + "description": "Enables a PISP to retrieve the status of a Domestic Scheduled Payment.", + "operationId": "GetDomesticScheduledPaymentsDomesticScheduledPaymentId", + "parameters": [ + { + "$ref": "#/components/parameters/DomesticScheduledPaymentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200DomesticScheduledPaymentsDomesticScheduledPaymentIdRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/domestic-scheduled-payments/{DomesticScheduledPaymentId}/payment-details": { + "get": { + "tags": [ + "Domestic Scheduled Payments" + ], + "summary": "Get details of a Domestic Scheduled Payment", + "description": "Enables a PISP to retrieve detailed information on the status of a Domestic Scheduled Payment.", + "operationId": "GetDomesticScheduledPaymentsDomesticScheduledPaymentIdPaymentDetails", + "parameters": [ + { + "$ref": "#/components/parameters/DomesticScheduledPaymentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200DomesticScheduledPaymentsDomesticScheduledPaymentIdPaymentDetailsRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/domestic-standing-order-consents": { + "post": { + "tags": [ + "Domestic Standing Order Consents" + ], + "summary": "Create a Domestic Standing Order Consent", + "description": "Enables a PISP to register an intent to initiate a Domestic Standing Order arrangement.", + "operationId": "CreateDomesticStandingOrderConsents", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-idempotency-key" + }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "requestBody": { + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticStandingOrderConsent5" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticStandingOrderConsent5" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticStandingOrderConsent5" + } + } + }, + "description": "Default", + "required": true + }, + "responses": { + "201": { + "$ref": "#/components/responses/201DomesticStandingOrderConsentsCreated" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "409": { + "$ref": "#/components/responses/409Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "422": { + "$ref": "#/components/responses/422Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/domestic-standing-order-consents/{ConsentId}": { + "get": { + "tags": [ + "Domestic Standing Order Consents" + ], + "summary": "Get a Domestic Standing Order Consent", + "description": "Enables a PISP to retrieve the status of an intent to initiate a Domestic Standing Order arrangement.", + "operationId": "GetDomesticStandingOrderConsentsConsentId", + "parameters": [ + { + "$ref": "#/components/parameters/ConsentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200DomesticStandingOrderConsentsConsentIdRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/domestic-standing-orders": { + "post": { + "tags": [ + "Domestic Standing Orders" + ], + "summary": "Submit a Domestic Standing Order", + "description": "Enables a PISP to submit a Domestic Standing Order payment under an already PSU-approved Domestic Standing Order arrangement.", + "operationId": "CreateDomesticStandingOrders", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-idempotency-key" + }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "requestBody": { + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticStandingOrder3" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticStandingOrder3" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticStandingOrder3" + } + } + }, + "description": "Default", + "required": true + }, + "responses": { + "201": { + "$ref": "#/components/responses/201DomesticStandingOrdersCreated" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "409": { + "$ref": "#/components/responses/409Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "422": { + "$ref": "#/components/responses/422Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/domestic-standing-orders/{DomesticStandingOrderId}": { + "get": { + "tags": [ + "Domestic Standing Orders" + ], + "summary": "Get a Domestic Standing Order", + "description": "Enables a PISP to retrieve the status of a Domestic Standing Order payment.", + "operationId": "GetDomesticStandingOrdersDomesticStandingOrderId", + "parameters": [ + { + "$ref": "#/components/parameters/DomesticStandingOrderId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200DomesticStandingOrdersDomesticStandingOrderIdRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/domestic-standing-orders/{DomesticStandingOrderId}/payment-details": { + "get": { + "tags": [ + "Domestic Standing Orders" + ], + "summary": "Get details of a Domestic Standing Order Payment", + "description": "Enables a PISP to retrieve detailed information on the status of a Domestic Standing Order payment.", + "operationId": "GetDomesticStandingOrdersDomesticStandingOrderIdPaymentDetails", + "parameters": [ + { + "$ref": "#/components/parameters/DomesticStandingOrderId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200DomesticStandingOrdersDomesticStandingOrderIdPaymentDetailsRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/file-payment-consents": { + "post": { + "tags": [ + "File Payment Consents" + ], + "summary": "Create a File Payment Consent", + "description": "Enables a PISP to register an intent to initiate a File Payment.", + "operationId": "CreateFilePaymentConsents", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-idempotency-key" + }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "requestBody": { + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteFileConsent3" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteFileConsent3" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteFileConsent3" + } + } + }, + "description": "Default", + "required": true + }, + "responses": { + "201": { + "$ref": "#/components/responses/201FilePaymentConsentsCreated" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "409": { + "$ref": "#/components/responses/409Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "422": { + "$ref": "#/components/responses/422Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/file-payment-consents/{ConsentId}": { + "get": { + "tags": [ + "File Payment Consents" + ], + "summary": "Get a File Payment Consent", + "description": "Enables a PISP to retrieve the status of an intent to initiate a File Payment.", + "operationId": "GetFilePaymentConsentsConsentId", + "parameters": [ + { + "$ref": "#/components/parameters/ConsentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200FilePaymentConsentsConsentIdRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/file-payment-consents/{ConsentId}/file": { + "post": { + "tags": [ + "File Payment Consents" + ], + "summary": "Upload a File for a ConsentId", + "description": "Enables a PISP to upload a file of payments to the ASPSP for PSU to authenticate.", + "operationId": "CreateFilePaymentConsentsConsentIdFile", + "parameters": [ + { + "$ref": "#/components/parameters/ConsentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-idempotency-key" + }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "requestBody": { + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/File" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/File" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/File" + } + } + }, + "description": "Default", + "required": true + }, + "responses": { + "200": { + "$ref": "#/components/responses/200FilePaymentConsentsConsentIdFileCreated" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "409": { + "$ref": "#/components/responses/409Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "422": { + "$ref": "#/components/responses/422Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + }, + "get": { + "tags": [ + "File Payment Consents" + ], + "summary": "Get a File Payment Consent's Uploaded File", + "description": "Enables a PISP to download a file that has been previously uploaded.", + "operationId": "GetFilePaymentConsentsConsentIdFile", + "parameters": [ + { + "$ref": "#/components/parameters/ConsentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200FilePaymentConsentsConsentIdFileRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/file-payments": { + "post": { + "tags": [ + "File Payments" + ], + "summary": "Submit a File Payment", + "description": "Enables a PISP to instruct the ASPSP to start processing the payments within the file.", + "operationId": "CreateFilePayments", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-idempotency-key" + }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "requestBody": { + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteFile2" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteFile2" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteFile2" + } + } + }, + "description": "Default", + "required": true + }, + "responses": { + "201": { + "$ref": "#/components/responses/201FilePaymentsCreated" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "409": { + "$ref": "#/components/responses/409Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "422": { + "$ref": "#/components/responses/422Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/file-payments/{FilePaymentId}": { + "get": { + "tags": [ + "File Payments" + ], + "summary": "Get a File Payment by FilePaymentId", + "description": "Enables a PISP to retrieve the status of a file payment.", + "operationId": "GetFilePaymentsFilePaymentId", + "parameters": [ + { + "$ref": "#/components/parameters/FilePaymentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200FilePaymentsFilePaymentIdRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/file-payments/{FilePaymentId}/payment-details": { + "get": { + "tags": [ + "File Payments" + ], + "summary": "Get payment details for a File Payment", + "description": "Enables a PISP to retrieve detailed information on the status of payments within a File.", + "operationId": "GetFilePaymentsFilePaymentIdPaymentDetails", + "parameters": [ + { + "$ref": "#/components/parameters/FilePaymentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200FilePaymentsFilePaymentIdPaymentDetailsRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/file-payments/{FilePaymentId}/report-file": { + "get": { + "tags": [ + "File Payments" + ], + "summary": "Get a File Payment's Report File", + "description": "Enables a PISP to download a payment report file from an ASPSP.", + "operationId": "GetFilePaymentsFilePaymentIdReportFile", + "parameters": [ + { + "$ref": "#/components/parameters/FilePaymentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200FilePaymentsFilePaymentIdReportFileRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/international-payment-consents": { + "post": { + "tags": [ + "International Payment Consents" + ], + "summary": "Create an International Payment Consent", + "description": "Enables a PISP to register an intent to initiate an International Payment.", + "operationId": "CreateInternationalPaymentConsents", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-idempotency-key" + }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "requestBody": { + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalConsent5" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalConsent5" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalConsent5" + } + } + }, + "description": "Default", + "required": true + }, + "responses": { + "201": { + "$ref": "#/components/responses/201InternationalPaymentConsentsCreated" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "409": { + "$ref": "#/components/responses/409Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "422": { + "$ref": "#/components/responses/422Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/international-payment-consents/{ConsentId}": { + "get": { + "tags": [ + "International Payment Consents" + ], + "summary": "Get an International Payment Consent", + "description": "Enables a PISP to retrieve the status of an intent to initiate an International Payment.", + "operationId": "GetInternationalPaymentConsentsConsentId", + "parameters": [ + { + "$ref": "#/components/parameters/ConsentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200InternationalPaymentConsentsConsentIdRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/international-payment-consents/{ConsentId}/funds-confirmation": { + "get": { + "tags": [ + "International Payment Consents" + ], + "summary": "Confirm Funds Availability for an International Payment", + "description": "Enables a PISP to check whether a PSU has sufficient available funds for an International Payment.", + "operationId": "GetInternationalPaymentConsentsConsentIdFundsConfirmation", + "parameters": [ + { + "$ref": "#/components/parameters/ConsentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200InternationalPaymentConsentsConsentIdFundsConfirmationRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/international-payments": { + "post": { + "tags": [ + "International Payments" + ], + "summary": "Initiate an International Payment", + "description": "Enables a PISP to initiate an already PSU-approved International Payment.", + "operationId": "CreateInternationalPayments", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-idempotency-key" + }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "requestBody": { + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternational3" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternational3" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternational3" + } + } + }, + "description": "Default", + "required": true + }, + "responses": { + "201": { + "$ref": "#/components/responses/201InternationalPaymentsCreated" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "422": { + "$ref": "#/components/responses/422Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/international-payments/{InternationalPaymentId}": { + "get": { + "tags": [ + "International Payments" + ], + "summary": "Get an International Payment", + "description": "Enables a PISP to retrieve the status of an International Payment.", + "operationId": "GetInternationalPaymentsInternationalPaymentId", + "parameters": [ + { + "$ref": "#/components/parameters/InternationalPaymentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200InternationalPaymentsInternationalPaymentIdRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/international-payments/{InternationalPaymentId}/payment-details": { + "get": { + "tags": [ + "International Payments" + ], + "summary": "Get details of an International Payment", + "description": "Enables a PISP to retrieve detailed information on the status of an International Payment.", + "operationId": "GetInternationalPaymentsInternationalPaymentIdPaymentDetails", + "parameters": [ + { + "$ref": "#/components/parameters/InternationalPaymentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200InternationalPaymentsInternationalPaymentIdPaymentDetailsRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/international-scheduled-payment-consents": { + "post": { + "tags": [ + "International Scheduled Payments Consents" + ], + "summary": "Create an International Scheduled Payment Consent", + "description": "Enables a PISP to register an intent to initiate an International Scheduled Payment.", + "operationId": "CreateInternationalScheduledPaymentConsents", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-idempotency-key" + }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "requestBody": { + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalScheduledConsent5" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalScheduledConsent5" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalScheduledConsent5" + } + } + }, + "description": "Default", + "required": true + }, + "responses": { + "201": { + "$ref": "#/components/responses/201InternationalScheduledPaymentConsentsCreated" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "409": { + "$ref": "#/components/responses/409Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "422": { + "$ref": "#/components/responses/422Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/international-scheduled-payment-consents/{ConsentId}": { + "get": { + "tags": [ + "International Scheduled Payments Consents" + ], + "summary": "Get an International Scheduled Payment Consent", + "description": "Enables a PISP to retrieve the status of an intent to initiate an International Scheduled Payment.", + "operationId": "GetInternationalScheduledPaymentConsentsConsentId", + "parameters": [ + { + "$ref": "#/components/parameters/ConsentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200InternationalScheduledPaymentConsentsConsentIdRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/international-scheduled-payment-consents/{ConsentId}/funds-confirmation": { + "get": { + "tags": [ + "International Scheduled Payments Consents" + ], + "summary": "Confirm Funds Availability for an International Scheduled Payment", + "description": "Enables a PISP to check whether a PSU has sufficient available funds for an International Scheduled Payment.", + "operationId": "GetInternationalScheduledPaymentConsentsConsentIdFundsConfirmation", + "parameters": [ + { + "$ref": "#/components/parameters/ConsentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200InternationalScheduledPaymentConsentsConsentIdFundsConfirmationRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/international-scheduled-payments": { + "post": { + "tags": [ + "International Scheduled Payments" + ], + "summary": "Initiate an International Scheduled Payment", + "description": "Enables a PISP to initiate an already PSU-approved International Scheduled Payment.", + "operationId": "CreateInternationalScheduledPayments", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-idempotency-key" + }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "requestBody": { + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalScheduled3" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalScheduled3" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalScheduled3" + } + } + }, + "description": "Default", + "required": true + }, + "responses": { + "201": { + "$ref": "#/components/responses/201InternationalScheduledPaymentsCreated" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "409": { + "$ref": "#/components/responses/409Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "422": { + "$ref": "#/components/responses/422Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/international-scheduled-payments/{InternationalScheduledPaymentId}": { + "get": { + "tags": [ + "International Scheduled Payments" + ], + "summary": "Get an International Scheduled Payment", + "description": "Enables a PISP to retrieve the status of an International Scheduled Payment.", + "operationId": "GetInternationalScheduledPaymentsInternationalScheduledPaymentId", + "parameters": [ + { + "$ref": "#/components/parameters/InternationalScheduledPaymentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200InternationalScheduledPaymentsInternationalScheduledPaymentIdRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/international-scheduled-payments/{InternationalScheduledPaymentId}/payment-details": { + "get": { + "tags": [ + "International Scheduled Payments" + ], + "summary": "Get details of an International Scheduled Payment", + "description": "Enables a PISP to retrieve detailed information on the status of an International Scheduled Payment.", + "operationId": "GetInternationalScheduledPaymentsInternationalScheduledPaymentIdPaymentDetails", + "parameters": [ + { + "$ref": "#/components/parameters/InternationalScheduledPaymentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200InternationalScheduledPaymentsInternationalScheduledPaymentIdPaymentDetailsRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/international-standing-order-consents": { + "post": { + "tags": [ + "International Standing Orders Consents" + ], + "summary": "Create an International Standing Order Consent", + "description": "Enables a PISP to register an intent to initiate an International Standing Order arrangement.", + "operationId": "CreateInternationalStandingOrderConsents", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-idempotency-key" + }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "requestBody": { + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalStandingOrderConsent6" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalStandingOrderConsent6" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalStandingOrderConsent6" + } + } + }, + "description": "Default", + "required": true + }, + "responses": { + "201": { + "$ref": "#/components/responses/201InternationalStandingOrderConsentsCreated" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "409": { + "$ref": "#/components/responses/409Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "422": { + "$ref": "#/components/responses/422Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/international-standing-order-consents/{ConsentId}": { + "get": { + "tags": [ + "International Standing Orders Consents" + ], + "summary": "Get an International Standing Order Consent", + "description": "Enables a PISP to retrieve the status of an intent to initiate an International Standing Order arrangement.", + "operationId": "GetInternationalStandingOrderConsentsConsentId", + "parameters": [ + { + "$ref": "#/components/parameters/ConsentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200InternationalStandingOrderConsentsConsentIdRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/international-standing-orders": { + "post": { + "tags": [ + "International Standing Orders" + ], + "summary": "Submit an International Standing Order", + "description": "Enables a PISP to submit an International Standing Order payment under an already PSU-approved International Standing Order arrangement.", + "operationId": "CreateInternationalStandingOrders", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-idempotency-key" + }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "requestBody": { + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalStandingOrder4" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalStandingOrder4" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalStandingOrder4" + } + } + }, + "description": "Default", + "required": true + }, + "responses": { + "201": { + "$ref": "#/components/responses/201InternationalStandingOrdersCreated" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "409": { + "$ref": "#/components/responses/409Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "422": { + "$ref": "#/components/responses/422Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "PSUOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/international-standing-orders/{InternationalStandingOrderPaymentId}": { + "get": { + "tags": [ + "International Standing Orders" + ], + "summary": "Get an International Standing Order", + "description": "Enables a PISP to retrieve the status of an International Standing Order payment.", + "operationId": "GetInternationalStandingOrdersInternationalStandingOrderPaymentId", + "parameters": [ + { + "$ref": "#/components/parameters/InternationalStandingOrderPaymentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200InternationalStandingOrdersInternationalStandingOrderPaymentIdRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/international-standing-orders/{InternationalStandingOrderPaymentId}/payment-details": { + "get": { + "tags": [ + "International Standing Orders" + ], + "summary": "Get details of an International Standing Order Payment", + "description": "Enables a PISP to retrieve detailed information on the status of an International Standing Order payment.", + "operationId": "GetInternationalStandingOrdersInternationalStandingOrderPaymentIdPaymentDetails", + "parameters": [ + { + "$ref": "#/components/parameters/InternationalStandingOrderPaymentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/200InternationalStandingOrdersInternationalStandingOrderPaymentIdPaymentDetailsRead" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "404": { + "$ref": "#/components/responses/404Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/500Error" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + } + }, + "servers": [ + { + "url": "/open-banking/v4.0/pisp" + } + ], + "components": { + "parameters": { + "ConsentId": { + "name": "ConsentId", + "in": "path", + "description": "ConsentId", + "required": true, + "schema": { + "type": "string" + } + }, + "DomesticPaymentId": { + "name": "DomesticPaymentId", + "in": "path", + "description": "DomesticPaymentId", + "required": true, + "schema": { + "type": "string" + } + }, + "DomesticScheduledPaymentId": { + "name": "DomesticScheduledPaymentId", + "in": "path", + "description": "DomesticScheduledPaymentId", + "required": true, + "schema": { + "type": "string" + } + }, + "DomesticStandingOrderId": { + "name": "DomesticStandingOrderId", + "in": "path", + "description": "DomesticStandingOrderId", + "required": true, + "schema": { + "type": "string" + } + }, + "FilePaymentId": { + "name": "FilePaymentId", + "in": "path", + "description": "FilePaymentId", + "required": true, + "schema": { + "type": "string" + } + }, + "InternationalPaymentId": { + "name": "InternationalPaymentId", + "in": "path", + "description": "InternationalPaymentId", + "required": true, + "schema": { + "type": "string" + } + }, + "InternationalScheduledPaymentId": { + "name": "InternationalScheduledPaymentId", + "in": "path", + "description": "InternationalScheduledPaymentId", + "required": true, + "schema": { + "type": "string" + } + }, + "InternationalStandingOrderPaymentId": { + "name": "InternationalStandingOrderPaymentId", + "in": "path", + "description": "InternationalStandingOrderPaymentId", + "required": true, + "schema": { + "type": "string" + } + }, + "Authorization": { + "in": "header", + "name": "Authorization", + "required": true, + "description": "An Authorisation Token as per https://tools.ietf.org/html/rfc6750", + "schema": { + "type": "string" + } + }, + "x-customer-user-agent": { + "in": "header", + "name": "x-customer-user-agent", + "description": "Indicates the user-agent that the PSU is using.", + "required": false, + "schema": { + "type": "string" + } + }, + "x-fapi-customer-ip-address": { + "in": "header", + "name": "x-fapi-customer-ip-address", + "required": false, + "description": "The PSU's IP address if the PSU is currently logged in with the TPP.", + "schema": { + "type": "string" + } + }, + "x-fapi-auth-date": { + "in": "header", + "name": "x-fapi-auth-date", + "required": false, + "description": "The time when the PSU last logged in with the TPP. \nAll dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: \nSun, 10 Sep 2017 19:43:31 UTC", + "schema": { + "type": "string", + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \\d{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \\d{4} \\d{2}:\\d{2}:\\d{2} (GMT|UTC)$" + } + }, + "x-fapi-interaction-id": { + "in": "header", + "name": "x-fapi-interaction-id", + "required": false, + "description": "An RFC4122 UID used as a correlation id.", + "schema": { + "type": "string" + } + }, + "x-idempotency-key": { + "name": "x-idempotency-key", + "in": "header", + "description": "Every request will be processed only once per x-idempotency-key. The\nIdempotency Key will be valid for 24 hours.\n", + "required": true, + "schema": { + "type": "string", + "maxLength": 40, + "pattern": "^(?!\\s)(.*)(\\S)$" + } + }, + "x-jws-signature": { + "in": "header", + "name": "x-jws-signature", + "required": true, + "description": "A detached JWS signature of the body of the payload.", + "schema": { + "type": "string" + } + }, + "x-client-id": { + "in": "header", + "name": "x-client-id", + "required": false, + "description": "Only used if an ASPSP requires the client ID in order to return rate limit headers. \n\nTPPs __must__ refer to ASPSP developer portals for further information on any rate limit policies, if the headers are supported and any additional requirements.\n\nThis header __must not__ be used for client authentication\n", + "schema": { + "type": "string" + } + } + }, + "headers": { + "RateLimit-Policy": { + "required": false, + "description": "TPPs __must__ refer to ASPSP developer portals for further information on any rate limit policies, if the headers are supported and any additional requirements.\n\nA non-empty list of Quota Policy Items. The Item value __MUST__ be a String.\n\nExample:\n`RateLimit-Policy: \"default\";q=100;w=10`\n\nThe **REQUIRED** \"q\" parameter indicates the quota allocated by this policy measured in quota units.\n\nThe **OPTIONAL** \"w\" parameter value conveys a time window.\n", + "schema": { + "type": "string" + } + }, + "RateLimit": { + "required": false, + "description": "TPPs __must__ refer to ASPSP developer portals for further information on any rate limit policies, if the headers are supported and any additional requirements.\n\nA server uses the \"RateLimit\" response header field to communicate the current service limit for a quota policy for a particular partition key.\n\nExample:\n`RateLimit: \"default\";r=50;t=30`\n\nThe **REQUIRED** \"r\" parameter value conveys the remaining quota units for the identified policy.\n\nThe **OPTIONAL** \"t\" parameter value conveys the time window reset time for the identified policy.\n", + "schema": { + "type": "string" + } + } + }, + "responses": { + "201DomesticPaymentConsentsCreated": { + "description": "Domestic Payment Consents Created", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticConsentResponse5" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticConsentResponse5" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticConsentResponse5" + } + } + } + }, + "200DomesticPaymentConsentsConsentIdRead": { + "description": "Domestic Payment Consents Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticConsentResponse5" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticConsentResponse5" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticConsentResponse5" + } + } + } + }, + "200DomesticPaymentConsentsConsentIdFundsConfirmationRead": { + "description": "Domestic Payment Consents Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteFundsConfirmationResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteFundsConfirmationResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteFundsConfirmationResponse1" + } + } + } + }, + "201DomesticPaymentsCreated": { + "description": "Domestic Payments Created", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticResponse5" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticResponse5" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticResponse5" + } + } + } + }, + "200DomesticPaymentsDomesticPaymentIdRead": { + "description": "Domestic Payments Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticResponse5" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticResponse5" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticResponse5" + } + } + } + }, + "200DomesticPaymentsDomesticPaymentIdPaymentDetailsRead": { + "description": "Payment Details Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWritePaymentDetailsResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWritePaymentDetailsResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWritePaymentDetailsResponse1" + } + } + } + }, + "201DomesticScheduledPaymentConsentsCreated": { + "description": "Domestic Scheduled Payment Consents Created", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticScheduledConsentResponse5" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticScheduledConsentResponse5" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticScheduledConsentResponse5" + } + } + } + }, + "200DomesticScheduledPaymentConsentsConsentIdRead": { + "description": "Domestic Scheduled Payment Consents Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticScheduledConsentResponse5" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticScheduledConsentResponse5" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticScheduledConsentResponse5" + } + } + } + }, + "201DomesticScheduledPaymentsCreated": { + "description": "Domestic Scheduled Payments Created", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticScheduledResponse5" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticScheduledResponse5" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticScheduledResponse5" + } + } + } + }, + "200DomesticScheduledPaymentsDomesticScheduledPaymentIdRead": { + "description": "Domestic Scheduled Payments Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticScheduledResponse5" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticScheduledResponse5" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticScheduledResponse5" + } + } + } + }, + "200DomesticScheduledPaymentsDomesticScheduledPaymentIdPaymentDetailsRead": { + "description": "Payment Details Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWritePaymentDetailsResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWritePaymentDetailsResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWritePaymentDetailsResponse1" + } + } + } + }, + "201DomesticStandingOrderConsentsCreated": { + "description": "Domestic Standing Order Consents Created", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticStandingOrderConsentResponse6" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticStandingOrderConsentResponse6" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticStandingOrderConsentResponse6" + } + } + } + }, + "200DomesticStandingOrderConsentsConsentIdRead": { + "description": "Domestic Standing Order Consents Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticStandingOrderConsentResponse6" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticStandingOrderConsentResponse6" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticStandingOrderConsentResponse6" + } + } + } + }, + "201DomesticStandingOrdersCreated": { + "description": "Domestic Standing Orders Created", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticStandingOrderResponse6" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticStandingOrderResponse6" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticStandingOrderResponse6" + } + } + } + }, + "200DomesticStandingOrdersDomesticStandingOrderIdRead": { + "description": "Domestic Standing Orders Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticStandingOrderResponse6" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticStandingOrderResponse6" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteDomesticStandingOrderResponse6" + } + } + } + }, + "200DomesticStandingOrdersDomesticStandingOrderIdPaymentDetailsRead": { + "description": "Payment Details Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWritePaymentDetailsResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWritePaymentDetailsResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWritePaymentDetailsResponse1" + } + } + } + }, + "201FilePaymentConsentsCreated": { + "description": "File Payment Consents Created", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteFileConsentResponse4" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteFileConsentResponse4" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteFileConsentResponse4" + } + } + } + }, + "200FilePaymentConsentsConsentIdFileCreated": { + "description": "File Payment Consents Created", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + } + } + }, + "200FilePaymentConsentsConsentIdRead": { + "description": "File Payment Consents Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteFileConsentResponse4" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteFileConsentResponse4" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteFileConsentResponse4" + } + } + } + }, + "200FilePaymentConsentsConsentIdFileRead": { + "description": "File Payment Consents Read\n\nASPSP will specify all available content types.\n", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/File" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/File" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/File" + } + } + } + }, + "201FilePaymentsCreated": { + "description": "File Payments Created", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteFileResponse3" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteFileResponse3" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteFileResponse3" + } + } + } + }, + "200FilePaymentsFilePaymentIdRead": { + "description": "File Payments Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteFileResponse3" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteFileResponse3" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteFileResponse3" + } + } + } + }, + "200FilePaymentsFilePaymentIdReportFileRead": { + "description": "File Payments Read\n\nASPSP will specify all available content types\n", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/File" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/File" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/File" + } + } + } + }, + "200FilePaymentsFilePaymentIdPaymentDetailsRead": { + "description": "Payment Details Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWritePaymentDetailsResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWritePaymentDetailsResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWritePaymentDetailsResponse1" + } + } + } + }, + "201InternationalPaymentConsentsCreated": { + "description": "International Payment Consents Created", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalConsentResponse6" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalConsentResponse6" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalConsentResponse6" + } + } + } + }, + "200InternationalPaymentConsentsConsentIdRead": { + "description": "International Payment Consents Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalConsentResponse6" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalConsentResponse6" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalConsentResponse6" + } + } + } + }, + "200InternationalPaymentConsentsConsentIdFundsConfirmationRead": { + "description": "International Payment Consents Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteFundsConfirmationResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteFundsConfirmationResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteFundsConfirmationResponse1" + } + } + } + }, + "201InternationalPaymentsCreated": { + "description": "International Payments Created", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalResponse5" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalResponse5" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalResponse5" + } + } + } + }, + "200InternationalPaymentsInternationalPaymentIdRead": { + "description": "International Payments Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalResponse5" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalResponse5" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalResponse5" + } + } + } + }, + "200InternationalPaymentsInternationalPaymentIdPaymentDetailsRead": { + "description": "Payment Details Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWritePaymentDetailsResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWritePaymentDetailsResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWritePaymentDetailsResponse1" + } + } + } + }, + "201InternationalScheduledPaymentConsentsCreated": { + "description": "International Scheduled Payment Consents Created", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalScheduledConsentResponse6" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalScheduledConsentResponse6" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalScheduledConsentResponse6" + } + } + } + }, + "200InternationalScheduledPaymentConsentsConsentIdRead": { + "description": "International Scheduled Payment Consents Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalScheduledConsentResponse6" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalScheduledConsentResponse6" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalScheduledConsentResponse6" + } + } + } + }, + "200InternationalScheduledPaymentConsentsConsentIdFundsConfirmationRead": { + "description": "International Scheduled Payment Consents Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteFundsConfirmationResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteFundsConfirmationResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteFundsConfirmationResponse1" + } + } + } + }, + "201InternationalScheduledPaymentsCreated": { + "description": "International Scheduled Payments Created", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalScheduledResponse6" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalScheduledResponse6" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalScheduledResponse6" + } + } + } + }, + "200InternationalScheduledPaymentsInternationalScheduledPaymentIdRead": { + "description": "International Scheduled Payments Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalScheduledResponse6" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalScheduledResponse6" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalScheduledResponse6" + } + } + } + }, + "200InternationalScheduledPaymentsInternationalScheduledPaymentIdPaymentDetailsRead": { + "description": "Payment Details Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWritePaymentDetailsResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWritePaymentDetailsResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWritePaymentDetailsResponse1" + } + } + } + }, + "201InternationalStandingOrderConsentsCreated": { + "description": "International Standing Order Consents Created", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalStandingOrderConsentResponse7" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalStandingOrderConsentResponse7" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalStandingOrderConsentResponse7" + } + } + } + }, + "200InternationalStandingOrderConsentsConsentIdRead": { + "description": "International Standing Order Consents Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalStandingOrderConsentResponse7" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalStandingOrderConsentResponse7" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalStandingOrderConsentResponse7" + } + } + } + }, + "201InternationalStandingOrdersCreated": { + "description": "International Standing Orders Created", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalStandingOrderResponse7" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalStandingOrderResponse7" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalStandingOrderResponse7" + } + } + } + }, + "200InternationalStandingOrdersInternationalStandingOrderPaymentIdRead": { + "description": "International Standing Orders Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalStandingOrderResponse7" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalStandingOrderResponse7" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWriteInternationalStandingOrderResponse7" + } + } + } + }, + "200InternationalStandingOrdersInternationalStandingOrderPaymentIdPaymentDetailsRead": { + "description": "Payment Details Read", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBWritePaymentDetailsResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBWritePaymentDetailsResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBWritePaymentDetailsResponse1" + } + } + } + }, + "400Error": { + "description": "Bad request", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + } + } + }, + "401Error": { + "description": "Unauthorized", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + } + } + }, + "403Error": { + "description": "Forbidden", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + } + } + }, + "404Error": { + "description": "Not found", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + } + } + }, + "405Error": { + "description": "Method Not Allowed", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + } + } + }, + "406Error": { + "description": "Not Acceptable", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + } + } + }, + "409Error": { + "description": "Conflict", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.", + "required": true, + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + } + } + }, + "415Error": { + "description": "Unsupported Media Type", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + } + } + }, + "422Error": { + "description": "Duplicate Idempotency key", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.", + "required": true, + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + } + } + }, + "429Error": { + "description": "Too Many Requests", + "headers": { + "Retry-After": { + "description": "Number in seconds to wait", + "schema": { + "type": "integer" + } + }, + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + } + } + }, + "500Error": { + "description": "Internal Server Error", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.\n", + "required": true, + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + } + } + } + }, + "securitySchemes": { + "TPPOAuth2Security": { + "type": "oauth2", + "description": "TPP client credential authorisation flow with the ASPSP", + "flows": { + "clientCredentials": { + "tokenUrl": "https://authserver.example/token", + "scopes": { + "payments": "Generic payment scope" + } + } + } + }, + "PSUOAuth2Security": { + "type": "oauth2", + "description": "OAuth flow, it is required when the PSU needs to perform SCA with the ASPSP when a TPP wants to access an ASPSP resource owned by the PSU", + "flows": { + "authorizationCode": { + "authorizationUrl": "https://authserver.example/authorization", + "tokenUrl": "https://authserver.example/token", + "scopes": { + "payments": "Generic payment scope" + } + } + } + } + }, + "schemas": { + "OBDomesticRefundAccount1": { + "description": "Unambiguous identification of the refund account to which a refund will be made as a result of the transaction.", + "type": "object", + "additionalProperties": false, + "required": [ + "Account" + ], + "properties": { + "Account": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Provides the details to identify an account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "Name of the account, as assigned by the account servicing institution.\nUsage: The account name is the name or names of the account owner(s) represented at an account level. The account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + } + } + } + } + }, + "NumberOfPayments": { + "description": "Number of the payments that will be made in completing this frequency sequence including any executed since the sequence start date.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "Frequency_1": { + "description": "Individual Definitions:\nNotKnown - Not Known\nEvryDay - Every day\nEvryWorkgDay - Every working day\nIntrvlDay - An interval specified in number of calendar days (02 to 31)\nIntrvlWkDay - An interval specified in weeks (01 to 09), and the day within the week (01 to 07)\nWkInMnthDay - A monthly interval, specifying the week of the month (01 to 05) and day within the week (01 to 07)\nIntrvlMnthDay - An interval specified in months (between 01 to 06, 12, 24), specifying the day within the month (-05 to -01, 01 to 31)\nQtrDay - Quarterly (either ENGLISH, SCOTTISH, or RECEIVED)\nENGLISH = Paid on the 25th March, 24th June, 29th September and 25th December.\nSCOTTISH = Paid on the 2nd February, 15th May, 1st August and 11th November.\nRECEIVED = Paid on the 20th March, 19th June, 24th September and 20th December.\nIndividual Patterns:\nNotKnown (ScheduleCode)\nEvryDay (ScheduleCode)\nEvryWorkgDay (ScheduleCode)\nIntrvlDay:NoOfDay (ScheduleCode + NoOfDay)\nIntrvlWkDay:IntervalInWeeks:DayInWeek (ScheduleCode + IntervalInWeeks + DayInWeek)\nWkInMnthDay:WeekInMonth:DayInWeek (ScheduleCode + WeekInMonth + DayInWeek)\nIntrvlMnthDay:IntervalInMonths:DayInMonth (ScheduleCode + IntervalInMonths + DayInMonth)\nQtrDay: + either (ENGLISH, SCOTTISH or RECEIVED) ScheduleCode + QuarterDay\nThe regular expression for this element combines five smaller versions for each permitted pattern. To aid legibility - the components are presented individually here:\nNotKnown\nEvryDay\nEvryWorkgDay\nIntrvlDay:((0[2-9])|([1-2][0-9])|3[0-1])\nIntrvlWkDay:0[1-9]:0[1-7]\nWkInMnthDay:0[1-5]:0[1-7]\nIntrvlMnthDay:(0[1-6]|12|24):(-0[1-5]|0[1-9]|[12][0-9]|3[01])\nQtrDay:(ENGLISH|SCOTTISH|RECEIVED)\nFull Regular Expression:\n^(NotKnown)$|^(EvryDay)$|^(EvryWorkgDay)$|^(IntrvlDay:((0[2-9])|([1-2][0-9])|3[0-1]))$|^(IntrvlWkDay:0[1-9]:0[1-7])$|^(WkInMnthDay:0[1-5]:0[1-7])$|^(IntrvlMnthDay:(0[1-6]|12|24):(-0[1-5]|0[1-9]|[12][0-9]|3[01]))$|^(QtrDay:(ENGLISH|SCOTTISH|RECEIVED))$", + "type": "string", + "pattern": "^(NotKnown)$|^(EvryDay)$|^(EvryWorkgDay)$|^(IntrvlDay:((0[2-9])|([1-2][0-9])|3[0-1]))$|^(IntrvlWkDay:0[1-9]:0[1-7])$|^(WkInMnthDay:0[1-5]:0[1-7])$|^(IntrvlMnthDay:(0[1-6]|12|24):(-0[1-5]|0[1-9]|[12][0-9]|3[01]))$|^(QtrDay:(ENGLISH|SCOTTISH|RECEIVED))$" + }, + "OBUltimateCreditor1": { + "description": "Ultimate party to which an amount of money is due.", + "type": "object", + "properties": { + "Name": { + "description": "Name by which a party is known and which is usually used to identify that party.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "Identification": { + "description": "Identification assigned by an institution.", + "type": "string", + "minLength": 1, + "maxLength": 256 + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "OBUltimateDebtor1": { + "description": "Ultimate party that owes an amount of money to the (ultimate) creditor.", + "type": "object", + "properties": { + "Name": { + "description": "Name by which a party is known and which is usually used to identify that party.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "Identification": { + "description": "Identification assigned by an institution.", + "type": "string", + "minLength": 1, + "maxLength": 256 + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "OBFrequency6": { + "description": "Regularity with which credit transfer instructions are to be created and processed", + "type": "object", + "required": [ + "Type" + ], + "properties": { + "Type": { + "oneOf": [ + { + "$ref": "#/components/schemas/OBFrequency6Code" + }, + { + "$ref": "#/components/schemas/Frequency_1" + } + ] + }, + "CountPerPeriod": { + "description": "Number of instructions to be created and processed during the specified period .Specifies a frequency in terms of a count per period within a specified frequency type. Note: should not be used alongside `PointInTime`", + "type": "integer", + "example": 1, + "format": "int32" + }, + "PointInTime": { + "$ref": "#/components/schemas/PointInTime" + } + } + }, + "PointInTime": { + "description": "Exact2NumericText - Further information on the exact point in time the event should take place. Specifies a frequency in terms of an exact point in time or moment within a specified frequency type. Note: should not be used alongside `CountPerPeriod`.", + "type": "string", + "example": "00", + "maxLength": 2 + }, + "ActiveOrHistoricCurrencyCode": { + "description": "A 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\".", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "BuildingName": { + "description": "Name of a referenced building.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "BuildingNumber": { + "description": "Number that identifies the position of a building on a street.", + "type": "string", + "minLength": 1, + "maxLength": 16 + }, + "Date": { + "description": "Date and time associated with the date time type. All dates in the JSON payloads are represented in ISO 8601 date format. \n An example is below:\n2017-04-05", + "type": "string", + "format": "date" + }, + "ExternalCategoryPurpose1Code": { + "description": "Enumeration of codes that outlines the type of purpose behind a transaction, payment or risk. \n For all enum values see `ExternalCategoryPurpose1Code` [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "BONU", + "CASH", + "CBLK", + "CCRD", + "CGWV", + "CIPC", + "CONC", + "CORT", + "DCRD", + "DIVI", + "DVPM", + "EPAY", + "FCDT", + "FCIN", + "FCOL", + "GOVT", + "GP2P", + "HEDG", + "ICCP", + "IDCP", + "INTC", + "INTE", + "LBOX", + "LOAN", + "MP2B", + "MP2P", + "OTHR", + "PENS", + "RPRE", + "RRCT", + "RVPM", + "SALA", + "SECU", + "SSBE", + "SUPP", + "SWEP", + "TAXS", + "TOPG", + "TRAD", + "TREA", + "VATX", + "VOST", + "WHLD", + "ZABA" + ] + }, + "CareOf": { + "description": "The 'care of' address is used whenever sending mail to a person or organisation who does not actually live or work at the address. They will receive the mail for the individual.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "CountryCode": { + "description": "Nation with its own government.", + "type": "string", + "pattern": "^[A-Z]{2,2}$" + }, + "CountrySubDivision": { + "description": "Identifies a subdivision of a country such as state, region, county.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "DistrictName": { + "description": "Number that of the regional area, known as a district, which forms part of an address", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "Department": { + "description": "Identification of a division of a large organisation or building.", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "File": { + "type": "object", + "additionalProperties": false, + "properties": {} + }, + "Floor": { + "description": "Number that identifies the level within a building", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "ISODateTime": { + "description": "All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Identification_0": { + "description": "Identification assigned by an institution to identify an account. This identification is known by the account owner.", + "type": "string", + "minLength": 1, + "maxLength": 256 + }, + "Identification_1": { + "description": "Unique identification, as assigned by the creditor, to unambiguously identify the mandate.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "Identification_3": { + "description": "Identification of the organisation issuing the invoice, when it is different from the creditor or ultimate creditor", + "type": "string", + "example": "80200112344562", + "minLength": 1, + "maxLength": 256 + }, + "Identification_4": { + "description": "Identification of the party to whom an invoice is issued, when it is different from the debtor or ultimate debtor.", + "type": "string", + "example": "80200112344562", + "minLength": 1, + "maxLength": 256 + }, + "LEI": { + "description": "Legal entity identification as an alternate identification for a party. Legal Entity Identifier is a code allocated to a party as described in ISO 17442 \"Financial Services - Legal Entity Identifier (LEI)\".", + "type": "string", + "example": "IZ9Q00LZEVUKWCQY6X15", + "minLength": 1, + "maxLength": 20, + "pattern": "^[A-Z0-9]{18,18}[0-9]{2,2}$" + }, + "Links": { + "type": "object", + "additionalProperties": false, + "description": "Links relevant to the payload", + "properties": { + "Self": { + "type": "string", + "format": "uri" + }, + "First": { + "type": "string", + "format": "uri" + }, + "Prev": { + "type": "string", + "format": "uri" + }, + "Next": { + "type": "string", + "format": "uri" + }, + "Last": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "Self" + ] + }, + "Meta": { + "title": "MetaData", + "type": "object", + "additionalProperties": false, + "description": "Meta Data relevant to the payload", + "properties": { + "TotalPages": { + "type": "integer", + "format": "int32" + }, + "FirstAvailableDateTime": { + "$ref": "#/components/schemas/ISODateTime" + }, + "LastAvailableDateTime": { + "$ref": "#/components/schemas/ISODateTime" + } + } + }, + "Name": { + "description": "Name by which an agent is known and which is usually used to identify that agent.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "OBActiveCurrencyAndAmount_SimpleType": { + "description": "A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217.", + "type": "string", + "pattern": "^\\d{1,13}$|^\\d{1,13}\\.\\d{1,5}$" + }, + "OBActiveOrHistoricCurrencyAndAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "Amount of money associated with the charge type.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "OBAddressTypeCode": { + "description": "Identifies the nature of the postal address.", + "type": "string", + "enum": [ + "Business", + "Correspondence", + "DeliveryTo", + "MailTo", + "POBox", + "Postal", + "Residential", + "Statement" + ] + }, + "OBAddressType2Code": { + "description": "Identifies the nature of the postal address. For a full set of codes see `OBAddressType2Code` [here](https://github.com/OpenBankingUK/External_Internal_CodeSets).", + "type": "string", + "enum": [ + "BIZZ", + "DLVY", + "MLTO", + "PBOX", + "ADDR", + "HOME", + "CORR", + "STAT" + ] + }, + "OBBranchAndFinancialInstitutionIdentification6_0": { + "type": "object", + "description": "Party that manages the account on behalf of the account owner, that is manages the registration and booking of entries on the account, calculates balances on the account and provides information about the account.\nThis is the servicer of the beneficiary account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_1" + }, + "Name": { + "$ref": "#/components/schemas/Name" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + } + } + }, + "OBInternalChargeBearerType1Code": { + "description": "Specifies which party/parties will bear the charges associated with the processing of the payment transaction. For a full list of values refer to `OBInternalChargeBearerType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "BorneByCreditor", + "BorneByDebtor", + "FollowingServiceLevel", + "Shared" + ] + }, + "OBCashAccountCreditor3": { + "type": "object", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "type": "string", + "description": "Identification assigned by an institution to identify an account. This identification is known by the account owner.", + "maxLength": 256 + }, + "Name": { + "type": "string", + "description": "Name of the account, as assigned by the account servicing institution. Usage The account name is the name or names of the account owner(s) represented at an account level. The account name is not the product name or the nickname of the account." + }, + "SecondaryIdentification": { + "type": "string", + "description": "Secondary identification of the account, as assigned by the account servicing institution. This can be used by building societies to additionally identify accounts with a roll number (in addition to a sort code and account number combination).", + "maxLength": 34 + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + }, + "required": [ + "SchemeName", + "Identification", + "Name" + ] + }, + "OBCashAccountDebtor4": { + "type": "object", + "description": "^ Only included in the response if `Data. ReadRefundAccount` is set to `Yes` in the consent.", + "properties": { + "SchemeName": { + "type": "string", + "description": "^ Name of the identification scheme, in a coded form as published in an external list. | Namespaced Enumeration OBInternalAccountIdentification4Code" + }, + "Identification": { + "type": "string", + "description": "^ Identification assigned by an institution to identify an account. This identification is known by the account owner. | Max256Text" + }, + "Name": { + "type": "string", + "description": "^ Name of the account, as assigned by the account servicing institution. Usage The account name is the name or names of the account owner(s) represented at an account level. The account name is not the product name or the nickname of the account." + }, + "SecondaryIdentification": { + "type": "string", + "description": "^ This is secondary identification of the account, as assigned by the account servicing institution. This can be used by building societies to additionally identify accounts with a roll number (in addition to a sort code and account number combination) | Max34Text" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + } + } + }, + "OBExternalMandateClassification1Code": { + "type": "string", + "enum": [ + "FIXE", + "USGB", + "VARI" + ] + }, + "OBError1": { + "type": "object", + "properties": { + "ErrorCode": { + "$ref": "#/components/schemas/OBExternalStatusReason1Code" + }, + "Message": { + "description": "A description of the error that occurred. e.g., 'A mandatory field isn't supplied' or 'RequestedExecutionDateTime must be in future'\nOBL doesn't standardise this field", + "type": "string", + "minLength": 1, + "maxLength": 500 + }, + "Path": { + "description": "Recommended but optional reference to the JSON Path of the field with error, e.g., Data.Initiation.InstructedAmount.Currency", + "type": "string", + "minLength": 1, + "maxLength": 500 + }, + "Url": { + "description": "URL to help remediate the problem, or provide more information, or to API Reference, or help etc", + "type": "string" + } + }, + "required": [ + "ErrorCode" + ], + "additionalProperties": false, + "minProperties": 1 + }, + "OBErrorResponse1": { + "description": "An array of detail error codes, and messages, and URLs to documentation to help remediation.", + "type": "object", + "additionalProperties": false, + "properties": { + "Id": { + "description": "A unique reference for the error instance, for audit purposes, in case of unknown/unclassified errors.", + "type": "string", + "minLength": 1, + "maxLength": 40 + }, + "Code": { + "description": "Deprecated
High level textual error code, to help categorise the errors.", + "type": "string", + "minLength": 1, + "example": "400 BadRequest", + "maxLength": 40 + }, + "Message": { + "description": "Deprecated
Brief Error message", + "type": "string", + "minLength": 1, + "example": "There is something wrong with the request parameters provided", + "maxLength": 500 + }, + "Errors": { + "items": { + "$ref": "#/components/schemas/OBError1" + }, + "type": "array", + "minItems": 1 + } + }, + "required": [ + "Errors" + ] + }, + "OBInternalAccountIdentification4Code": { + "description": "Name of the identification scheme, in a coded form as published in an external list. For a full list of values refer to `OBInternalAccountIdentification4Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "x-namespaced-enum": [ + "UK.OBIE.BBAN", + "UK.OBIE.IBAN", + "UK.OBIE.PAN", + "UK.OBIE.Paym", + "UK.OBIE.SortCodeAccountNumber", + "UK.OBIE.Wallet" + ] + }, + "ExternalCreditorReferenceType1Code": { + "type": "string", + "minLength": 1, + "maxLength": 4, + "description": "Specifies the type of creditor reference as published in an external creditor reference type code set. For more information see `ExternalCreditorReferenceType1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "enum": [ + "DISP", + "FXDR", + "PUOR", + "RPIN", + "RADM", + "SCOR" + ] + }, + "ExternalDocumentType1Code": { + "type": "string", + "minLength": 1, + "maxLength": 4, + "description": "Specifies the document type as published in an external document type code list. For more information see `ExternalDocumentType1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "enum": [ + "CINV", + "CNFA", + "CONT", + "CREN", + "DEBN", + "DISP", + "DNFA", + "HIRI", + "INVS", + "MSIN", + "PROF", + "PUOR", + "QUOT", + "SBIN", + "SPRR", + "TISH" + ] + }, + "OBInternalFinancialInstitutionIdentification4Code": { + "description": "Name of the identification scheme, in a coded form as published in an external list.", + "type": "string", + "x-namespaced-enum": [ + "UK.OBIE.BICFI" + ] + }, + "OBInternalExtendedAccountType1Code": { + "description": "Specifies the extended type of account.", + "type": "string", + "enum": [ + "Business", + "BusinessSavingsAccount", + "Charity", + "Collection", + "Corporate", + "Ewallet", + "Government", + "Investment", + "ISA", + "JointPersonal", + "Pension", + "Personal", + "PersonalSavingsAccount", + "Premier", + "Wealth" + ] + }, + "OBInternalLocalInstrument1Code": { + "description": "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. For a full list of values refer to `OBInternalLocalInstrument1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "x-namespaced-enum": [ + "UK.OBIE.BACS", + "UK.OBIE.BalanceTransfer", + "UK.OBIE.CHAPS", + "UK.OBIE.Euro1", + "UK.OBIE.FPS", + "UK.OBIE.Link", + "UK.OBIE.MoneyTransfer", + "UK.OBIE.Paym", + "UK.OBIE.SEPACreditTransfer", + "UK.OBIE.SEPAInstantCreditTransfer", + "UK.OBIE.SWIFT", + "UK.OBIE.Target2" + ] + }, + "OBInternalPaymentChargeType1Code": { + "description": "Charge type, in a coded form. For a full list of values refer to `OBInternalPaymentChargeType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "x-namespaced-enum": [ + "UK.OBIE.CHAPSOut" + ] + }, + "ExternalPurpose1Code": { + "type": "string", + "minLength": 1, + "maxLength": 4, + "description": "This is a partial list, For a full list see `ExternalPurpose1Code` [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "enum": [ + "BKDF", + "BKFE", + "BKFM", + "BKIP", + "BKPP", + "CBLK", + "CDCB", + "CDCD", + "CDCS", + "CDDP", + "CDOC", + "CDQC", + "ETUP", + "FCOL", + "MTUP", + "ACCT", + "CASH", + "COLL", + "CSDB", + "DEPT", + "INTC", + "INTP", + "LIMA", + "NETT", + "BFWD", + "CCIR", + "CCPC", + "CCPM", + "CCSM", + "CRDS", + "CRPR", + "CRSP", + "CRTL", + "EQPT", + "EQUS", + "EXPT", + "EXTD", + "FIXI", + "FWBC", + "FWCC", + "FWSB", + "FWSC", + "MARG", + "MBSB", + "MBSC", + "MGCC", + "MGSC", + "OCCC", + "OPBC", + "OPCC", + "OPSB", + "OPSC", + "OPTN", + "OTCD", + "REPO", + "RPBC", + "RPCC", + "RPSB", + "RPSC", + "RVPO", + "SBSC", + "SCIE", + "SCIR", + "SCRP", + "SHBC", + "SHCC", + "SHSL", + "SLEB", + "SLOA", + "SWBC", + "SWCC", + "SWPT", + "SWSB", + "SWSC", + "TBAS", + "TBBC", + "TBCC", + "TRCP", + "AGRT", + "AREN", + "BEXP", + "BOCE", + "COMC", + "CPYR", + "GDDS", + "GDSV", + "GSCB", + "LICF", + "MP2B", + "POPE", + "ROYA", + "SCVE", + "SERV", + "SUBS", + "SUPP", + "TRAD", + "CHAR", + "COMT", + "MP2P", + "ECPG", + "ECPR", + "ECPU", + "EPAY", + "CLPR", + "COMP", + "DBTC", + "GOVI", + "HLRP", + "HLST", + "INPC", + "INPR", + "INSC", + "INSU", + "INTE", + "LBRI", + "LIFI", + "LOAN", + "LOAR", + "PENO", + "PPTI", + "RELG", + "RINP", + "TRFD", + "FORW", + "FXNT", + "ADMG", + "ADVA", + "BCDM", + "BCFG", + "BLDM", + "BNET", + "CBFF", + "CBFR", + "CCRD", + "CDBL", + "CFEE", + "CGDD", + "CORT", + "COST", + "CPKC", + "DCRD", + "DSMT", + "DVPM", + "EDUC", + "FACT", + "FAND", + "FCPM", + "FEES", + "GIFT", + "GOVT", + "ICCP", + "IDCP", + "IHRP", + "INSM", + "IVPT", + "MCDM", + "MCFG", + "MSVC", + "NOWS", + "OCDM", + "OCFG", + "OFEE", + "OTHR", + "PADD", + "PTSP", + "RCKE", + "RCPT", + "REBT", + "REFU", + "RENT", + "REOD", + "RIMB", + "RPNT", + "RRBN", + "RRCT", + "RRTP", + "RVPM", + "SLPI", + "SPLT", + "STDY", + "TBAN", + "TBIL", + "TCSC", + "TELI", + "TMPG", + "TPRI", + "TPRP", + "TRNC", + "TRVC", + "WEBI", + "IPAY", + "IPCA", + "IPDO", + "IPEA", + "IPEC", + "IPEW", + "IPPS", + "IPRT", + "IPU2", + "IPUW", + "ANNI", + "CAFI", + "CFDI", + "CMDT", + "DERI", + "DIVD", + "FREX", + "HEDG", + "INVS", + "PRME", + "SAVG", + "SECU", + "SEPI", + "TREA", + "UNIT", + "FNET", + "FUTR", + "ANTS", + "CVCF", + "DMEQ", + "DNTS", + "HLTC", + "HLTI", + "HSPC", + "ICRF", + "LTCF", + "MAFC", + "MARF", + "MDCS", + "VIEW", + "CDEP", + "SWFP", + "SWPP", + "SWRS", + "SWUF", + "ADCS", + "AEMP", + "ALLW", + "ALMY", + "BBSC", + "BECH", + "BENE", + "BONU", + "CCHD", + "COMM", + "CSLP", + "GFRP", + "GVEA", + "GVEB", + "GVEC", + "GVED", + "GWLT", + "HREC", + "PAYR", + "PEFC", + "PENS", + "PRCP", + "RHBS", + "SALA", + "SPSP", + "SSBE", + "LBIN", + "LCOL", + "LFEE", + "LMEQ", + "LMFI", + "LMRK", + "LREB", + "LREV", + "LSFL", + "ESTX", + "FWLV", + "GSTX", + "HSTX", + "INTX", + "NITX", + "PTXP", + "RDTX", + "TAXS", + "VATX", + "WHLD", + "TAXR", + "B112", + "BR12", + "TLRF", + "TLRR", + "AIRB", + "BUSB", + "FERB", + "RLWY", + "TRPT", + "CBTV", + "ELEC", + "ENRG", + "GASB", + "NWCH", + "NWCM", + "OTLC", + "PHON", + "UBIL", + "WTER", + "BOND", + "CABD", + "CAEQ", + "CBCR", + "DBCR", + "DICL", + "EQTS", + "FLCR", + "EFTC", + "EFTD", + "MOMA", + "RAPI", + "GAMB", + "LOTT", + "AMEX", + "SASW", + "AUCO", + "PCOM", + "PDEP", + "PLDS", + "PLRF", + "GAFA", + "GAHO", + "CPEN", + "DEPD", + "RETL", + "DEBT", + "CRYP" + ] + }, + "OBExternalStatusReason1Code": { + "description": "Low level textual error code, for all enum values see `OBExternalStatusReason1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "minLength": 4, + "maxLength": 4, + "example": "U001" + }, + "OBFrequency6Code": { + "description": "For a full list of values see `OBFrequency6Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "ADHO", + "YEAR", + "DAIL", + "FRTN", + "INDA", + "MNTH", + "QURT", + "MIAN", + "WEEK", + "WODL", + "FOWK", + "TWMH", + "FOMH", + "FIMH", + "ALMH", + "NONE", + "LWMH", + "LXMH", + "TWYR" + ] + }, + "OBMandateRelatedInformation1": { + "type": "object", + "required": [ + "Frequency" + ], + "properties": { + "MandateIdentification": { + "$ref": "#/components/schemas/Identification_1" + }, + "Classification": { + "$ref": "#/components/schemas/OBExternalMandateClassification1Code" + }, + "CategoryPurposeCode": { + "$ref": "#/components/schemas/ExternalCategoryPurpose1Code" + }, + "FirstPaymentDateTime": { + "type": "string", + "format": "date-time" + }, + "RecurringPaymentDateTime": { + "description": "The date on which the first recurring payment for a Standing Order schedule will be made. \nUsage: This must be populated only if the first recurring date is different to the first payment date. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "FinalPaymentDateTime": { + "type": "string", + "format": "date-time" + }, + "Frequency": { + "$ref": "#/components/schemas/OBFrequency6" + }, + "Reason": { + "description": "Reason for the direct debit mandate to allow the user to distinguish between different mandates for the same creditor.", + "type": "string", + "maxLength": 256, + "minLength": 1 + } + } + }, + "OBPaymentStatusReason": { + "type": "object", + "properties": { + "StatusReasonCode": { + "type": "string", + "description": "Specifies the status reason in a code form \n For more information and enum values see `OBExternalStatusReason1Code [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "minLength": 1, + "maxLength": 4, + "example": "ERIN" + }, + "StatusReasonDescription": { + "type": "string", + "description": "Description supporting the StatusReasonCode.", + "minLength": 1, + "maxLength": 500 + }, + "Path": { + "type": "string", + "description": "Recommended but optional reference to the JSON Path of the field with error, e.g., Data.Initiation.InstructedAmount.Currency", + "minLength": 1, + "maxLength": 500 + } + } + }, + "OBProxy1": { + "description": "Specifies an alternate assumed name for the identification of the account.", + "type": "object", + "required": [ + "Identification", + "Code" + ], + "properties": { + "Identification": { + "description": "Identification used to indicate the account identification under another specified name.", + "type": "string", + "minLength": 1, + "maxLength": 2048 + }, + "Code": { + "$ref": "#/components/schemas/ExternalProxyAccountType1Code" + }, + "Type": { + "type": "string", + "description": "Type of the proxy identification.", + "minLength": 1, + "maxLength": 35 + } + } + }, + "ExternalProxyAccountType1Code": { + "description": "Specifies the external proxy account type code, as published in the proxy account type external code set.
For a full list of values see `ExternalProxyAccountType1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "TELE", + "EMAL", + "DNAM", + "CINC", + "COTX", + "COID", + "CUST", + "DRLC", + "EIDN", + "EWAL", + "PVTX", + "LEIC", + "MBNO", + "NIDN", + "CCPT", + "SHID", + "SOSE", + "TOKN", + "UBIL", + "VIPN", + "BIID" + ] + }, + "OBPostalAddress7": { + "type": "object", + "additionalProperties": false, + "description": "Information that locates and identifies a specific address, as defined by postal services.", + "properties": { + "AddressType": { + "$ref": "#/components/schemas/OBAddressType2Code" + }, + "Department": { + "$ref": "#/components/schemas/Department" + }, + "SubDepartment": { + "$ref": "#/components/schemas/SubDepartment" + }, + "StreetName": { + "$ref": "#/components/schemas/StreetName" + }, + "BuildingNumber": { + "$ref": "#/components/schemas/BuildingNumber" + }, + "BuildingName": { + "$ref": "#/components/schemas/BuildingName" + }, + "Floor": { + "$ref": "#/components/schemas/Floor" + }, + "UnitNumber": { + "$ref": "#/components/schemas/UnitNumber" + }, + "Room": { + "$ref": "#/components/schemas/Room" + }, + "PostBox": { + "$ref": "#/components/schemas/PostBox" + }, + "TownLocationName": { + "$ref": "#/components/schemas/TownName" + }, + "DistrictName": { + "$ref": "#/components/schemas/DistrictName" + }, + "CareOf": { + "$ref": "#/components/schemas/CareOf" + }, + "PostCode": { + "$ref": "#/components/schemas/PostCode" + }, + "TownName": { + "$ref": "#/components/schemas/TownName" + }, + "CountrySubDivision": { + "$ref": "#/components/schemas/CountrySubDivision" + }, + "Country": { + "$ref": "#/components/schemas/CountryCode" + }, + "AddressLine": { + "type": "array", + "items": { + "description": "Information that locates and identifies a specific address, as defined by postal services, presented in free format text.", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "minItems": 0, + "maxItems": 7 + } + } + }, + "OBReferredDocumentInformation": { + "type": "object", + "properties": { + "Code": { + "$ref": "#/components/schemas/ExternalDocumentType1Code" + }, + "Issuer": { + "description": "Identification of the issuer of the reference document type.", + "type": "string", + "maxLength": 35, + "minLength": 1 + }, + "Number": { + "description": "Identification of the type specified for the referred document line.", + "type": "string", + "maxLength": 35, + "minLength": 1 + }, + "RelatedDate": { + "description": "Date associated with the referred document line.", + "type": "string", + "format": "date-time" + }, + "LineDetails": { + "description": "Set of elements used to provide the content of the referred document line.", + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 2048 + } + } + } + }, + "OBRemittanceInformation2": { + "type": "object", + "description": "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", + "properties": { + "Structured": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRemittanceInformationStructured" + } + }, + "Unstructured": { + "type": "array", + "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 an unstructured form.", + "items": { + "type": "string", + "maxLength": 140, + "minLength": 1 + } + } + } + }, + "OBRemittanceInformationStructured": { + "type": "object", + "properties": { + "ReferredDocumentInformation": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBReferredDocumentInformation" + } + }, + "ReferredDocumentAmount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "CreditorReferenceInformation": { + "description": "Reference information provided by the creditor to allow the identification of the underlying documents.", + "type": "object", + "properties": { + "Code": { + "$ref": "#/components/schemas/ExternalCreditorReferenceType1Code" + }, + "Issuer": { + "description": "Entity that assigns the identification.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "Reference": { + "description": "Unique reference, as assigned by the creditor, to unambiguously refer to the payment transaction.", + "type": "string", + "minLength": 1, + "maxLength": 35 + } + } + }, + "Invoicer": { + "$ref": "#/components/schemas/Identification_3" + }, + "Invoicee": { + "$ref": "#/components/schemas/Identification_4" + }, + "TaxRemittance": { + "description": "Provides remittance information about a payment made for tax-related purposes.", + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "AdditionalRemittanceInformation": { + "description": "Additional information, in free text form, to complement the structured remittance information.", + "type": "array", + "items": { + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "maxItems": 3 + } + } + }, + "OBRegulatoryAuthority2": { + "type": "object", + "description": "Entity requiring the regulatory reporting information. ", + "properties": { + "Name": { + "type": "string", + "description": "Name of the entity requiring the regulatory reporting information.", + "minLength": 1, + "maxLength": 140 + }, + "CountryCode": { + "$ref": "#/components/schemas/CountryCode" + } + } + }, + "OBRegulatoryReporting1": { + "type": "object", + "description": "Information needed due to regulatory and statutory requirements", + "properties": { + "DebitCreditReportingIndicator": { + "type": "string", + "description": "Identifies whether the regulatory reporting information applies to the debit side, to the credit side or to both debit and credit sides of the transaction. For a full list of values refer to `OBExternalRegulatoryReportingType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "enum": [ + "CRED", + "DEBT", + "BOTH" + ] + }, + "Authority": { + "$ref": "#/components/schemas/OBRegulatoryAuthority2" + }, + "Details": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBStructuredRegulatoryReporting3" + } + } + } + }, + "OBRisk1": { + "type": "object", + "additionalProperties": false, + "properties": { + "PaymentContextCode": { + "type": "string", + "description": "Specifies the payment context, `OBInternalPaymentContext1Code`
\nThe following values are deprecated and **must not** be used in a new consent or payment. They may optionally be returned for a historical payment/consent migrated to v4:
\n* BillPayment - @deprecated\n* EcommerceGoods - @deprecated\n* EcommerceServices - @deprecated\n* PartyToParty - @deprecated\n* PispPayee - @deprecated\n* Other - @deprecated\n", + "enum": [ + "BillingGoodsAndServicesInAdvance", + "BillingGoodsAndServicesInArrears", + "EcommerceMerchantInitiatedPayment", + "FaceToFacePointOfSale", + "TransferToSelf", + "TransferToThirdParty", + "BillPayment", + "EcommerceGoods", + "EcommerceServices", + "PartyToParty", + "PispPayee", + "Other" + ] + }, + "MerchantCategoryCode": { + "type": "string", + "minLength": 3, + "maxLength": 4, + "description": "Category code conform to ISO 18245, related to the type of services or goods the merchant provides for the transaction." + }, + "MerchantCustomerIdentification": { + "type": "string", + "minLength": 1, + "maxLength": 70, + "description": "The unique customer identifier of the PSU with the merchant." + }, + "ContractPresentIndicator": { + "type": "boolean", + "description": "Indicates if Payee has a contractual relationship with the PISP." + }, + "BeneficiaryPrepopulatedIndicator": { + "type": "boolean", + "description": "Indicates if PISP has immutably prepopulated payment details in for the PSU." + }, + "PaymentPurposeCode": { + "$ref": "#/components/schemas/ExternalPurpose1Code" + }, + "CategoryPurposeCode": { + "$ref": "#/components/schemas/ExternalCategoryPurpose1Code" + }, + "BeneficiaryAccountType": { + "$ref": "#/components/schemas/OBInternalExtendedAccountType1Code" + }, + "DeliveryAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + }, + "description": "The Risk section is sent by the initiating party to the ASPSP.\nIt is used to specify additional details for risk scoring for Payments." + }, + "OBSCASupportData1": { + "type": "object", + "properties": { + "RequestedSCAExemptionType": { + "type": "string", + "description": "This field allows a PISP to request specific SCA Exemption for a Payment Initiation. For a full list of values refer to `OBInternalSCAExemptionType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "enum": [ + "BillPayment", + "ContactlessTravel", + "EcommerceGoods", + "EcommerceServices", + "Kiosk", + "Parking", + "PartyToParty" + ] + }, + "AppliedAuthenticationApproach": { + "type": "string", + "maxLength": 40, + "description": "Specifies a character string with a maximum length of 40 characters.\nUsage: This field indicates whether the PSU was subject to SCA performed by the TPP\nFor a full list of values refer to `OBInternalAppliedAuthenticationApproach1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "enum": [ + "CA", + "SCA" + ] + }, + "ReferencePaymentOrderId": { + "type": "string", + "maxLength": 40, + "minLength": 1, + "description": "If the payment is recurring, then this field is populated with the transaction identifier of the previous payment occurrence so that the ASPSP can verify that the PISP, amount and the payee are the same as the previous occurrence. The value here refers to the payment id e.g. DomesticPaymentId " + } + }, + "description": "Supporting Data provided by TPP, when requesting SCA Exemption." + }, + "OBStatusReason": { + "type": "object", + "properties": { + "StatusReasonCode": { + "type": "string", + "description": "Specifies the status reason in a code form. \nFor a full list of values refer to `OBExternalStatusReason1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "minLength": 1, + "maxLength": 4, + "example": "ERIN" + }, + "StatusReasonDescription": { + "description": "Description supporting the StatusReasonCode.", + "type": "string", + "minLength": 1, + "maxLength": 500 + }, + "Path": { + "type": "string", + "description": "Path is optional but relevant when the status reason refers to an object/field and hence conditional to provide JSON path.", + "minLength": 1, + "maxLength": 500 + } + } + }, + "OBStructuredRegulatoryReporting3": { + "type": "object", + "description": "Set of elements used to provide details on the regulatory reporting information.", + "properties": { + "Type": { + "type": "string", + "description": "Specifies the type of the information supplied in the regulatory reporting details", + "minLength": 1, + "maxLength": 35 + }, + "Date": { + "$ref": "#/components/schemas/ISODateTime" + }, + "Country": { + "$ref": "#/components/schemas/CountryCode" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount" + }, + "Information": { + "description": "Additional details that cater for specific domestic regulatory requirements. ", + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 35 + } + } + } + }, + "OBSupplementaryData1": { + "type": "object", + "properties": {}, + "additionalProperties": true, + "description": "Additional information that can not be captured in the structured fields and/or any other specific block." + }, + "OBWriteDomestic2": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "ConsentId", + "Initiation" + ], + "properties": { + "ConsentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "InstructionIdentification", + "EndToEndIdentification", + "InstructedAmount", + "CreditorAccount" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for a single domestic payment.", + "properties": { + "InstructionIdentification": { + "description": "Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction.\nUsage: the instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "EndToEndIdentification": { + "description": "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.\nUsage: The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction. It can be included in several messages related to the transaction.\nOB: The Faster Payments Scheme can only access 31 characters for the EndToEndIdentification field.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "LocalInstrument": { + "$ref": "#/components/schemas/OBInternalLocalInstrument1Code" + }, + "InstructedAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "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.\nUsage: This amount has to be transported unchanged through the transaction chain.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "CreditorAgent": { + "type": "object", + "additionalProperties": false, + "description": "Financial institution servicing an account for the creditor.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_1" + }, + "Name": { + "$ref": "#/components/schemas/Name" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "CreditorPostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk1" + } + } + }, + "OBWriteDomesticConsent4": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "Initiation" + ], + "properties": { + "ReadRefundAccount": { + "description": "Specifies to share the refund account details with PISP. For a full set of values refer to `OBInternalReadRefundAccount1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "No", + "Yes" + ] + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "InstructionIdentification", + "EndToEndIdentification", + "InstructedAmount", + "CreditorAccount" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for a single domestic payment.", + "properties": { + "InstructionIdentification": { + "description": "Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction.\nUsage: the instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "EndToEndIdentification": { + "description": "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.\nUsage: The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction. It can be included in several messages related to the transaction.\nOB: The Faster Payments Scheme can only access 31 characters for the EndToEndIdentification field.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "LocalInstrument": { + "$ref": "#/components/schemas/OBInternalLocalInstrument1Code" + }, + "InstructedAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "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.\nUsage: This amount has to be transported unchanged through the transaction chain.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "CreditorAgent": { + "type": "object", + "additionalProperties": false, + "description": "Financial institution servicing an account for the creditor.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_1" + }, + "Name": { + "$ref": "#/components/schemas/Name" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "CreditorPostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + }, + "Authorisation": { + "type": "object", + "additionalProperties": false, + "required": [ + "AuthorisationType" + ], + "description": "The authorisation type request from the TPP.", + "properties": { + "AuthorisationType": { + "description": "Type of authorisation flow requested. For a full set of values refer to `OBInternalAuthorisation1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "Any", + "Single", + "Multiple" + ] + }, + "CompletionDateTime": { + "description": "Date and time at which the requested authorisation flow must be completed. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "SCASupportData": { + "$ref": "#/components/schemas/OBSCASupportData1" + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk1" + } + } + }, + "OBWriteDomesticConsentResponse5": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "ConsentId", + "CreationDateTime", + "Status", + "StatusUpdateDateTime", + "Initiation" + ], + "properties": { + "ConsentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "CreationDateTime": { + "description": "Date and time at which the resource was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Status": { + "$ref": "#/components/schemas/OBInternalConsentStatus2Code" + }, + "StatusReason": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBStatusReason" + } + }, + "StatusUpdateDateTime": { + "description": "Date and time at which the resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "ReadRefundAccount": { + "description": "Specifies to share the refund account details with PISP. For a full list of values refer to `OBInternalReadRefundAccount1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "No", + "Yes" + ] + }, + "CutOffDateTime": { + "description": "Specified cut-off date and time for the payment consent. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "ExpectedExecutionDateTime": { + "description": "Expected execution date and time for the payment resource. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "ExpectedSettlementDateTime": { + "description": "Expected settlement date and time for the payment resource. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Charges": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "description": "Set of elements used to provide details of a charge for the payment initiation.", + "required": [ + "ChargeBearer", + "Type", + "Amount" + ], + "properties": { + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalPaymentChargeType1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount" + } + } + } + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "InstructionIdentification", + "EndToEndIdentification", + "InstructedAmount", + "CreditorAccount" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for a single domestic payment.", + "properties": { + "InstructionIdentification": { + "description": "Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction.\nUsage: the instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "EndToEndIdentification": { + "description": "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.\nUsage: The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction. It can be included in several messages related to the transaction.\nOB: The Faster Payments Scheme can only access 31 characters for the EndToEndIdentification field.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "LocalInstrument": { + "$ref": "#/components/schemas/OBInternalLocalInstrument1Code" + }, + "InstructedAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "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.\nUsage: This amount has to be transported unchanged through the transaction chain.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "CreditorAgent": { + "type": "object", + "additionalProperties": false, + "description": "Financial institution servicing an account for the creditor.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_1" + }, + "Name": { + "$ref": "#/components/schemas/Name" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "CreditorPostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + }, + "Authorisation": { + "type": "object", + "additionalProperties": false, + "required": [ + "AuthorisationType" + ], + "description": "The authorisation type request from the TPP.", + "properties": { + "AuthorisationType": { + "description": "Type of authorisation flow requested. For a full list of values refer to `OBInternalAuthorisation1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "Any", + "Single", + "Multiple" + ] + }, + "CompletionDateTime": { + "description": "Date and time at which the requested authorisation flow must be completed. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "SCASupportData": { + "$ref": "#/components/schemas/OBSCASupportData1" + }, + "Debtor": { + "$ref": "#/components/schemas/OBCashAccountDebtor4" + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk1" + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "OBInternalConsentStatus2Code": { + "type": "string", + "description": "Specifies the status of consent resource in code form. For a full list of values refer to `OBInternalConsentStatus2Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "enum": [ + "AWAU", + "RJCT", + "AUTH", + "COND" + ] + }, + "OBWriteDomesticResponse5": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "DomesticPaymentId", + "ConsentId", + "CreationDateTime", + "Status", + "StatusUpdateDateTime", + "Initiation" + ], + "properties": { + "DomesticPaymentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the domestic payment resource.", + "type": "string", + "minLength": 1, + "maxLength": 40 + }, + "ConsentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "CreationDateTime": { + "description": "Date and time at which the message was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Status": { + "$ref": "#/components/schemas/ExternalPaymentTransactionStatus3Code" + }, + "StatusUpdateDateTime": { + "description": "Date and time at which the resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "StatusReason": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBStatusReason" + } + }, + "ExpectedExecutionDateTime": { + "description": "Expected execution date and time for the payment resource. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "ExpectedSettlementDateTime": { + "description": "Expected settlement date and time for the payment resource. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Refund": { + "$ref": "#/components/schemas/OBDomesticRefundAccount1" + }, + "Charges": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "description": "Set of elements used to provide details of a charge for the payment initiation.", + "required": [ + "ChargeBearer", + "Type", + "Amount" + ], + "properties": { + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalPaymentChargeType1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount" + } + } + } + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "InstructionIdentification", + "EndToEndIdentification", + "InstructedAmount", + "CreditorAccount" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for a single domestic payment.", + "properties": { + "InstructionIdentification": { + "description": "Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction.\nUsage: the instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "EndToEndIdentification": { + "description": "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.\nUsage: The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction. It can be included in several messages related to the transaction.\nOB: The Faster Payments Scheme can only access 31 characters for the EndToEndIdentification field.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "LocalInstrument": { + "$ref": "#/components/schemas/OBInternalLocalInstrument1Code" + }, + "InstructedAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "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.\nUsage: This amount has to be transported unchanged through the transaction chain.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "CreditorAgent": { + "type": "object", + "additionalProperties": false, + "description": "Financial institution servicing an account for the creditor.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_1" + }, + "Name": { + "$ref": "#/components/schemas/Name" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "CreditorPostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + }, + "MultiAuthorisation": { + "type": "object", + "additionalProperties": false, + "required": [ + "Status" + ], + "description": "The multiple authorisation flow response from the ASPSP.", + "properties": { + "Status": { + "description": "Specifies the status of the authorisation flow in code form. For a full list of values refer to `OBInternalStatus2Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "AUTH", + "AWAF", + "RJCT" + ] + }, + "NumberRequired": { + "description": "Number of authorisations required for payment order (total required at the start of the multi authorisation journey).", + "type": "integer" + }, + "NumberReceived": { + "description": "Number of authorisations received.", + "type": "integer" + }, + "LastUpdateDateTime": { + "description": "Last date and time at the authorisation flow was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "ExpirationDateTime": { + "description": "Date and time at which the requested authorisation flow must be completed. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "Debtor": { + "$ref": "#/components/schemas/OBCashAccountDebtor4" + } + } + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "OBWriteDomesticScheduled2": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "ConsentId", + "Initiation" + ], + "properties": { + "ConsentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "InstructionIdentification", + "RequestedExecutionDateTime", + "InstructedAmount", + "CreditorAccount" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for a single scheduled domestic payment.", + "properties": { + "InstructionIdentification": { + "description": "Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction.\nUsage: the instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "EndToEndIdentification": { + "description": "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.\nUsage: The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction. It can be included in several messages related to the transaction.\nOB: The Faster Payments Scheme can only access 31 characters for the EndToEndIdentification field.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "LocalInstrument": { + "$ref": "#/components/schemas/OBInternalLocalInstrument1Code" + }, + "RequestedExecutionDateTime": { + "description": "Date at which the initiating party requests the clearing agent to process the payment. \nUsage: This is the date on which the debtor's account is to be debited. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "InstructedAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "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.\nUsage: This amount has to be transported unchanged through the transaction chain.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "CreditorPostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk1" + } + } + }, + "OBWriteDomesticScheduledConsent4": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "Permission", + "Initiation" + ], + "properties": { + "Permission": { + "description": "Specifies the Open Banking service request types. For a full list of values see `OBInternalPermissions2Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "Create" + ] + }, + "ReadRefundAccount": { + "description": "Specifies to share the refund account details with PISP. For a full list of values see `OBInternalReadRefundAccount1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "No", + "Yes" + ] + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "InstructionIdentification", + "RequestedExecutionDateTime", + "InstructedAmount", + "CreditorAccount" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for a single scheduled domestic payment.", + "properties": { + "InstructionIdentification": { + "description": "Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction.\nUsage: the instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "EndToEndIdentification": { + "description": "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.\nUsage: The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction. It can be included in several messages related to the transaction.\nOB: The Faster Payments Scheme can only access 31 characters for the EndToEndIdentification field.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "LocalInstrument": { + "$ref": "#/components/schemas/OBInternalLocalInstrument1Code" + }, + "RequestedExecutionDateTime": { + "description": "Date at which the initiating party requests the clearing agent to process the payment. \nUsage: This is the date on which the debtor's account is to be debited. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "InstructedAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "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.\nUsage: This amount has to be transported unchanged through the transaction chain.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "CreditorPostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + }, + "Authorisation": { + "type": "object", + "additionalProperties": false, + "required": [ + "AuthorisationType" + ], + "description": "The authorisation type request from the TPP.", + "properties": { + "AuthorisationType": { + "description": "Type of authorisation flow requested. For a full list of values refer to `OBInternalAuthorisation1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "Any", + "Single", + "Multiple" + ] + }, + "CompletionDateTime": { + "description": "Date and time at which the requested authorisation flow must be completed. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "SCASupportData": { + "$ref": "#/components/schemas/OBSCASupportData1" + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk1" + } + } + }, + "OBWriteDomesticScheduledConsentResponse5": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "ConsentId", + "CreationDateTime", + "Status", + "StatusUpdateDateTime", + "Permission", + "Initiation" + ], + "properties": { + "ConsentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "CreationDateTime": { + "description": "Date and time at which the resource was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Status": { + "$ref": "#/components/schemas/OBInternalConsentStatus2Code" + }, + "StatusUpdateDateTime": { + "description": "Date and time at which the consent resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "StatusReason": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBStatusReason" + } + }, + "Permission": { + "description": "Specifies the Open Banking service request types. For a full list of values see `OBInternalPermissions2Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "Create" + ] + }, + "ReadRefundAccount": { + "description": "Specifies to share the refund account details with PISP. For a full list of values see `OBInternalReadRefundAccount1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "No", + "Yes" + ] + }, + "CutOffDateTime": { + "description": "Specified cut-off date and time for the payment consent. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "ExpectedExecutionDateTime": { + "description": "Expected execution date and time for the payment resource. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "ExpectedSettlementDateTime": { + "description": "Expected settlement date and time for the payment resource. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Charges": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "description": "Set of elements used to provide details of a charge for the payment initiation.", + "required": [ + "ChargeBearer", + "Type", + "Amount" + ], + "properties": { + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalPaymentChargeType1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount" + } + } + } + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "InstructionIdentification", + "RequestedExecutionDateTime", + "InstructedAmount", + "CreditorAccount" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for a single scheduled domestic payment.", + "properties": { + "InstructionIdentification": { + "description": "Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction.\nUsage: the instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "EndToEndIdentification": { + "description": "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.\nUsage: The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction. It can be included in several messages related to the transaction.\nOB: The Faster Payments Scheme can only access 31 characters for the EndToEndIdentification field.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "LocalInstrument": { + "$ref": "#/components/schemas/OBInternalLocalInstrument1Code" + }, + "RequestedExecutionDateTime": { + "description": "Date at which the initiating party requests the clearing agent to process the payment. \nUsage: This is the date on which the debtor's account is to be debited. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "InstructedAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "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.\nUsage: This amount has to be transported unchanged through the transaction chain.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "CreditorPostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + }, + "Authorisation": { + "type": "object", + "additionalProperties": false, + "required": [ + "AuthorisationType" + ], + "description": "The authorisation type request from the TPP.", + "properties": { + "AuthorisationType": { + "description": "Type of authorisation flow requested. For a full list of values refer to `OBInternalAuthorisation1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "Any", + "Single", + "Multiple" + ] + }, + "CompletionDateTime": { + "description": "Date and time at which the requested authorisation flow must be completed. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "SCASupportData": { + "$ref": "#/components/schemas/OBSCASupportData1" + }, + "Debtor": { + "$ref": "#/components/schemas/OBCashAccountDebtor4" + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk1" + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "OBWriteDomesticScheduledResponse5": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "DomesticScheduledPaymentId", + "ConsentId", + "CreationDateTime", + "Status", + "StatusUpdateDateTime", + "Initiation" + ], + "properties": { + "DomesticScheduledPaymentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the domestic schedule payment resource.", + "type": "string", + "minLength": 1, + "maxLength": 40 + }, + "ConsentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "CreationDateTime": { + "description": "Date and time at which the message was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Status": { + "$ref": "#/components/schemas/ExternalPaymentTransactionStatus2Code" + }, + "StatusUpdateDateTime": { + "description": "Date and time at which the resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "StatusReason": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBStatusReason" + } + }, + "ExpectedExecutionDateTime": { + "description": "Expected execution date and time for the payment resource. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "ExpectedSettlementDateTime": { + "description": "Expected settlement date and time for the payment resource. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Refund": { + "$ref": "#/components/schemas/OBDomesticRefundAccount1" + }, + "Charges": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "description": "Set of elements used to provide details of a charge for the payment initiation.", + "required": [ + "ChargeBearer", + "Type", + "Amount" + ], + "properties": { + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalPaymentChargeType1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount" + } + } + } + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "InstructionIdentification", + "RequestedExecutionDateTime", + "InstructedAmount", + "CreditorAccount" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for a single scheduled domestic payment.", + "properties": { + "InstructionIdentification": { + "description": "Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction.\nUsage: the instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "EndToEndIdentification": { + "description": "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.\nUsage: The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction. It can be included in several messages related to the transaction.\nOB: The Faster Payments Scheme can only access 31 characters for the EndToEndIdentification field.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "LocalInstrument": { + "$ref": "#/components/schemas/OBInternalLocalInstrument1Code" + }, + "RequestedExecutionDateTime": { + "description": "Date at which the initiating party requests the clearing agent to process the payment. \nUsage: This is the date on which the debtor's account is to be debited. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "InstructedAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "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.\nUsage: This amount has to be transported unchanged through the transaction chain.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "CreditorPostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + }, + "MultiAuthorisation": { + "type": "object", + "additionalProperties": false, + "required": [ + "Status" + ], + "description": "The multiple authorisation flow response from the ASPSP.", + "properties": { + "Status": { + "description": "Specifies the status of the authorisation flow in code form.", + "type": "string", + "enum": [ + "AUTH", + "AWAF", + "RJCT" + ] + }, + "NumberRequired": { + "description": "Number of authorisations required for payment order (total required at the start of the multi authorisation journey).", + "type": "integer" + }, + "NumberReceived": { + "description": "Number of authorisations received.", + "type": "integer" + }, + "LastUpdateDateTime": { + "description": "Last date and time at the authorisation flow was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "ExpirationDateTime": { + "description": "Date and time at which the requested authorisation flow must be completed. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "Debtor": { + "$ref": "#/components/schemas/OBCashAccountDebtor4" + } + } + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "OBWriteDomesticStandingOrder3": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "ConsentId", + "Initiation" + ], + "properties": { + "ConsentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "MandateRelatedInformation", + "FirstPaymentAmount", + "CreditorAccount" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for a domestic standing order.", + "properties": { + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "NumberOfPayments": { + "$ref": "#/components/schemas/NumberOfPayments" + }, + "FirstPaymentAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "The amount of the first Standing Order", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "RecurringPaymentAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "The amount of the recurring Standing Order", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "FinalPaymentAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "The amount of the final Standing Order", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Provides the details to identify the debtor account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Identification assigned by an institution to identify an account. This identification is known by the account owner.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "MandateRelatedInformation": { + "$ref": "#/components/schemas/OBMandateRelatedInformation1" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk1" + } + } + }, + "OBWriteDomesticStandingOrderConsent5": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "Permission", + "Initiation" + ], + "properties": { + "Permission": { + "description": "Specifies the Open Banking service request types. For a full list of values see `OBInternalPermissions2Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "Create" + ] + }, + "ReadRefundAccount": { + "description": "Specifies to share the refund account details with PISP. For a full list of values see `OBInternalReadRefundAccount1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "No", + "Yes" + ] + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "MandateRelatedInformation", + "FirstPaymentAmount", + "CreditorAccount" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for a domestic standing order.", + "properties": { + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "NumberOfPayments": { + "$ref": "#/components/schemas/NumberOfPayments" + }, + "FirstPaymentAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "The amount of the first Standing Order", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "RecurringPaymentAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "The amount of the recurring Standing Order", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "FinalPaymentAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "The amount of the final Standing Order", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Provides the details to identify the debtor account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Identification assigned by an institution to identify an account. This identification is known by the account owner.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "MandateRelatedInformation": { + "$ref": "#/components/schemas/OBMandateRelatedInformation1" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + }, + "Authorisation": { + "type": "object", + "additionalProperties": false, + "required": [ + "AuthorisationType" + ], + "description": "The authorisation type request from the TPP.", + "properties": { + "AuthorisationType": { + "description": "Type of authorisation flow requested. For a full list of values refer to `OBInternalAuthorisation1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "Any", + "Single", + "Multiple" + ] + }, + "CompletionDateTime": { + "description": "Date and time at which the requested authorisation flow must be completed. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "SCASupportData": { + "$ref": "#/components/schemas/OBSCASupportData1" + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk1" + } + } + }, + "OBWriteDomesticStandingOrderConsentResponse6": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "ConsentId", + "CreationDateTime", + "Status", + "StatusUpdateDateTime", + "Permission", + "Initiation" + ], + "properties": { + "ConsentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "CreationDateTime": { + "description": "Date and time at which the resource was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Status": { + "$ref": "#/components/schemas/OBInternalConsentStatus2Code" + }, + "StatusUpdateDateTime": { + "description": "Date and time at which the resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "StatusReason": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBStatusReason" + } + }, + "Permission": { + "description": "Specifies the Open Banking service request types. For a full list of values see `OBInternalPermissions2Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "Create" + ] + }, + "ReadRefundAccount": { + "description": "Specifies to share the refund account details with PISP. For a full list of values see `OBInternalReadRefundAccount1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "No", + "Yes" + ] + }, + "CutOffDateTime": { + "description": "Specified cut-off date and time for the payment consent. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Charges": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "description": "Set of elements used to provide details of a charge for the payment initiation.", + "required": [ + "ChargeBearer", + "Type", + "Amount" + ], + "properties": { + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalPaymentChargeType1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount" + } + } + } + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "MandateRelatedInformation", + "FirstPaymentAmount", + "CreditorAccount" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for a domestic standing order.", + "properties": { + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "NumberOfPayments": { + "$ref": "#/components/schemas/NumberOfPayments" + }, + "FirstPaymentAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "The amount of the first Standing Order", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "RecurringPaymentAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "The amount of the recurring Standing Order", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "FinalPaymentAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "The amount of the final Standing Order", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Identification assigned by an institution to identify an account. This identification is known by the account owner.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "MandateRelatedInformation": { + "$ref": "#/components/schemas/OBMandateRelatedInformation1" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + }, + "Authorisation": { + "type": "object", + "additionalProperties": false, + "required": [ + "AuthorisationType" + ], + "description": "The authorisation type request from the TPP.", + "properties": { + "AuthorisationType": { + "description": "Type of authorisation flow requested.", + "type": "string", + "enum": [ + "Any", + "Single" + ] + }, + "CompletionDateTime": { + "description": "Date and time at which the requested authorisation flow must be completed. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "SCASupportData": { + "$ref": "#/components/schemas/OBSCASupportData1" + }, + "Debtor": { + "$ref": "#/components/schemas/OBCashAccountDebtor4" + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk1" + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "OBWriteDomesticStandingOrderResponse6": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "DomesticStandingOrderId", + "ConsentId", + "CreationDateTime", + "Status", + "StatusUpdateDateTime", + "Initiation" + ], + "properties": { + "DomesticStandingOrderId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the domestic standing order resource.", + "type": "string", + "minLength": 1, + "maxLength": 40 + }, + "ConsentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "CreationDateTime": { + "description": "Date and time at which the resource was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Status": { + "$ref": "#/components/schemas/ExternalPaymentTransactionStatus1Code" + }, + "StatusUpdateDateTime": { + "description": "Date and time at which the resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "StatusReason": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBStatusReason" + } + }, + "Refund": { + "$ref": "#/components/schemas/OBDomesticRefundAccount1" + }, + "Charges": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "description": "Set of elements used to provide details of a charge for the payment initiation.", + "required": [ + "ChargeBearer", + "Type", + "Amount" + ], + "properties": { + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalPaymentChargeType1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount" + } + } + } + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "MandateRelatedInformation", + "FirstPaymentAmount", + "CreditorAccount" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for a domestic standing order.", + "properties": { + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "NumberOfPayments": { + "$ref": "#/components/schemas/NumberOfPayments" + }, + "FirstPaymentAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "The amount of the first Standing Order", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "RecurringPaymentAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "The amount of the recurring Standing Order", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "FinalPaymentAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "The amount of the final Standing Order", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Provides the details to identify the debtor account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Identification assigned by an institution to identify an account. This identification is known by the account owner.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "MandateRelatedInformation": { + "$ref": "#/components/schemas/OBMandateRelatedInformation1" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + }, + "MultiAuthorisation": { + "type": "object", + "additionalProperties": false, + "required": [ + "Status" + ], + "description": "The multiple authorisation flow response from the ASPSP.", + "properties": { + "Status": { + "description": "Specifies the status of the authorisation flow in code form.", + "type": "string", + "enum": [ + "AUTH", + "AWAF", + "RJCT" + ] + }, + "NumberRequired": { + "description": "Number of authorisations required for payment order (total required at the start of the multi authorisation journey).", + "type": "integer" + }, + "NumberReceived": { + "description": "Number of authorisations received.", + "type": "integer" + }, + "LastUpdateDateTime": { + "description": "Last date and time at the authorisation flow was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "ExpirationDateTime": { + "description": "Date and time at which the requested authorisation flow must be completed. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "Debtor": { + "$ref": "#/components/schemas/OBCashAccountDebtor4" + } + } + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "OBWriteFile2": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "ConsentId", + "Initiation" + ], + "properties": { + "ConsentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "FileType", + "FileHash" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds using a payment file.", + "properties": { + "FileType": { + "description": "Specifies the payment file type.", + "type": "string", + "x-namespaced-enum": [ + "UK.OBIE.PaymentInitiation.4.0", + "UK.OBIE.pain.001.001.08" + ] + }, + "FileHash": { + "description": "A base64 encoding of a SHA256 hash of the file to be uploaded.", + "type": "string", + "minLength": 1, + "maxLength": 44 + }, + "FileReference": { + "description": "Reference for the file.", + "type": "string", + "minLength": 1, + "maxLength": 40 + }, + "NumberOfTransactions": { + "description": "Number of individual transactions contained in the payment information group.", + "type": "string", + "pattern": "[0-9]{1,15}" + }, + "ControlSum": { + "description": "Total of all individual amounts included in the group, irrespective of currencies.", + "type": "number" + }, + "RequestedExecutionDateTime": { + "description": "Date at which the initiating party requests the clearing agent to process the payment. \nUsage: This is the date on which the debtor's account is to be debited. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "LocalInstrument": { + "$ref": "#/components/schemas/OBInternalLocalInstrument1Code" + }, + "CreditorAgent": { + "type": "object", + "additionalProperties": false, + "description": "Financial institution servicing an account for the creditor.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_1" + }, + "Name": { + "$ref": "#/components/schemas/Name" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + } + } + } + } + }, + "OBWriteFileConsent3": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "Initiation" + ], + "properties": { + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "FileType", + "FileHash" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds using a payment file.", + "properties": { + "FileType": { + "description": "Specifies the payment file type.", + "type": "string", + "x-namespaced-enum": [ + "UK.OBIE.PaymentInitiation.4.0", + "UK.OBIE.pain.001.001.08" + ] + }, + "FileHash": { + "description": "A base64 encoding of a SHA256 hash of the file to be uploaded.", + "type": "string", + "minLength": 1, + "maxLength": 44 + }, + "FileReference": { + "description": "Reference for the file.", + "type": "string", + "minLength": 1, + "maxLength": 40 + }, + "NumberOfTransactions": { + "description": "Number of individual transactions contained in the payment information group.", + "type": "string", + "pattern": "[0-9]{1,15}" + }, + "ControlSum": { + "description": "Total of all individual amounts included in the group, irrespective of currencies.", + "type": "number" + }, + "RequestedExecutionDateTime": { + "description": "Date at which the initiating party requests the clearing agent to process the payment. \nUsage: This is the date on which the debtor's account is to be debited. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "LocalInstrument": { + "$ref": "#/components/schemas/OBInternalLocalInstrument1Code" + }, + "CreditorAgent": { + "type": "object", + "additionalProperties": false, + "description": "Financial institution servicing an account for the creditor.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_1" + }, + "Name": { + "$ref": "#/components/schemas/Name" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + }, + "Authorisation": { + "type": "object", + "additionalProperties": false, + "required": [ + "AuthorisationType" + ], + "description": "The authorisation type request from the TPP.", + "properties": { + "AuthorisationType": { + "description": "Type of authorisation flow requested.", + "type": "string", + "enum": [ + "Any", + "Single" + ] + }, + "CompletionDateTime": { + "description": "Date and time at which the requested authorisation flow must be completed. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "SCASupportData": { + "$ref": "#/components/schemas/OBSCASupportData1" + } + } + } + } + }, + "OBWriteFileConsentResponse4": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "ConsentId", + "CreationDateTime", + "Status", + "StatusUpdateDateTime", + "Initiation" + ], + "properties": { + "ConsentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "CreationDateTime": { + "description": "Date and time at which the resource was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Status": { + "$ref": "#/components/schemas/OBInternalConsentStatus3Code" + }, + "StatusReason": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBStatusReason" + } + }, + "StatusUpdateDateTime": { + "description": "Date and time at which the consent resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "CutOffDateTime": { + "description": "Specified cut-off date and time for the payment consent. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Charges": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "description": "Set of elements used to provide details of a charge for the payment initiation.", + "required": [ + "ChargeBearer", + "Type", + "Amount" + ], + "properties": { + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalPaymentChargeType1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount" + } + } + } + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "FileType", + "FileHash" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds using a payment file.", + "properties": { + "FileType": { + "description": "Specifies the payment file type.", + "type": "string", + "x-namespaced-enum": [ + "UK.OBIE.PaymentInitiation.4.0", + "UK.OBIE.pain.001.001.08" + ] + }, + "FileHash": { + "description": "A base64 encoding of a SHA256 hash of the file to be uploaded.", + "type": "string", + "minLength": 1, + "maxLength": 44 + }, + "FileReference": { + "description": "Reference for the file.", + "type": "string", + "minLength": 1, + "maxLength": 40 + }, + "NumberOfTransactions": { + "description": "Number of individual transactions contained in the payment information group.", + "type": "string", + "pattern": "[0-9]{1,15}" + }, + "ControlSum": { + "description": "Total of all individual amounts included in the group, irrespective of currencies.", + "type": "number" + }, + "RequestedExecutionDateTime": { + "description": "Date at which the initiating party requests the clearing agent to process the payment. \nUsage: This is the date on which the debtor's account is to be debited. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "LocalInstrument": { + "$ref": "#/components/schemas/OBInternalLocalInstrument1Code" + }, + "CreditorAgent": { + "type": "object", + "additionalProperties": false, + "description": "Financial institution servicing an account for the creditor.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_1" + }, + "Name": { + "$ref": "#/components/schemas/Name" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + }, + "Authorisation": { + "type": "object", + "additionalProperties": false, + "required": [ + "AuthorisationType" + ], + "description": "The authorisation type request from the TPP.", + "properties": { + "AuthorisationType": { + "description": "Type of authorisation flow requested.", + "type": "string", + "enum": [ + "Any", + "Single" + ] + }, + "CompletionDateTime": { + "description": "Date and time at which the requested authorisation flow must be completed. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "SCASupportData": { + "$ref": "#/components/schemas/OBSCASupportData1" + }, + "Debtor": { + "$ref": "#/components/schemas/OBCashAccountDebtor4" + } + } + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "OBInternalConsentStatus3Code": { + "description": "Specifies the status of consent resource in code form.", + "type": "string", + "enum": [ + "AWAU", + "AWUP", + "RJCT", + "AUTH", + "COND" + ] + }, + "OBWriteFileResponse3": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "FilePaymentId", + "ConsentId", + "CreationDateTime", + "Status", + "StatusUpdateDateTime", + "Initiation" + ], + "properties": { + "FilePaymentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the file payment resource.", + "type": "string", + "minLength": 1, + "maxLength": 40 + }, + "ConsentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "CreationDateTime": { + "description": "Date and time at which the message was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Status": { + "$ref": "#/components/schemas/ExternalPaymentTransactionStatus4Code" + }, + "StatusUpdateDateTime": { + "description": "Date and time at which the resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "StatusReason": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBStatusReason" + } + }, + "Charges": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "description": "Set of elements used to provide details of a charge for the payment initiation.", + "required": [ + "ChargeBearer", + "Type", + "Amount" + ], + "properties": { + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalPaymentChargeType1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount" + } + } + } + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "FileType", + "FileHash" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds using a payment file.", + "properties": { + "FileType": { + "description": "Specifies the payment file type.", + "type": "string", + "x-namespaced-enum": [ + "UK.OBIE.PaymentInitiation.4.0", + "UK.OBIE.pain.001.001.08" + ] + }, + "FileHash": { + "description": "A base64 encoding of a SHA256 hash of the file to be uploaded.", + "type": "string", + "minLength": 1, + "maxLength": 44 + }, + "FileReference": { + "description": "Reference for the file.", + "type": "string", + "minLength": 1, + "maxLength": 40 + }, + "NumberOfTransactions": { + "description": "Number of individual transactions contained in the payment information group.", + "type": "string", + "pattern": "[0-9]{1,15}" + }, + "ControlSum": { + "description": "Total of all individual amounts included in the group, irrespective of currencies.", + "type": "number" + }, + "RequestedExecutionDateTime": { + "description": "Date at which the initiating party requests the clearing agent to process the payment. \nUsage: This is the date on which the debtor's account is to be debited. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "LocalInstrument": { + "$ref": "#/components/schemas/OBInternalLocalInstrument1Code" + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "CreditorAgent": { + "type": "object", + "additionalProperties": false, + "description": "Financial institution servicing an account for the creditor.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_1" + }, + "Name": { + "$ref": "#/components/schemas/Name" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + }, + "MultiAuthorisation": { + "type": "object", + "additionalProperties": false, + "required": [ + "Status" + ], + "description": "The multiple authorisation flow response from the ASPSP.", + "properties": { + "Status": { + "description": "Specifies the status of the authorisation flow in code form.", + "type": "string", + "enum": [ + "AUTH", + "AWAF", + "RJCT" + ] + }, + "NumberRequired": { + "description": "Number of authorisations required for payment order (total required at the start of the multi authorisation journey).", + "type": "integer" + }, + "NumberReceived": { + "description": "Number of authorisations received.", + "type": "integer" + }, + "LastUpdateDateTime": { + "description": "Last date and time at the authorisation flow was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "ExpirationDateTime": { + "description": "Date and time at which the requested authorisation flow must be completed. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "Debtor": { + "$ref": "#/components/schemas/OBCashAccountDebtor4" + } + } + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "OBWriteFundsConfirmationResponse1": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "properties": { + "FundsAvailableResult": { + "type": "object", + "additionalProperties": false, + "required": [ + "FundsAvailableDateTime", + "FundsAvailable" + ], + "description": "Result of a funds availability check.", + "properties": { + "FundsAvailableDateTime": { + "description": "Date and time at which the funds availability check was generated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "FundsAvailable": { + "description": "Flag to indicate the availability of funds given the Amount in the consent request.", + "type": "boolean" + } + } + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "OBWriteInternational3": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "ConsentId", + "Initiation" + ], + "properties": { + "ConsentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "InstructionIdentification", + "EndToEndIdentification", + "CurrencyOfTransfer", + "InstructedAmount", + "CreditorAccount" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for a single international payment.", + "properties": { + "InstructionIdentification": { + "description": "Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction.\nUsage: the instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "EndToEndIdentification": { + "description": "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.\nUsage: The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction. It can be included in several messages related to the transaction.\nOB: The Faster Payments Scheme can only access 31 characters for the EndToEndIdentification field.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "LocalInstrument": { + "$ref": "#/components/schemas/OBInternalLocalInstrument1Code" + }, + "InstructionPriority": { + "description": "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.", + "type": "string", + "enum": [ + "Normal", + "Urgent" + ] + }, + "ExtendedPurpose": { + "description": "Specifies the purpose of an international payment, when there is no corresponding 4 character code available in the ISO20022 list of Purpose Codes.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "CurrencyOfTransfer": { + "description": "Specifies the currency of the to be transferred amount, which is different from the currency of the debtor's account.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "DestinationCountryCode": { + "description": "Country in which Credit Account is domiciled. Code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).", + "type": "string", + "pattern": "^[A-Z]{2,2}$" + }, + "InstructedAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "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.\nUsage: This amount has to be transported unchanged through the transaction chain.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "ExchangeRateInformation": { + "type": "object", + "additionalProperties": false, + "required": [ + "UnitCurrency", + "RateType" + ], + "description": "Provides details on the currency exchange rate and contract.", + "properties": { + "UnitCurrency": { + "description": "Currency in which the rate of exchange is expressed in a currency exchange. In the example 1GBP = xxxCUR, the unit currency is GBP.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "ExchangeRate": { + "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.", + "type": "number" + }, + "RateType": { + "description": "Specifies the type used to complete the currency exchange.", + "type": "string", + "enum": [ + "Actual", + "Agreed", + "Indicative" + ] + }, + "ContractIdentification": { + "description": "Unique and unambiguous reference to the foreign exchange contract agreed between the initiating party/creditor and the debtor agent.", + "type": "string", + "minLength": 1, + "maxLength": 256 + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "Creditor": { + "type": "object", + "additionalProperties": false, + "description": "Party to which an amount of money is due.", + "properties": { + "Name": { + "description": "Name by which a party is known and which is usually used to identify that party.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAgent": { + "type": "object", + "additionalProperties": false, + "description": "Financial institution servicing an account for the creditor.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_1" + }, + "Name": { + "$ref": "#/components/schemas/Name" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk1" + } + } + }, + "OBWriteInternationalConsent5": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "Initiation" + ], + "properties": { + "ReadRefundAccount": { + "description": "Specifies to share the refund account details with PISP", + "type": "string", + "enum": [ + "No", + "Yes" + ] + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "InstructionIdentification", + "EndToEndIdentification", + "CurrencyOfTransfer", + "InstructedAmount", + "CreditorAccount" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for a single international payment.", + "properties": { + "InstructionIdentification": { + "description": "Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction.\nUsage: the instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "EndToEndIdentification": { + "description": "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.\nUsage: The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction. It can be included in several messages related to the transaction.\nOB: The Faster Payments Scheme can only access 31 characters for the EndToEndIdentification field.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "LocalInstrument": { + "$ref": "#/components/schemas/OBInternalLocalInstrument1Code" + }, + "InstructionPriority": { + "description": "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.", + "type": "string", + "enum": [ + "Normal", + "Urgent" + ] + }, + "ExtendedPurpose": { + "description": "Specifies the purpose of an international payment, when there is no corresponding 4 character code available in the ISO20022 list of Purpose Codes.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "CurrencyOfTransfer": { + "description": "Specifies the currency of the to be transferred amount, which is different from the currency of the debtor's account.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "DestinationCountryCode": { + "description": "Country in which Credit Account is domiciled. Code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).", + "type": "string", + "pattern": "^[A-Z]{2,2}$" + }, + "InstructedAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "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.\nUsage: This amount has to be transported unchanged through the transaction chain.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "ExchangeRateInformation": { + "type": "object", + "additionalProperties": false, + "required": [ + "UnitCurrency", + "RateType" + ], + "description": "Provides details on the currency exchange rate and contract.", + "properties": { + "UnitCurrency": { + "description": "Currency in which the rate of exchange is expressed in a currency exchange. In the example 1GBP = xxxCUR, the unit currency is GBP.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "ExchangeRate": { + "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.", + "type": "number" + }, + "RateType": { + "description": "Specifies the type used to complete the currency exchange.", + "type": "string", + "enum": [ + "Actual", + "Agreed", + "Indicative" + ] + }, + "ContractIdentification": { + "description": "Unique and unambiguous reference to the foreign exchange contract agreed between the initiating party/creditor and the debtor agent.", + "type": "string", + "minLength": 1, + "maxLength": 256 + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "Creditor": { + "type": "object", + "additionalProperties": false, + "description": "Party to which an amount of money is due.", + "properties": { + "Name": { + "description": "Name by which a party is known and which is usually used to identify that party.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAgent": { + "type": "object", + "additionalProperties": false, + "description": "Financial institution servicing an account for the creditor.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_1" + }, + "Name": { + "$ref": "#/components/schemas/Name" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + }, + "Authorisation": { + "type": "object", + "additionalProperties": false, + "required": [ + "AuthorisationType" + ], + "description": "The authorisation type request from the TPP.", + "properties": { + "AuthorisationType": { + "description": "Type of authorisation flow requested.", + "type": "string", + "enum": [ + "Any", + "Single" + ] + }, + "CompletionDateTime": { + "description": "Date and time at which the requested authorisation flow must be completed. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "SCASupportData": { + "$ref": "#/components/schemas/OBSCASupportData1" + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk1" + } + } + }, + "OBWriteInternationalConsentResponse6": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "ConsentId", + "CreationDateTime", + "Status", + "StatusUpdateDateTime", + "Initiation" + ], + "properties": { + "ConsentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "CreationDateTime": { + "description": "Date and time at which the resource was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Status": { + "$ref": "#/components/schemas/OBInternalConsentStatus2Code" + }, + "StatusReason": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBStatusReason" + } + }, + "StatusUpdateDateTime": { + "description": "Date and time at which the resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "ReadRefundAccount": { + "description": "Specifies to share the refund account details with PISP", + "type": "string", + "enum": [ + "No", + "Yes" + ] + }, + "CutOffDateTime": { + "description": "Specified cut-off date and time for the payment consent. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "ExpectedExecutionDateTime": { + "description": "Expected execution date and time for the payment resource. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "ExpectedSettlementDateTime": { + "description": "Expected settlement date and time for the payment resource. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Charges": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "description": "Set of elements used to provide details of a charge for the payment initiation.", + "required": [ + "ChargeBearer", + "Type", + "Amount" + ], + "properties": { + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalPaymentChargeType1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount" + } + } + } + }, + "ExchangeRateInformation": { + "type": "object", + "additionalProperties": false, + "required": [ + "UnitCurrency", + "ExchangeRate", + "RateType" + ], + "description": "Further detailed information on the exchange rate that has been used in the payment transaction.", + "properties": { + "UnitCurrency": { + "description": "Currency in which the rate of exchange is expressed in a currency exchange. In the example 1GBP = xxxCUR, the unit currency is GBP.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "ExchangeRate": { + "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.", + "type": "number" + }, + "RateType": { + "description": "Specifies the type used to complete the currency exchange.", + "type": "string", + "enum": [ + "Actual", + "Agreed", + "Indicative" + ] + }, + "ContractIdentification": { + "description": "Unique and unambiguous reference to the foreign exchange contract agreed between the initiating party/creditor and the debtor agent.", + "type": "string", + "minLength": 1, + "maxLength": 256 + }, + "ExpirationDateTime": { + "description": "Specified date and time the exchange rate agreement will expire. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "InstructionIdentification", + "EndToEndIdentification", + "CurrencyOfTransfer", + "InstructedAmount", + "CreditorAccount" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for a single international payment.", + "properties": { + "InstructionIdentification": { + "description": "Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction.\nUsage: the instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "EndToEndIdentification": { + "description": "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.\nUsage: The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction. It can be included in several messages related to the transaction.\nOB: The Faster Payments Scheme can only access 31 characters for the EndToEndIdentification field.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "LocalInstrument": { + "$ref": "#/components/schemas/OBInternalLocalInstrument1Code" + }, + "InstructionPriority": { + "description": "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.", + "type": "string", + "enum": [ + "Normal", + "Urgent" + ] + }, + "ExtendedPurpose": { + "description": "Specifies the purpose of an international payment, when there is no corresponding 4 character code available in the ISO20022 list of Purpose Codes.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "CurrencyOfTransfer": { + "description": "Specifies the currency of the to be transferred amount, which is different from the currency of the debtor's account.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "DestinationCountryCode": { + "description": "Country in which Credit Account is domiciled. Code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).", + "type": "string", + "pattern": "^[A-Z]{2,2}$" + }, + "InstructedAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "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.\nUsage: This amount has to be transported unchanged through the transaction chain.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "ExchangeRateInformation": { + "type": "object", + "additionalProperties": false, + "required": [ + "UnitCurrency", + "RateType" + ], + "description": "Provides details on the currency exchange rate and contract.", + "properties": { + "UnitCurrency": { + "description": "Currency in which the rate of exchange is expressed in a currency exchange. In the example 1GBP = xxxCUR, the unit currency is GBP.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "ExchangeRate": { + "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.", + "type": "number" + }, + "RateType": { + "description": "Specifies the type used to complete the currency exchange.", + "type": "string", + "enum": [ + "Actual", + "Agreed", + "Indicative" + ] + }, + "ContractIdentification": { + "description": "Unique and unambiguous reference to the foreign exchange contract agreed between the initiating party/creditor and the debtor agent.", + "type": "string", + "minLength": 1, + "maxLength": 256 + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "Creditor": { + "type": "object", + "additionalProperties": false, + "description": "Party to which an amount of money is due.", + "properties": { + "Name": { + "description": "Name by which a party is known and which is usually used to identify that party.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAgent": { + "type": "object", + "additionalProperties": false, + "description": "Financial institution servicing an account for the creditor.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_1" + }, + "Name": { + "$ref": "#/components/schemas/Name" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + }, + "Authorisation": { + "type": "object", + "additionalProperties": false, + "required": [ + "AuthorisationType" + ], + "description": "The authorisation type request from the TPP.", + "properties": { + "AuthorisationType": { + "description": "Type of authorisation flow requested.", + "type": "string", + "enum": [ + "Any", + "Single" + ] + }, + "CompletionDateTime": { + "description": "Date and time at which the requested authorisation flow must be completed. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "SCASupportData": { + "$ref": "#/components/schemas/OBSCASupportData1" + }, + "Debtor": { + "$ref": "#/components/schemas/OBCashAccountDebtor4" + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk1" + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "OBWriteInternationalResponse5": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "InternationalPaymentId", + "ConsentId", + "CreationDateTime", + "Status", + "StatusUpdateDateTime", + "Initiation" + ], + "properties": { + "InternationalPaymentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the international payment resource.", + "type": "string", + "minLength": 1, + "maxLength": 40 + }, + "ConsentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "CreationDateTime": { + "description": "Date and time at which the message was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Status": { + "$ref": "#/components/schemas/ExternalPaymentTransactionStatus3Code" + }, + "StatusUpdateDateTime": { + "description": "Date and time at which the resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "StatusReason": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBStatusReason" + } + }, + "ExpectedExecutionDateTime": { + "description": "Expected execution date and time for the payment resource. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "ExpectedSettlementDateTime": { + "description": "Expected settlement date and time for the payment resource. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Refund": { + "$ref": "#/components/schemas/OBDomesticRefundAccount1" + }, + "Charges": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "description": "Set of elements used to provide details of a charge for the payment initiation.", + "required": [ + "ChargeBearer", + "Type", + "Amount" + ], + "properties": { + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalPaymentChargeType1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount" + } + } + } + }, + "ExchangeRateInformation": { + "type": "object", + "additionalProperties": false, + "required": [ + "UnitCurrency", + "ExchangeRate", + "RateType" + ], + "description": "Further detailed information on the exchange rate that has been used in the payment transaction.", + "properties": { + "UnitCurrency": { + "description": "Currency in which the rate of exchange is expressed in a currency exchange. In the example 1GBP = xxxCUR, the unit currency is GBP.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "ExchangeRate": { + "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.", + "type": "number" + }, + "RateType": { + "description": "Specifies the type used to complete the currency exchange.", + "type": "string", + "enum": [ + "Actual", + "Agreed", + "Indicative" + ] + }, + "ContractIdentification": { + "description": "Unique and unambiguous reference to the foreign exchange contract agreed between the initiating party/creditor and the debtor agent.", + "type": "string", + "minLength": 1, + "maxLength": 256 + }, + "ExpirationDateTime": { + "description": "Specified date and time the exchange rate agreement will expire. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "InstructionIdentification", + "EndToEndIdentification", + "CurrencyOfTransfer", + "InstructedAmount", + "CreditorAccount" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for a single international payment.", + "properties": { + "InstructionIdentification": { + "description": "Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction.\nUsage: the instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "EndToEndIdentification": { + "description": "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.\nUsage: The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction. It can be included in several messages related to the transaction.\nOB: The Faster Payments Scheme can only access 31 characters for the EndToEndIdentification field.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "LocalInstrument": { + "$ref": "#/components/schemas/OBInternalLocalInstrument1Code" + }, + "InstructionPriority": { + "description": "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.", + "type": "string", + "enum": [ + "Normal", + "Urgent" + ] + }, + "ExtendedPurpose": { + "description": "Specifies the purpose of an international payment, when there is no corresponding 4 character code available in the ISO20022 list of Purpose Codes.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "CurrencyOfTransfer": { + "description": "Specifies the currency of the to be transferred amount, which is different from the currency of the debtor's account.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "DestinationCountryCode": { + "description": "Country in which Credit Account is domiciled. Code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).", + "type": "string", + "pattern": "^[A-Z]{2,2}$" + }, + "InstructedAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "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.\nUsage: This amount has to be transported unchanged through the transaction chain.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "ExchangeRateInformation": { + "type": "object", + "additionalProperties": false, + "required": [ + "UnitCurrency", + "RateType" + ], + "description": "Provides details on the currency exchange rate and contract.", + "properties": { + "UnitCurrency": { + "description": "Currency in which the rate of exchange is expressed in a currency exchange. In the example 1GBP = xxxCUR, the unit currency is GBP.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "ExchangeRate": { + "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.", + "type": "number" + }, + "RateType": { + "description": "Specifies the type used to complete the currency exchange.", + "type": "string", + "enum": [ + "Actual", + "Agreed", + "Indicative" + ] + }, + "ContractIdentification": { + "description": "Unique and unambiguous reference to the foreign exchange contract agreed between the initiating party/creditor and the debtor agent.", + "type": "string", + "minLength": 1, + "maxLength": 256 + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "Creditor": { + "type": "object", + "additionalProperties": false, + "description": "Party to which an amount of money is due.", + "properties": { + "Name": { + "description": "Name by which a party is known and which is usually used to identify that party.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAgent": { + "type": "object", + "additionalProperties": false, + "description": "Financial institution servicing an account for the creditor.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_1" + }, + "Name": { + "$ref": "#/components/schemas/Name" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + }, + "MultiAuthorisation": { + "type": "object", + "additionalProperties": false, + "required": [ + "Status" + ], + "description": "The multiple authorisation flow response from the ASPSP.", + "properties": { + "Status": { + "description": "Specifies the status of the authorisation flow in code form.", + "type": "string", + "enum": [ + "AUTH", + "AWAF", + "RJCT" + ] + }, + "NumberRequired": { + "description": "Number of authorisations required for payment order (total required at the start of the multi authorisation journey).", + "type": "integer" + }, + "NumberReceived": { + "description": "Number of authorisations received.", + "type": "integer" + }, + "LastUpdateDateTime": { + "description": "Last date and time at the authorisation flow was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "ExpirationDateTime": { + "description": "Date and time at which the requested authorisation flow must be completed. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "Debtor": { + "$ref": "#/components/schemas/OBCashAccountDebtor4" + } + } + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "OBWriteInternationalScheduled3": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "ConsentId", + "Initiation" + ], + "properties": { + "ConsentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "InstructionIdentification", + "RequestedExecutionDateTime", + "CurrencyOfTransfer", + "InstructedAmount", + "CreditorAccount" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for a single scheduled international payment.", + "properties": { + "InstructionIdentification": { + "description": "Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction.\nUsage: the instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "EndToEndIdentification": { + "description": "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.\nUsage: The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction. It can be included in several messages related to the transaction.\nOB: The Faster Payments Scheme can only access 31 characters for the EndToEndIdentification field.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "LocalInstrument": { + "$ref": "#/components/schemas/OBInternalLocalInstrument1Code" + }, + "InstructionPriority": { + "description": "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.", + "type": "string", + "enum": [ + "Normal", + "Urgent" + ] + }, + "ExtendedPurpose": { + "description": "Specifies the purpose of an international payment, when there is no corresponding 4 character code available in the ISO20022 list of Purpose Codes.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "RequestedExecutionDateTime": { + "description": "Date at which the initiating party requests the clearing agent to process the payment. \nUsage: This is the date on which the debtor's account is to be debited. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "CurrencyOfTransfer": { + "description": "Specifies the currency of the to be transferred amount, which is different from the currency of the debtor's account.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "DestinationCountryCode": { + "description": "Country in which Credit Account is domiciled. Code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).", + "type": "string", + "pattern": "^[A-Z]{2,2}$" + }, + "InstructedAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "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.\nUsage: This amount has to be transported unchanged through the transaction chain.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "ExchangeRateInformation": { + "type": "object", + "additionalProperties": false, + "required": [ + "UnitCurrency", + "RateType" + ], + "description": "Provides details on the currency exchange rate and contract.", + "properties": { + "UnitCurrency": { + "description": "Currency in which the rate of exchange is expressed in a currency exchange. In the example 1GBP = xxxCUR, the unit currency is GBP.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "ExchangeRate": { + "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.", + "type": "number" + }, + "RateType": { + "description": "Specifies the type used to complete the currency exchange.", + "type": "string", + "enum": [ + "Actual", + "Agreed", + "Indicative" + ] + }, + "ContractIdentification": { + "description": "Unique and unambiguous reference to the foreign exchange contract agreed between the initiating party/creditor and the debtor agent.", + "type": "string", + "minLength": 1, + "maxLength": 256 + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "Creditor": { + "type": "object", + "additionalProperties": false, + "description": "Party to which an amount of money is due.", + "properties": { + "Name": { + "description": "Name by which a party is known and which is usually used to identify that party.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAgent": { + "type": "object", + "additionalProperties": false, + "description": "Financial institution servicing an account for the creditor.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_1" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "Name": { + "$ref": "#/components/schemas/Name" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk1" + } + } + }, + "OBWriteInternationalScheduledConsent5": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "Permission", + "Initiation" + ], + "properties": { + "Permission": { + "description": "Specifies the Open Banking service request types.", + "type": "string", + "enum": [ + "Create" + ] + }, + "ReadRefundAccount": { + "description": "Specifies to share the refund account details with PISP", + "type": "string", + "enum": [ + "No", + "Yes" + ] + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "InstructionIdentification", + "RequestedExecutionDateTime", + "CurrencyOfTransfer", + "InstructedAmount", + "CreditorAccount" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for a single scheduled international payment.", + "properties": { + "InstructionIdentification": { + "description": "Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction.\nUsage: the instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "EndToEndIdentification": { + "description": "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.\nUsage: The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction. It can be included in several messages related to the transaction.\nOB: The Faster Payments Scheme can only access 31 characters for the EndToEndIdentification field.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "LocalInstrument": { + "$ref": "#/components/schemas/OBInternalLocalInstrument1Code" + }, + "InstructionPriority": { + "description": "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.", + "type": "string", + "enum": [ + "Normal", + "Urgent" + ] + }, + "ExtendedPurpose": { + "description": "Specifies the purpose of an international payment, when there is no corresponding 4 character code available in the ISO20022 list of Purpose Codes.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "RequestedExecutionDateTime": { + "description": "Date at which the initiating party requests the clearing agent to process the payment. \nUsage: This is the date on which the debtor's account is to be debited. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "CurrencyOfTransfer": { + "description": "Specifies the currency of the to be transferred amount, which is different from the currency of the debtor's account.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "DestinationCountryCode": { + "description": "Country in which Credit Account is domiciled. Code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).", + "type": "string", + "pattern": "^[A-Z]{2,2}$" + }, + "InstructedAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "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.\nUsage: This amount has to be transported unchanged through the transaction chain.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "ExchangeRateInformation": { + "type": "object", + "additionalProperties": false, + "required": [ + "UnitCurrency", + "RateType" + ], + "description": "Provides details on the currency exchange rate and contract.", + "properties": { + "UnitCurrency": { + "description": "Currency in which the rate of exchange is expressed in a currency exchange. In the example 1GBP = xxxCUR, the unit currency is GBP.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "ExchangeRate": { + "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.", + "type": "number" + }, + "RateType": { + "description": "Specifies the type used to complete the currency exchange.", + "type": "string", + "enum": [ + "Actual", + "Agreed", + "Indicative" + ] + }, + "ContractIdentification": { + "description": "Unique and unambiguous reference to the foreign exchange contract agreed between the initiating party/creditor and the debtor agent.", + "type": "string", + "minLength": 1, + "maxLength": 256 + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "Creditor": { + "type": "object", + "additionalProperties": false, + "description": "Party to which an amount of money is due.", + "properties": { + "Name": { + "description": "Name by which a party is known and which is usually used to identify that party.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAgent": { + "type": "object", + "additionalProperties": false, + "description": "Financial institution servicing an account for the creditor.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_1" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "Name": { + "$ref": "#/components/schemas/Name" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + }, + "Authorisation": { + "type": "object", + "additionalProperties": false, + "required": [ + "AuthorisationType" + ], + "description": "The authorisation type request from the TPP.", + "properties": { + "AuthorisationType": { + "description": "Type of authorisation flow requested.", + "type": "string", + "enum": [ + "Any", + "Single" + ] + }, + "CompletionDateTime": { + "description": "Date and time at which the requested authorisation flow must be completed. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "SCASupportData": { + "$ref": "#/components/schemas/OBSCASupportData1" + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk1" + } + } + }, + "OBWriteInternationalScheduledConsentResponse6": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "ConsentId", + "CreationDateTime", + "Status", + "StatusUpdateDateTime", + "Permission", + "Initiation" + ], + "properties": { + "ConsentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "CreationDateTime": { + "description": "Date and time at which the resource was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Status": { + "$ref": "#/components/schemas/OBInternalConsentStatus2Code" + }, + "StatusReason": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBStatusReason" + } + }, + "StatusUpdateDateTime": { + "description": "Date and time at which the resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Permission": { + "description": "Specifies the Open Banking service request types.", + "type": "string", + "enum": [ + "Create" + ] + }, + "ReadRefundAccount": { + "description": "Specifies to share the refund account details with PISP", + "type": "string", + "enum": [ + "No", + "Yes" + ] + }, + "CutOffDateTime": { + "description": "Specified cut-off date and time for the payment consent. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "ExpectedExecutionDateTime": { + "description": "Expected execution date and time for the payment resource. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "ExpectedSettlementDateTime": { + "description": "Expected settlement date and time for the payment resource. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Charges": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "description": "Set of elements used to provide details of a charge for the payment initiation.", + "required": [ + "ChargeBearer", + "Type", + "Amount" + ], + "properties": { + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalPaymentChargeType1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount" + } + } + } + }, + "ExchangeRateInformation": { + "type": "object", + "additionalProperties": false, + "required": [ + "UnitCurrency", + "ExchangeRate", + "RateType" + ], + "description": "Further detailed information on the exchange rate that has been used in the payment transaction.", + "properties": { + "UnitCurrency": { + "description": "Currency in which the rate of exchange is expressed in a currency exchange. In the example 1GBP = xxxCUR, the unit currency is GBP.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "ExchangeRate": { + "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.", + "type": "number" + }, + "RateType": { + "description": "Specifies the type used to complete the currency exchange.", + "type": "string", + "enum": [ + "Actual", + "Agreed", + "Indicative" + ] + }, + "ContractIdentification": { + "description": "Unique and unambiguous reference to the foreign exchange contract agreed between the initiating party/creditor and the debtor agent.", + "type": "string", + "minLength": 1, + "maxLength": 256 + }, + "ExpirationDateTime": { + "description": "Specified date and time the exchange rate agreement will expire. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "InstructionIdentification", + "RequestedExecutionDateTime", + "CurrencyOfTransfer", + "InstructedAmount", + "CreditorAccount" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for a single scheduled international payment.", + "properties": { + "InstructionIdentification": { + "description": "Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction.\nUsage: the instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "EndToEndIdentification": { + "description": "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.\nUsage: The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction. It can be included in several messages related to the transaction.\nOB: The Faster Payments Scheme can only access 31 characters for the EndToEndIdentification field.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "LocalInstrument": { + "$ref": "#/components/schemas/OBInternalLocalInstrument1Code" + }, + "InstructionPriority": { + "description": "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.", + "type": "string", + "enum": [ + "Normal", + "Urgent" + ] + }, + "ExtendedPurpose": { + "description": "Specifies the purpose of an international payment, when there is no corresponding 4 character code available in the ISO20022 list of Purpose Codes.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "RequestedExecutionDateTime": { + "description": "Date at which the initiating party requests the clearing agent to process the payment. \nUsage: This is the date on which the debtor's account is to be debited. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "CurrencyOfTransfer": { + "description": "Specifies the currency of the to be transferred amount, which is different from the currency of the debtor's account.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "DestinationCountryCode": { + "description": "Country in which Credit Account is domiciled. Code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).", + "type": "string", + "pattern": "^[A-Z]{2,2}$" + }, + "InstructedAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "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.\nUsage: This amount has to be transported unchanged through the transaction chain.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "ExchangeRateInformation": { + "type": "object", + "additionalProperties": false, + "required": [ + "UnitCurrency", + "RateType" + ], + "description": "Provides details on the currency exchange rate and contract.", + "properties": { + "UnitCurrency": { + "description": "Currency in which the rate of exchange is expressed in a currency exchange. In the example 1GBP = xxxCUR, the unit currency is GBP.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "ExchangeRate": { + "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.", + "type": "number" + }, + "RateType": { + "description": "Specifies the type used to complete the currency exchange.", + "type": "string", + "enum": [ + "Actual", + "Agreed", + "Indicative" + ] + }, + "ContractIdentification": { + "description": "Unique and unambiguous reference to the foreign exchange contract agreed between the initiating party/creditor and the debtor agent.", + "type": "string", + "minLength": 1, + "maxLength": 256 + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "Creditor": { + "type": "object", + "additionalProperties": false, + "description": "Party to which an amount of money is due.", + "properties": { + "Name": { + "description": "Name by which a party is known and which is usually used to identify that party.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAgent": { + "type": "object", + "additionalProperties": false, + "description": "Financial institution servicing an account for the creditor.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_1" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "Name": { + "$ref": "#/components/schemas/Name" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + }, + "Authorisation": { + "type": "object", + "additionalProperties": false, + "required": [ + "AuthorisationType" + ], + "description": "The authorisation type request from the TPP.", + "properties": { + "AuthorisationType": { + "description": "Type of authorisation flow requested.", + "type": "string", + "enum": [ + "Any", + "Single" + ] + }, + "CompletionDateTime": { + "description": "Date and time at which the requested authorisation flow must be completed. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "SCASupportData": { + "$ref": "#/components/schemas/OBSCASupportData1" + }, + "Debtor": { + "$ref": "#/components/schemas/OBCashAccountDebtor4" + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk1" + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "OBWriteInternationalScheduledResponse6": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "InternationalScheduledPaymentId", + "ConsentId", + "CreationDateTime", + "Status", + "StatusUpdateDateTime", + "Initiation" + ], + "properties": { + "InternationalScheduledPaymentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the international scheduled payment resource.", + "type": "string", + "minLength": 1, + "maxLength": 40 + }, + "ConsentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "CreationDateTime": { + "description": "Date and time at which the message was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Status": { + "$ref": "#/components/schemas/ExternalPaymentTransactionStatus2Code" + }, + "StatusUpdateDateTime": { + "description": "Date and time at which the resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "StatusReason": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBStatusReason" + } + }, + "ExpectedExecutionDateTime": { + "description": "Expected execution date and time for the payment resource. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "ExpectedSettlementDateTime": { + "description": "Expected settlement date and time for the payment resource. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Refund": { + "$ref": "#/components/schemas/OBDomesticRefundAccount1" + }, + "Charges": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "description": "Set of elements used to provide details of a charge for the payment initiation.", + "required": [ + "ChargeBearer", + "Type", + "Amount" + ], + "properties": { + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalPaymentChargeType1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount" + } + } + } + }, + "ExchangeRateInformation": { + "type": "object", + "additionalProperties": false, + "required": [ + "UnitCurrency", + "ExchangeRate", + "RateType" + ], + "description": "Further detailed information on the exchange rate that has been used in the payment transaction.", + "properties": { + "UnitCurrency": { + "description": "Currency in which the rate of exchange is expressed in a currency exchange. In the example 1GBP = xxxCUR, the unit currency is GBP.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "ExchangeRate": { + "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.", + "type": "number" + }, + "RateType": { + "description": "Specifies the type used to complete the currency exchange.", + "type": "string", + "enum": [ + "Actual", + "Agreed", + "Indicative" + ] + }, + "ContractIdentification": { + "description": "Unique and unambiguous reference to the foreign exchange contract agreed between the initiating party/creditor and the debtor agent.", + "type": "string", + "minLength": 1, + "maxLength": 256 + }, + "ExpirationDateTime": { + "description": "Specified date and time the exchange rate agreement will expire. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "InstructionIdentification", + "RequestedExecutionDateTime", + "CurrencyOfTransfer", + "InstructedAmount", + "CreditorAccount" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for a single scheduled international payment.", + "properties": { + "InstructionIdentification": { + "description": "Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction.\nUsage: the instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction. It can be included in several messages related to the instruction.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "EndToEndIdentification": { + "description": "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.\nUsage: The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction. It can be included in several messages related to the transaction.\nOB: The Faster Payments Scheme can only access 31 characters for the EndToEndIdentification field.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "LocalInstrument": { + "$ref": "#/components/schemas/OBInternalLocalInstrument1Code" + }, + "InstructionPriority": { + "description": "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.", + "type": "string", + "enum": [ + "Normal", + "Urgent" + ] + }, + "ExtendedPurpose": { + "description": "Specifies the purpose of an international payment, when there is no corresponding 4 character code available in the ISO20022 list of Purpose Codes.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "RequestedExecutionDateTime": { + "description": "Date at which the initiating party requests the clearing agent to process the payment. \nUsage: This is the date on which the debtor's account is to be debited. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "CurrencyOfTransfer": { + "description": "Specifies the currency of the to be transferred amount, which is different from the currency of the debtor's account.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "DestinationCountryCode": { + "description": "Country in which Credit Account is domiciled. Code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).", + "type": "string", + "pattern": "^[A-Z]{2,2}$" + }, + "InstructedAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "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.\nUsage: This amount has to be transported unchanged through the transaction chain.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "ExchangeRateInformation": { + "type": "object", + "additionalProperties": false, + "required": [ + "UnitCurrency", + "RateType" + ], + "description": "Provides details on the currency exchange rate and contract.", + "properties": { + "UnitCurrency": { + "description": "Currency in which the rate of exchange is expressed in a currency exchange. In the example 1GBP = xxxCUR, the unit currency is GBP.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "ExchangeRate": { + "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.", + "type": "number" + }, + "RateType": { + "description": "Specifies the type used to complete the currency exchange.", + "type": "string", + "enum": [ + "Actual", + "Agreed", + "Indicative" + ] + }, + "ContractIdentification": { + "description": "Unique and unambiguous reference to the foreign exchange contract agreed between the initiating party/creditor and the debtor agent.", + "type": "string", + "minLength": 1, + "maxLength": 256 + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a debit entry will be made as a result of the transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "Creditor": { + "type": "object", + "additionalProperties": false, + "description": "Party to which an amount of money is due.", + "properties": { + "Name": { + "description": "Name by which a party is known and which is usually used to identify that party.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAgent": { + "type": "object", + "additionalProperties": false, + "description": "Financial institution servicing an account for the creditor.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_1" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "Name": { + "$ref": "#/components/schemas/Name" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Unambiguous identification of the account of the creditor to which a credit entry will be posted as a result of the payment transaction.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + }, + "MultiAuthorisation": { + "type": "object", + "additionalProperties": false, + "required": [ + "Status" + ], + "description": "The multiple authorisation flow response from the ASPSP.", + "properties": { + "Status": { + "description": "Specifies the status of the authorisation flow in code form.", + "type": "string", + "enum": [ + "AUTH", + "AWAF", + "RJCT" + ] + }, + "NumberRequired": { + "description": "Number of authorisations required for payment order (total required at the start of the multi authorisation journey).", + "type": "integer" + }, + "NumberReceived": { + "description": "Number of authorisations received.", + "type": "integer" + }, + "LastUpdateDateTime": { + "description": "Last date and time at the authorisation flow was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "ExpirationDateTime": { + "description": "Date and time at which the requested authorisation flow must be completed. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "Debtor": { + "$ref": "#/components/schemas/OBCashAccountDebtor4" + } + } + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "OBWriteInternationalStandingOrder4": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "ConsentId", + "Initiation" + ], + "properties": { + "ConsentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "CurrencyOfTransfer", + "InstructedAmount", + "CreditorAccount", + "MandateRelatedInformation" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for an international standing order.", + "properties": { + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "NumberOfPayments": { + "$ref": "#/components/schemas/NumberOfPayments" + }, + "ExtendedPurpose": { + "description": "Specifies the purpose of an international payment, when there is no corresponding 4 character code available in the ISO20022 list of Purpose Codes.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "CurrencyOfTransfer": { + "description": "Specifies the currency of the to be transferred amount, which is different from the currency of the debtor's account.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "DestinationCountryCode": { + "description": "Country in which Credit Account is domiciled. Code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).", + "type": "string", + "pattern": "^[A-Z]{2,2}$" + }, + "InstructedAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "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.\nUsage: This amount has to be transported unchanged through the transaction chain.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Provides the details to identify the debtor account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "Creditor": { + "type": "object", + "additionalProperties": false, + "description": "Party to which an amount of money is due.", + "properties": { + "Name": { + "description": "Name by which a party is known and which is usually used to identify that party.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAgent": { + "type": "object", + "additionalProperties": false, + "description": "Party that manages the account on behalf of the account owner, that is manages the registration and booking of entries on the account, calculates balances on the account and provides information about the account.\nThis is the servicer of the beneficiary account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "description": "Unique and unambiguous identification of the servicing institution.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "Name": { + "$ref": "#/components/schemas/Name" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Provides the details to identify the beneficiary account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "MandateRelatedInformation": { + "$ref": "#/components/schemas/OBMandateRelatedInformation1" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk1" + } + } + }, + "OBWriteInternationalStandingOrderConsent6": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "Permission", + "Initiation" + ], + "properties": { + "Permission": { + "description": "Specifies the Open Banking service request types.", + "type": "string", + "enum": [ + "Create" + ] + }, + "ReadRefundAccount": { + "description": "Specifies to share the refund account details with PISP", + "type": "string", + "enum": [ + "No", + "Yes" + ] + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "CurrencyOfTransfer", + "InstructedAmount", + "CreditorAccount", + "MandateRelatedInformation" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for an international standing order.", + "properties": { + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "NumberOfPayments": { + "$ref": "#/components/schemas/NumberOfPayments" + }, + "ExtendedPurpose": { + "description": "Specifies the purpose of an international payment, when there is no corresponding 4 character code available in the ISO20022 list of Purpose Codes.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "CurrencyOfTransfer": { + "description": "Specifies the currency of the to be transferred amount, which is different from the currency of the debtor's account.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "DestinationCountryCode": { + "description": "Country in which Credit Account is domiciled. Code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).", + "type": "string", + "pattern": "^[A-Z]{2,2}$" + }, + "InstructedAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "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.\nUsage: This amount has to be transported unchanged through the transaction chain.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Provides the details to identify the debtor account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "Creditor": { + "type": "object", + "additionalProperties": false, + "description": "Party to which an amount of money is due.", + "properties": { + "Name": { + "description": "Name by which a party is known and which is usually used to identify that party.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAgent": { + "type": "object", + "additionalProperties": false, + "description": "Party that manages the account on behalf of the account owner, that is manages the registration and booking of entries on the account, calculates balances on the account and provides information about the account.\nThis is the servicer of the beneficiary account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "description": "Unique and unambiguous identification of the servicing institution.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "Name": { + "$ref": "#/components/schemas/Name" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Provides the details to identify the beneficiary account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "MandateRelatedInformation": { + "$ref": "#/components/schemas/OBMandateRelatedInformation1" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + }, + "Authorisation": { + "type": "object", + "additionalProperties": false, + "required": [ + "AuthorisationType" + ], + "description": "The authorisation type request from the TPP.", + "properties": { + "AuthorisationType": { + "description": "Type of authorisation flow requested.", + "type": "string", + "enum": [ + "Any", + "Single" + ] + }, + "CompletionDateTime": { + "description": "Date and time at which the requested authorisation flow must be completed. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "SCASupportData": { + "$ref": "#/components/schemas/OBSCASupportData1" + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk1" + } + } + }, + "OBWriteInternationalStandingOrderConsentResponse7": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "ConsentId", + "CreationDateTime", + "Status", + "StatusUpdateDateTime", + "Permission", + "Initiation" + ], + "properties": { + "ConsentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "CreationDateTime": { + "description": "Date and time at which the resource was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Status": { + "$ref": "#/components/schemas/OBInternalConsentStatus2Code" + }, + "StatusReason": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBStatusReason" + } + }, + "StatusUpdateDateTime": { + "description": "Date and time at which the resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Permission": { + "description": "Specifies the Open Banking service request types.", + "type": "string", + "enum": [ + "Create" + ] + }, + "ReadRefundAccount": { + "description": "Specifies to share the refund account details with PISP", + "type": "string", + "enum": [ + "No", + "Yes" + ] + }, + "CutOffDateTime": { + "description": "Specified cut-off date and time for the payment consent. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Charges": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "description": "Set of elements used to provide details of a charge for the payment initiation.", + "required": [ + "ChargeBearer", + "Type", + "Amount" + ], + "properties": { + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalPaymentChargeType1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount" + } + } + } + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "CurrencyOfTransfer", + "InstructedAmount", + "CreditorAccount", + "MandateRelatedInformation" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for an international standing order.", + "properties": { + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "NumberOfPayments": { + "$ref": "#/components/schemas/NumberOfPayments" + }, + "ExtendedPurpose": { + "description": "Specifies the purpose of an international payment, when there is no corresponding 4 character code available in the ISO20022 list of Purpose Codes.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "CurrencyOfTransfer": { + "description": "Specifies the currency of the to be transferred amount, which is different from the currency of the debtor's account.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "DestinationCountryCode": { + "description": "Country in which Credit Account is domiciled. Code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).", + "type": "string", + "pattern": "^[A-Z]{2,2}$" + }, + "InstructedAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "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.\nUsage: This amount has to be transported unchanged through the transaction chain.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Provides the details to identify the debtor account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "Creditor": { + "type": "object", + "additionalProperties": false, + "description": "Party to which an amount of money is due.", + "properties": { + "Name": { + "description": "Name by which a party is known and which is usually used to identify that party.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAgent": { + "type": "object", + "additionalProperties": false, + "description": "Party that manages the account on behalf of the account owner, that is manages the registration and booking of entries on the account, calculates balances on the account and provides information about the account.\nThis is the servicer of the beneficiary account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "description": "Unique and unambiguous identification of the servicing institution.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "Name": { + "$ref": "#/components/schemas/Name" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Provides the details to identify the beneficiary account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "MandateRelatedInformation": { + "$ref": "#/components/schemas/OBMandateRelatedInformation1" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + }, + "Authorisation": { + "type": "object", + "additionalProperties": false, + "required": [ + "AuthorisationType" + ], + "description": "The authorisation type request from the TPP.", + "properties": { + "AuthorisationType": { + "description": "Type of authorisation flow requested.", + "type": "string", + "enum": [ + "Any", + "Single" + ] + }, + "CompletionDateTime": { + "description": "Date and time at which the requested authorisation flow must be completed. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "SCASupportData": { + "$ref": "#/components/schemas/OBSCASupportData1" + }, + "Debtor": { + "$ref": "#/components/schemas/OBCashAccountDebtor4" + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk1" + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "OBWriteInternationalStandingOrderResponse7": { + "type": "object", + "additionalProperties": false, + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "required": [ + "InternationalStandingOrderId", + "ConsentId", + "CreationDateTime", + "Status", + "StatusUpdateDateTime", + "Initiation" + ], + "properties": { + "InternationalStandingOrderId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the international standing order resource.", + "type": "string", + "minLength": 1, + "maxLength": 40 + }, + "ConsentId": { + "description": "OB: Unique identification as assigned by the ASPSP to uniquely identify the consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "CreationDateTime": { + "description": "Date and time at which the resource was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "Status": { + "$ref": "#/components/schemas/ExternalPaymentTransactionStatus1Code" + }, + "StatusUpdateDateTime": { + "description": "Date and time at which the resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "StatusReason": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBStatusReason" + } + }, + "Refund": { + "$ref": "#/components/schemas/OBDomesticRefundAccount1" + }, + "Charges": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "description": "Set of elements used to provide details of a charge for the payment initiation.", + "required": [ + "ChargeBearer", + "Type", + "Amount" + ], + "properties": { + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalPaymentChargeType1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount" + } + } + } + }, + "Initiation": { + "type": "object", + "additionalProperties": false, + "required": [ + "CurrencyOfTransfer", + "InstructedAmount", + "CreditorAccount", + "MandateRelatedInformation" + ], + "description": "The Initiation payload is sent by the initiating party to the ASPSP. It is used to request movement of funds from the debtor account to a creditor for an international standing order.", + "properties": { + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "NumberOfPayments": { + "$ref": "#/components/schemas/NumberOfPayments" + }, + "ExtendedPurpose": { + "description": "Specifies the purpose of an international payment, when there is no corresponding 4 character code available in the ISO20022 list of Purpose Codes.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "CurrencyOfTransfer": { + "description": "Specifies the currency of the to be transferred amount, which is different from the currency of the debtor's account.", + "type": "string", + "pattern": "^[A-Z]{3,3}$" + }, + "DestinationCountryCode": { + "description": "Country in which Credit Account is domiciled. Code to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).", + "type": "string", + "pattern": "^[A-Z]{2,2}$" + }, + "InstructedAmount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Amount", + "Currency" + ], + "description": "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.\nUsage: This amount has to be transported unchanged through the transaction chain.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "DebtorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification" + ], + "description": "Provides the details to identify the debtor account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level, as displayed by the ASPSP's online channels.\nNote, the account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "Creditor": { + "type": "object", + "additionalProperties": false, + "description": "Party to which an amount of money is due.", + "properties": { + "Name": { + "description": "Name by which a party is known and which is usually used to identify that party.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAgent": { + "type": "object", + "additionalProperties": false, + "description": "Party that manages the account on behalf of the account owner, that is manages the registration and booking of entries on the account, calculates balances on the account and provides information about the account.\nThis is the servicer of the beneficiary account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "description": "Unique and unambiguous identification of the servicing institution.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "Name": { + "$ref": "#/components/schemas/Name" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "CreditorAccount": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Provides the details to identify the beneficiary account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "The account name is the name or names of the account owner(s) represented at an account level.\nNote, the account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + }, + "MandateRelatedInformation": { + "$ref": "#/components/schemas/OBMandateRelatedInformation1" + }, + "SupplementaryData": { + "$ref": "#/components/schemas/OBSupplementaryData1" + } + } + }, + "MultiAuthorisation": { + "type": "object", + "additionalProperties": false, + "required": [ + "Status" + ], + "description": "The multiple authorisation flow response from the ASPSP.", + "properties": { + "Status": { + "description": "Specifies the status of the authorisation flow in code form.", + "type": "string", + "enum": [ + "AUTH", + "AWAF", + "RJCT" + ] + }, + "NumberRequired": { + "description": "Number of authorisations required for payment order (total required at the start of the multi authorisation journey).", + "type": "integer" + }, + "NumberReceived": { + "description": "Number of authorisations received.", + "type": "integer" + }, + "LastUpdateDateTime": { + "description": "Last date and time at the authorisation flow was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "ExpirationDateTime": { + "description": "Date and time at which the requested authorisation flow must be completed. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + } + } + }, + "Debtor": { + "$ref": "#/components/schemas/OBCashAccountDebtor4" + } + } + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "OBWritePaymentDetailsResponse1": { + "type": "object", + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "additionalProperties": false, + "properties": { + "PaymentStatus": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBWritePaymentDetails1" + } + } + } + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "OBWritePaymentDetails1": { + "type": "object", + "required": [ + "PaymentTransactionId", + "Status", + "StatusUpdateDateTime" + ], + "properties": { + "PaymentTransactionId": { + "type": "string", + "minLength": 1, + "maxLength": 210, + "description": "Unique identifier for the transaction within a servicing institution. This identifier is both unique and immutable." + }, + "Status": { + "$ref": "#/components/schemas/ExternalPaymentTransactionStatus1Code" + }, + "StatusUpdateDateTime": { + "type": "string", + "format": "date-time", + "description": "Date and time at which the status was assigned to the transfer.\n" + }, + "StatusDetail": { + "type": "object", + "description": "Payment status details as per underlying Payment Rail.", + "required": [ + "Status" + ], + "properties": { + "LocalInstrument": { + "$ref": "#/components/schemas/OBInternalLocalInstrument1Code" + }, + "Status": { + "$ref": "#/components/schemas/ExternalPaymentTransactionStatus1Code" + }, + "StatusReason": { + "description": "Reason Code provided for the status of a transfer. For a full list of values see code values for `OBExternalStatusReason1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "minLength": 1, + "maxLength": 4 + }, + "StatusReasonDescription": { + "description": "Reason provided for the status of a transfer. For a full list of values see the code name entries for `OBExternalStatusReason1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets).", + "type": "string", + "minLength": 1, + "maxLength": 256 + } + } + } + } + }, + "PostBox": { + "description": "Information that locates and identifies a box in a post office assigned to a person or organization, where letters for them are kept until called for.", + "type": "string", + "minLength": 1, + "maxLength": 16 + }, + "PostCode": { + "description": "Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail.", + "type": "string", + "minLength": 1, + "maxLength": 16 + }, + "Room": { + "description": "Information that locates and identifies a room to form part of an address", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "SecondaryIdentification": { + "description": "This is secondary identification of the account, as assigned by the account servicing institution. \nThis can be used by building societies to additionally identify accounts with a roll number (in addition to a sort code and account number combination).", + "type": "string", + "minLength": 1, + "maxLength": 34 + }, + "StreetName": { + "description": "Name of a street or thoroughfare.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "SubDepartment": { + "description": "Identification of a sub-division of a large organisation or building.", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "Time": { + "description": "Time at which assets become available to the account owner in case of a credit entry, or cease to be available to the account owner in case of a debit transaction entry.\nUsage: If transaction entry status is pending and value date is present, then the value date refers to an expected/requested value date.\nFor transaction entries subject to availability/float and for which availability information is provided, the value date must not be used. In this case the availability component identifies the number of availability days. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\nT10:43:07+00:00", + "type": "string", + "format": "time" + }, + "TownName": { + "description": "Name of a built-up area, with defined boundaries, and a local government.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "UnitNumber": { + "description": "Number that identifies the unit of a specific address .", + "type": "string", + "minLength": 1, + "maxLength": 16 + }, + "ExternalPaymentTransactionStatus1Code": { + "description": "The current status of the payment resource.\n\nFor a full list of values see `ExternalPaymentTransactionStatus1Code` in *OB_Internal_CodeSet* \n[here](https://github.com/OpenBankingUK/External_Internal_CodeSets)\n", + "type": "string", + "enum": [ + "CANC", + "RCVD", + "ACTC", + "PATC", + "PDNG", + "RJCT", + "INFA", + "INCO", + "ACCP", + "ACFC", + "ACSP", + "ACWC", + "ACSC", + "BLCK", + "ACCC", + "ACWP" + ] + }, + "ExternalPaymentTransactionStatus2Code": { + "description": "Specifies the status of the payment order resource. \n\nFor a full list of values see `ExternalPaymentTransactionStatus2Code` in *OB_Internal_CodeSet* \n[here](https://github.com/OpenBankingUK/External_Internal_CodeSets)\n", + "type": "string", + "enum": [ + "CANC", + "RCVD", + "PDNG", + "ACTC", + "PATC", + "ACCP", + "ACFC", + "ACSP", + "ACWC", + "ACSC", + "BLCK", + "ACCC", + "ACWP", + "RJCT" + ] + }, + "ExternalPaymentTransactionStatus3Code": { + "description": "Specifies the status of the payment information group.\n\nFor a full list of values refer to `ExternalPaymentTransactionStatus3Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)\n", + "type": "string", + "enum": [ + "RCVD", + "PDNG", + "ACTC", + "PATC", + "ACCP", + "ACFC", + "ACSP", + "ACWC", + "ACSC", + "BLCK", + "ACCC", + "ACWP", + "RJCT" + ] + }, + "ExternalPaymentTransactionStatus4Code": { + "description": "Specifies the status of the payment order resource.\n\nSee `ExternalPaymentTransactionStatus4Code` in *OB_Internal_CodeSet* \n[here](https://github.com/OpenBankingUK/External_Internal_CodeSets) for more information.\n", + "type": "string", + "enum": [ + "PDNG", + "INFA", + "INCO" + ] + } + } + } +} \ No newline at end of file diff --git a/pkg/schema/spec/v4.0.1/variable-recurring-payments-openapi.json b/pkg/schema/spec/v4.0.1/variable-recurring-payments-openapi.json new file mode 100644 index 00000000..a093b415 --- /dev/null +++ b/pkg/schema/spec/v4.0.1/variable-recurring-payments-openapi.json @@ -0,0 +1,3610 @@ +{ + "openapi": "3.0.0", + "servers": [ + { + "url": "/open-banking/v4.0/pisp" + } + ], + "info": { + "title": "OBL VRP Profile", + "description": "VRP OpenAPI Specification.\n\n**Please Note**: There are no optional fields, if a field is not marked as “Required” it is a Conditional field.\n", + "version": "4.0.1", + "termsOfService": "https://www.openbanking.org.uk/terms", + "contact": { + "name": "Service Desk", + "email": "ServiceDesk@openbanking.org.uk" + }, + "license": { + "name": "open-licence", + "url": "https://www.openbanking.org.uk/open-licence" + } + }, + "tags": [ + { + "name": "Domestic VRP Consents" + }, + { + "name": "Domestic VRPs" + } + ], + "paths": { + "/domestic-vrp-consents": { + "post": { + "operationId": "domesticVrpConsentsPost", + "tags": [ + "Domestic VRP Consents" + ], + "summary": "Create a domestic VRP consent", + "description": "Enables a PISP to ask an ASPSP to create a new domestic-vrp-consent resource, by sending a copy of the consent to the ASPSP.", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-idempotency-key" + }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "201": { + "$ref": "#/components/responses/20xOBDomesticVRPConsentResponse" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "409": { + "$ref": "#/components/responses/409Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "422": { + "$ref": "#/components/responses/422Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/InternalError" + } + }, + "requestBody": { + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBDomesticVRPConsentRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBDomesticVRPConsentRequest" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBDomesticVRPConsentRequest" + } + } + }, + "description": "Default", + "required": true + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/domestic-vrp-consents/{ConsentId}": { + "get": { + "operationId": "domesticVrpConsentsGet", + "tags": [ + "Domestic VRP Consents" + ], + "summary": "Get a Domestic VRP Consent", + "description": "Enables a PISP to retrieve the status of a Domestic VRP Consent.", + "parameters": [ + { + "$ref": "#/components/parameters/ConsentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/20xOBDomesticVRPConsentResponse" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/InternalError" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + }, + "delete": { + "operationId": "domesticVrpConsentsDelete", + "tags": [ + "Domestic VRP Consents" + ], + "summary": "Delete a Domestic VRP Consent", + "description": "Enables a PISP to ask an ASPSP to delete a previously consented Domestic VRP Consent resource.", + "parameters": [ + { + "$ref": "#/components/parameters/ConsentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/204VRPConsentsConsentIdDeleted" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/InternalError" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + }, + "put": { + "operationId": "domesticVrpConsentsPut", + "tags": [ + "Domestic VRP Consents" + ], + "summary": "Replace an existing domestic VRP consent", + "description": "Enables a PISP to replace an existing Domestic VRP Consent resource. \n\nThis endpoint **must** only be used for the migration of Domestic VRP Consent resource data across API Standard versions where the ASPSP supports this PUT function.\n", + "parameters": [ + { + "$ref": "#/components/parameters/ConsentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-idempotency-key" + }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/20xOBDomesticVRPConsentResponse" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "409": { + "$ref": "#/components/responses/409Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "422": { + "$ref": "#/components/responses/422Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/InternalError" + } + }, + "requestBody": { + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBDomesticVRPConsentRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBDomesticVRPConsentRequest" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBDomesticVRPConsentRequest" + } + } + }, + "description": "Default", + "required": true + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + }, + "patch": { + "operationId": "domesticVrpConsentsPatch", + "tags": [ + "Domestic VRP Consents" + ], + "summary": "Update an existing domestic VRP consent", + "description": "Enables a PISP to update an existing Domestic VRP Consent resource by submitting a JSON Patch payload.\n\nThis endpoint **must** only be used for the migration of Domestic VRP Consent resource data across API Standard versions where the ASPSP supports this PATCH function.\n", + "parameters": [ + { + "$ref": "#/components/parameters/ConsentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-idempotency-key" + }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/20xOBDomesticVRPConsentResponse" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "409": { + "$ref": "#/components/responses/409Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "422": { + "$ref": "#/components/responses/422Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/InternalError" + } + }, + "requestBody": { + "content": { + "application/json-patch+json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "required": [ + "op", + "path" + ], + "properties": { + "op": { + "type": "string", + "description": "The operation to perform", + "enum": [ + "add", + "remove", + "replace", + "move", + "copy", + "test" + ] + }, + "path": { + "type": "string", + "description": "The path to the element to operate on as per [RFC 6901](https://datatracker.ietf.org/doc/html/rfc6901)" + }, + "from": { + "type": "string", + "description": "The path to move or copy from as per [RFC 6901](https://datatracker.ietf.org/doc/html/rfc6901)" + }, + "value": { + "description": "The value to add, replace, or test against. This may be a single string or an array of strings" + } + }, + "additionalProperties": false + } + } + } + }, + "description": "Array of Patch Operations as defined in [RFC 6902](https://datatracker.ietf.org/doc/html/rfc6902)", + "required": true + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/domestic-vrp-consents/{ConsentId}/funds-confirmation": { + "post": { + "operationId": "domesticVrpConsentsFundsConfirmation", + "tags": [ + "Domestic VRP Consents" + ], + "summary": "Confirm Funds Availability for a Domestic VRP", + "description": "Enables a PISP to check whether a PSU has sufficient available funds for a Domestic VRP Payment.", + "parameters": [ + { + "$ref": "#/components/parameters/ConsentId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "201": { + "$ref": "#/components/responses/201OBDomesticVRPFundsConfirmationResponse" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/InternalError" + } + }, + "requestBody": { + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBVRPFundsConfirmationRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBVRPFundsConfirmationRequest" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBVRPFundsConfirmationRequest" + } + } + }, + "description": "Default", + "required": true + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/domestic-vrps": { + "post": { + "operationId": "domesticVrpPost", + "tags": [ + "Domestic VRPs" + ], + "summary": "Initiate a Domestic VRP", + "description": "Enables a PISP to initiate a Domestic VRP transaction under an already PSU-approved Domestic VRP Consent.", + "parameters": [ + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-idempotency-key" + }, + { + "$ref": "#/components/parameters/payload-version" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "201": { + "$ref": "#/components/responses/20xOBDomesticVRPResponse" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "409": { + "$ref": "#/components/responses/409Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "422": { + "$ref": "#/components/responses/422Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/InternalError" + } + }, + "requestBody": { + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBDomesticVRPRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBDomesticVRPRequest" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBDomesticVRPRequest" + } + } + }, + "description": "Default", + "required": true + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/domestic-vrps/{DomesticVRPId}": { + "get": { + "operationId": "domesticVrpGet", + "tags": [ + "Domestic VRPs" + ], + "summary": "Get a Domestic VRP", + "description": "Enables a PISP to retrieve the status of a Domestic VRP transaction.", + "parameters": [ + { + "$ref": "#/components/parameters/DomesticVRPId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/20xOBDomesticVRPResponse" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/InternalError" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + }, + "/domestic-vrps/{DomesticVRPId}/payment-details": { + "get": { + "operationId": "domesticVrpPaymentDetailsGet", + "tags": [ + "Domestic VRPs" + ], + "summary": "Get details of a Domestic VRP Payment", + "description": "Enables a PISP to retrieve detailed information on the status of a Domestic VRP transaction.", + "parameters": [ + { + "$ref": "#/components/parameters/DomesticVRPId" + }, + { + "$ref": "#/components/parameters/x-fapi-auth-date" + }, + { + "$ref": "#/components/parameters/x-fapi-customer-ip-address" + }, + { + "$ref": "#/components/parameters/x-fapi-interaction-id" + }, + { + "$ref": "#/components/parameters/Authorization" + }, + { + "$ref": "#/components/parameters/x-customer-user-agent" + }, + { + "$ref": "#/components/parameters/x-client-id" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/20xOBDomesticVRPRequestDetailResponse" + }, + "400": { + "$ref": "#/components/responses/400Error" + }, + "401": { + "$ref": "#/components/responses/401Error" + }, + "403": { + "$ref": "#/components/responses/403Error" + }, + "405": { + "$ref": "#/components/responses/405Error" + }, + "406": { + "$ref": "#/components/responses/406Error" + }, + "415": { + "$ref": "#/components/responses/415Error" + }, + "429": { + "$ref": "#/components/responses/429Error" + }, + "500": { + "$ref": "#/components/responses/InternalError" + } + }, + "security": [ + { + "TPPOAuth2Security": [ + "payments" + ] + } + ] + } + } + }, + "components": { + "responses": { + "204VRPConsentsConsentIdDeleted": { + "description": "VRP Consent Deleted", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + } + }, + "400Error": { + "description": "Bad request", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.", + "required": true, + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + } + } + }, + "401Error": { + "description": "Unauthorized", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + } + } + }, + "403Error": { + "description": "Forbidden", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.", + "required": true, + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + } + } + }, + "404Error": { + "description": "Not found", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + } + } + }, + "405Error": { + "description": "Method Not Allowed", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + } + } + }, + "406Error": { + "description": "Not Acceptable", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + } + } + }, + "409Error": { + "description": "Conflict", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.", + "required": true, + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + } + } + }, + "415Error": { + "description": "Unsupported Media Type", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + } + } + }, + "422Error": { + "description": "Duplicate Idempotency key", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.", + "required": true, + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + } + } + }, + "429Error": { + "description": "Too Many Requests", + "headers": { + "Retry-After": { + "description": "Number in seconds to wait", + "schema": { + "type": "integer" + } + }, + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + } + } + }, + "InternalError": { + "description": "Internal Server Error", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.", + "required": true, + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBErrorResponse1" + } + } + } + }, + "20xOBDomesticVRPConsentResponse": { + "description": "Default response", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.", + "required": true, + "schema": { + "type": "string" + } + }, + "payload-version": { + "description": "Optional header to aid migration across API versions. Indicates the version of JSON schema being sent/received", + "schema": { + "type": "string", + "example": "3.1.11" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBDomesticVRPConsentResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBDomesticVRPConsentResponse" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBDomesticVRPConsentResponse" + } + } + } + }, + "201OBDomesticVRPFundsConfirmationResponse": { + "description": "Default response", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBVRPFundsConfirmationResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBVRPFundsConfirmationResponse" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBVRPFundsConfirmationResponse" + } + } + } + }, + "20xOBDomesticVRPResponse": { + "description": "Default response", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBDomesticVRPResponse" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBDomesticVRPResponse" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBDomesticVRPResponse" + } + } + } + }, + "20xOBDomesticVRPRequestDetailResponse": { + "description": "Default response", + "headers": { + "x-fapi-interaction-id": { + "description": "An RFC4122 UID used as a correlation id.", + "required": true, + "schema": { + "type": "string" + } + }, + "x-jws-signature": { + "description": "Header containing a detached JWS signature of the body of the payload.", + "required": true, + "schema": { + "type": "string" + } + }, + "RateLimit-Policy": { + "$ref": "#/components/headers/RateLimit-Policy" + }, + "RateLimit": { + "$ref": "#/components/headers/RateLimit" + } + }, + "content": { + "application/json; charset=utf-8": { + "schema": { + "$ref": "#/components/schemas/OBDomesticVRPDetails" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OBDomesticVRPDetails" + } + }, + "application/jose+jwe": { + "schema": { + "$ref": "#/components/schemas/OBDomesticVRPDetails" + } + } + } + } + }, + "parameters": { + "ConsentId": { + "name": "ConsentId", + "in": "path", + "description": "ConsentId", + "required": true, + "schema": { + "type": "string" + } + }, + "DomesticVRPId": { + "name": "DomesticVRPId", + "in": "path", + "description": "DomesticVRPId", + "required": true, + "schema": { + "type": "string" + } + }, + "Authorization": { + "in": "header", + "name": "Authorization", + "required": true, + "description": "An Authorisation Token as per https://tools.ietf.org/html/rfc6750", + "schema": { + "type": "string" + } + }, + "x-customer-user-agent": { + "in": "header", + "name": "x-customer-user-agent", + "description": "Indicates the user-agent that the PSU is using.", + "required": false, + "schema": { + "type": "string" + } + }, + "x-fapi-customer-ip-address": { + "in": "header", + "name": "x-fapi-customer-ip-address", + "required": false, + "description": "The PSU's IP address if the PSU is currently logged in with the TPP.", + "schema": { + "type": "string" + } + }, + "x-fapi-auth-date": { + "in": "header", + "name": "x-fapi-auth-date", + "required": false, + "description": "The time when the PSU last logged in with the TPP. \nAll dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: \nSun, 10 Sep 2017 19:43:31 UTC", + "schema": { + "type": "string", + "pattern": "^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \\d{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \\d{4} \\d{2}:\\d{2}:\\d{2} (GMT|UTC)$" + } + }, + "x-fapi-interaction-id": { + "in": "header", + "name": "x-fapi-interaction-id", + "required": false, + "description": "An RFC4122 UID used as a correlation id.", + "schema": { + "type": "string" + } + }, + "x-idempotency-key": { + "name": "x-idempotency-key", + "in": "header", + "description": "Every request will be processed only once per x-idempotency-key. The\nIdempotency Key will be valid for 24 hours.\n", + "required": true, + "schema": { + "type": "string", + "maxLength": 40, + "pattern": "^(?!\\s)(.*)(\\S)$" + } + }, + "x-jws-signature": { + "in": "header", + "name": "x-jws-signature", + "required": true, + "description": "A detached JWS signature of the body of the payload.", + "schema": { + "type": "string" + } + }, + "payload-version": { + "in": "header", + "name": "payload-version", + "description": "Optional header to aid migration across API versions. Indicates the version of JSON schema being sent/received", + "schema": { + "type": "string", + "example": "3.1.11" + } + }, + "x-client-id": { + "in": "header", + "name": "x-client-id", + "required": false, + "description": "Only used if an ASPSP requires the client ID in order to return rate limit headers. \n\nTPPs __must__ refer to ASPSP developer portals for further information on any rate limit policies, if the headers are supported and any additional requirements.\n\nThis header __must not__ be used for client authentication\n", + "schema": { + "type": "string" + } + } + }, + "headers": { + "RateLimit-Policy": { + "required": false, + "description": "TPPs __must__ refer to ASPSP developer portals for further information on any rate limit policies, if the headers are supported and any additional requirements.\n\nA non-empty list of Quota Policy Items. The Item value __MUST__ be a String.\n\nExample:\n`RateLimit-Policy: \"default\";q=100;w=10`\n\nThe **REQUIRED** \"q\" parameter indicates the quota allocated by this policy measured in quota units.\n\nThe **OPTIONAL** \"w\" parameter value conveys a time window.\n", + "schema": { + "type": "string" + } + }, + "RateLimit": { + "required": false, + "description": "TPPs __must__ refer to ASPSP developer portals for further information on any rate limit policies, if the headers are supported and any additional requirements.\n\nA server uses the \"RateLimit\" response header field to communicate the current service limit for a quota policy for a particular partition key.\n\nExample:\n`RateLimit: \"default\";r=50;t=30`\n\nThe **REQUIRED** \"r\" parameter value conveys the remaining quota units for the identified policy.\n\nThe **OPTIONAL** \"t\" parameter value conveys the time window reset time for the identified policy.\n", + "schema": { + "type": "string" + } + } + }, + "schemas": { + "OBDomesticRefundAccount1": { + "description": "Unambiguous identification of the refund account to which a refund will be made as a result of the transaction.", + "type": "object", + "additionalProperties": false, + "required": [ + "Account" + ], + "properties": { + "Account": { + "type": "object", + "additionalProperties": false, + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "description": "Provides the details to identify an account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_0" + }, + "Name": { + "description": "Name of the account, as assigned by the account servicing institution.\nUsage: The account name is the name or names of the account owner(s) represented at an account level. The account name is not the product name or the nickname of the account.\nOB: ASPSPs may carry out name validation for Confirmation of Payee, but it is not mandatory.", + "type": "string", + "minLength": 1, + "maxLength": 350 + }, + "SecondaryIdentification": { + "$ref": "#/components/schemas/SecondaryIdentification" + } + } + } + } + }, + "SecondaryIdentification": { + "description": "This is secondary identification of the account, as assigned by the account servicing institution. \nThis can be used by building societies to additionally identify accounts with a roll number (in addition to a sort code and account number combination).", + "type": "string", + "minLength": 1, + "maxLength": 34 + }, + "OBUltimateCreditor1": { + "description": "Ultimate party to which an amount of money is due.", + "type": "object", + "properties": { + "Name": { + "description": "Name by which a party is known and which is usually used to identify that party.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "Identification": { + "description": "Identification assigned by an institution.", + "type": "string", + "minLength": 1, + "maxLength": 256 + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "OBUltimateDebtor1": { + "description": "Ultimate party that owes an amount of money to the (ultimate) creditor.", + "type": "object", + "properties": { + "Name": { + "description": "Name by which a party is known and which is usually used to identify that party.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "Identification": { + "description": "Identification assigned by an institution.", + "type": "string", + "minLength": 1, + "maxLength": 256 + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "OBBranchAndFinancialInstitutionIdentification6_0": { + "type": "object", + "description": "Party that manages the account on behalf of the account owner, that is manages the registration and booking of entries on the account, calculates balances on the account and provides information about the account. This is the servicer of the beneficiary account.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "$ref": "#/components/schemas/Identification_1" + }, + "Name": { + "$ref": "#/components/schemas/Name_1" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + } + } + }, + "LEI": { + "description": "Legal entity identification as an alternate identification for a party. Legal Entity Identifier is a code allocated to a party as described in ISO 17442 \"Financial Services - Legal Entity Identifier (LEI)\".", + "type": "string", + "example": "IZ9Q00LZEVUKWCQY6X15", + "minLength": 1, + "maxLength": 20, + "pattern": "^[A-Z0-9]{18,18}[0-9]{2,2}$" + }, + "Name_1": { + "description": "Name by which an agent is known and which is usually used to identify that agent.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "Identification_0": { + "description": "Identification assigned by an institution to identify an account. This identification is known by the account owner.", + "type": "string", + "minLength": 1, + "maxLength": 256 + }, + "Identification_1": { + "description": "Unique and unambiguous identification of the servicing institution.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "OBProxy1": { + "description": "Specifies an alternate assumed name for the identification of the account.", + "type": "object", + "required": [ + "Identification", + "Code" + ], + "properties": { + "Identification": { + "description": "Identification used to indicate the account identification under another specified name.", + "type": "string", + "minLength": 1, + "maxLength": 2048 + }, + "Code": { + "$ref": "#/components/schemas/ExternalProxyAccountType1Code" + }, + "Type": { + "type": "string", + "description": "Type of the proxy identification.", + "minLength": 1, + "maxLength": 35 + } + } + }, + "ExternalProxyAccountType1Code": { + "description": "Specifies the external proxy account type code, as published in the proxy account type external code set.
For a full list of values see `ExternalProxyAccountType1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "TELE", + "EMAL", + "DNAM", + "CINC", + "COTX", + "COID", + "CUST", + "DRLC", + "EIDN", + "EWAL", + "PVTX", + "LEIC", + "MBNO", + "NIDN", + "CCPT", + "SHID", + "SOSE", + "TOKN", + "UBIL", + "VIPN", + "BIID" + ] + }, + "OBError1": { + "type": "object", + "properties": { + "ErrorCode": { + "$ref": "#/components/schemas/OBExternalStatusReason1Code" + }, + "Message": { + "description": "A description of the error that occurred. e.g., 'A mandatory field isn't supplied' or 'RequestedExecutionDateTime must be in future'\nOBL doesn't standardise this field", + "type": "string", + "minLength": 1, + "maxLength": 500 + }, + "Path": { + "description": "Recommended but optional reference to the JSON Path of the field with error, e.g., Data.Initiation.InstructedAmount.Currency", + "type": "string", + "minLength": 1, + "maxLength": 500 + }, + "Url": { + "description": "URL to help remediate the problem, or provide more information, or to API Reference, or help etc", + "type": "string" + } + }, + "required": [ + "ErrorCode" + ], + "additionalProperties": false, + "minProperties": 1 + }, + "OBErrorResponse1": { + "description": "An array of detail error codes, and messages, and URLs to documentation to help remediation.", + "type": "object", + "additionalProperties": false, + "properties": { + "Id": { + "description": "A unique reference for the error instance, for audit purposes, in case of unknown/unclassified errors.", + "type": "string", + "minLength": 1, + "maxLength": 40 + }, + "Code": { + "description": "Deprecated
High level textual error code, to help categorise the errors.", + "type": "string", + "minLength": 1, + "example": "400 BadRequest", + "maxLength": 40 + }, + "Message": { + "description": "Deprecated
Brief Error message", + "type": "string", + "minLength": 1, + "example": "There is something wrong with the request parameters provided", + "maxLength": 500 + }, + "Errors": { + "items": { + "$ref": "#/components/schemas/OBError1" + }, + "type": "array", + "minItems": 1 + } + }, + "required": [ + "Errors" + ] + }, + "OBExternalStatusReason1Code": { + "description": "Low level textual error code, for all enum values see `OBExternalStatusReason1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "minLength": 4, + "maxLength": 4, + "example": "U001" + }, + "OBDomesticVRPConsentResponse": { + "type": "object", + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "required": [ + "ConsentId", + "CreationDateTime", + "Status", + "StatusUpdateDateTime", + "ControlParameters", + "Initiation" + ], + "properties": { + "ReadRefundAccount": { + "type": "string", + "enum": [ + "Yes", + "No" + ], + "description": "Indicates whether information about RefundAccount should be included in the payment response.\n" + }, + "ConsentId": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Unique identification as assigned by the ASPSP to uniquely identify the consent resource.\n" + }, + "CreationDateTime": { + "type": "string", + "format": "date-time", + "description": "Date and time at which the resource was created.\n" + }, + "Status": { + "$ref": "#/components/schemas/OBInternalConsentStatus1Code" + }, + "StatusReason": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBStatusReason" + } + }, + "StatusUpdateDateTime": { + "type": "string", + "format": "date-time", + "description": "Date and time at which the resource status was updated.\n" + }, + "ControlParameters": { + "$ref": "#/components/schemas/OBDomesticVRPControlParameters" + }, + "Initiation": { + "$ref": "#/components/schemas/OBDomesticVRPInitiation" + }, + "DebtorAccount": { + "allOf": [ + { + "$ref": "#/components/schemas/OBCashAccountDebtorWithName" + }, + { + "description": "The DebtorAccount details as specified by the PSU when account selection happens at the ASPSP. *Note:* The details must be provided in the consent response (OBDomesticVRPConsentResponse) by the ASPSP to enable the PISP to associate it with future VRP payments that are made using the VRP Consent." + } + ] + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk1" + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "OBInternalConsentStatus1Code": { + "description": "Specifies the status of consent resource in code form. Only AWAU and RJCT can be returned on initial submission. For a full list of values see `OBInternalConsentStatus1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "AWAU", + "RJCT", + "AUTH", + "CANC", + "EXPD" + ] + }, + "OBDomesticVRPConsentRequest": { + "type": "object", + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "required": [ + "ControlParameters", + "Initiation" + ], + "properties": { + "ReadRefundAccount": { + "type": "string", + "enum": [ + "Yes", + "No" + ], + "description": "Indicates whether the `RefundAccount` object should be included in the response\n" + }, + "ControlParameters": { + "$ref": "#/components/schemas/OBDomesticVRPControlParameters" + }, + "Initiation": { + "$ref": "#/components/schemas/OBDomesticVRPInitiation" + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk1" + } + } + }, + "OBDomesticVRPControlParameters": { + "type": "object", + "required": [ + "VRPType", + "PSUAuthenticationMethods", + "MaximumIndividualAmount", + "PeriodicLimits" + ], + "properties": { + "ValidFromDateTime": { + "type": "string", + "format": "date-time", + "description": "^ Start date time for which the consent remains valid." + }, + "ValidToDateTime": { + "type": "string", + "format": "date-time", + "description": "^ End date time for which the consent remains valid." + }, + "MaximumIndividualAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount" + }, + "PeriodicLimits": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "required": [ + "PeriodType", + "PeriodAlignment", + "Amount", + "Currency" + ], + "properties": { + "PeriodType": { + "type": "string", + "enum": [ + "Day", + "Week", + "Fortnight", + "Month", + "Half-year", + "Year" + ], + "description": "^ Period type for this period limit" + }, + "PeriodAlignment": { + "type": "string", + "enum": [ + "Consent", + "Calendar" + ], + "description": "Specifies whether the period starts on the date of consent creation or lines up with a calendar. As the ISO calendar does not support or provide any guidance on when a fortnight should start, when specifying a `PeriodType` of `Fortnight` the `PeriodAlignment` must be `Consent`." + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + } + }, + "VRPType": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBVRPConsentType" + }, + "minItems": 1, + "description": "^ The types of payments that can be made under this VRP consent. This can be used to indicate whether this includes sweeping payments or other ecommerce payments." + }, + "PSUAuthenticationMethods": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBVRPAuthenticationMethods" + }, + "minItems": 1, + "description": "^ Indicates that the PSU authentication methods supported." + }, + "PSUInteractionTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBVRPInteractionTypes" + }, + "description": "Indicates interaction type, currently if customer is present or not present. If not provided the default is `OffSession` (the customer is not present) when the individual VRP payment is made." + }, + "SupplementaryData": { + "type": "object", + "description": "^ Additional information that cannot be captured in the structured fields and/or any other specific block" + } + } + }, + "OBDomesticVRPInitiation": { + "type": "object", + "properties": { + "DebtorAccount": { + "$ref": "#/components/schemas/OBCashAccountDebtorWithName" + }, + "CreditorAccount": { + "$ref": "#/components/schemas/OBCashAccountCreditor3" + }, + "CreditorPostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "UltimateDebtor": { + "$ref": "#/components/schemas/OBUltimateDebtor1" + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "RegulatoryReporting": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRegulatoryReporting1" + }, + "maxItems": 10 + } + } + }, + "OBCashAccountDebtorWithName": { + "type": "object", + "required": [ + "SchemeName", + "Identification" + ], + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "description": "^ Identification assigned by an institution to identify an account. This identification is known by the account owner." + }, + "Name": { + "type": "string", + "minLength": 1, + "maxLength": 350, + "description": "^ Name of the account, as assigned by the account servicing institution. Usage The account name is the name or names of the account owner(s) represented at an account level. The account name is not the product name or the nickname of the account." + }, + "SecondaryIdentification": { + "type": "string", + "minLength": 1, + "maxLength": 34, + "description": "^ This is secondary identification of the account, as assigned by the account servicing institution. This can be used by building societies to additionally identify accounts with a roll number (in addition to a sort code and account number combination)" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "OBCashAccountCreditor3": { + "type": "object", + "required": [ + "SchemeName", + "Identification", + "Name" + ], + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "description": "Identification assigned by an institution to identify an account. This identification is known by the account owner." + }, + "Name": { + "type": "string", + "minLength": 1, + "maxLength": 70, + "description": "Name of the account, as assigned by the account servicing institution.\nUsage: the account name is the name or names of the account owner(s) represented at an account level.\nThe account name is not the product name or the nickname of the account." + }, + "SecondaryIdentification": { + "type": "string", + "minLength": 1, + "maxLength": 34, + "description": "This is secondary identification of the account, as assigned by the account servicing institution.\nThis can be used by building societies to additionally identify accounts with a roll number (in addition to a sort code and account number combination)" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "OBBranchAndFinancialInstitutionIdentification6": { + "type": "object", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalFinancialInstitutionIdentification4Code" + }, + "Identification": { + "type": "string", + "minLength": 1, + "maxLength": 35, + "description": "^ Unique and unambiguous identification of a financial institution or a branch of a financial institution." + }, + "Name": { + "type": "string", + "minLength": 1, + "maxLength": 140, + "description": "^ Name by which an agent is known and which is usually used to identify that agent." + }, + "LEI": { + "$ref": "#/components/schemas/LEI" + }, + "PostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + } + }, + "OBDomesticVRPRequest": { + "type": "object", + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "required": [ + "ConsentId", + "PSUAuthenticationMethod", + "VRPType", + "Initiation", + "Instruction" + ], + "properties": { + "ConsentId": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier for the Domestic VRP Consent that this payment is made under." + }, + "PSUAuthenticationMethod": { + "allOf": [ + { + "$ref": "#/components/schemas/OBVRPAuthenticationMethods" + }, + { + "description": "The authentication method that was used to authenticate the PSU." + } + ] + }, + "PSUInteractionType": { + "allOf": [ + { + "$ref": "#/components/schemas/OBVRPInteractionTypes" + }, + { + "description": "Indicates interaction type, currently if customer is present or not present. If not provided the default is `OffSession` (customer is not present) when the individual VRP payment is made." + } + ] + }, + "VRPType": { + "$ref": "#/components/schemas/OBVRPConsentType" + }, + "Initiation": { + "$ref": "#/components/schemas/OBDomesticVRPInitiation" + }, + "Instruction": { + "$ref": "#/components/schemas/OBDomesticVRPInstruction" + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk1" + } + } + }, + "OBDomesticVRPResponse": { + "type": "object", + "required": [ + "Data", + "Risk" + ], + "properties": { + "Data": { + "type": "object", + "required": [ + "DomesticVRPId", + "ConsentId", + "CreationDateTime", + "Status", + "StatusUpdateDateTime", + "Initiation", + "Instruction" + ], + "description": "`Data.Refund` only included in the response if `Data.ReadRefundAccount` is set to `Yes` in the consent.\n", + "properties": { + "DomesticVRPId": { + "type": "string", + "minLength": 1, + "maxLength": 40, + "description": "Unique identification as assigned by the ASPSP to uniquely identify the domestic payment resource.\n" + }, + "ConsentId": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Identifier for the Domestic VRP Consent that this payment is made under.\n" + }, + "CreationDateTime": { + "type": "string", + "format": "date-time", + "description": "Date and time at which the resource was created.\n" + }, + "Status": { + "$ref": "#/components/schemas/ExternalPaymentTransactionStatus5Code" + }, + "StatusReason": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBStatusReason" + } + }, + "StatusUpdateDateTime": { + "type": "string", + "format": "date-time", + "description": "Date and time at which the resource status was updated.\n" + }, + "ExpectedExecutionDateTime": { + "type": "string", + "format": "date-time", + "description": "Expected execution date and time for the payment resource.\n" + }, + "ExpectedSettlementDateTime": { + "type": "string", + "format": "date-time", + "description": "Expected settlement date and time for the payment resource.\n" + }, + "Refund": { + "$ref": "#/components/schemas/OBDomesticRefundAccount1" + }, + "Charges": { + "type": "array", + "items": { + "required": [ + "Amount", + "ChargeBearer", + "Type" + ], + "type": "object", + "properties": { + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + }, + "Type": { + "$ref": "#/components/schemas/OBInternalPaymentChargeType1Code" + }, + "Amount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount" + } + }, + "description": "Set of elements used to provide details of a charge for the payment initiation." + } + }, + "Initiation": { + "$ref": "#/components/schemas/OBDomesticVRPInitiation" + }, + "Instruction": { + "$ref": "#/components/schemas/OBDomesticVRPInstruction" + }, + "DebtorAccount": { + "$ref": "#/components/schemas/OBCashAccountDebtorWithName" + } + } + }, + "Risk": { + "$ref": "#/components/schemas/OBRisk1" + }, + "Links": { + "$ref": "#/components/schemas/Links" + }, + "Meta": { + "$ref": "#/components/schemas/Meta" + } + } + }, + "OBDomesticVRPDetails": { + "type": "object", + "required": [ + "Data" + ], + "properties": { + "Data": { + "type": "object", + "properties": { + "PaymentStatus": { + "type": "array", + "items": { + "required": [ + "PaymentTransactionId", + "Status", + "StatusUpdateDateTime" + ], + "type": "object", + "properties": { + "PaymentTransactionId": { + "type": "string", + "minLength": 1, + "maxLength": 210, + "description": "Unique identifier for the transaction within a servicing institution. This identifier is both unique and immutable." + }, + "Status": { + "$ref": "#/components/schemas/ExternalPaymentTransactionStatus1Code" + }, + "StatusUpdateDateTime": { + "type": "string", + "format": "date-time", + "description": "Date and time at which the status was assigned to the transfer.\n" + }, + "StatusDetail": { + "type": "object", + "required": [ + "Status" + ], + "properties": { + "LocalInstrument": { + "$ref": "#/components/schemas/OBInternalLocalInstrument1Code" + }, + "Status": { + "$ref": "#/components/schemas/ExternalPaymentTransactionStatus1Code" + }, + "StatusReason": { + "type": "string", + "description": "Reason Code provided for the status of a transfer." + }, + "StatusReasonDescription": { + "type": "string", + "minLength": 1, + "maxLength": 256, + "description": "Reason provided for the status of a transfer." + } + } + } + } + } + } + } + } + } + }, + "OBVRPFundsConfirmationRequest": { + "type": "object", + "required": [ + "Data" + ], + "description": "The OBVRPFundsConfirmationRequest object must be used to request funds availability for a specific amount in the Debtor Account included in the VRP consents.", + "properties": { + "Data": { + "type": "object", + "required": [ + "ConsentId", + "InstructedAmount" + ], + "properties": { + "ConsentId": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Unique identification as assigned by the ASPSP to uniquely identify the funds confirmation consent resource." + }, + "Reference": { + "type": "string", + "minLength": 1, + "maxLength": 35, + "description": "Unique reference, as assigned by the PISP, to unambiguously refer to the request related to the payment transaction. This must be the same value as the `Reference` field in the consent." + }, + "InstructedAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount" + } + } + } + } + }, + "OBVRPFundsConfirmationResponse": { + "type": "object", + "required": [ + "Data" + ], + "description": "The confirmation of funds response contains the result of a funds availability check.", + "properties": { + "Data": { + "type": "object", + "required": [ + "FundsConfirmationId", + "ConsentId", + "CreationDateTime", + "FundsAvailableResult", + "InstructedAmount" + ], + "properties": { + "FundsConfirmationId": { + "type": "string", + "minLength": 1, + "maxLength": 40, + "description": "Unique identification as assigned by the ASPSP to uniquely identify the funds confirmation resource." + }, + "ConsentId": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "description": "Unique identification as assigned by the ASPSP to uniquely identify the funds confirmation consent resource." + }, + "CreationDateTime": { + "type": "string", + "format": "date-time", + "description": "Date and time at which the resource was created." + }, + "Reference": { + "type": "string", + "minLength": 1, + "maxLength": 35, + "description": "Unique reference, as assigned by the PISP, to unambiguously refer to the request related to the payment transaction." + }, + "FundsAvailableResult": { + "$ref": "#/components/schemas/OBPAFundsAvailableResult1" + }, + "InstructedAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount" + } + } + } + } + }, + "OBPAFundsAvailableResult1": { + "type": "object", + "description": "Availability result, clearly indicating the availability of funds given the Amount in the request.", + "required": [ + "FundsAvailableDateTime", + "FundsAvailable" + ], + "properties": { + "FundsAvailableDateTime": { + "type": "string", + "format": "date-time", + "description": "Date and time at which the funds availability check was generated." + }, + "FundsAvailable": { + "type": "string", + "description": "Availability result, clearly indicating the availability of funds given the Amount in the request.", + "enum": [ + "Available", + "NotAvailable" + ] + } + } + }, + "ExternalCategoryPurpose1Code": { + "description": "Enumeration of codes that outlines the type of purpose behind a transaction, payment or risk. For a full list of values refer to `ExternalCategoryPurpose1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "BONU", + "CASH", + "CBLK", + "CCRD", + "CGWV", + "CIPC", + "CONC", + "CORT", + "DCRD", + "DIVI", + "DVPM", + "EPAY", + "FCDT", + "FCIN", + "FCOL", + "GOVT", + "GP2P", + "HEDG", + "ICCP", + "IDCP", + "INTC", + "INTE", + "LBOX", + "LOAN", + "MP2B", + "MP2P", + "OTHR", + "PENS", + "RPRE", + "RRCT", + "RVPM", + "SALA", + "SECU", + "SSBE", + "SUPP", + "SWEP", + "TAXS", + "TOPG", + "TRAD", + "TREA", + "VATX", + "VOST", + "WHLD", + "ZABA" + ] + }, + "OBCharge2": { + "type": "object", + "required": [ + "ChargeBearer", + "Type", + "Amount" + ], + "properties": { + "ChargeBearer": { + "$ref": "#/components/schemas/OBInternalChargeBearerType1Code" + } + } + }, + "OBExternalStatus2Code": { + "type": "string", + "enum": [ + "AUTH", + "AWAU", + "RJCT" + ] + }, + "OBInternalChargeBearerType1Code": { + "type": "string", + "description": "Specifies which party/parties will bear the charges associated with the processing of the payment transaction.", + "enum": [ + "BorneByCreditor", + "BorneByDebtor", + "FollowingServiceLevel", + "Shared" + ] + }, + "OBDomesticVRPInstruction": { + "type": "object", + "required": [ + "InstructionIdentification", + "EndToEndIdentification", + "InstructedAmount", + "CreditorAccount" + ], + "properties": { + "InstructionIdentification": { + "type": "string", + "minLength": 1, + "maxLength": 35, + "description": "Unique identification as assigned by an instructing party for an instructed party to unambiguously identify the instruction.\nUsage: the instruction identification is a point to point reference that can be used between the instructing party and the instructed party to refer to the individual instruction.\nIt can be included in several messages related to the instruction." + }, + "EndToEndIdentification": { + "type": "string", + "minLength": 1, + "maxLength": 35, + "description": "Unique identification assigned by the initiating party to unambiguously identify the transaction.\nThis identification is passed on, unchanged, throughout the entire end-to-end chain.\nUsage: The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction.\nIt can be included in several messages related to the transaction.\nOB: The Faster Payments Scheme can only access 31 characters for the EndToEndIdentification field" + }, + "RemittanceInformation": { + "$ref": "#/components/schemas/OBRemittanceInformation2" + }, + "LocalInstrument": { + "$ref": "#/components/schemas/OBInternalLocalInstrument1Code" + }, + "InstructedAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount" + }, + "CreditorPostalAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + }, + "CreditorAccount": { + "$ref": "#/components/schemas/OBCashAccountCreditor3" + }, + "UltimateCreditor": { + "$ref": "#/components/schemas/OBUltimateCreditor1" + }, + "SupplementaryData": { + "type": "object", + "description": "Additional information that cannot be captured in the structured fields and/or any other specific block.\n" + } + } + }, + "OBExternalCreditorReferenceType1Code": { + "type": "string", + "minLength": 1, + "maxLength": 4, + "description": "Specifies the type of creditor reference as published in an external creditor reference type code set.\r\nExternal code sets can be downloaded from www.iso20022.org.\n*`DISP`-Document is a dispatch advice.\n*`FXDR`-Document is a pre-agreed or pre-arranged foreign exchange transaction to which the payment transaction refers.\n*`PUOR`-Document is a purchase order.\n*`RPIN`-Document is a linked payment instruction to which the current payment instruction is related, for example, in a cover scenario.\n*`RADM`-Document is a remittance advice sent separately from the current transaction.\n*`SCOR`-Document is a structured communication reference provided by the creditor to identify the referred transaction.", + "enum": [ + "DISP", + "FXDR", + "PUOR", + "RPIN", + "RADM", + "SCOR" + ] + }, + "ExternalDocumentType1Code": { + "type": "string", + "minLength": 1, + "maxLength": 4, + "description": "Specifies the document type as published in an external document type code list. For a full list of values refer to `ExternalDocumentType1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "enum": [ + "CINV", + "CNFA", + "CONT", + "CREN", + "DEBN", + "DISP", + "DNFA", + "HIRI", + "INVS", + "MSIN", + "PROF", + "PUOR", + "QUOT", + "SBIN", + "SPRR", + "TISH", + "USAR", + "AROI", + "BOLD", + "CMCN", + "SOAC", + "TSUT", + "VCHR" + ] + }, + "OBReferredDocumentInformation": { + "type": "object", + "properties": { + "Code": { + "$ref": "#/components/schemas/ExternalDocumentType1Code" + }, + "Issuer": { + "description": "Identification of the issuer of the reference document type.", + "type": "string", + "maxLength": 35, + "minLength": 1 + }, + "Number": { + "description": "Identification of the type specified for the referred document line.", + "type": "string", + "maxLength": 35, + "minLength": 1 + }, + "RelatedDate": { + "description": "Date associated with the referred document line.", + "$ref": "#/components/schemas/ISODateTime" + }, + "LineDetails": { + "description": "Set of elements used to provide the content of the referred document line.", + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 2048 + } + } + } + }, + "OBVRPRemittanceInformation": { + "type": "object", + "description": "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.", + "properties": { + "Code": { + "$ref": "#/components/schemas/ExternalDocumentType1Code" + }, + "Issuer": { + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "Number": { + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "RelatedDate": { + "$ref": "#/components/schemas/ISODateTime" + }, + "LineDetails": { + "type": "array", + "items": { + "type": "string", + "maxLength": 256, + "minLength": 1 + } + } + } + }, + "OBRemittanceInformation2": { + "type": "object", + "description": "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", + "properties": { + "Structured": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBRemittanceInformationStructured" + } + }, + "Unstructured": { + "type": "array", + "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 an unstructured form.", + "items": { + "type": "string", + "maxLength": 140, + "minLength": 1 + } + } + } + }, + "OBRemittanceInformationStructured": { + "type": "object", + "properties": { + "ReferredDocumentInformation": { + "description": "Provides the identification and the content of the referred document.", + "type": "array", + "items": { + "$ref": "#/components/schemas/OBReferredDocumentInformation" + } + }, + "ReferredDocumentAmount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "CreditorReferenceInformation": { + "description": "Reference information provided by the creditor to allow the identification of the underlying documents.", + "type": "object", + "properties": { + "Code": { + "$ref": "#/components/schemas/ExternalCreditorReferenceType1Code" + }, + "Issuer": { + "description": "Entity that assigns the identification.", + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "Reference": { + "description": "Unique reference, as assigned by the creditor, to unambiguously refer to the payment transaction.", + "type": "string", + "minLength": 1, + "maxLength": 35 + } + } + }, + "Invoicer": { + "description": "Identification of the organisation issuing the invoice, when it is different from the creditor or ultimate creditor", + "type": "string", + "maxLength": 256 + }, + "Invoicee": { + "description": "Identification of the party to whom an invoice is issued, when it is different from the debtor or ultimate debtor.", + "type": "string", + "maxLength": 256 + }, + "TaxRemittance": { + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "AdditionalRemittanceInformation": { + "type": "array", + "items": { + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "maxItems": 3 + } + } + }, + "ExternalCreditorReferenceType1Code": { + "type": "string", + "minLength": 1, + "maxLength": 4, + "description": "Specifies the amount type, as published in an external referred amount code set. For a full list of values refer to `ExternalCreditorReferenceType1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "enum": [ + "DISP", + "FXDR", + "PUOR", + "RPIN", + "RADM", + "SCOR" + ] + }, + "OBInternalAccountIdentification4Code": { + "type": "string", + "description": "Name of the identification scheme, in a coded form as published in an external list. For a full list of values refer to `OBInternalAccountIdentification4Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "x-namespaced-enum": [ + "UK.OBIE.BBAN", + "UK.OBIE.IBAN", + "UK.OBIE.PAN", + "UK.OBIE.Paym", + "UK.OBIE.SortCodeAccountNumber", + "UK.OBIE.Wallet" + ] + }, + "OBInternalFinancialInstitutionIdentification4Code": { + "description": "Name of the identification scheme, in a coded form as published in an external list.", + "type": "string", + "x-namespaced-enum": [ + "UK.OBIE.BICFI" + ] + }, + "OBExternalAccountType1Code": { + "description": "Specifies the type of account (personal or business).", + "type": "string", + "enum": [ + "Business", + "Personal" + ] + }, + "OBInternalExtendedAccountType1Code": { + "description": "Specifies the extended type of account if known. For a full set of values refer to `OBInternalExtendedAccountType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "type": "string", + "enum": [ + "Business", + "BusinessSavingsAccount", + "Charity", + "Collection", + "Corporate", + "Ewallet", + "Government", + "Investment", + "ISA", + "JointPersonal", + "Pension", + "Personal", + "PersonalSavingsAccount", + "Premier", + "Wealth" + ] + }, + "OBInternalLocalInstrument1Code": { + "type": "string", + "description": "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.\nFor a full list of values refer to `OBInternalLocalInstrument1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "x-namespaced-enum": [ + "UK.OBIE.BACS", + "UK.OBIE.BalanceTransfer", + "UK.OBIE.CHAPS", + "UK.OBIE.Euro1", + "UK.OBIE.FPS", + "UK.OBIE.Link", + "UK.OBIE.MoneyTransfer", + "UK.OBIE.Paym", + "UK.OBIE.SEPACreditTransfer", + "UK.OBIE.SEPAInstantCreditTransfer", + "UK.OBIE.SWIFT", + "UK.OBIE.Target2" + ] + }, + "OBActiveOrHistoricCurrencyAndAmount": { + "required": [ + "Amount", + "Currency" + ], + "type": "object", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "ActiveOrHistoricCurrencyCode": { + "type": "string", + "minLength": 3, + "maxLength": 3, + "pattern": "^[A-Z]{3,3}$", + "description": "A 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\"." + }, + "OBActiveCurrencyAndAmount_SimpleType": { + "pattern": "^\\d{1,13}$|^\\d{1,13}\\.\\d{1,5}$", + "type": "string", + "description": "A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217." + }, + "OBInternalPaymentChargeType1Code": { + "type": "string", + "enum": [ + "UK.OBIE.CHAPSOut", + "UK.OBIE.BalanceTransferOut", + "UK.OBIE.MoneyTransferOut" + ] + }, + "OBExternalPurpose1Code": { + "type": "string", + "minLength": 1, + "maxLength": 4, + "description": "For a full set of values refer to `ExternalPurpose1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "enum": [ + "BKDF", + "BKFE", + "BKFM", + "BKIP", + "BKPP", + "CBLK", + "CDCB", + "CDCD", + "CDCS", + "CDDP", + "CDOC", + "CDQC", + "ETUP", + "FCOL", + "MTUP", + "ACCT", + "CASH", + "COLL", + "CSDB", + "DEPT", + "INTC", + "INTP", + "LIMA", + "NETT", + "BFWD", + "CCIR", + "CCPC", + "CCPM", + "CCSM", + "CRDS", + "CRPR", + "CRSP", + "CRTL", + "EQPT", + "EQUS", + "EXPT", + "EXTD", + "FIXI", + "FWBC", + "FWCC", + "FWSB", + "FWSC", + "MARG", + "MBSB", + "MBSC", + "MGCC", + "MGSC", + "OCCC", + "OPBC", + "OPCC", + "OPSB", + "OPSC", + "OPTN", + "OTCD", + "REPO", + "RPBC", + "RPCC", + "RPSB", + "RPSC", + "RVPO", + "SBSC", + "SCIE", + "SCIR", + "SCRP", + "SHBC", + "SHCC", + "SHSL", + "SLEB", + "SLOA", + "SWBC", + "SWCC", + "SWPT", + "SWSB", + "SWSC", + "TBAS", + "TBBC", + "TBCC", + "TRCP", + "AGRT", + "AREN", + "BEXP", + "BOCE", + "COMC", + "CPYR", + "GDDS", + "GDSV", + "GSCB", + "LICF", + "MP2B", + "POPE", + "ROYA", + "SCVE", + "SERV", + "SUBS", + "SUPP", + "TRAD", + "CHAR", + "COMT", + "MP2P", + "ECPG", + "ECPR", + "ECPU", + "EPAY", + "CLPR", + "COMP", + "DBTC", + "GOVI", + "HLRP", + "HLST", + "INPC", + "INPR", + "INSC", + "INSU", + "INTE", + "LBRI", + "LIFI", + "LOAN", + "LOAR", + "PENO", + "PPTI", + "RELG", + "RINP", + "TRFD", + "FORW", + "FXNT", + "ADMG", + "ADVA", + "BCDM", + "BCFG", + "BLDM", + "BNET", + "CBFF", + "CBFR", + "CCRD", + "CDBL", + "CFEE", + "CGDD", + "CORT", + "COST", + "CPKC", + "DCRD", + "DSMT", + "DVPM", + "EDUC", + "FACT", + "FAND", + "FCPM", + "FEES", + "GIFT", + "GOVT", + "ICCP", + "IDCP", + "IHRP", + "INSM", + "IVPT", + "MCDM", + "MCFG", + "MSVC", + "NOWS", + "OCDM", + "OCFG", + "OFEE", + "OTHR", + "PADD", + "PTSP", + "RCKE", + "RCPT", + "REBT", + "REFU", + "RENT", + "REOD", + "RIMB", + "RPNT", + "RRBN", + "RRCT", + "RRTP", + "RVPM", + "SLPI", + "SPLT", + "STDY", + "TBAN", + "TBIL", + "TCSC", + "TELI", + "TMPG", + "TPRI", + "TPRP", + "TRNC", + "TRVC", + "WEBI", + "IPAY", + "IPCA", + "IPDO", + "IPEA", + "IPEC", + "IPEW", + "IPPS", + "IPRT", + "IPU2", + "IPUW", + "ANNI", + "CAFI", + "CFDI", + "CMDT", + "DERI", + "DIVD", + "FREX", + "HEDG", + "INVS", + "PRME", + "SAVG", + "SECU", + "SEPI", + "TREA", + "UNIT", + "FNET", + "FUTR", + "ANTS", + "CVCF", + "DMEQ", + "DNTS", + "HLTC", + "HLTI", + "HSPC", + "ICRF", + "LTCF", + "MAFC", + "MARF", + "MDCS", + "VIEW", + "CDEP", + "SWFP", + "SWPP", + "SWRS", + "SWUF", + "ADCS", + "AEMP", + "ALLW", + "ALMY", + "BBSC", + "BECH", + "BENE", + "BONU", + "CCHD", + "COMM", + "CSLP", + "GFRP", + "GVEA", + "GVEB", + "GVEC", + "GVED", + "GWLT", + "HREC", + "PAYR", + "PEFC", + "PENS", + "PRCP", + "RHBS", + "SALA", + "SPSP", + "SSBE", + "LBIN", + "LCOL", + "LFEE", + "LMEQ", + "LMFI", + "LMRK", + "LREB", + "LREV", + "LSFL", + "ESTX", + "FWLV", + "GSTX", + "HSTX", + "INTX", + "NITX", + "PTXP", + "RDTX", + "TAXS", + "VATX", + "WHLD", + "TAXR", + "B112", + "BR12", + "TLRF", + "TLRR", + "AIRB", + "BUSB", + "FERB", + "RLWY", + "TRPT", + "CBTV", + "ELEC", + "ENRG", + "GASB", + "NWCH", + "NWCM", + "OTLC", + "PHON", + "UBIL", + "WTER", + "BOND", + "CABD", + "CAEQ", + "CBCR", + "DBCR", + "DICL", + "EQTS", + "FLCR", + "EFTC", + "EFTD", + "MOMA", + "RAPI", + "GAMB", + "LOTT", + "AMEX", + "SASW", + "AUCO", + "PCOM", + "PDEP", + "PLDS", + "PLRF", + "GAFA", + "GAHO", + "CPEN", + "DEPD", + "RETL", + "DEBT", + "CRYP" + ] + }, + "ISODateTime": { + "description": "All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", + "type": "string", + "format": "date-time" + }, + "OBPaymentStatusReason": { + "type": "object", + "properties": { + "StatusReasonCode": { + "type": "string", + "description": "Specifies the status reason in a code form \n For more information and enum values see `OBExternalStatusReason1Code [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "minLength": 1, + "maxLength": 4, + "example": "ERIN" + }, + "StatusReasonDescription": { + "type": "string", + "description": "Description supporting the StatusReasonCode.", + "minLength": 1, + "maxLength": 500 + } + } + }, + "OBPostalAddress7": { + "type": "object", + "additionalProperties": false, + "description": "Information that locates and identifies a specific address, as defined by postal services.", + "properties": { + "AddressType": { + "$ref": "#/components/schemas/OBAddressType2Code" + }, + "Department": { + "$ref": "#/components/schemas/Department" + }, + "SubDepartment": { + "$ref": "#/components/schemas/SubDepartment" + }, + "StreetName": { + "$ref": "#/components/schemas/StreetName" + }, + "BuildingNumber": { + "$ref": "#/components/schemas/BuildingNumber" + }, + "BuildingName": { + "$ref": "#/components/schemas/BuildingName" + }, + "Floor": { + "$ref": "#/components/schemas/Floor" + }, + "UnitNumber": { + "$ref": "#/components/schemas/UnitNumber" + }, + "Room": { + "$ref": "#/components/schemas/Room" + }, + "PostBox": { + "$ref": "#/components/schemas/PostBox" + }, + "TownLocationName": { + "$ref": "#/components/schemas/TownName" + }, + "DistrictName": { + "$ref": "#/components/schemas/DistrictName" + }, + "CareOf": { + "$ref": "#/components/schemas/CareOf" + }, + "PostCode": { + "$ref": "#/components/schemas/PostCode" + }, + "TownName": { + "$ref": "#/components/schemas/TownName" + }, + "CountrySubDivision": { + "$ref": "#/components/schemas/CountrySubDivision" + }, + "Country": { + "$ref": "#/components/schemas/CountryCode" + }, + "AddressLine": { + "type": "array", + "items": { + "description": "Information that locates and identifies a specific address, as defined by postal services, presented in free format text.", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "minItems": 0, + "maxItems": 7 + } + } + }, + "OBAddressTypeCode": { + "description": "Identifies the nature of the postal address.", + "type": "string", + "enum": [ + "Business", + "Correspondence", + "DeliveryTo", + "MailTo", + "POBox", + "Postal", + "Residential", + "Statement" + ] + }, + "OBAddressType2Code": { + "description": "Identifies the nature of the postal address. For a full set of codes see `OBAddressType2Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets).", + "type": "string", + "enum": [ + "BIZZ", + "DLVY", + "MLTO", + "PBOX", + "ADDR", + "HOME", + "CORR", + "STAT" + ] + }, + "OBRegulatoryAuthority2": { + "type": "object", + "description": "Entity requiring the regulatory reporting information. ", + "properties": { + "Name": { + "type": "string", + "description": "Name of the entity requiring the regulatory reporting information.", + "minLength": 1, + "maxLength": 140 + }, + "CountryCode": { + "description": "Country of the entity that requires the regulatory reporting information.", + "$ref": "#/components/schemas/CountryCode" + } + } + }, + "OBRegulatoryReporting1": { + "type": "object", + "description": "Information needed due to regulatory and statutory requirements", + "properties": { + "DebitCreditReportingIndicator": { + "type": "string", + "description": "Identifies whether the regulatory reporting information applies to the debit side, to the credit side or to both debit and credit sides of the transaction. For a full list of values refer to `OBExternalRegulatoryReportingType1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "enum": [ + "CRED", + "DEBT", + "BOTH" + ] + }, + "Authority": { + "$ref": "#/components/schemas/OBRegulatoryAuthority2" + }, + "Details": { + "description": "Set of elements used to provide details on the regulatory reporting information.", + "type": "array", + "items": { + "$ref": "#/components/schemas/OBStructuredRegulatoryReporting3" + } + } + } + }, + "OBStatusReason": { + "type": "object", + "properties": { + "StatusReasonCode": { + "type": "string", + "description": "Specifies the status reason in a code form. \nFor a full list of values refer to `OBExternalStatusReason1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "minLength": 1, + "maxLength": 4, + "example": "ERIN" + }, + "StatusReasonDescription": { + "description": "Description supporting the StatusReasonCode.", + "type": "string", + "minLength": 1, + "maxLength": 500 + }, + "Path": { + "type": "string", + "description": "Recommended but optional reference to the JSON Path of the field with error, e.g., Data.Initiation.InstructedAmount.Currency", + "minLength": 1, + "maxLength": 500 + } + } + }, + "OBStructuredRegulatoryReporting3": { + "type": "object", + "description": "Set of elements used to provide details on the regulatory reporting information.", + "properties": { + "Type": { + "type": "string", + "description": "Specifies the type of the information supplied in the regulatory reporting details", + "minLength": 1, + "maxLength": 35 + }, + "Date": { + "description": "Date related to the specified type of regulatory reporting details.", + "$ref": "#/components/schemas/ISODateTime" + }, + "Country": { + "description": "Country related to the specified type of regulatory reporting details.", + "$ref": "#/components/schemas/CountryCode" + }, + "Amount": { + "description": "Amount of money to be reported for regulatory and statutory requirements.", + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount" + }, + "Information": { + "description": "Additional details that cater for specific domestic regulatory requirements. ", + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 35 + } + } + } + }, + "Department": { + "description": "Identification of a division of a large organisation or building.", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "SubDepartment": { + "description": "Identification of a sub-division of a large organisation or building.", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "StreetName": { + "type": "string", + "minLength": 1, + "maxLength": 140, + "description": "Name of a street or thoroughfare." + }, + "BuildingName": { + "description": "Name of a referenced building.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "BuildingNumber": { + "type": "string", + "minLength": 1, + "maxLength": 16, + "description": "Number that identifies the position of a building on a street." + }, + "CareOf": { + "description": "The 'care of' address is used whenever sending mail to a person or organisation who does not actually live or work at the address. They will receive the mail for the individual.", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "DistrictName": { + "description": "Number that of the regional area, known as a district, which forms part of an address", + "type": "string", + "minLength": 1, + "maxLength": 140 + }, + "Floor": { + "description": "Number that identifies the level within a building", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "PostBox": { + "description": "Information that locates and identifies a box in a post office assigned to a person or organization, where letters for them are kept until called for.", + "type": "string", + "minLength": 1, + "maxLength": 16 + }, + "PostCode": { + "type": "string", + "minLength": 1, + "maxLength": 16, + "description": "Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail." + }, + "Room": { + "description": "Information that locates and identifies a room to form part of an address", + "type": "string", + "minLength": 1, + "maxLength": 70 + }, + "UnitNumber": { + "description": "Number that identifies the unit of a specific address .", + "type": "string", + "minLength": 1, + "maxLength": 16 + }, + "TownName": { + "type": "string", + "minLength": 1, + "maxLength": 140, + "description": "Name of a built-up area, with defined boundaries, and a local government." + }, + "CountrySubDivision": { + "type": "string", + "minLength": 1, + "maxLength": 35, + "description": "Identifies a subdivision of a country such as state, region, county." + }, + "CountryCode": { + "type": "string", + "pattern": "^[A-Z]{2,2}$", + "description": "Nation with its own government." + }, + "OBVRPStatusReasonCode": { + "type": "string", + "x-namespaced-enum": [ + "UK.OBIE.ExemptionNotApplied", + "UK.OBIE.OtherReason" + ], + "description": "Reason Code provided for the status of a VRP. To be documented in the Developer Portal.\n" + }, + "OBVRPConsentType": { + "type": "string", + "x-namespaced-enum": [ + "UK.OBIE.VRPType.Sweeping", + "UK.OBIE.VRPType.Other" + ] + }, + "OBVRPAuthenticationMethods": { + "type": "string", + "x-namespaced-enum": [ + "UK.OBIE.SCA", + "UK.OBIE.SCANotRequired" + ] + }, + "OBVRPInteractionTypes": { + "type": "string", + "enum": [ + "InSession", + "OffSession" + ], + "description": "Indicates interaction type, currently if customer is present or not present. If not provided the default is `OffSession` (customer is not present) when the individual VRP payment is made. " + }, + "OBRisk1": { + "type": "object", + "additionalProperties": false, + "properties": { + "PaymentContextCode": { + "type": "string", + "description": "Specifies the payment context, for a full list of values refer to `OBInternalPaymentContext1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)
\nThe following values are deprecated and can only be used to make a payment on an existing v3 consent which used one of the deprecated values and has been migrated to v4. They **must not** be used in a new consent. They may optionally be returned for a historical payment/consent migrated to v4:
\n* BillPayment - @deprecated\n* EcommerceGoods - @deprecated\n* EcommerceServices - @deprecated\n* PartyToParty - @deprecated\n* PispPayee - @deprecated\n* Other - @deprecated\n", + "enum": [ + "BillingGoodsAndServicesInAdvance", + "BillingGoodsAndServicesInArrears", + "EcommerceMerchantInitiatedPayment", + "FaceToFacePointOfSale", + "TransferToSelf", + "TransferToThirdParty", + "BillPayment", + "EcommerceGoods", + "EcommerceServices", + "PartyToParty", + "PispPayee", + "Other" + ] + }, + "MerchantCategoryCode": { + "type": "string", + "minLength": 3, + "maxLength": 4, + "description": "Category code conform to ISO 18245, related to the type of services or goods the merchant provides for the transaction." + }, + "MerchantCustomerIdentification": { + "type": "string", + "minLength": 1, + "maxLength": 70, + "description": "The unique customer identifier of the PSU with the merchant." + }, + "ContractPresentIndicator": { + "type": "boolean", + "description": "Indicates if Payee has a contractual relationship with the PISP." + }, + "BeneficiaryPrepopulatedIndicator": { + "type": "boolean", + "description": "Indicates if PISP has immutably prepopulated payment details in for the PSU." + }, + "PaymentPurposeCode": { + "$ref": "#/components/schemas/OBExternalPurpose1Code" + }, + "CategoryPurposeCode": { + "$ref": "#/components/schemas/ExternalCategoryPurpose1Code" + }, + "BeneficiaryAccountType": { + "$ref": "#/components/schemas/OBInternalExtendedAccountType1Code" + }, + "DeliveryAddress": { + "$ref": "#/components/schemas/OBPostalAddress7" + } + }, + "description": "The Risk section is sent by the initiating party to the ASPSP.\nIt is used to specify additional details for risk scoring for Payments." + }, + "Links": { + "required": [ + "Self" + ], + "type": "object", + "properties": { + "Self": { + "type": "string", + "format": "uri" + }, + "First": { + "type": "string", + "format": "uri" + }, + "Prev": { + "type": "string", + "format": "uri" + }, + "Next": { + "type": "string", + "format": "uri" + }, + "Last": { + "type": "string", + "format": "uri" + } + }, + "description": "Links relevant to the payload" + }, + "Meta": { + "title": "MetaData", + "type": "object", + "description": "Meta Data relevant to the payload. At present no fields are used for VRP." + }, + "ExternalPaymentTransactionStatus1Code": { + "description": "The current status of the payment resource.\n\nFor a full list of values see `ExternalPaymentTransactionStatus1Code` in *OB_Internal_CodeSet* \n[here](https://github.com/OpenBankingUK/External_Internal_CodeSets)\n", + "type": "string", + "enum": [ + "CANC", + "RCVD", + "ACTC", + "PATC", + "PDNG", + "RJCT", + "INFA", + "INCO", + "ACCP", + "ACFC", + "ACSP", + "ACWC", + "ACSC", + "BLCK", + "ACCC", + "ACWP" + ] + }, + "ExternalPaymentTransactionStatus5Code": { + "type": "string", + "description": "Specifies the status of the payment information group. \n\nFor a full list of values refer to `ExternalPaymentTransactionStatus5Code` in *OB_Internal_CodeSet* \n[here](https://github.com/OpenBankingUK/External_Internal_CodeSets).\n", + "enum": [ + "RCVD", + "PDNG", + "ACTC", + "ACCP", + "ACFC", + "ACSP", + "ACWC", + "ACSC", + "BLCK", + "ACCC", + "ACWP", + "RJCT" + ] + } + }, + "securitySchemes": { + "TPPOAuth2Security": { + "type": "oauth2", + "description": "TPP client credential authorisation flow with the ASPSP", + "flows": { + "clientCredentials": { + "tokenUrl": "https://authserver.example/token", + "scopes": { + "payments": "Generic payment scope" + } + } + } + }, + "PSUOAuth2Security": { + "type": "oauth2", + "description": "OAuth flow, it is required when the PSU needs to perform SCA with the ASPSP when a TPP wants to access an ASPSP resource owned by the PSU", + "flows": { + "authorizationCode": { + "authorizationUrl": "https://authserver.example/authorization", + "tokenUrl": "https://authserver.example/token", + "scopes": { + "payments": "Generic payment scope" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/pkg/version/version.go b/pkg/version/version.go index 5df732ae..10cac447 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -22,10 +22,10 @@ const ( // Checker must conform to the format expected, major, minor and patch. // @NEW-SPEC-RELEASE - make sure new version is accounted for // @NEW-RELEASE - make sure new version is accounted for - //v1.9.5 - this comment allows searching + //v1.9.8-beta1 - this comment allows searching major = "1" minor = "9" - patch = "7" + patch = "8" //FullVersion - Checker is the full string version of Conformance Suite. FullVersion = major + "." + minor + "." + patch @@ -33,7 +33,7 @@ const ( // Prerelease - is pre-release marker for the version. If this is "" (empty string) // then it means that it is a final release. Otherwise, this is a pre-release // such as "alpha", "beta", "rc1", etc. - Prerelease = "" + Prerelease = "beta1" GitHubAPIRepository = "https://api.github.com/repos/OpenBankingUK/conformance-suite/tags" )