diff --git a/client-api-and-mock-server/core-bank-api-clients/.gitignore b/client-api-and-mock-server/core-bank-api-clients/.gitignore new file mode 100644 index 0000000..e9fb296 --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-clients/.gitignore @@ -0,0 +1,193 @@ + +# Generate clients +/generated-clients + +### Java template +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +### JEnv template +# JEnv local Java version configuration file +.java-version + +# Used by previous versions of JEnv +.jenv-version + +### JetBrains template +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +### Eclipse template +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath +.recommenders + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# PyDev specific (Python IDE for Eclipse) +*.pydevproject + +# CDT-specific (C/C++ Development Tooling) +.cproject + +# CDT- autotools +.autotools + +# Java annotation processor (APT) +.factorypath + +# PDT-specific (PHP Development Tools) +.buildpath + +# sbteclipse plugin +.target + +# Tern plugin +.tern-project + +# TeXlipse plugin +.texlipse + +# STS (Spring Tool Suite) +.springBeans + +# Code Recommenders +.recommenders/ + +# Annotation Processing +.apt_generated/ +.apt_generated_test/ + +# Scala IDE specific (Scala & Java development for Eclipse) +.cache-main +.scala_dependencies +.worksheet + +# Uncomment this line if you wish to ignore the project description file. +# Typically, this file would be tracked if it contains build/dependency configurations: +#.project + +### Example user template template +### Example user template + +# IntelliJ project files +.idea +*.iml +out +gen +### JDeveloper template +# default application storage directory used by the IDE Performance Cache feature +.data/ + +# used for ADF styles caching +temp/ + +# default output directories +classes/ +deploy/ +javadoc/ + +# lock file, a part of Oracle Credential Store Framework +cwallet.sso.lck diff --git a/client-api-and-mock-server/core-bank-api-clients/README.md b/client-api-and-mock-server/core-bank-api-clients/README.md new file mode 100644 index 0000000..5add6e5 --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-clients/README.md @@ -0,0 +1,22 @@ +# Open Banking Clients +Open Banking API Documentation: https://openbankinguk.github.io/read-write-api-site3/v3.1.10/profiles/account-and-transaction-api-profile.html + +## Overview +This project is used to generate the Open Banking Client Libraries used by the DBS integration services. + +### How to generate the clients +If you have updated an existing specification or added a new, run the following command to generate the new client(s): + +`mvn clean install -Pgenerate-clients` + +Note: As the generated clients are stored in Git you are not required to run this command if you've made no changes. + +### How to install the clients +To install the generated clients into you local Maven repository run: + +`mvn clean install -Pinclude-clients` + +> If you're facing error to generate java doc use this argument to skip api doc generation while installing artifacts `-Dmaven.javadoc.skip=true` + +### Exercise +Generate the Payment Initiation API client from Open Banking API Spec [Open Banking API](https://github.com/OpenBankingUK/read-write-api-specs). \ No newline at end of file diff --git a/client-api-and-mock-server/core-bank-api-clients/pom.xml b/client-api-and-mock-server/core-bank-api-clients/pom.xml new file mode 100644 index 0000000..e481fda --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-clients/pom.xml @@ -0,0 +1,119 @@ + + + 4.0.0 + + com.openbanking.api + core-bank-api-clients + 1.0-SNAPSHOT + + pom + + Core Bank API :: Clients + Core Bank API Backend Java Client + + + ${project.basedir}/generated-clients + + resttemplate + false + java8 + true + + + + + + + com.openbanking.api.account + account-info-openapi-client + ${project.version} + + + + + + + generate-clients + + false + + + + + maven-clean-plugin + 3.1.0 + + + + ${openapi-generator-maven-plugin.outputBaseDir} + false + + + + + + org.openapitools + openapi-generator-maven-plugin + 5.2.1 + + + generate-account-info-openapi-client + + generate + + + + ${openapi-generator-maven-plugin.outputBaseDir}/account-info-openapi-client + + ${project.basedir}/specs/account-info-openapi.yml + com.openbanking.api.account + account-info-openapi-client + ${project.version} + java + true + true + false + false + + ${openapi-generator-maven-plugin.library} + ${openapi-generator-maven-plugin.java8} + ${openapi-generator-maven-plugin.dateLibrary} + com.openbanking.api.clients.api + com.openbanking.api.clients.model + true + false + + + + + + + + + + + include-clients + + false + + + + + org.apache.maven.plugins + maven-install-plugin + false + + false + + + + + + generated-clients/account-info-openapi-client + + + + + \ No newline at end of file diff --git a/client-api-and-mock-server/core-bank-api-clients/specs/account-info-openapi.yml b/client-api-and-mock-server/core-bank-api-clients/specs/account-info-openapi.yml new file mode 100644 index 0000000..9274a4e --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-clients/specs/account-info-openapi.yml @@ -0,0 +1,10014 @@ +openapi: "3.0.0" +info: + title: "Account and Transaction API Specification" + description: "Swagger for Account and Transaction API Specification" + 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: "3.1.9" +paths: + /account-access-consents: + post: + tags: + - "Account Access" + summary: "Create Account Access Consents" + 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" + 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" + summary: "Get Account Access Consents" + 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" + 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" + summary: "Delete Account Access Consents" + 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" + 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" + 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" + 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 Accounts" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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 Parties" + 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" + 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 Products" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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 Statements" + 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" + 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 Statements" + 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" + 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: + - "Transactions" + summary: "Get Transactions" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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 Parties" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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/v3.1/aisp" +components: + parameters: + FromBookingDateTimeParam: + in: "query" + name: "fromBookingDateTime" + description: "The UTC ISO 8601 Date Time to filter transactions FROM\nNB Time component is optional - set to 00:00:00 for just Date.\nIf the Date Time contains a timezone, the ASPSP must ignore the timezone component." + schema: + type: "string" + format: "date-time" + ToBookingDateTimeParam: + in: "query" + name: "toBookingDateTime" + description: "The UTC ISO 8601 Date Time to filter transactions TO\nNB Time component is optional - set to 00:00:00 for just Date.\nIf the Date Time contains a timezone, the ASPSP must ignore the timezone component." + schema: + type: "string" + format: "date-time" + FromStatementDateTimeParam: + in: "query" + name: "fromStatementDateTime" + description: "The UTC ISO 8601 Date Time to filter statements FROM\nNB Time component is optional - set to 00:00:00 for just Date.\nIf the Date Time contains a timezone, the ASPSP must ignore the timezone component." + schema: + type: "string" + format: "date-time" + ToStatementDateTimeParam: + in: "query" + name: "toStatementDateTime" + description: "The UTC ISO 8601 Date Time to filter statements TO\nNB Time component is optional - set to 00:00:00 for just Date.\nIf the Date Time contains a timezone, the ASPSP must ignore the timezone component." + schema: + type: "string" + format: "date-time" + 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" + 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" + 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" + 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" + 200AccountsRead: + description: "Accounts Read" + 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/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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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/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" + 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" + 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" + 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" + 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: + AccountId: + description: "A unique and immutable identifier used to identify the account resource. This identifier has no meaning to the account owner." + type: "string" + 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" + 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" + 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" + BuildingNumber: + description: "Number that identifies the position of a building on a street." + type: "string" + minLength: 1 + maxLength: 16 + 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" + format: "date-time" + 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" + format: "date-time" + DebtorReference: + description: "A reference value provided by the PSU to the PISP while setting up the scheduled payment." + type: "string" + 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" + minLength: 1 + maxLength: 128 + Description_2: + description: "Description that may be available for the statement interest." + 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 + EmailAddress: + description: "Address for electronic mail (e-mail)." + type: "string" + 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" + 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" + 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: "Specifies a character string with a maximum length of 350 characters." + type: "string" + 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" + minLength: 1 + maxLength: 256 + Identification_1: + description: "Unique and unambiguous identification of the servicing institution." + type: "string" + 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 + 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" + 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" + 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" + 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" + 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" + 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" + 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.AccountType \n * Data.AccountSubType\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/OBAccountStatus1Code" + StatusUpdateDateTime: + $ref: "#/components/schemas/StatusUpdateDateTime" + Currency: + $ref: "#/components/schemas/ActiveOrHistoricCurrencyCode_0" + AccountType: + $ref: "#/components/schemas/OBExternalAccountType1Code" + AccountSubType: + $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/OBExternalSwitchStatusCode" + Account: + type: "array" + items: + type: "object" + description: "Provides the details to identify an account." + required: + - "SchemeName" + - "Identification" + properties: + SchemeName: + $ref: "#/components/schemas/OBExternalAccountIdentification4Code" + Identification: + $ref: "#/components/schemas/Identification_0" + Name: + $ref: "#/components/schemas/Name_0" + SecondaryIdentification: + $ref: "#/components/schemas/SecondaryIdentification" + 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" + - "Currency" + - "AccountType" + - "AccountSubType" + properties: + AccountId: + $ref: "#/components/schemas/AccountId" + Status: + $ref: "#/components/schemas/OBAccountStatus1Code" + StatusUpdateDateTime: + $ref: "#/components/schemas/StatusUpdateDateTime" + Currency: + $ref: "#/components/schemas/ActiveOrHistoricCurrencyCode_0" + AccountType: + $ref: "#/components/schemas/OBExternalAccountType1Code" + AccountSubType: + $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/OBExternalSwitchStatusCode" + additionalProperties: false + OBAccount6Detail: + type: "object" + description: "Unambiguous identification of the account to which credit and debit entries are made." + required: + - "AccountId" + - "Currency" + - "AccountType" + - "AccountSubType" + - "Account" + properties: + AccountId: + $ref: "#/components/schemas/AccountId" + Status: + $ref: "#/components/schemas/OBAccountStatus1Code" + StatusUpdateDateTime: + $ref: "#/components/schemas/StatusUpdateDateTime" + Currency: + $ref: "#/components/schemas/ActiveOrHistoricCurrencyCode_0" + AccountType: + $ref: "#/components/schemas/OBExternalAccountType1Code" + AccountSubType: + $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/OBExternalSwitchStatusCode" + Account: + type: "array" + items: + type: "object" + description: "Provides the details to identify an account." + required: + - "SchemeName" + - "Identification" + properties: + SchemeName: + $ref: "#/components/schemas/OBExternalAccountIdentification4Code" + Identification: + $ref: "#/components/schemas/Identification_0" + Name: + $ref: "#/components/schemas/Name_0" + SecondaryIdentification: + $ref: "#/components/schemas/SecondaryIdentification" + Servicer: + $ref: "#/components/schemas/OBBranchAndFinancialInstitutionIdentification5_0" + additionalProperties: false + OBAccountStatus1Code: + description: "Specifies the status of account resource in code form." + type: "string" + 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" + 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" + 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" + OBAddressTypeCode: + description: "Identifies the nature of the postal address." + type: "string" + enum: + - "Business" + - "Correspondence" + - "DeliveryTo" + - "MailTo" + - "POBox" + - "Postal" + - "Residential" + - "Statement" + 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.\n\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.\n\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. \n\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 an 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 an 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." + type: "string" + enum: + - "ClosingAvailable" + - "ClosingBooked" + - "ClosingCleared" + - "Expected" + - "ForwardAvailable" + - "Information" + - "InterimAvailable" + - "InterimBooked" + - "InterimCleared" + - "OpeningAvailable" + - "OpeningBooked" + - "OpeningCleared" + - "PreviouslyClosedBooked" + 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/OBBeneficiaryType1Code" + 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/OBBeneficiaryType1Code" + 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/OBBeneficiaryType1Code" + 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/OBExternalFinancialInstitutionIdentification4Code" + Identification: + $ref: "#/components/schemas/Identification_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/OBExternalFinancialInstitutionIdentification4Code" + Identification: + $ref: "#/components/schemas/Identification_1" + 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/OBExternalFinancialInstitutionIdentification4Code" + Identification: + $ref: "#/components/schemas/Identification_1" + Name: + $ref: "#/components/schemas/Name_1" + PostalAddress: + $ref: "#/components/schemas/OBPostalAddress6" + OBBranchAndFinancialInstitutionIdentification6_1: + type: "object" + description: "Financial institution servicing an account for the creditor." + properties: + SchemeName: + $ref: "#/components/schemas/OBExternalFinancialInstitutionIdentification4Code" + Identification: + $ref: "#/components/schemas/Identification_2" + Name: + $ref: "#/components/schemas/Name_1" + PostalAddress: + $ref: "#/components/schemas/OBPostalAddress6" + OBBranchAndFinancialInstitutionIdentification6_2: + type: "object" + description: "Financial institution servicing an account for the debtor." + properties: + SchemeName: + $ref: "#/components/schemas/OBExternalFinancialInstitutionIdentification4Code" + Identification: + $ref: "#/components/schemas/Identification_2" + Name: + $ref: "#/components/schemas/Name_1" + PostalAddress: + $ref: "#/components/schemas/OBPostalAddress6" + OBCashAccount5_0: + type: "object" + required: + - "SchemeName" + - "Identification" + description: "Provides the details to identify the beneficiary account." + properties: + SchemeName: + $ref: "#/components/schemas/OBExternalAccountIdentification4Code" + Identification: + $ref: "#/components/schemas/Identification_0" + Name: + $ref: "#/components/schemas/Name_0" + SecondaryIdentification: + $ref: "#/components/schemas/SecondaryIdentification" + OBCashAccount5_1: + type: "object" + required: + - "SchemeName" + - "Identification" + description: "Provides the details to identify the beneficiary account." + properties: + SchemeName: + $ref: "#/components/schemas/OBExternalAccountIdentification4Code" + Identification: + description: "Beneficiary account identification." + type: "string" + minLength: 1 + maxLength: 256 + Name: + $ref: "#/components/schemas/Name_0" + SecondaryIdentification: + $ref: "#/components/schemas/SecondaryIdentification" + 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/OBExternalAccountIdentification4Code" + Identification: + $ref: "#/components/schemas/Identification_0" + Name: + $ref: "#/components/schemas/Name_0" + SecondaryIdentification: + $ref: "#/components/schemas/SecondaryIdentification" + OBCashAccount6_1: + type: "object" + description: "Unambiguous identification of the account of the debtor, in the case of a crebit transaction." + properties: + SchemeName: + $ref: "#/components/schemas/OBExternalAccountIdentification4Code" + Identification: + $ref: "#/components/schemas/Identification_0" + Name: + $ref: "#/components/schemas/Name_0" + SecondaryIdentification: + $ref: "#/components/schemas/SecondaryIdentification" + OBCreditDebitCode_0: + description: "Indicates whether the amount is a credit or a debit. \nUsage: A zero amount is considered to be a credit amount." + type: "string" + enum: + - "Credit" + - "Debit" + OBCreditDebitCode_1: + description: "Indicates whether the transaction is a credit or a debit entry." + 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." + type: "string" + 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" + OBEntryStatus1Code: + description: "Status of a transaction entry on the books of the account servicer." + type: "string" + enum: + - "Booked" + - "Pending" + - "Rejected" + OBTransactionMutability1Code: + description: "Specifies the Mutability of the Transaction record." + type: "string" + enum: + - "Mutable" + - "Immutable" + OBError1: + type: "object" + properties: + ErrorCode: + description: "Low level textual error code, e.g., UK.OBIE.Field.Missing" + type: "string" + x-namespaced-enum: + - "UK.OBIE.Field.Expected" + - "UK.OBIE.Field.Invalid" + - "UK.OBIE.Field.InvalidDate" + - "UK.OBIE.Field.Missing" + - "UK.OBIE.Field.Unexpected" + - "UK.OBIE.Header.Invalid" + - "UK.OBIE.Header.Missing" + - "UK.OBIE.Reauthenticate" + - "UK.OBIE.Resource.ConsentMismatch" + - "UK.OBIE.Resource.InvalidConsentStatus" + - "UK.OBIE.Resource.InvalidFormat" + - "UK.OBIE.Resource.NotFound" + - "UK.OBIE.Rules.AfterCutOffDateTime" + - "UK.OBIE.Rules.DuplicateReference" + - "UK.OBIE.Signature.Invalid" + - "UK.OBIE.Signature.InvalidClaim" + - "UK.OBIE.Signature.Malformed" + - "UK.OBIE.Signature.Missing" + - "UK.OBIE.Signature.MissingClaim" + - "UK.OBIE.Signature.Unexpected" + - "UK.OBIE.UnexpectedError" + - "UK.OBIE.Unsupported.AccountIdentifier" + - "UK.OBIE.Unsupported.AccountSecondaryIdentifier" + - "UK.OBIE.Unsupported.Currency" + - "UK.OBIE.Unsupported.Frequency" + - "UK.OBIE.Unsupported.LocalInstrument" + - "UK.OBIE.Unsupported.Scheme" + Message: + description: "A description of the error that occurred. e.g., 'A mandatory field isn't supplied' or 'RequestedExecutionDateTime must be in future'\nOBIE 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" + - "Message" + additionalProperties: false + minProperties: 1 + OBErrorResponse1: + description: "An array of detail error codes, and messages, and URLs to documentation to help remediation." + type: "object" + properties: + Code: + description: "High level textual error code, to help categorize the errors." + type: "string" + minLength: 1 + maxLength: 40 + Id: + description: "A unique reference for the error instance, for audit purposes, in case of unknown/unclassified errors." + type: "string" + minLength: 1 + maxLength: 40 + Message: + description: "Brief Error message, e.g., 'There is something wrong with the request parameters provided'" + type: "string" + minLength: 1 + maxLength: 500 + Errors: + items: + $ref: "#/components/schemas/OBError1" + type: "array" + minItems: 1 + required: + - "Code" + - "Message" + - "Errors" + additionalProperties: false + OBExternalAccountIdentification4Code: + description: "Name of the identification scheme, in a coded form as published in an external list." + type: "string" + x-namespaced-enum: + - "UK.OBIE.BBAN" + - "UK.OBIE.IBAN" + - "UK.OBIE.PAN" + - "UK.OBIE.Paym" + - "UK.OBIE.SortCodeAccountNumber" + OBExternalAccountRole1Code: + description: "A party’s role with respect to the related account." + 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)." + type: "string" + enum: + - "ChargeCard" + - "CreditCard" + - "CurrentAccount" + - "EMoney" + - "Loan" + - "Mortgage" + - "PrePaidCard" + - "Savings" + OBExternalAccountType1Code: + description: "Specifies the type of account (personal or business)." + type: "string" + enum: + - "Business" + - "Personal" + OBExternalDirectDebitStatus1Code: + description: "Specifies the status of the direct debit in code form." + type: "string" + enum: + - "Active" + - "Inactive" + OBExternalFinancialInstitutionIdentification4Code: + description: "Name of the identification scheme, in a coded form as published in an external list." + type: "string" + x-namespaced-enum: + - "UK.OBIE.BICFI" + OBExternalSwitchStatusCode: + description: "Specifies the switch status for the account, in a coded form." + type: "string" + x-namespaced-enum: + - "UK.CASS.NotSwitched" + - "UK.CASS.SwitchCompleted" + OBExternalLegalStructureType1Code: + description: "Legal standing of the party." + type: "string" + 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" + OBExternalPartyType1Code: + description: "Party type, in a coded form." + type: "string" + enum: + - "Delegate" + - "Joint" + - "Sole" + OBExternalScheduleType1Code: + description: "Specifies the scheduled payment date type requested" + type: "string" + enum: + - "Arrival" + - "Execution" + OBExternalStandingOrderStatus1Code: + description: "Specifies the status of the standing order in code form." + type: "string" + enum: + - "Active" + - "Inactive" + OBExternalStatementAmountType1Code: + description: "Amount type, in a coded form." + type: "string" + 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" + OBExternalStatementBenefitType1Code: + description: "Benefit type, in a coded form." + type: "string" + x-namespaced-enum: + - "UK.OBIE.Cashback" + - "UK.OBIE.Insurance" + - "UK.OBIE.TravelDiscount" + - "UK.OBIE.TravelInsurance" + OBExternalStatementDateTimeType1Code: + description: "Date time type, in a coded form." + type: "string" + 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" + OBExternalStatementFeeFrequency1Code: + description: "How frequently the fee is applied to the Account." + type: "string" + x-namespaced-enum: + - "UK.OBIE.ChargingPeriod" + - "UK.OBIE.PerTransactionAmount" + - "UK.OBIE.PerTransactionPercentage" + - "UK.OBIE.Quarterly" + - "UK.OBIE.StatementMonthly" + - "UK.OBIE.Weekly" + OBExternalStatementFeeRateType1Code: + description: "Description that may be available for the statement fee rate type." + type: "string" + x-namespaced-enum: + - "UK.OBIE.AER" + - "UK.OBIE.EAR" + OBExternalStatementFeeType1Code: + description: "Fee type, in a coded form." + type: "string" + 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" + OBExternalStatementInterestFrequency1Code: + description: "Specifies the statement fee type requested" + type: "string" + x-namespaced-enum: + - "UK.OBIE.Daily" + - "UK.OBIE.HalfYearly" + - "UK.OBIE.Monthly" + - "UK.OBIE.PerStatementDate" + - "UK.OBIE.Quarterly" + - "UK.OBIE.Weekly" + - "UK.OBIE.Yearly" + OBExternalStatementInterestRateType1Code: + description: "Description that may be available for the statement Interest rate type." + type: "string" + x-namespaced-enum: + - "UK.OBIE.BOEBaseRate" + - "UK.OBIE.FixedRate" + - "UK.OBIE.Gross" + - "UK.OBIE.LoanProviderBaseRate" + - "UK.OBIE.Net" + OBExternalStatementInterestType1Code: + description: "Interest amount type, in a coded form." + type: "string" + x-namespaced-enum: + - "UK.OBIE.BalanceTransfer" + - "UK.OBIE.Cash" + - "UK.OBIE.EstimatedNext" + - "UK.OBIE.Purchase" + - "UK.OBIE.Total" + OBExternalStatementRateType1Code: + description: "Statement rate type, in a coded form." + type: "string" + 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" + OBExternalStatementType1Code: + description: "Statement type, in a coded form." + type: "string" + enum: + - "AccountClosure" + - "AccountOpening" + - "Annual" + - "Interim" + - "RegularPeriodic" + OBExternalStatementValueType1Code: + description: "Statement value type, in a coded form." + type: "string" + 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" + 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.\n\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.\n\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. \n\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 an 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 an 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/OBExternalPartyType1Code" + Name: + $ref: "#/components/schemas/Name_3" + FullLegalName: + $ref: "#/components/schemas/FullLegalName" + LegalStructure: + $ref: "#/components/schemas/OBExternalLegalStructureType1Code" + BeneficialOwnership: + type: "boolean" + AccountRole: + $ref: "#/components/schemas/OBExternalAccountRole1Code" + 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: + type: "object" + description: "Postal address of a party." + required: + - "Country" + properties: + AddressType: + $ref: "#/components/schemas/OBAddressTypeCode" + AddressLine: + type: "array" + items: + description: "Information that locates and identifies a specific address, as defined by postal services, that is presented in free format text." + type: "string" + minLength: 1 + maxLength: 70 + minItems: 0 + maxItems: 5 + StreetName: + $ref: "#/components/schemas/StreetName" + BuildingNumber: + $ref: "#/components/schemas/BuildingNumber" + PostCode: + $ref: "#/components/schemas/PostCode" + TownName: + $ref: "#/components/schemas/TownName" + CountrySubDivision: + $ref: "#/components/schemas/CountrySubDivision" + Country: + $ref: "#/components/schemas/CountryCode" + 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" + format: "uri" + Id: + description: "Unique identification as assigned by the ASPSP to uniquely identify the related resource." + type: "string" + minLength: 1 + maxLength: 40 + OBPostalAddress6: + type: "object" + description: "Information that locates and identifies a specific address, as defined by postal services." + properties: + AddressType: + $ref: "#/components/schemas/OBAddressTypeCode" + 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: + $ref: "#/components/schemas/StreetName" + BuildingNumber: + $ref: "#/components/schemas/BuildingNumber" + 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)" + type: "number" + OBRate1_1: + description: "field representing a percentage (e.g. 0.05 represents 5% and 0.9525 represents 95.25%). Note the number of decimal places may vary." + 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" + 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." + 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" + minItems: 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" + additionalProperties: false + 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." + 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" + additionalProperties: false + 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: + description: "Specifies the status of consent resource in code form." + type: "string" + enum: + - "Authorised" + - "AwaitingAuthorisation" + - "Rejected" + - "Revoked" + 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." + 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 + 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" + - "MandateIdentification" + - "Name" + properties: + AccountId: + $ref: "#/components/schemas/AccountId" + DirectDebitId: + $ref: "#/components/schemas/DirectDebitId" + MandateIdentification: + $ref: "#/components/schemas/MandateIdentification" + DirectDebitStatusCode: + $ref: "#/components/schemas/OBExternalDirectDebitStatus1Code" + Name: + $ref: "#/components/schemas/Name_2" + PreviousPaymentDateTime: + $ref: "#/components/schemas/PreviousPaymentDateTime" + Frequency: + description: "Regularity with which direct debit instructions are to be created and processed." + type: "string" + x-namespaced-enum: + - "UK.OBIE.Annual" + - "UK.OBIE.Daily" + - "UK.OBIE.Fortnightly" + - "UK.OBIE.HalfYearly" + - "UK.OBIE.Monthly" + - "UK.OBIE.NotKnown" + - "UK.OBIE.Quarterly" + - "UK.OBIE.Weekly" + 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" + minLength: 1 + maxLength: 40 + OfferType: + description: "Offer type, in a coded form." + type: "string" + enum: + - "BalanceTransfer" + - "LimitIncrease" + - "MoneyTransfer" + - "Other" + - "PromotionalRate" + Description: + description: "Further details of the offer." + type: "string" + 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" + 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" + format: "date-time" + Rate: + description: "Rate associated with the offer type." + type: "string" + pattern: "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + Value: + description: "Value associated with the offer type." + type: "integer" + Term: + description: "Further details of the term of the offer." + type: "string" + minLength: 1 + maxLength: 500 + URL: + description: "URL (Uniform Resource Locator) where documentation on the offer can be found" + type: "string" + 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 avaiable 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" + minLength: 1 + maxLength: 350 + ProductId: + description: "The unique ID that has been internally assigned by the financial institution to each of the current account banking products they market to their retail and/or small to medium enterprise (SME) customers." + type: "string" + 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" + minLength: 1 + maxLength: 70 + ProductType: + description: "Product type : Personal Current Account, Business Current Account" + type: "string" + enum: + - "BusinessCurrentAccount" + - "CommercialCreditCard" + - "Other" + - "PersonalCurrentAccount" + - "SMELoan" + MarketingStateId: + description: "Unique and unambiguous identification of a Product Marketing State." + type: "string" + minLength: 1 + maxLength: 35 + OtherProductType: + type: "object" + required: + - "Name" + - "Description" + description: "Other product type details associated with the account." + properties: + Name: + description: "Long name associated with the product" + type: "string" + minLength: 1 + maxLength: 350 + Description: + description: "Description of the Product associated with the account" + type: "string" + 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 an 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 an 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 + OBRisk2: + description: "The Risk section is sent by the initiating party to the ASPSP. It is used to specify additional details for risk scoring for Account Info." + type: "object" + properties: { } + 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/OBExternalScheduleType1Code" + 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/OBExternalScheduleType1Code" + 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/OBExternalScheduleType1Code" + 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" + - "Frequency" + properties: + AccountId: + $ref: "#/components/schemas/AccountId" + StandingOrderId: + $ref: "#/components/schemas/StandingOrderId" + Frequency: + $ref: "#/components/schemas/Frequency_1" + Reference: + $ref: "#/components/schemas/Reference" + FirstPaymentDateTime: + $ref: "#/components/schemas/FirstPaymentDateTime" + NextPaymentDateTime: + $ref: "#/components/schemas/NextPaymentDateTime" + LastPaymentDateTime: + $ref: "#/components/schemas/LastPaymentDateTime" + FinalPaymentDateTime: + $ref: "#/components/schemas/FinalPaymentDateTime" + NumberOfPayments: + $ref: "#/components/schemas/NumberOfPayments" + StandingOrderStatusCode: + $ref: "#/components/schemas/OBExternalStandingOrderStatus1Code" + 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" + additionalProperties: false + OBStandingOrder6Basic: + type: "object" + required: + - "AccountId" + - "Frequency" + properties: + AccountId: + $ref: "#/components/schemas/AccountId" + StandingOrderId: + $ref: "#/components/schemas/StandingOrderId" + Frequency: + $ref: "#/components/schemas/Frequency_1" + Reference: + $ref: "#/components/schemas/Reference" + FirstPaymentDateTime: + $ref: "#/components/schemas/FirstPaymentDateTime" + NextPaymentDateTime: + $ref: "#/components/schemas/NextPaymentDateTime" + LastPaymentDateTime: + $ref: "#/components/schemas/LastPaymentDateTime" + FinalPaymentDateTime: + $ref: "#/components/schemas/FinalPaymentDateTime" + NumberOfPayments: + $ref: "#/components/schemas/NumberOfPayments" + StandingOrderStatusCode: + $ref: "#/components/schemas/OBExternalStandingOrderStatus1Code" + 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" + additionalProperties: false + OBStandingOrder6Detail: + type: "object" + required: + - "AccountId" + - "Frequency" + - "CreditorAccount" + properties: + AccountId: + $ref: "#/components/schemas/AccountId" + StandingOrderId: + $ref: "#/components/schemas/StandingOrderId" + Frequency: + $ref: "#/components/schemas/Frequency_1" + Reference: + $ref: "#/components/schemas/Reference" + FirstPaymentDateTime: + $ref: "#/components/schemas/FirstPaymentDateTime" + NextPaymentDateTime: + $ref: "#/components/schemas/NextPaymentDateTime" + LastPaymentDateTime: + $ref: "#/components/schemas/LastPaymentDateTime" + FinalPaymentDateTime: + $ref: "#/components/schemas/FinalPaymentDateTime" + NumberOfPayments: + $ref: "#/components/schemas/NumberOfPayments" + StandingOrderStatusCode: + $ref: "#/components/schemas/OBExternalStandingOrderStatus1Code" + 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" + 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/OBExternalStatementType1Code" + 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/OBExternalStatementBenefitType1Code" + 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/OBExternalStatementFeeType1Code" + Rate: + $ref: "#/components/schemas/OBRate1_0" + RateType: + $ref: "#/components/schemas/OBExternalStatementFeeRateType1Code" + Frequency: + $ref: "#/components/schemas/OBExternalStatementFeeFrequency1Code" + 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/OBExternalStatementInterestType1Code" + Rate: + $ref: "#/components/schemas/OBRate1_1" + RateType: + $ref: "#/components/schemas/OBExternalStatementInterestRateType1Code" + Frequency: + $ref: "#/components/schemas/OBExternalStatementInterestFrequency1Code" + 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/OBExternalStatementAmountType1Code" + Amount: + $ref: "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_8" + 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/OBExternalStatementDateTimeType1Code" + 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/OBExternalStatementRateType1Code" + 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/OBExternalStatementValueType1Code" + 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/OBExternalStatementType1Code" + 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/OBExternalStatementBenefitType1Code" + 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/OBExternalStatementFeeType1Code" + Rate: + $ref: "#/components/schemas/OBRate1_0" + RateType: + $ref: "#/components/schemas/OBExternalStatementFeeRateType1Code" + Frequency: + $ref: "#/components/schemas/OBExternalStatementFeeFrequency1Code" + 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/OBExternalStatementInterestType1Code" + Rate: + $ref: "#/components/schemas/OBRate1_1" + RateType: + $ref: "#/components/schemas/OBExternalStatementInterestRateType1Code" + Frequency: + $ref: "#/components/schemas/OBExternalStatementInterestFrequency1Code" + 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/OBExternalStatementDateTimeType1Code" + 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/OBExternalStatementRateType1Code" + 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/OBExternalStatementValueType1Code" + 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/OBExternalStatementType1Code" + 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/OBExternalStatementBenefitType1Code" + 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/OBExternalStatementFeeType1Code" + Rate: + $ref: "#/components/schemas/OBRate1_0" + RateType: + $ref: "#/components/schemas/OBExternalStatementFeeRateType1Code" + Frequency: + $ref: "#/components/schemas/OBExternalStatementFeeFrequency1Code" + 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/OBExternalStatementInterestType1Code" + Rate: + $ref: "#/components/schemas/OBRate1_1" + RateType: + $ref: "#/components/schemas/OBExternalStatementInterestRateType1Code" + Frequency: + $ref: "#/components/schemas/OBExternalStatementInterestFrequency1Code" + 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/OBExternalStatementAmountType1Code" + Amount: + $ref: "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_8" + 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/OBExternalStatementDateTimeType1Code" + 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/OBExternalStatementRateType1Code" + 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/OBExternalStatementValueType1Code" + additionalProperties: false + 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/OBEntryStatus1Code" + TransactionMutability: + $ref: "#/components/schemas/OBTransactionMutability1Code" + 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" + 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" + 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/OBEntryStatus1Code" + TransactionMutability: + $ref: "#/components/schemas/OBTransactionMutability1Code" + 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" + CardInstrument: + $ref: "#/components/schemas/OBTransactionCardInstrument1" + SupplementaryData: + $ref: "#/components/schemas/OBSupplementaryData1" + 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/OBEntryStatus1Code" + TransactionMutability: + $ref: "#/components/schemas/OBTransactionMutability1Code" + 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" + 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" + additionalProperties: false + OBTransactionCardInstrument1: + type: "object" + required: + - "CardSchemeName" + description: "Set of elements to describe the card instrument used in the transaction." + properties: + CardSchemeName: + description: "Name of the card scheme." + type: "string" + enum: + - "AmericanExpress" + - "Diners" + - "Discover" + - "MasterCard" + - "VISA" + AuthorisationType: + description: "The card authorisation type." + 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 + 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" + minLength: 1 + maxLength: 40 + PartyNumber: + description: "Number assigned by an agent to identify its customer." + type: "string" + minLength: 1 + maxLength: 35 + PhoneNumber_0: + description: "Collection of information that identifies a phone number, as defined by telecom services." + 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" + pattern: "\\+[0-9]{1,3}-[0-9()+\\-]{1,30}" + 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 + 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" + 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" + minLength: 1 + maxLength: 35 + OBBeneficiaryType1Code: + description: "Specifies the Beneficiary Type." + type: "string" + 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" + 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" + 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" + 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" + 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" + format: "date-time" + StatementId: + description: "Unique identifier for the statement resource within an servicing institution. This identifier is both unique and immutable." + type: "string" + minLength: 1 + maxLength: 40 + StatementReference: + description: "Unique reference for the statement. This reference may be optionally populated if available." + type: "string" + 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" + minLength: 1 + maxLength: 70 + TownName: + description: "Name of a built-up area, with defined boundaries, and a local government." + type: "string" + minLength: 1 + maxLength: 35 + TransactionId: + description: "Unique identifier for the transaction within an 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 + 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" + diff --git a/client-api-and-mock-server/core-bank-api-mock-server/.gitignore b/client-api-and-mock-server/core-bank-api-mock-server/.gitignore new file mode 100644 index 0000000..a6ef8d5 --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/.gitignore @@ -0,0 +1,26 @@ +target +.idea +.vscode +.factorypath +.bower.json +*.log +*.log.1 +*.swp +*.sublime-project +*.sublime-workspace +*.classpath +*.project +*.prefs +*.iml +.settings +logs +.tmp +node_tmp +tmp +~$*.* +.~lock.* +*.lck +.DS_Store +.build +build +.todo \ No newline at end of file diff --git a/client-api-and-mock-server/core-bank-api-mock-server/README.md b/client-api-and-mock-server/core-bank-api-mock-server/README.md new file mode 100644 index 0000000..66c266e --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/README.md @@ -0,0 +1,158 @@ +# CS Openbanking API Mock Server + +This project creates a REST server that provides a mock implementation of an API to simulate a backend system. + +The API is defined by three Swagger json specs: + +- [Security](docs/api-specs/Authenticate.yml) : Describes security endpoints such as User Authentication. +- [Accounts](docs/api-specs/account-info-openapi.yml) : Describes endpoints related to Accounts and Balances (e.g. list balances) + + +### How to build + +Simply type: +``` +$ mvn clean package +``` + +### How to run + +There are two ways you can run this Mock Server: + +##### 1. As a Spring Boot application running locally + +Just type the following command from the root directory of the project: + +``` +$ mvn spring-boot:run +``` + +##### 2. As a Spring Boot application running in a Docker container + +Note for this option, you need to have Docker installed in your workstation. or you can use [Colima](https://github.com/abiosoft/colima) instead. + +First, build the Docker image by typing the following command: + +``` +$ mvn compile jib:dockerBuild +``` + +You can see the list of all docker images on your system using the command: + +``` +$ docker image ls +``` + +This should display our newly built docker image: + +``` +REPOSITORY TAG IMAGE ID +core-bank-api-mock-server 1.0-SNAPSHOT 277188d053b7 +``` + +Once you have the docker image, you can run it using `docker run` command like so: + +``` +$ docker run -d -p 9091:9091 core-bank-api-mock-server:1.0-SNAPSHOT +``` + +-d option runs the container in the background and as a result it gives you +the container ID. You can see the list of all containers running with: + +``` +$ docker container ls + +CONTAINER ID IMAGE COMMAND CREATED STATUS +a9f84f3cd35d core-bank-api-mock-server:1.0-SNAPSHOT "java -jar /opt/app.…" 2 seconds ago Up 1 second +``` + +### View Swagger docs + +Once running, you can access the API documentation at: + +- [swagger-ui](http://localhost:9091/swagger-ui.html) +- [api-docs](http://localhost:9091/api-docs) + + +### How to test + +Do you have postman? + +If so, just import [Postman Collection](postman/Mock%20API%20Server%20Postman.postman_collection.json). + +## Implement Mock Controllers + +The project provides a set of utility classes that helps to implement the mock controllers and offers an opinionated way to implemented them. + +### Mock Files + +The data to be returned by the mock controllers could be defined in a json file, this file has the structure: +```json +{ + "status-code": 200, + "response": { + } +} +``` +Where `status-code` is the http response status and the `response` field is the json object to be returned by the mock server + +These files should be located in any folder inside of the `mock-data` folder in the `resources` folder of the project. The files +could be prefixed with any value so it could identified faster as `error-account101`. The expected file extension for the files is `.json`. +All of these parameters could be configured in the `application.yml` + +```yaml +mock-server: + root-path: classpath:mock-data + file-extension: .json + prefix-separator: "-" +``` +For example a mock file could be located as `resources/mock-data/accounts/error-accounts101` + +### Controllers + +To implement a mock controller the project provides the abstract class `AbstractMockController` that contains common logic +to help in the implementation of the controller's method avoiding boilerplate code and duplication of code. + +This could be an extract for a controller implementation: + +```java +@Controller +public class OpenBankingAccountsApiController extends AbstractMockController implements OpenBankingAccountsApi { + + private static final Logger logger = LoggerFactory.getLogger(OpenBankingAccountsApiController.class); + + @Override + protected MockDataPathConfiguration defineMockDataPathConfiguration() { + return new MockDataPathConfiguration("accounts", "accounts"); + } + + @Override + @SuppressWarnings("unchecked") + public ResponseEntity getAccounts( + @ApiParam(value = "Authorisation token provided following authentication", required = true) + @RequestHeader(value = "X-Authorization-B2C", required = true) String xAuthorizationB2C, + @ApiParam(value = "An RFC4122 UID - used for idempotence", required = true) + @RequestHeader(value = "CWExternalReference", required = true) String cwExternalReference) { + + validateField(xAuthorizationB2C, "Header: X-Authorization-B2C"); + TokenDecoder decodedToken = TokenDecoder.getDecoded(xAuthorizationB2C); + return mockDataResponse(decodedToken.CWUser); + } +} +``` + +You could review the classes documentation to see more information. + +### Other classes + +The project provides other classes to support common mechanism between the mock controllers. + +- `MockControllerInterceptor` Implement common logic before and after a controller's method invocation +- `ResponseExceptionHandler` Implement the logic to manage Exception raise by the mock server classes +- `MockPathProcessor` Process the json mock file, if you want to change the structure of the file this class should be modified. + +The idea behind all the classes provided by the project is to be updated and customized depending of the project's need. + + +### Exercise +Generate the Payment Initiation API Mock Controller and create mock data under /mock-data for Open Banking API Spec [Open Banking API](https://github.com/OpenBankingUK/read-write-api-specs). \ No newline at end of file diff --git a/client-api-and-mock-server/core-bank-api-mock-server/docs/api-specs/Authenticate.yml b/client-api-and-mock-server/core-bank-api-mock-server/docs/api-specs/Authenticate.yml new file mode 100644 index 0000000..4610f0a --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/docs/api-specs/Authenticate.yml @@ -0,0 +1,176 @@ +openapi: 3.0.0 +info: + version: '1.0.0' + title: Cookbook - Open Banking Backend APIs + description: Swagger definition + license: + name: Contact Backbase + url: 'http://www.backbase.com' +paths: + "/authentication/v1/tokens": + post: + tags: + - authentication + summary: Authenticate user to get an Authentication Token – i.e. login + operationId: authenticate + + parameters: + - name: apiRequestOriginator + description: Application invoking the API + in: header + schema: + type: string + required: true + - name: requestID + description: Unique request Id for tracking purposes + in: header + schema: + type: string + required: true + + requestBody: + description: Authenticate request body + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/Request' + + responses: + '201': + description: Token created + content: + application/json: + schema: + $ref: "#/components/schemas/Response" + '400': + description: Malformed request + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + example: + errorCode: EAUT201 + errorDescription: Malformed Request - Required input data missing + + '403': + description: Authentication failed + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + example: + errorCode: EAUT202 + errorDescription: Authentication Failed - Invalid Authentication Data + '500': + description: Internal server error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + example: + errorCode: EAUT903 + errorDescription: Internal Error + '502': + description: Bad gateway + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + example: + errorCode: EAUT902 + errorDescription: Cannot connect to Target System + +components: + schemas: + Request: + type: object + properties: + customerNumber: + type: string + description: Customer number + example: 12345678910 + surname: + type: string + description: Customer surname + example: Smith + password: + type: string + description: Customer password + example: abc123 + required: + - customerNumber + - surname + - password + + Response: + type: object + properties: + authenticationToken: + type: string + description: Authentication token + + ErrorResponse: + description: > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTTP Status code error code Error description
400EAUT101Missing Input Parameter - RequestID
EAUT102Missing Input Parameter - apiRequestOriginator
EAUT103Missing Input Parameter - Customer Number
EAUT104Missing Input Parameter - Surname
EAUT105Missing Input Parameter - Password
EAUT201Malformed Request - Required input data missing
403 EAUT202Authentication Failed - Invalid Authentication Data
EAUT203Authentication Failed - Password suspended
EAUT204Authentication Failed - Password expired
EAUT205Authentication Failed - Customer blocked
EAUT206Authentication Failed - Customer access not allowed as managed by proxy
EAUT207Authentication Failed - Authentication Details could not be retrieved. Possibly Unregistered customer.
EAUT208Authentication Failed - Invalid Authentication Data
EAUT299Authentication Failed - Target system (SBP) returned Error code
500EAUT903Internal Error
+
+ + type: object + properties: + errorCode: + description: Error code identifying cause of the problem, format EAUT### + type: string + example: EAUT101 + errorDescription: + description: Description of the error + type: string + example: Authentication Failed - Invalid Authentication Data \ No newline at end of file diff --git a/client-api-and-mock-server/core-bank-api-mock-server/docs/api-specs/account-info-openapi.yml b/client-api-and-mock-server/core-bank-api-mock-server/docs/api-specs/account-info-openapi.yml new file mode 100644 index 0000000..9274a4e --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/docs/api-specs/account-info-openapi.yml @@ -0,0 +1,10014 @@ +openapi: "3.0.0" +info: + title: "Account and Transaction API Specification" + description: "Swagger for Account and Transaction API Specification" + 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: "3.1.9" +paths: + /account-access-consents: + post: + tags: + - "Account Access" + summary: "Create Account Access Consents" + 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" + 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" + summary: "Get Account Access Consents" + 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" + 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" + summary: "Delete Account Access Consents" + 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" + 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" + 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" + 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 Accounts" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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 Parties" + 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" + 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 Products" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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 Statements" + 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" + 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 Statements" + 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" + 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: + - "Transactions" + summary: "Get Transactions" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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 Parties" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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/v3.1/aisp" +components: + parameters: + FromBookingDateTimeParam: + in: "query" + name: "fromBookingDateTime" + description: "The UTC ISO 8601 Date Time to filter transactions FROM\nNB Time component is optional - set to 00:00:00 for just Date.\nIf the Date Time contains a timezone, the ASPSP must ignore the timezone component." + schema: + type: "string" + format: "date-time" + ToBookingDateTimeParam: + in: "query" + name: "toBookingDateTime" + description: "The UTC ISO 8601 Date Time to filter transactions TO\nNB Time component is optional - set to 00:00:00 for just Date.\nIf the Date Time contains a timezone, the ASPSP must ignore the timezone component." + schema: + type: "string" + format: "date-time" + FromStatementDateTimeParam: + in: "query" + name: "fromStatementDateTime" + description: "The UTC ISO 8601 Date Time to filter statements FROM\nNB Time component is optional - set to 00:00:00 for just Date.\nIf the Date Time contains a timezone, the ASPSP must ignore the timezone component." + schema: + type: "string" + format: "date-time" + ToStatementDateTimeParam: + in: "query" + name: "toStatementDateTime" + description: "The UTC ISO 8601 Date Time to filter statements TO\nNB Time component is optional - set to 00:00:00 for just Date.\nIf the Date Time contains a timezone, the ASPSP must ignore the timezone component." + schema: + type: "string" + format: "date-time" + 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" + 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" + 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" + 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" + 200AccountsRead: + description: "Accounts Read" + 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/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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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" + 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/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" + 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" + 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" + 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" + 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: + AccountId: + description: "A unique and immutable identifier used to identify the account resource. This identifier has no meaning to the account owner." + type: "string" + 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" + 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" + 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" + BuildingNumber: + description: "Number that identifies the position of a building on a street." + type: "string" + minLength: 1 + maxLength: 16 + 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" + format: "date-time" + 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" + format: "date-time" + DebtorReference: + description: "A reference value provided by the PSU to the PISP while setting up the scheduled payment." + type: "string" + 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" + minLength: 1 + maxLength: 128 + Description_2: + description: "Description that may be available for the statement interest." + 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 + EmailAddress: + description: "Address for electronic mail (e-mail)." + type: "string" + 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" + 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" + 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: "Specifies a character string with a maximum length of 350 characters." + type: "string" + 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" + minLength: 1 + maxLength: 256 + Identification_1: + description: "Unique and unambiguous identification of the servicing institution." + type: "string" + 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 + 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" + 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" + 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" + 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" + 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" + 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" + 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.AccountType \n * Data.AccountSubType\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/OBAccountStatus1Code" + StatusUpdateDateTime: + $ref: "#/components/schemas/StatusUpdateDateTime" + Currency: + $ref: "#/components/schemas/ActiveOrHistoricCurrencyCode_0" + AccountType: + $ref: "#/components/schemas/OBExternalAccountType1Code" + AccountSubType: + $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/OBExternalSwitchStatusCode" + Account: + type: "array" + items: + type: "object" + description: "Provides the details to identify an account." + required: + - "SchemeName" + - "Identification" + properties: + SchemeName: + $ref: "#/components/schemas/OBExternalAccountIdentification4Code" + Identification: + $ref: "#/components/schemas/Identification_0" + Name: + $ref: "#/components/schemas/Name_0" + SecondaryIdentification: + $ref: "#/components/schemas/SecondaryIdentification" + 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" + - "Currency" + - "AccountType" + - "AccountSubType" + properties: + AccountId: + $ref: "#/components/schemas/AccountId" + Status: + $ref: "#/components/schemas/OBAccountStatus1Code" + StatusUpdateDateTime: + $ref: "#/components/schemas/StatusUpdateDateTime" + Currency: + $ref: "#/components/schemas/ActiveOrHistoricCurrencyCode_0" + AccountType: + $ref: "#/components/schemas/OBExternalAccountType1Code" + AccountSubType: + $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/OBExternalSwitchStatusCode" + additionalProperties: false + OBAccount6Detail: + type: "object" + description: "Unambiguous identification of the account to which credit and debit entries are made." + required: + - "AccountId" + - "Currency" + - "AccountType" + - "AccountSubType" + - "Account" + properties: + AccountId: + $ref: "#/components/schemas/AccountId" + Status: + $ref: "#/components/schemas/OBAccountStatus1Code" + StatusUpdateDateTime: + $ref: "#/components/schemas/StatusUpdateDateTime" + Currency: + $ref: "#/components/schemas/ActiveOrHistoricCurrencyCode_0" + AccountType: + $ref: "#/components/schemas/OBExternalAccountType1Code" + AccountSubType: + $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/OBExternalSwitchStatusCode" + Account: + type: "array" + items: + type: "object" + description: "Provides the details to identify an account." + required: + - "SchemeName" + - "Identification" + properties: + SchemeName: + $ref: "#/components/schemas/OBExternalAccountIdentification4Code" + Identification: + $ref: "#/components/schemas/Identification_0" + Name: + $ref: "#/components/schemas/Name_0" + SecondaryIdentification: + $ref: "#/components/schemas/SecondaryIdentification" + Servicer: + $ref: "#/components/schemas/OBBranchAndFinancialInstitutionIdentification5_0" + additionalProperties: false + OBAccountStatus1Code: + description: "Specifies the status of account resource in code form." + type: "string" + 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" + 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" + 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" + OBAddressTypeCode: + description: "Identifies the nature of the postal address." + type: "string" + enum: + - "Business" + - "Correspondence" + - "DeliveryTo" + - "MailTo" + - "POBox" + - "Postal" + - "Residential" + - "Statement" + 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.\n\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.\n\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. \n\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 an 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 an 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." + type: "string" + enum: + - "ClosingAvailable" + - "ClosingBooked" + - "ClosingCleared" + - "Expected" + - "ForwardAvailable" + - "Information" + - "InterimAvailable" + - "InterimBooked" + - "InterimCleared" + - "OpeningAvailable" + - "OpeningBooked" + - "OpeningCleared" + - "PreviouslyClosedBooked" + 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/OBBeneficiaryType1Code" + 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/OBBeneficiaryType1Code" + 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/OBBeneficiaryType1Code" + 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/OBExternalFinancialInstitutionIdentification4Code" + Identification: + $ref: "#/components/schemas/Identification_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/OBExternalFinancialInstitutionIdentification4Code" + Identification: + $ref: "#/components/schemas/Identification_1" + 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/OBExternalFinancialInstitutionIdentification4Code" + Identification: + $ref: "#/components/schemas/Identification_1" + Name: + $ref: "#/components/schemas/Name_1" + PostalAddress: + $ref: "#/components/schemas/OBPostalAddress6" + OBBranchAndFinancialInstitutionIdentification6_1: + type: "object" + description: "Financial institution servicing an account for the creditor." + properties: + SchemeName: + $ref: "#/components/schemas/OBExternalFinancialInstitutionIdentification4Code" + Identification: + $ref: "#/components/schemas/Identification_2" + Name: + $ref: "#/components/schemas/Name_1" + PostalAddress: + $ref: "#/components/schemas/OBPostalAddress6" + OBBranchAndFinancialInstitutionIdentification6_2: + type: "object" + description: "Financial institution servicing an account for the debtor." + properties: + SchemeName: + $ref: "#/components/schemas/OBExternalFinancialInstitutionIdentification4Code" + Identification: + $ref: "#/components/schemas/Identification_2" + Name: + $ref: "#/components/schemas/Name_1" + PostalAddress: + $ref: "#/components/schemas/OBPostalAddress6" + OBCashAccount5_0: + type: "object" + required: + - "SchemeName" + - "Identification" + description: "Provides the details to identify the beneficiary account." + properties: + SchemeName: + $ref: "#/components/schemas/OBExternalAccountIdentification4Code" + Identification: + $ref: "#/components/schemas/Identification_0" + Name: + $ref: "#/components/schemas/Name_0" + SecondaryIdentification: + $ref: "#/components/schemas/SecondaryIdentification" + OBCashAccount5_1: + type: "object" + required: + - "SchemeName" + - "Identification" + description: "Provides the details to identify the beneficiary account." + properties: + SchemeName: + $ref: "#/components/schemas/OBExternalAccountIdentification4Code" + Identification: + description: "Beneficiary account identification." + type: "string" + minLength: 1 + maxLength: 256 + Name: + $ref: "#/components/schemas/Name_0" + SecondaryIdentification: + $ref: "#/components/schemas/SecondaryIdentification" + 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/OBExternalAccountIdentification4Code" + Identification: + $ref: "#/components/schemas/Identification_0" + Name: + $ref: "#/components/schemas/Name_0" + SecondaryIdentification: + $ref: "#/components/schemas/SecondaryIdentification" + OBCashAccount6_1: + type: "object" + description: "Unambiguous identification of the account of the debtor, in the case of a crebit transaction." + properties: + SchemeName: + $ref: "#/components/schemas/OBExternalAccountIdentification4Code" + Identification: + $ref: "#/components/schemas/Identification_0" + Name: + $ref: "#/components/schemas/Name_0" + SecondaryIdentification: + $ref: "#/components/schemas/SecondaryIdentification" + OBCreditDebitCode_0: + description: "Indicates whether the amount is a credit or a debit. \nUsage: A zero amount is considered to be a credit amount." + type: "string" + enum: + - "Credit" + - "Debit" + OBCreditDebitCode_1: + description: "Indicates whether the transaction is a credit or a debit entry." + 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." + type: "string" + 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" + OBEntryStatus1Code: + description: "Status of a transaction entry on the books of the account servicer." + type: "string" + enum: + - "Booked" + - "Pending" + - "Rejected" + OBTransactionMutability1Code: + description: "Specifies the Mutability of the Transaction record." + type: "string" + enum: + - "Mutable" + - "Immutable" + OBError1: + type: "object" + properties: + ErrorCode: + description: "Low level textual error code, e.g., UK.OBIE.Field.Missing" + type: "string" + x-namespaced-enum: + - "UK.OBIE.Field.Expected" + - "UK.OBIE.Field.Invalid" + - "UK.OBIE.Field.InvalidDate" + - "UK.OBIE.Field.Missing" + - "UK.OBIE.Field.Unexpected" + - "UK.OBIE.Header.Invalid" + - "UK.OBIE.Header.Missing" + - "UK.OBIE.Reauthenticate" + - "UK.OBIE.Resource.ConsentMismatch" + - "UK.OBIE.Resource.InvalidConsentStatus" + - "UK.OBIE.Resource.InvalidFormat" + - "UK.OBIE.Resource.NotFound" + - "UK.OBIE.Rules.AfterCutOffDateTime" + - "UK.OBIE.Rules.DuplicateReference" + - "UK.OBIE.Signature.Invalid" + - "UK.OBIE.Signature.InvalidClaim" + - "UK.OBIE.Signature.Malformed" + - "UK.OBIE.Signature.Missing" + - "UK.OBIE.Signature.MissingClaim" + - "UK.OBIE.Signature.Unexpected" + - "UK.OBIE.UnexpectedError" + - "UK.OBIE.Unsupported.AccountIdentifier" + - "UK.OBIE.Unsupported.AccountSecondaryIdentifier" + - "UK.OBIE.Unsupported.Currency" + - "UK.OBIE.Unsupported.Frequency" + - "UK.OBIE.Unsupported.LocalInstrument" + - "UK.OBIE.Unsupported.Scheme" + Message: + description: "A description of the error that occurred. e.g., 'A mandatory field isn't supplied' or 'RequestedExecutionDateTime must be in future'\nOBIE 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" + - "Message" + additionalProperties: false + minProperties: 1 + OBErrorResponse1: + description: "An array of detail error codes, and messages, and URLs to documentation to help remediation." + type: "object" + properties: + Code: + description: "High level textual error code, to help categorize the errors." + type: "string" + minLength: 1 + maxLength: 40 + Id: + description: "A unique reference for the error instance, for audit purposes, in case of unknown/unclassified errors." + type: "string" + minLength: 1 + maxLength: 40 + Message: + description: "Brief Error message, e.g., 'There is something wrong with the request parameters provided'" + type: "string" + minLength: 1 + maxLength: 500 + Errors: + items: + $ref: "#/components/schemas/OBError1" + type: "array" + minItems: 1 + required: + - "Code" + - "Message" + - "Errors" + additionalProperties: false + OBExternalAccountIdentification4Code: + description: "Name of the identification scheme, in a coded form as published in an external list." + type: "string" + x-namespaced-enum: + - "UK.OBIE.BBAN" + - "UK.OBIE.IBAN" + - "UK.OBIE.PAN" + - "UK.OBIE.Paym" + - "UK.OBIE.SortCodeAccountNumber" + OBExternalAccountRole1Code: + description: "A party’s role with respect to the related account." + 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)." + type: "string" + enum: + - "ChargeCard" + - "CreditCard" + - "CurrentAccount" + - "EMoney" + - "Loan" + - "Mortgage" + - "PrePaidCard" + - "Savings" + OBExternalAccountType1Code: + description: "Specifies the type of account (personal or business)." + type: "string" + enum: + - "Business" + - "Personal" + OBExternalDirectDebitStatus1Code: + description: "Specifies the status of the direct debit in code form." + type: "string" + enum: + - "Active" + - "Inactive" + OBExternalFinancialInstitutionIdentification4Code: + description: "Name of the identification scheme, in a coded form as published in an external list." + type: "string" + x-namespaced-enum: + - "UK.OBIE.BICFI" + OBExternalSwitchStatusCode: + description: "Specifies the switch status for the account, in a coded form." + type: "string" + x-namespaced-enum: + - "UK.CASS.NotSwitched" + - "UK.CASS.SwitchCompleted" + OBExternalLegalStructureType1Code: + description: "Legal standing of the party." + type: "string" + 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" + OBExternalPartyType1Code: + description: "Party type, in a coded form." + type: "string" + enum: + - "Delegate" + - "Joint" + - "Sole" + OBExternalScheduleType1Code: + description: "Specifies the scheduled payment date type requested" + type: "string" + enum: + - "Arrival" + - "Execution" + OBExternalStandingOrderStatus1Code: + description: "Specifies the status of the standing order in code form." + type: "string" + enum: + - "Active" + - "Inactive" + OBExternalStatementAmountType1Code: + description: "Amount type, in a coded form." + type: "string" + 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" + OBExternalStatementBenefitType1Code: + description: "Benefit type, in a coded form." + type: "string" + x-namespaced-enum: + - "UK.OBIE.Cashback" + - "UK.OBIE.Insurance" + - "UK.OBIE.TravelDiscount" + - "UK.OBIE.TravelInsurance" + OBExternalStatementDateTimeType1Code: + description: "Date time type, in a coded form." + type: "string" + 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" + OBExternalStatementFeeFrequency1Code: + description: "How frequently the fee is applied to the Account." + type: "string" + x-namespaced-enum: + - "UK.OBIE.ChargingPeriod" + - "UK.OBIE.PerTransactionAmount" + - "UK.OBIE.PerTransactionPercentage" + - "UK.OBIE.Quarterly" + - "UK.OBIE.StatementMonthly" + - "UK.OBIE.Weekly" + OBExternalStatementFeeRateType1Code: + description: "Description that may be available for the statement fee rate type." + type: "string" + x-namespaced-enum: + - "UK.OBIE.AER" + - "UK.OBIE.EAR" + OBExternalStatementFeeType1Code: + description: "Fee type, in a coded form." + type: "string" + 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" + OBExternalStatementInterestFrequency1Code: + description: "Specifies the statement fee type requested" + type: "string" + x-namespaced-enum: + - "UK.OBIE.Daily" + - "UK.OBIE.HalfYearly" + - "UK.OBIE.Monthly" + - "UK.OBIE.PerStatementDate" + - "UK.OBIE.Quarterly" + - "UK.OBIE.Weekly" + - "UK.OBIE.Yearly" + OBExternalStatementInterestRateType1Code: + description: "Description that may be available for the statement Interest rate type." + type: "string" + x-namespaced-enum: + - "UK.OBIE.BOEBaseRate" + - "UK.OBIE.FixedRate" + - "UK.OBIE.Gross" + - "UK.OBIE.LoanProviderBaseRate" + - "UK.OBIE.Net" + OBExternalStatementInterestType1Code: + description: "Interest amount type, in a coded form." + type: "string" + x-namespaced-enum: + - "UK.OBIE.BalanceTransfer" + - "UK.OBIE.Cash" + - "UK.OBIE.EstimatedNext" + - "UK.OBIE.Purchase" + - "UK.OBIE.Total" + OBExternalStatementRateType1Code: + description: "Statement rate type, in a coded form." + type: "string" + 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" + OBExternalStatementType1Code: + description: "Statement type, in a coded form." + type: "string" + enum: + - "AccountClosure" + - "AccountOpening" + - "Annual" + - "Interim" + - "RegularPeriodic" + OBExternalStatementValueType1Code: + description: "Statement value type, in a coded form." + type: "string" + 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" + 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.\n\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.\n\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. \n\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 an 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 an 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/OBExternalPartyType1Code" + Name: + $ref: "#/components/schemas/Name_3" + FullLegalName: + $ref: "#/components/schemas/FullLegalName" + LegalStructure: + $ref: "#/components/schemas/OBExternalLegalStructureType1Code" + BeneficialOwnership: + type: "boolean" + AccountRole: + $ref: "#/components/schemas/OBExternalAccountRole1Code" + 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: + type: "object" + description: "Postal address of a party." + required: + - "Country" + properties: + AddressType: + $ref: "#/components/schemas/OBAddressTypeCode" + AddressLine: + type: "array" + items: + description: "Information that locates and identifies a specific address, as defined by postal services, that is presented in free format text." + type: "string" + minLength: 1 + maxLength: 70 + minItems: 0 + maxItems: 5 + StreetName: + $ref: "#/components/schemas/StreetName" + BuildingNumber: + $ref: "#/components/schemas/BuildingNumber" + PostCode: + $ref: "#/components/schemas/PostCode" + TownName: + $ref: "#/components/schemas/TownName" + CountrySubDivision: + $ref: "#/components/schemas/CountrySubDivision" + Country: + $ref: "#/components/schemas/CountryCode" + 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" + format: "uri" + Id: + description: "Unique identification as assigned by the ASPSP to uniquely identify the related resource." + type: "string" + minLength: 1 + maxLength: 40 + OBPostalAddress6: + type: "object" + description: "Information that locates and identifies a specific address, as defined by postal services." + properties: + AddressType: + $ref: "#/components/schemas/OBAddressTypeCode" + 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: + $ref: "#/components/schemas/StreetName" + BuildingNumber: + $ref: "#/components/schemas/BuildingNumber" + 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)" + type: "number" + OBRate1_1: + description: "field representing a percentage (e.g. 0.05 represents 5% and 0.9525 represents 95.25%). Note the number of decimal places may vary." + 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" + 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." + 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" + minItems: 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" + additionalProperties: false + 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." + 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" + additionalProperties: false + 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: + description: "Specifies the status of consent resource in code form." + type: "string" + enum: + - "Authorised" + - "AwaitingAuthorisation" + - "Rejected" + - "Revoked" + 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." + 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 + 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" + - "MandateIdentification" + - "Name" + properties: + AccountId: + $ref: "#/components/schemas/AccountId" + DirectDebitId: + $ref: "#/components/schemas/DirectDebitId" + MandateIdentification: + $ref: "#/components/schemas/MandateIdentification" + DirectDebitStatusCode: + $ref: "#/components/schemas/OBExternalDirectDebitStatus1Code" + Name: + $ref: "#/components/schemas/Name_2" + PreviousPaymentDateTime: + $ref: "#/components/schemas/PreviousPaymentDateTime" + Frequency: + description: "Regularity with which direct debit instructions are to be created and processed." + type: "string" + x-namespaced-enum: + - "UK.OBIE.Annual" + - "UK.OBIE.Daily" + - "UK.OBIE.Fortnightly" + - "UK.OBIE.HalfYearly" + - "UK.OBIE.Monthly" + - "UK.OBIE.NotKnown" + - "UK.OBIE.Quarterly" + - "UK.OBIE.Weekly" + 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" + minLength: 1 + maxLength: 40 + OfferType: + description: "Offer type, in a coded form." + type: "string" + enum: + - "BalanceTransfer" + - "LimitIncrease" + - "MoneyTransfer" + - "Other" + - "PromotionalRate" + Description: + description: "Further details of the offer." + type: "string" + 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" + 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" + format: "date-time" + Rate: + description: "Rate associated with the offer type." + type: "string" + pattern: "^(-?\\d{1,3}){1}(\\.\\d{1,4}){0,1}$" + Value: + description: "Value associated with the offer type." + type: "integer" + Term: + description: "Further details of the term of the offer." + type: "string" + minLength: 1 + maxLength: 500 + URL: + description: "URL (Uniform Resource Locator) where documentation on the offer can be found" + type: "string" + 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 avaiable 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" + minLength: 1 + maxLength: 350 + ProductId: + description: "The unique ID that has been internally assigned by the financial institution to each of the current account banking products they market to their retail and/or small to medium enterprise (SME) customers." + type: "string" + 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" + minLength: 1 + maxLength: 70 + ProductType: + description: "Product type : Personal Current Account, Business Current Account" + type: "string" + enum: + - "BusinessCurrentAccount" + - "CommercialCreditCard" + - "Other" + - "PersonalCurrentAccount" + - "SMELoan" + MarketingStateId: + description: "Unique and unambiguous identification of a Product Marketing State." + type: "string" + minLength: 1 + maxLength: 35 + OtherProductType: + type: "object" + required: + - "Name" + - "Description" + description: "Other product type details associated with the account." + properties: + Name: + description: "Long name associated with the product" + type: "string" + minLength: 1 + maxLength: 350 + Description: + description: "Description of the Product associated with the account" + type: "string" + 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 an 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 an 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 + OBRisk2: + description: "The Risk section is sent by the initiating party to the ASPSP. It is used to specify additional details for risk scoring for Account Info." + type: "object" + properties: { } + 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/OBExternalScheduleType1Code" + 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/OBExternalScheduleType1Code" + 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/OBExternalScheduleType1Code" + 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" + - "Frequency" + properties: + AccountId: + $ref: "#/components/schemas/AccountId" + StandingOrderId: + $ref: "#/components/schemas/StandingOrderId" + Frequency: + $ref: "#/components/schemas/Frequency_1" + Reference: + $ref: "#/components/schemas/Reference" + FirstPaymentDateTime: + $ref: "#/components/schemas/FirstPaymentDateTime" + NextPaymentDateTime: + $ref: "#/components/schemas/NextPaymentDateTime" + LastPaymentDateTime: + $ref: "#/components/schemas/LastPaymentDateTime" + FinalPaymentDateTime: + $ref: "#/components/schemas/FinalPaymentDateTime" + NumberOfPayments: + $ref: "#/components/schemas/NumberOfPayments" + StandingOrderStatusCode: + $ref: "#/components/schemas/OBExternalStandingOrderStatus1Code" + 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" + additionalProperties: false + OBStandingOrder6Basic: + type: "object" + required: + - "AccountId" + - "Frequency" + properties: + AccountId: + $ref: "#/components/schemas/AccountId" + StandingOrderId: + $ref: "#/components/schemas/StandingOrderId" + Frequency: + $ref: "#/components/schemas/Frequency_1" + Reference: + $ref: "#/components/schemas/Reference" + FirstPaymentDateTime: + $ref: "#/components/schemas/FirstPaymentDateTime" + NextPaymentDateTime: + $ref: "#/components/schemas/NextPaymentDateTime" + LastPaymentDateTime: + $ref: "#/components/schemas/LastPaymentDateTime" + FinalPaymentDateTime: + $ref: "#/components/schemas/FinalPaymentDateTime" + NumberOfPayments: + $ref: "#/components/schemas/NumberOfPayments" + StandingOrderStatusCode: + $ref: "#/components/schemas/OBExternalStandingOrderStatus1Code" + 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" + additionalProperties: false + OBStandingOrder6Detail: + type: "object" + required: + - "AccountId" + - "Frequency" + - "CreditorAccount" + properties: + AccountId: + $ref: "#/components/schemas/AccountId" + StandingOrderId: + $ref: "#/components/schemas/StandingOrderId" + Frequency: + $ref: "#/components/schemas/Frequency_1" + Reference: + $ref: "#/components/schemas/Reference" + FirstPaymentDateTime: + $ref: "#/components/schemas/FirstPaymentDateTime" + NextPaymentDateTime: + $ref: "#/components/schemas/NextPaymentDateTime" + LastPaymentDateTime: + $ref: "#/components/schemas/LastPaymentDateTime" + FinalPaymentDateTime: + $ref: "#/components/schemas/FinalPaymentDateTime" + NumberOfPayments: + $ref: "#/components/schemas/NumberOfPayments" + StandingOrderStatusCode: + $ref: "#/components/schemas/OBExternalStandingOrderStatus1Code" + 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" + 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/OBExternalStatementType1Code" + 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/OBExternalStatementBenefitType1Code" + 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/OBExternalStatementFeeType1Code" + Rate: + $ref: "#/components/schemas/OBRate1_0" + RateType: + $ref: "#/components/schemas/OBExternalStatementFeeRateType1Code" + Frequency: + $ref: "#/components/schemas/OBExternalStatementFeeFrequency1Code" + 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/OBExternalStatementInterestType1Code" + Rate: + $ref: "#/components/schemas/OBRate1_1" + RateType: + $ref: "#/components/schemas/OBExternalStatementInterestRateType1Code" + Frequency: + $ref: "#/components/schemas/OBExternalStatementInterestFrequency1Code" + 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/OBExternalStatementAmountType1Code" + Amount: + $ref: "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_8" + 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/OBExternalStatementDateTimeType1Code" + 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/OBExternalStatementRateType1Code" + 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/OBExternalStatementValueType1Code" + 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/OBExternalStatementType1Code" + 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/OBExternalStatementBenefitType1Code" + 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/OBExternalStatementFeeType1Code" + Rate: + $ref: "#/components/schemas/OBRate1_0" + RateType: + $ref: "#/components/schemas/OBExternalStatementFeeRateType1Code" + Frequency: + $ref: "#/components/schemas/OBExternalStatementFeeFrequency1Code" + 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/OBExternalStatementInterestType1Code" + Rate: + $ref: "#/components/schemas/OBRate1_1" + RateType: + $ref: "#/components/schemas/OBExternalStatementInterestRateType1Code" + Frequency: + $ref: "#/components/schemas/OBExternalStatementInterestFrequency1Code" + 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/OBExternalStatementDateTimeType1Code" + 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/OBExternalStatementRateType1Code" + 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/OBExternalStatementValueType1Code" + 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/OBExternalStatementType1Code" + 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/OBExternalStatementBenefitType1Code" + 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/OBExternalStatementFeeType1Code" + Rate: + $ref: "#/components/schemas/OBRate1_0" + RateType: + $ref: "#/components/schemas/OBExternalStatementFeeRateType1Code" + Frequency: + $ref: "#/components/schemas/OBExternalStatementFeeFrequency1Code" + 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/OBExternalStatementInterestType1Code" + Rate: + $ref: "#/components/schemas/OBRate1_1" + RateType: + $ref: "#/components/schemas/OBExternalStatementInterestRateType1Code" + Frequency: + $ref: "#/components/schemas/OBExternalStatementInterestFrequency1Code" + 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/OBExternalStatementAmountType1Code" + Amount: + $ref: "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount_8" + 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/OBExternalStatementDateTimeType1Code" + 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/OBExternalStatementRateType1Code" + 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/OBExternalStatementValueType1Code" + additionalProperties: false + 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/OBEntryStatus1Code" + TransactionMutability: + $ref: "#/components/schemas/OBTransactionMutability1Code" + 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" + 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" + 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/OBEntryStatus1Code" + TransactionMutability: + $ref: "#/components/schemas/OBTransactionMutability1Code" + 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" + CardInstrument: + $ref: "#/components/schemas/OBTransactionCardInstrument1" + SupplementaryData: + $ref: "#/components/schemas/OBSupplementaryData1" + 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/OBEntryStatus1Code" + TransactionMutability: + $ref: "#/components/schemas/OBTransactionMutability1Code" + 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" + 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" + additionalProperties: false + OBTransactionCardInstrument1: + type: "object" + required: + - "CardSchemeName" + description: "Set of elements to describe the card instrument used in the transaction." + properties: + CardSchemeName: + description: "Name of the card scheme." + type: "string" + enum: + - "AmericanExpress" + - "Diners" + - "Discover" + - "MasterCard" + - "VISA" + AuthorisationType: + description: "The card authorisation type." + 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 + 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" + minLength: 1 + maxLength: 40 + PartyNumber: + description: "Number assigned by an agent to identify its customer." + type: "string" + minLength: 1 + maxLength: 35 + PhoneNumber_0: + description: "Collection of information that identifies a phone number, as defined by telecom services." + 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" + pattern: "\\+[0-9]{1,3}-[0-9()+\\-]{1,30}" + 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 + 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" + 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" + minLength: 1 + maxLength: 35 + OBBeneficiaryType1Code: + description: "Specifies the Beneficiary Type." + type: "string" + 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" + 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" + 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" + 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" + 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" + format: "date-time" + StatementId: + description: "Unique identifier for the statement resource within an servicing institution. This identifier is both unique and immutable." + type: "string" + minLength: 1 + maxLength: 40 + StatementReference: + description: "Unique reference for the statement. This reference may be optionally populated if available." + type: "string" + 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" + minLength: 1 + maxLength: 70 + TownName: + description: "Name of a built-up area, with defined boundaries, and a local government." + type: "string" + minLength: 1 + maxLength: 35 + TransactionId: + description: "Unique identifier for the transaction within an 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 + 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" + diff --git a/client-api-and-mock-server/core-bank-api-mock-server/img/Screenshot 2022-06-10 at 12.26.31 PM.png b/client-api-and-mock-server/core-bank-api-mock-server/img/Screenshot 2022-06-10 at 12.26.31 PM.png new file mode 100644 index 0000000..c032af3 Binary files /dev/null and b/client-api-and-mock-server/core-bank-api-mock-server/img/Screenshot 2022-06-10 at 12.26.31 PM.png differ diff --git a/client-api-and-mock-server/core-bank-api-mock-server/pom.xml b/client-api-and-mock-server/core-bank-api-mock-server/pom.xml new file mode 100644 index 0000000..b201e8c --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/pom.xml @@ -0,0 +1,178 @@ + + + 4.0.0 + + + org.springframework.boot + spring-boot-starter-parent + 2.3.3.RELEASE + + + + com.backbase.cookbook + core-bank-api-mock-server + 1.0-SNAPSHOT + + Core Bank API :: Mock Server + Core Bank API Backend Mock Server + + + 11 + 2.9.2 + ${project.artifactId} + ${project.version} + + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.data + spring-data-commons + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-devtools + + + org.projectlombok + lombok + + + + io.springfox + springfox-swagger2 + ${springfox-version} + + + io.springfox + springfox-swagger-ui + ${springfox-version} + + + javax.xml.bind + jaxb-api + 2.3.1 + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + + + org.openapitools + jackson-databind-nullable + 0.2.1 + + + + org.hibernate.validator + hibernate-validator + + + com.fasterxml.jackson.core + jackson-databind + + + + + ${project.artifactId} + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + org.openapitools + openapi-generator-maven-plugin + + 5.2.1 + + + + generate + + generate-security-mock-api + + spring-boot + spring + ${project.basedir}/docs/api-specs/Authenticate.yml + com.backbase.openbanking.backend.model.auth.mock + com.backbase.openbanking.backend.api.auth.mock + true + true + false + false + + true + true + true + true + false + java8 + true + + + + + + generate + + generate-accounts-mock-api + + spring-boot + spring + ${project.basedir}/docs/api-specs/account-info-openapi.yml + com.backbase.openbanking.backend.model.accounts.mock + com.backbase.openbanking.backend.api.accounts.mock + true + true + false + false + + true + true + true + true + false + java8 + true + + + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + + io.swagger.* + + + + + com.google.cloud.tools + jib-maven-plugin + 3.2.1 + + + ${docker.image.name} + ${docker.image.tag} + + + + + + \ No newline at end of file diff --git a/client-api-and-mock-server/core-bank-api-mock-server/postman/Mock API Server Postman.postman_collection.json b/client-api-and-mock-server/core-bank-api-mock-server/postman/Mock API Server Postman.postman_collection.json new file mode 100644 index 0000000..2bbf231 --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/postman/Mock API Server Postman.postman_collection.json @@ -0,0 +1,101 @@ +{ + "info": { + "_postman_id": "52c1b8fb-9556-4aae-be67-006856201f01", + "name": "Mock API Server Postman", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "5054497" + }, + "item": [ + { + "name": "[00] Authentication Login", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "const response = JSON.parse(responseBody);", + "postman.setEnvironmentVariable(\"authenticationToken\", response.authenticationToken);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "auth": { + "type": "noauth" + }, + "method": "POST", + "header": [ + { + "key": "apiRequestOriginator", + "value": " 1234", + "type": "text" + }, + { + "key": "requestID", + "value": " 111", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"customerNumber\": \"11000101762\",\n \"password\": \"abc123\",\n \"surname\": \"Smith\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://localhost:9091/authentication/v1/tokens", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "9091", + "path": [ + "authentication", + "v1", + "tokens" + ] + } + }, + "response": [] + }, + { + "name": "[01] Balance API", + "request": { + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{authenticationToken}}", + "type": "string" + } + ] + }, + "method": "GET", + "header": [ + { + "warning": "This is a duplicate header and will be overridden by the Content-Type header generated by Postman.", + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "http://localhost:9091/balances", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "9091", + "path": [ + "balances" + ] + } + }, + "response": [] + } + ] +} \ No newline at end of file diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/MockServerApplication.java b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/MockServerApplication.java new file mode 100644 index 0000000..a13c647 --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/MockServerApplication.java @@ -0,0 +1,12 @@ +package com.backbase.openbanking.mockserver; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class MockServerApplication { + + public static void main(String[] args) throws Exception { + new SpringApplication(MockServerApplication.class).run(args); + } +} diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/api/auth/AuthenticationApiController.java b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/api/auth/AuthenticationApiController.java new file mode 100644 index 0000000..88edd09 --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/api/auth/AuthenticationApiController.java @@ -0,0 +1,51 @@ +package com.backbase.openbanking.mockserver.api.auth; + + +import com.backbase.openbanking.backend.api.auth.mock.AuthenticationApi; +import com.backbase.openbanking.backend.model.auth.mock.ErrorResponse; +import com.backbase.openbanking.backend.model.auth.mock.Request; +import com.backbase.openbanking.backend.model.auth.mock.Response; +import com.backbase.openbanking.mockserver.common.web.AbstractMockController; +import io.swagger.annotations.ApiParam; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RestController; + +import javax.validation.Valid; + +@RestController +public class AuthenticationApiController extends AbstractMockController implements AuthenticationApi { + + private static final Logger logger = LoggerFactory.getLogger(AuthenticationApiController.class); + + @Override + protected AbstractMockController.MockDataPathConfiguration defineMockDataPathConfiguration() { + return new MockDataPathConfiguration("authentication", "authentication"); + } + + @Override + protected ResponseEntity handleError(Exception e) { + logger.error("Internal error in Authentication Mock Service", e); + + ErrorResponse error = new ErrorResponse() + .errorCode(HttpStatus.INTERNAL_SERVER_ERROR.toString()) + .errorDescription(e.getMessage()); + return new ResponseEntity<>(error, HttpStatus.INTERNAL_SERVER_ERROR); + } + + @Override + @SuppressWarnings("unchecked") + public ResponseEntity authenticate(@ApiParam(value = "Application invoking the API", required = true) @RequestHeader(value = "apiRequestOriginator", required = true) String apiRequestOriginator, + @ApiParam(value = "Unique request Id for tracking purposes", required = true) @RequestHeader(value = "requestID", required = true) String requestID, + @ApiParam(value = "Authenticate request body", required = true) @Valid @RequestBody Request body) { + + final String customerNumber = validateField(body::getCustomerNumber, "Request: customerNumber"); + logger.debug("Authenticating user: Customer Number {}, Surname {}", customerNumber, body.getSurname()); + return mockDataResponse(customerNumber); + } +} \ No newline at end of file diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/api/balances/OpenBankingBalancesApiController.java b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/api/balances/OpenBankingBalancesApiController.java new file mode 100644 index 0000000..08b5c19 --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/api/balances/OpenBankingBalancesApiController.java @@ -0,0 +1,46 @@ +package com.backbase.openbanking.mockserver.api.balances; + +import com.backbase.openbanking.backend.api.accounts.mock.BalancesApi; +import com.backbase.openbanking.backend.model.accounts.mock.OBError1; +import com.backbase.openbanking.backend.model.accounts.mock.OBErrorResponse1; +import com.backbase.openbanking.backend.model.accounts.mock.OBReadBalance1; +import com.backbase.openbanking.mockserver.common.TokenDecoder; +import com.backbase.openbanking.mockserver.common.web.AbstractMockController; +import lombok.RequiredArgsConstructor; +import lombok.extern.log4j.Log4j2; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.UUID; + +@Log4j2 +@RestController +@RequiredArgsConstructor +public class OpenBankingBalancesApiController extends AbstractMockController implements BalancesApi { + + @Override + protected MockDataPathConfiguration defineMockDataPathConfiguration() { + return new MockDataPathConfiguration("balances", "balances"); + } + + @Override + public ResponseEntity getBalances(String authorization, String xFapiAuthDate, String xFapiCustomerIpAddress, String xFapiInteractionId, String xCustomerUserAgent) { + TokenDecoder decodedToken = TokenDecoder.getDecoded(authorization); + return mockDataResponse(decodedToken.getCWUser()); + } + + @Override + protected ResponseEntity handleError(Exception e) { + log.error("Internal error in Accounts Mock Service: ", e); + + OBErrorResponse1 errorResponseDetail = new OBErrorResponse1() + .errors(List.of(new OBError1())) + .message(e.getMessage()) + .code(UUID.randomUUID().toString()); + + return new ResponseEntity<>(errorResponseDetail, HttpStatus.INTERNAL_SERVER_ERROR); + } + +} diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/SimpleObjectMapper.java b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/SimpleObjectMapper.java new file mode 100644 index 0000000..b9045cc --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/SimpleObjectMapper.java @@ -0,0 +1,50 @@ +package com.backbase.openbanking.mockserver.common; + +import com.backbase.openbanking.mockserver.common.exceptions.MockDataException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + +import java.io.IOException; +import java.io.InputStream; + +/** + * Encapsulates methods for JSON content deserialization and object conversion. + */ +@Component +public class SimpleObjectMapper { + + private static final Logger LOG = LoggerFactory.getLogger(SimpleObjectMapper.class); + private final ObjectMapper mapper; + + public SimpleObjectMapper() { + mapper = new ObjectMapper(); + } + + public T read(InputStream inputStream, Class clazz) { + try { + return mapper.readValue(inputStream, clazz); + } catch (IOException ex) { + throw new MockDataException("Deserialization error for class " + clazz, ex); + } + } + + public T read(String s, Class clazz) { + try { + return mapper.readValue(s, clazz); + } catch (IOException ex) { + throw new MockDataException("Deserialization error for class " + clazz, ex); + } + } + + public T convert(Object object, Class clazz) { + return mapper.convertValue(object, clazz); + } + + public JsonNode convert(Object object) { + return mapper.valueToTree(object); + } + +} diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/StringUtil.java b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/StringUtil.java new file mode 100644 index 0000000..e8e18f7 --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/StringUtil.java @@ -0,0 +1,15 @@ +package com.backbase.openbanking.mockserver.common; + +import java.util.Arrays; + +public class StringUtil { + + /** + * Returns true if any of the given strings is empty. + * @param values Strings to check + * @return boolean + */ + public static boolean isAnyEmpty(String ... values) { + return Arrays.stream(values).anyMatch(s -> s == null || s.isEmpty()); + } +} diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/TokenDecoder.java b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/TokenDecoder.java new file mode 100644 index 0000000..ea9f436 --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/TokenDecoder.java @@ -0,0 +1,28 @@ +package com.backbase.openbanking.mockserver.common; + +import com.backbase.openbanking.mockserver.common.exceptions.MockDataException; +import lombok.Data; +import lombok.extern.log4j.Log4j2; +import org.apache.tomcat.util.codec.binary.Base64; + +@Log4j2 +@Data +public class TokenDecoder { + + public String TokenId; + public String CWUser; + public String exp; + + public static TokenDecoder getDecoded(String encodedToken) { + try { + String[] pieces = encodedToken.split("\\."); + String b64payload = pieces[1]; + String jsonString = new String(Base64.decodeBase64(b64payload), "UTF-8"); + SimpleObjectMapper mapper = new SimpleObjectMapper(); + return mapper.read(jsonString, TokenDecoder.class); + } catch (Exception ex) { + log.error("Error decoding token", ex); + throw new MockDataException("Cannot decode " + encodedToken, ex); + } + } +} diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/data/MockData.java b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/data/MockData.java new file mode 100644 index 0000000..da5f872 --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/data/MockData.java @@ -0,0 +1,81 @@ +package com.backbase.openbanking.mockserver.common.data; + +import com.backbase.openbanking.mockserver.common.SimpleObjectMapper; +import com.fasterxml.jackson.databind.JsonNode; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; + +import java.util.function.Function; + +/** + * Data structure representation for the the mocked json data. It allows to parse the content of the json and extract + * the status code and payload. This representation could be converted to a Response Entity, the idea behind this is in + * most cases the mocked data must not be deserialized and just to be return as is. If it has to me modified it has to be + * serialized and processed this class also provide a method for that. + * + * @author cesarl + */ +public class MockData { + + private HttpStatus status; + private JsonNode payload; + private SimpleObjectMapper mapper; + + /** + * Create a mocked data from the status code and json object payload + * + * @param status the http status code value + * @param payload the json object representation of the payload + */ + protected MockData(int status, JsonNode payload, SimpleObjectMapper objectMapper) { + this.status = HttpStatus.valueOf(status); + this.payload = payload; + this.mapper = objectMapper; + } + + /** + * Get the {@link HttpStatus} representation of the mocked data + * + * @return the http status + */ + public HttpStatus getHttpStatus() { + return status; + } + + /** + * Deserialize the mocked data payload to a given object + * + * @param clazz The class to be deserialized + * @param the type to be deserialized + * @return the object instance deserialized from the json node + */ + public T getPayload(Class clazz) { + return mapper.convert(payload, clazz); + } + + /** + * Manipulate the mocked data payload, this method is mutable it modifies the mocked data. + *
{@code
+     * mockData.processPayload(TransactionsRetrieved.class, tx -> this.paginate(tx, offset, limit));
+     * }
+ * @param clazz The class to be deserialized + * @param function map function that alter the payload + * @param the type to be deserialized + * @param the result type for the manipulated payload it could be the same as T + */ + public void processPayload(Class clazz, Function function) { + T payload = getPayload(clazz); + R result = function.apply(payload); + this.payload = mapper.convert(result); + } + + /** + * Create a {@link ResponseEntity} based on the mocked data, there is no need to deserialize or to provide a + * class to generate a ResponseEntity it could directly return the json node data. + * + * @return a ResponseEntity with the mocked data + */ + public ResponseEntity createResponse() { + return new ResponseEntity<>(payload, status); + } +} diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/data/MockDataPath.java b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/data/MockDataPath.java new file mode 100644 index 0000000..0b3e812 --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/data/MockDataPath.java @@ -0,0 +1,104 @@ +package com.backbase.openbanking.mockserver.common.data; + +import com.backbase.openbanking.mockserver.common.exceptions.MockDataException; +import org.springframework.util.StringUtils; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; + +/** + * This class represents the location of a mock file. It's an abstraction over the {@link Path} class, but the construction + * of the path is enforced by the {@link Builder} class, where the configurations for the root path, file extension and + * prefix separator are implements. + * + * @author cesarl + */ +public class MockDataPath { + + private Path filePath; + + private MockDataPath(Path filePath) { + this.filePath = filePath; + } + + /** + * Read the contents of the mock file. + * @return InputStream the represents the content of the file + */ + public InputStream read() { + try { + return Files.newInputStream(filePath); + } catch (IOException ex) { + throw new MockDataException("Cannot read file " + filePath, ex); + } + } + + /** + * Builder class for a {@link MockDataPath}, this class has utility method to construct a path for a mock file based + * on the configurations set in the application.yml and provided with {@link MockDataProperties} + * + * @author cesarl + */ + public static class Builder { + + private Path path; + private MockDataProperties properties; + private String prefix; + + /** + * Creates a new builder to create a new {@link MockDataPath} + * @param properties The configuration properties for the mock data files + */ + public Builder(MockDataProperties properties) { + this.properties = properties; + this.path = properties.getRootPath(); + } + + /** + * Configures subdirectory to the current path, all the paths starts with the {@link MockDataProperties#getRootPath()} + * as the base root path directory + * @param subdirectory the name of the subdirectory + * @return this builder + */ + public Builder withSubdirectory(String subdirectory) { + this.path = this.path.resolve(subdirectory); + return this; + } + + /** + * Define a prefix for a file name, the prefix is optional + * @param prefix The prefix value + * @return this builder + */ + public Builder withPrefix(String prefix) { + this.prefix = prefix; + return this; + } + + /** + * Builds the {@link MockDataPath} with the given id as file name, the path is validated before to return it. + * @param id the id to be used to create the file name. If a prefix was not configured the id is consider as full filename + * @return the {@link MockDataPath} object + */ + public MockDataPath build(String id) { + String prefixName = StringUtils.isEmpty(prefix) ? "" : prefix + properties.getPrefixSeparator(); + String fileName = prefixName + id + properties.getFileExtension(); + Path filePath = this.path.resolve(fileName); + validate(filePath); + return new MockDataPath(filePath); + } + + //Validates the mock file path exist and it's not a directory + private void validate(Path filePath) { + if (!Files.exists(filePath)) { + throw new MockDataException("The file " + filePath + " doesn't exist"); + } + if (Files.isDirectory(filePath)) { + throw new MockDataException("The file" + filePath + " is a directory"); + } + } + + } +} diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/data/MockDataProperties.java b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/data/MockDataProperties.java new file mode 100644 index 0000000..20f844a --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/data/MockDataProperties.java @@ -0,0 +1,51 @@ +package com.backbase.openbanking.mockserver.common.data; + +import com.backbase.openbanking.mockserver.common.exceptions.MockDataException; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.io.Resource; + +import java.nio.file.Path; + +/** + * Contains the configuration properties for the mock server files, those are defined with the cookbook prefix in the + * application.yml file + * + * @author cesarl + */ +@Configuration +@ConfigurationProperties(prefix = "mock-server") +public class MockDataProperties { + + private Resource rootPath; + private String fileExtension; + private String prefixSeparator; + + public Path getRootPath() { + try { + return rootPath.getFile().toPath(); + } catch (Exception e) { + throw new MockDataException("Cannot access the mock data path " + rootPath); + } + } + + public String getFileExtension() { + return fileExtension; + } + + public String getPrefixSeparator() { + return prefixSeparator; + } + + public void setRootPath(Resource rootPath) { + this.rootPath = rootPath; + } + + public void setFileExtension(String fileExtension) { + this.fileExtension = fileExtension; + } + + public void setPrefixSeparator(String prefixSeparator) { + this.prefixSeparator = prefixSeparator; + } +} diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/data/MockDataService.java b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/data/MockDataService.java new file mode 100644 index 0000000..72d6f36 --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/data/MockDataService.java @@ -0,0 +1,42 @@ +package com.backbase.openbanking.mockserver.common.data; + +import com.backbase.openbanking.mockserver.common.exceptions.MockDataException; +import org.springframework.stereotype.Component; + +/** + * A Generic service to read and process mocked data. This service provide a way to access a mock file, read it and create a {@link MockData} + * from the mocked path. For the most use cases a mock server has to read a mock file and return it. + * The idea is that a developer that needs to implement an endpoint that just need to return the mocked data from a file + * just inject this service and not create another service to has the same boilerplate code. + * + * @author cesarl + */ +@Component +public class MockDataService { + + private final MockDataProperties mockDataProperties; + private final MockPathProcessor processor; + + public MockDataService(MockDataProperties mockDataProperties, MockPathProcessor processor) { + this.mockDataProperties = mockDataProperties; + this.processor = processor; + } + + /** + * Reads the mock data file, with the specified parameters and return a {@link MockData} object with the representation + * found in the file. + * @param subdirectory The subdirectory where the mock files are locate, the subdirectory would be added to the {@link MockDataProperties#getRootPath()} + * @param prefix The prefix for the mock data file + * @param id the file id used to create with the prefix the mock data file + * @return a {@link MockData} object representation + * @throws MockDataException if an error occur reading the mock + * file or if something fails processing the contents of the file. + */ + public MockData readMockData(String subdirectory, String prefix, String id) { + MockDataPath path = new MockDataPath.Builder(mockDataProperties) + .withSubdirectory(subdirectory) + .withPrefix(prefix) + .build(id); + return processor.process(path); + } +} diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/data/MockPathProcessor.java b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/data/MockPathProcessor.java new file mode 100644 index 0000000..01a1292 --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/data/MockPathProcessor.java @@ -0,0 +1,32 @@ +package com.backbase.openbanking.mockserver.common.data; + +import com.backbase.openbanking.mockserver.common.SimpleObjectMapper; +import com.fasterxml.jackson.databind.JsonNode; +import org.springframework.stereotype.Component; + +/** + * Process a mock data file {@link MockDataPath} and return it as a {@link MockData} object. It encapsulate the process + * to construct the mock data object from a file, this definition of how to parse and construct the object could change + * and the idea is separate and delegate to this object this concern. So if the parsing and construction change this object + * would only to be changed. + * + * @author cesarl + */ +@Component +public class MockPathProcessor { + + private static final String STATUS_CODE_FIELD = "status-code"; + private static final String RESPONSE_FIELD = "response"; + private final SimpleObjectMapper mapper; + + public MockPathProcessor(SimpleObjectMapper mapper) { + this.mapper = mapper; + } + + public MockData process(MockDataPath path) { + JsonNode node = mapper.read(path.read(), JsonNode.class); + int status = node.get(STATUS_CODE_FIELD).asInt(); + JsonNode payload = node.get(RESPONSE_FIELD); + return new MockData(status, payload, mapper); + } +} diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/exceptions/MissingFieldException.java b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/exceptions/MissingFieldException.java new file mode 100644 index 0000000..7a3688b --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/exceptions/MissingFieldException.java @@ -0,0 +1,23 @@ +package com.backbase.openbanking.mockserver.common.exceptions; + +/** + * Exception used to represent a missing field in a request of a controller. + * + * @author cesarl + */ +public class MissingFieldException extends RuntimeException { + + private String fieldName; + + /** + * Create a new instance of the exception given the fieldName that is missing. + * @param fieldName the fieldName missed that cause the exception to be thrown + */ + public MissingFieldException(String fieldName) { + this.fieldName = fieldName; + } + + public String getFieldName() { + return fieldName; + } +} diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/exceptions/MockDataException.java b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/exceptions/MockDataException.java new file mode 100644 index 0000000..5028dba --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/exceptions/MockDataException.java @@ -0,0 +1,16 @@ +package com.backbase.openbanking.mockserver.common.exceptions; + +/** + * Runtime exception thrown when any error occur with the classes that process the mock data files. + * @author cesarl + */ +public class MockDataException extends RuntimeException { + + public MockDataException(String message) { + super(message); + } + + public MockDataException(String message, Throwable cause) { + super(message, cause); + } +} \ No newline at end of file diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/web/AbstractMockController.java b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/web/AbstractMockController.java new file mode 100644 index 0000000..00aa524 --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/web/AbstractMockController.java @@ -0,0 +1,226 @@ +package com.backbase.openbanking.mockserver.common.web; + +import com.backbase.openbanking.mockserver.common.exceptions.MissingFieldException; +import com.backbase.openbanking.mockserver.common.data.MockData; +import com.backbase.openbanking.mockserver.common.data.MockDataService; +import com.backbase.openbanking.mockserver.common.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; + +import java.util.Objects; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.function.Supplier; + +/** + * Abstract class where all the common logic used by the mock data controllers is defined. This class provides most of the logic + * that a mock serve should implement, the idea behind this class is to allow the developers to extend this class and with that + * each method of a controller just have to call one or two methods of this class to return the mock data. + * + * @author cesarl + */ +public abstract class AbstractMockController { + + private static final Logger logger = LoggerFactory.getLogger(AbstractMockController.class); + @Autowired + public MockDataService service; + + /** + * Create a {@link ResponseEntity} for a given mock file id, the path is configured in the method defineMockDataPathConfiguration. + * If an error occur while processing the mock data the abstract method handleError is used to manage the exception and return the + * corresponding error response. + * + * @param id the id of the mock file data + * @return a {@link ResponseEntity} with the mocked data as response + */ + public ResponseEntity mockDataResponse(String id) { + return this.mockDataResponse(id, this::handleError); + } + + /** + * Create a {@link ResponseEntity} for a given mock file id, the path is configured in the method defineMockDataPathConfiguration + * this method allows to configure a function the is used to precess an exception when an error occur processing the mock data. + *
{@code
+     * return mockDataResponse(accountId, ex -> {
+     *     String message = "Processed " + ex.getMessage();
+     *     return new ResponseEntity<>(message, HttpStatus.INTERNAL_SERVER_ERROR);
+     * });
+     * }
+ * + * @param id the id of the mock file data + * @param errorProcessor the function that process the exception + * @return a {@link ResponseEntity} with the mocked data as response + */ + public ResponseEntity mockDataResponse(String id, Function errorProcessor) { + return mockDataResponse(id, null, errorProcessor); + } + + /** + * Create a {@link ResponseEntity} for a given mock file id, the path is configured in the method defineMockDataPathConfiguration. + * If an error occur while processing the mock data the abstract method handleError is used to manage the exception and return the + * corresponding error response. + * This method allows to process the content of the mocked data, sometimes the mocked data should be processed and modified + * before returning it, the param dataProcessor allows to do that. + *
{@code
+     * return mockDataResponse(accountId, mockData -> {
+     *      if (mockData.getHttpStatus().is2xxSuccessful()) {
+     *            mockData.processPayload(TransactionsRetrieved.class, tx -> this.paginate(tx, offset, limit));
+     *      }
+     * });
+     * }
+ * + * @param id the id of the mock file data + * @param dataProcessor The function that process the mock data + * @return a {@link ResponseEntity} with the mocked data as response + */ + public ResponseEntity mockDataResponse(String id, Consumer dataProcessor) { + return mockDataResponse(id, dataProcessor, this::handleError); + } + + /** + * Create a {@link ResponseEntity} for a given mock file id, the path is configured in the method defineMockDataPathConfiguration. + * If an error occur while processing the mock data the function defined in the errorProcessor parameter is used to manage the exception and return the + * corresponding error response. + * This method allows to process the content of the mocked data, sometimes the mocked data should be processed and modified + * before returning it, the param dataProcessor allows to do that. + *
{@code
+     * return mockDataResponse(accountId, mockData -> {
+     *      if (mockData.getHttpStatus().is2xxSuccessful()) {
+     *            mockData.processPayload(TransactionsRetrieved.class, tx -> this.paginate(tx, offset, limit));
+     *      }
+     * }, ex -> {
+     *        String message = "Processed " + ex.getMessage();
+     *         return new ResponseEntity<>(message, HttpStatus.INTERNAL_SERVER_ERROR);
+     * });
+     * }
+ *

+ * or + *

{@code
+     * return mockDataResponse(accountId, this::processMockData, this::manageConversionError);
+     * }
+ * + * @param id the id of the mock file data + * @param dataProcessor The function that process the mock data + * @param errorProcessor the function that process the exception + * @return a {@link ResponseEntity} with the mocked data as response + */ + public ResponseEntity mockDataResponse(String id, Consumer dataProcessor, Function errorProcessor) { + MockDataPathConfiguration configuration = defineMockDataPathConfiguration(); + Objects.requireNonNull(configuration, "MockDataPathConfiguration cannot be null"); + try { + MockData mockData = service.readMockData(configuration.getDirectory(), configuration.getPrefix(), id); + if (dataProcessor != null) { + dataProcessor.accept(mockData); + } + return mockData.createResponse(); + } catch (Exception ex) { + return errorProcessor.apply(ex); + } + } + + /** + * Validates a field that is not null and is not an empty String + * + * @param field the field value to be validated + * @param fieldName The field name to be used in a message error to indicate the missing value + */ + protected void validateField(String field, String fieldName) { + validateField(field, StringUtil::isAnyEmpty, fieldName); + } + + /** + * Validates a field that is not null and is not an empty String, the field value is computed by a {@link Supplier} + * function and is returned if the validation pass + * + *
{@code
+     *     int timeout = validateField(() -> request.getParameter("Content-Type"), "Header: Content-Type");
+     * }
+ * + * @param supplier the function used to compute the field + * @param fieldName The field name to be used in a message error to indicate the missing value + */ + protected String validateField(Supplier supplier, String fieldName) { + validateField(supplier.get(), fieldName); + return supplier.get(); + } + + /** + * Validates a field using a specify a validator function, if the value passes the validation it's returned. + * + *
{@code
+     *  //if the value is equals to 0 an MissingFieldException will be raised
+     *  int timeout = validateField(() -> request.getParameter("timeout"), v -> v == 0, "QueryString: timeout");
+     * }
+ * + * @param supplier the function that produces the value + * @param validator the validator function + * @param fieldName The field name to be used in a message error to indicate the missing value + */ + protected T validateField(Supplier supplier, Predicate validator, String fieldName) { + T field = supplier.get(); + validateField(field, validator, fieldName); + return field; + } + + /** + * Validates a field that is not null and is not an empty String, this method allows to specify a validator function + * that indicates if the value is not valid + * + *
{@code
+     *  int timeout = request.getParameter("timeout");
+     *  //if the value is equals to 0 an MissingFieldException will be raised
+     *  validateField(4000, v -> v == 0, "QueryString: timeout");
+     * }
+ * + * @param field the field value to be validated + * @param validator the validator function + * @param fieldName The field name to be used in a message error to indicate the missing value + */ + protected void validateField(T field, Predicate validator, String fieldName) { + if (validator.test(field)) { + logger.error("The field " + fieldName + " required by the Mock Server wasn't provided by the requester."); + throw new MissingFieldException(fieldName); + } + } + + /** + * Defined the subdirectory and prefix for the mocked files used in this controller + * + * @return MockDataPathConfiguration with the subdirectory and prefix values + */ + protected abstract MockDataPathConfiguration defineMockDataPathConfiguration(); + + /** + * Common Error handler method that is called when a error occur processing the mocked data. + * + * @param ex The exception thrown + * @return the ResponseEntity for the given exception + */ + protected abstract ResponseEntity handleError(Exception ex); + + /** + * Common configuration class that all mock controllers should provide to access a mock file: the mock directory + * and the prefix of the mock files + */ + public static class MockDataPathConfiguration { + + private String directory; + private String prefix; + + public MockDataPathConfiguration(String directory, String prefix) { + this.directory = directory; + this.prefix = prefix; + } + + public String getDirectory() { + return directory; + } + + public String getPrefix() { + return prefix; + } + } +} diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/web/MockControllerInterceptor.java b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/web/MockControllerInterceptor.java new file mode 100644 index 0000000..f778ab8 --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/web/MockControllerInterceptor.java @@ -0,0 +1,73 @@ +package com.backbase.openbanking.mockserver.common.web; + +import lombok.extern.log4j.Log4j2; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.servlet.HandlerInterceptor; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Enumeration; + +/** + * This interceptor is generic for all the controllers in this project, and provides common functionality that is required + * by all the controllers avoiding duplication of code and delegating that behaviour to this class. + * A common concern is to log the execution of a controller method that is invoked when it's correspondent endpoint is invoked, + * logging the request url, http method and headers, the logic here could varies depending of the project, but this class provides + * a mechanism to implement that use cases without to duplicate the code in each method. + * + * @author cesarl + */ +@Log4j2 +public class MockControllerInterceptor implements HandlerInterceptor { + + /** + * Executed before actual handler is executed + **/ + @Override + public boolean preHandle(final HttpServletRequest request, final HttpServletResponse response, final Object handler) { + log.debug("Executing {} url: [{}]-[{}], {}", methodName(handler), request.getMethod(), request.getRequestURI(), request.getQueryString()); + logRequestHeaders(request); + return true; + } + + /** + * Executed after complete request is finished + **/ + @Override + public void afterCompletion(final HttpServletRequest request, final HttpServletResponse response, final Object handler, final Exception ex) throws Exception { + if (ex != null) { + ex.printStackTrace(); + } + log.debug("[Executed] {}, [response] {}", methodName(handler), response); + logResponseHeaders(response); + } + + private String methodName(Object handler) { + if (handler instanceof HandlerMethod) { + HandlerMethod handlerMethod = (HandlerMethod) handler; + String controllerName = handlerMethod.getBeanType().getSimpleName(); + String methodName = handlerMethod.getMethod().getName(); + return String.format("Controller [%s] Method [%s]", controllerName, methodName); + } + return ""; + } + + private void logRequestHeaders(HttpServletRequest request) { + log.debug("Request Headers: "); + Enumeration headerNames = request.getHeaderNames(); + while (headerNames.hasMoreElements()) { + String headerName = headerNames.nextElement(); + log.debug("\t Header [{}]: [{}]", headerName, request.getHeader(headerName)); + } + } + + private void logResponseHeaders(HttpServletResponse response) { + log.debug("Response Headers: "); + for(String headerName: response.getHeaderNames()) { + log.debug("\t Header [{}]: [{}]", headerName, response.getHeader(headerName)); + } + } + +} diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/web/ResponseExceptionHandler.java b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/web/ResponseExceptionHandler.java new file mode 100644 index 0000000..255bd0a --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/web/ResponseExceptionHandler.java @@ -0,0 +1,35 @@ +package com.backbase.openbanking.mockserver.common.web; + +import com.backbase.openbanking.mockserver.common.exceptions.MissingFieldException; +import com.backbase.openbanking.mockserver.common.exceptions.MockDataException; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.context.request.WebRequest; +import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler; + +/** + * This class is responsible to manage all the exceptions that are thrown by a controller and it's not caught with a catch + * block, for example the {@link MissingFieldException} is throw by the {@link AbstractMockController} to finish the execution + * of a method when a field is missing, this exception is managed in this class {@link ResponseExceptionHandler#handleMissingFieldException(MissingFieldException, WebRequest)} + * and it creates the correspond Response. + * + * @author cesarl + */ +@ControllerAdvice +public class ResponseExceptionHandler extends ResponseEntityExceptionHandler { + + @ExceptionHandler(value = MissingFieldException.class) + public ResponseEntity handleMissingFieldException(MissingFieldException ex, WebRequest request) { + String bodyOfResponse = "The field " + ex.getFieldName() + " is missing in the request"; + return handleExceptionInternal(ex, bodyOfResponse, new HttpHeaders(), HttpStatus.BAD_GATEWAY, request); + } + + @ExceptionHandler(value = MockDataException.class) + public ResponseEntity handleMockDataException(MockDataException ex, WebRequest request) { + String bodyOfResponse = "An unexpected error occur processing the mock data " + ex.getMessage(); + return handleExceptionInternal(ex, bodyOfResponse, new HttpHeaders(), HttpStatus.BAD_GATEWAY, request); + } +} diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/web/WebConfig.java b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/web/WebConfig.java new file mode 100644 index 0000000..e7a04ea --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/common/web/WebConfig.java @@ -0,0 +1,22 @@ +package com.backbase.openbanking.mockserver.common.web; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +/** + * Configuration class for Spring web mvc + * @author cesarl + */ +@Configuration +public class WebConfig implements WebMvcConfigurer { + + /** + * Register the common interceptor {@link MockControllerInterceptor} for spring mvc controller + * @param registry The interceptor registry + */ + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(new MockControllerInterceptor()); + } +} diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/config/OpenAPIDocumentationConfig.java b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/config/OpenAPIDocumentationConfig.java new file mode 100644 index 0000000..d668936 --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/config/OpenAPIDocumentationConfig.java @@ -0,0 +1,69 @@ +package com.backbase.openbanking.mockserver.config; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.util.UriComponentsBuilder; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.paths.Paths; +import springfox.documentation.spring.web.paths.RelativePathProvider; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +import javax.servlet.ServletContext; + +@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen") +@Configuration +@EnableSwagger2 +public class OpenAPIDocumentationConfig { + + ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title("Openbanking Mock Server API Specification") + .description("Swagger Openbanking Mock Server API Specification") + .license("open-licence") + .licenseUrl("https://www.openbanking.org.uk/open-licence") + .termsOfServiceUrl("") + .version("3.1.9") + .contact(new Contact("","", "ServiceDesk@openbanking.org.uk")) + .build(); + } + + @Bean + public Docket customImplementation(ServletContext servletContext, @Value("${openapi.accountAndTransactionAPISpecification.base-path:/open-banking/v3.1/aisp}") String basePath) { + return new Docket(DocumentationType.SWAGGER_2) + .select() + .apis(RequestHandlerSelectors.basePackage("com.backbase.openbanking.mockserver.api")) + .build() + .pathProvider(new BasePathAwareRelativePathProvider(servletContext, basePath)) + .directModelSubstitute(java.time.LocalDate.class, java.sql.Date.class) + .directModelSubstitute(java.time.OffsetDateTime.class, java.util.Date.class) + .apiInfo(apiInfo()); + } + + class BasePathAwareRelativePathProvider extends RelativePathProvider { + private String basePath; + + public BasePathAwareRelativePathProvider(ServletContext servletContext, String basePath) { + super(servletContext); + this.basePath = basePath; + } + + @Override + protected String applicationPath() { + return Paths.removeAdjacentForwardSlashes(UriComponentsBuilder.fromPath(super.applicationPath()).path(basePath).build().toString()); + } + + @Override + public String getOperationPath(String operationPath) { + UriComponentsBuilder uriComponentsBuilder = UriComponentsBuilder.fromPath("/"); + return Paths.removeAdjacentForwardSlashes( + uriComponentsBuilder.path(operationPath.replaceFirst("^" + basePath, "")).build().toString()); + } + } + +} diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/config/RFC3339DateFormat.java b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/config/RFC3339DateFormat.java new file mode 100644 index 0000000..4f3b809 --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/config/RFC3339DateFormat.java @@ -0,0 +1,38 @@ +package com.backbase.openbanking.mockserver.config; + +import com.fasterxml.jackson.databind.util.StdDateFormat; + +import java.text.DateFormat; +import java.text.FieldPosition; +import java.text.ParsePosition; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.TimeZone; + +public class RFC3339DateFormat extends DateFormat { + private static final long serialVersionUID = 1L; + private static final TimeZone TIMEZONE_Z = TimeZone.getTimeZone("UTC"); + + private final StdDateFormat fmt = new StdDateFormat() + .withTimeZone(TIMEZONE_Z) + .withColonInTimeZone(true); + + public RFC3339DateFormat() { + this.calendar = new GregorianCalendar(); + } + + @Override + public Date parse(String source, ParsePosition pos) { + return fmt.parse(source, pos); + } + + @Override + public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) { + return fmt.format(date, toAppendTo, fieldPosition); + } + + @Override + public Object clone() { + return this; + } +} \ No newline at end of file diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/controller/HomeController.java b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/controller/HomeController.java new file mode 100644 index 0000000..5820ea2 --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/java/com/backbase/openbanking/mockserver/controller/HomeController.java @@ -0,0 +1,20 @@ +package com.backbase.openbanking.mockserver.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; + + +/** + * Home redirection to OpenAPI api documentation + */ +@Controller +public class HomeController { + + @GetMapping("/") + public String index() { + return "redirect:swagger-ui.html"; + } + + +} diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/application.yaml b/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/application.yaml new file mode 100644 index 0000000..64bd2df --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/application.yaml @@ -0,0 +1,37 @@ +spring: + application: + name: core-bank-mock-server + jackson: + date-format: com.backbase.openbanking.mockserver.config.RFC3339DateFormat + serialization: + WRITE_DATES_AS_TIMESTAMPS: false + +server: + port: 9091 + +mock-server: + root-path: classpath:mock-data + file-extension: .json + prefix-separator: "-" + +openapi: + accountAndTransactionAPISpecification: + base-path: / + +management: + endpoint: + info: + enabled: true + health: + show-details: always + enabled: true + +springfox: + documentation: + swagger: + v2: + path: /api-docs + +logging: + level: + root: INFO \ No newline at end of file diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/logback.xml b/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/logback.xml new file mode 100644 index 0000000..46afb19 --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/logback.xml @@ -0,0 +1,28 @@ + + + + CS Cookbook Mock Server + + + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + DEBUG + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/mock-data/Readme.md b/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/mock-data/Readme.md new file mode 100644 index 0000000..44004aa --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/mock-data/Readme.md @@ -0,0 +1,31 @@ +### Mock Data + +This folder contains the mock data used by the [Mock Services](../../java/com/backbase/openbanking/mockserver/service). + +Mock Services expect their mock data to be placed in a specific folder, files be named on a specific way +and have a specific format, which is a JSON object with two main fields: +- `status-code`: Status code to use for the mock service response +- `response`: Body for the mock service response. It's the actual response from the backend, excluding headers. + + +#### How does it work + +- A request, let's say, to list accounts is received. +- `AccountsController` invokes `AccountsMockService`. +- The `AccountsMockService`: + - Gets the customer number from the request + - Goes to `accounts` folder + - Reads `accounts-.json` file + - "status-code" from the file is used to set the status code in the response + - "response" object from the file is used to set the body of the response + +Both `accounts` folder and filename prefix are known by the service. + +#### Settings + +In [application.yaml](../application.yaml) file you can configure: + +- `cookbook.mockdata-path`: Location of mock data folder +- `cookbook.file-extension`: File extension for the files. Currently "json" is used. +- `cookbook.filename-separator`: File name separator. Currently "-" is used. + diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/mock-data/authentication/authentication-11000101762.json b/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/mock-data/authentication/authentication-11000101762.json new file mode 100644 index 0000000..33c4b10 --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/mock-data/authentication/authentication-11000101762.json @@ -0,0 +1,6 @@ +{ + "status-code": 200, + "response": { + "authenticationToken": "eyJhbGciOiJIUzI1NiJ9.eyJUb2tlbklkIjoiOVFub3RPbmRVcGdlazFjN21ZdForV0MxRTlvPSIsIkNXVXNlciI6IjExMDAwMTAxNzYyIiwiZXhwIjoiMjA1MC0wNi0xOVQxMzowMDo0MFoifQ.F8mkE1YtAEM3fuHWEKq8BT8v7s2LzDHWz2zeCtiDGX0" + } +} \ No newline at end of file diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/mock-data/authentication/authentication-11000106608.json b/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/mock-data/authentication/authentication-11000106608.json new file mode 100644 index 0000000..72a52eb --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/mock-data/authentication/authentication-11000106608.json @@ -0,0 +1,6 @@ +{ + "status-code": 200, + "response": { + "authenticationToken": "eyJhbGciOiJIUzI1NiJ9.eyJUb2tlbklkIjoiOVFub3RPbmRVcGdlazFjN21ZdForV0MxRTlvPSIsIkNXVXNlciI6IjExMDAwMTA2NjA4IiwiZXhwIjoiMjAxOS0wNi0xOVQxMzowMDo0MFoifQ.khFAzrugbyd9dFau_3lgK7DSaTCxfDNfaiA3Mwr5OwU" + } +} \ No newline at end of file diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/mock-data/authentication/authentication-11000119432.json b/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/mock-data/authentication/authentication-11000119432.json new file mode 100644 index 0000000..7709d03 --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/mock-data/authentication/authentication-11000119432.json @@ -0,0 +1,6 @@ +{ + "status-code": 200, + "response": { + "authenticationToken": "eyJhbGciOiJIUzI1NiJ9.ew0KCSJUb2tlbklkIiA6ICIvRk50d0NEZVByNE52MEV0eEdUaEdNRGE4cE09IiwNCgkiQ1dVc2VyIiA6ICIxMTAwMDExOTQzMiIsDQoJImV4cCIgOiAiMjAxOS0wNy0wOFQxMDo0NTozMVoiDQp9.sBju12zUYJiQjhPEJKGSROUrKgsTWkgD_m_6eXom-WI" + } +} \ No newline at end of file diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/mock-data/balances/balances-11000101762.json b/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/mock-data/balances/balances-11000101762.json new file mode 100644 index 0000000..65f6aeb --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/mock-data/balances/balances-11000101762.json @@ -0,0 +1,73 @@ +{ + "status-code": 200, + "response": { + "Meta": { + "LastAvailableDateTime": "2000-01-23T04:56:07.000+00:00", + "FirstAvailableDateTime": "2000-01-23T04:56:07.000+00:00", + "TotalPages": 0 + }, + "Links": { + "Last": "https://openapi-generator.tech", + "Prev": "https://openapi-generator.tech", + "Next": "https://openapi-generator.tech", + "Self": "https://openapi-generator.tech", + "First": "https://openapi-generator.tech" + }, + "Data": { + "Balance": [ + { + "AccountId": "AccountId", + "CreditLine": [ + { + "Type": "Available", + "Included": true, + "Amount": { + "Amount": "Amount", + "Currency": "Currency" + } + }, + { + "Type": "Available", + "Included": true, + "Amount": { + "Amount": "Amount", + "Currency": "Currency" + } + } + ], + "Amount": { + "Amount": "Amount", + "Currency": "Currency" + }, + "DateTime": "2000-01-23T04:56:07.000+00:00" + }, + { + "AccountId": "AccountId", + "CreditLine": [ + { + "Type": "Available", + "Included": true, + "Amount": { + "Amount": "Amount", + "Currency": "Currency" + } + }, + { + "Type": "Available", + "Included": true, + "Amount": { + "Amount": "Amount", + "Currency": "Currency" + } + } + ], + "Amount": { + "Amount": "Amount", + "Currency": "Currency" + }, + "DateTime": "2000-01-23T04:56:07.000+00:00" + } + ] + } + } +} \ No newline at end of file diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/mock-data/balances/balances-11000106608.json b/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/mock-data/balances/balances-11000106608.json new file mode 100644 index 0000000..a51ffc5 --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/mock-data/balances/balances-11000106608.json @@ -0,0 +1,16 @@ +{ + "status-code": 400, + "response": { + "Code": "400", + "Errors": [ + { + "ErrorCode": "400", + "Message": "Not Found", + "Path": "/Error", + "Url": "" + } + ], + "Id": "123-123-123", + "Message": "Not Found" + } +} \ No newline at end of file diff --git a/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/mock-data/balances/balances-11000119432.json b/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/mock-data/balances/balances-11000119432.json new file mode 100644 index 0000000..d39d1bf --- /dev/null +++ b/client-api-and-mock-server/core-bank-api-mock-server/src/main/resources/mock-data/balances/balances-11000119432.json @@ -0,0 +1,16 @@ +{ + "status-code": 500, + "response": { + "Code": "500", + "Errors": [ + { + "ErrorCode": "500", + "Message": "Internal Server Error", + "Path": "/Error", + "Url": "" + } + ], + "Id": "123-123-123", + "Message": "Internal Server Error" + } +} \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..80aaa9e --- /dev/null +++ b/pom.xml @@ -0,0 +1,18 @@ + + 4.0.0 + + com.backbas + project-golden-samples + 1.0-SNAPSHOT + + Backbase :: Project Golden Samples :: Parent + + pom + + + boat + client-api-and-mock-server/core-bank-api-clients + client-api-and-mock-server/core-bank-api-mock-server + +