diff --git a/.gitignore b/.gitignore index c3ca957..870af2c 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ .DS_Store **/*.DS_Store log.csv +.vscode diff --git a/changelog.md b/changelog.md index 4906f78..8fad108 100644 --- a/changelog.md +++ b/changelog.md @@ -14,6 +14,46 @@ For v4.0.1 the following approach has been adopted for identifying changes: - [v4.0.1 Release Candidate 1](https://openbanking.atlassian.net/wiki/spaces/WOR/pages/4203282434/Feedback+-+v4.0.1+Release+Candidate+1) - [v4.0.1 Release Candidate 2](https://openbanking.atlassian.net/wiki/spaces/WOR/pages/4309942273/Feedback+-+v4.0.1+Release+Candidate+2) +## v4.0.1 Swagger Update 1 - 2026-09-18 + +This update covers Swagger/OpenAPI refinements for the Confirmation of Funds (CBPII) API in v4.0.1. + +### Added + +- Added CBPII OpenAPI tags for `Funds Confirmation Consents` and `Funds Confirmations` to improve Swagger UI grouping and navigation. +- Added optional `x-jws-signature` request header support across all CBPII operations to align with the Open Banking spec pages/standard. +- Added optional `x-jws-signature` response header support across CBPII success and error responses to align with the Open Banking spec pages/standard. +- Added CBPII OpenAPI examples for key parameters, headers, error payloads and schema fields. + +### Changed + +- Updated CBPII endpoint descriptions for consent creation, consent retrieval, consent deletion and funds confirmation creation to provide clearer behaviour and outcome detail for Swagger UI and AI agent consumers. +- Updated the duplicate CBPII OpenAPI JSON output generated from the YAML source so the YAML and JSON Swagger artefacts stay aligned. +- Standardised CBPII OpenAPI description formatting for consistency (single-line where suitable, `>-`/`|-` block scalar usage where appropriate, paragraph spacing, inline code formatting, and emphasised notes). +- Updated CBPII security scheme, error model and account proxy descriptions to align with Open Banking/FAPI context and improve clarity. +- Updated `x-jws-signature` to be optional in CBPII request/response modelling to align with the Open Banking spec pages/standard. Additionally a fully formed example value has been provided in the OpenAPI specification. +- Updated CBPII enum descriptions to link directly to the relevant codeset CSV files. +- Refactored CBPII `OBInternalAccountIdentification4Code` into a reusable schema reference. +- Refactored CBPII Confirmation of Funds OpenAPI data dictionary schemas to use reusable component references aligned to the spec pages: + - `OBFundsConfirmationConsent1/Data` now references `OBFundsConfirmationConsentData1` + - `OBFundsConfirmationConsentResponse1/Data` now references `OBFundsConfirmationConsentDataResponse1` + - `OBFundsConfirmation1/Data` now references `OBFundsConfirmationData1` + - `OBFundsConfirmationResponse1/Data` now references `OBFundsConfirmationDataResponse1` + - `OBFundsConfirmationConsent1/Data/DebtorAccount` and `OBFundsConfirmationConsentResponse1/Data/DebtorAccount` now reference `OBCashAccountDebtorWithName` + - `OBFundsConfirmation1/Data/InstructedAmount` and `OBFundsConfirmationResponse1/Data/InstructedAmount` now reference `OBActiveOrHistoricCurrencyAndAmount` + - `OBFundsConfirmation1/Data/InstructedAmount/Amount` and `OBFundsConfirmationResponse1/Data/InstructedAmount/Amount` now reference `OBActiveCurrencyAndAmount_SimpleType` + - `OBFundsConfirmation1/Data/InstructedAmount/Currency` and `OBFundsConfirmationResponse1/Data/InstructedAmount/Currency` now reference `ActiveOrHistoricCurrencyCode` + - Updated link to RFC 6750 in the `Authorization` header description. + +### Removed + +- Removed **unused** CBPII response/schema components `404Error` and `Identification_0`. +- Removed **unused** CBPII header parameter `x-idempotency-key` (CBPII has no idempotent endpoints). + +### Fixed + +- [v401_KI_2] Corrected AIS `OBCashAccount6_1` in Update 1 by making `SchemeName` and `Identification` required for `OBReadTransaction6/Data/Transaction/DebtorAccount`; this completes the `OBCashAccountDebtorWithName` alignment that was intended for the v4.0.1 baseline. + ## v4.0.1 - 2026-04-01 ### Added diff --git a/dist/openapi/account-info-openapi.json b/dist/openapi/account-info-openapi.json index 3ed37b8..ea13a99 100644 --- a/dist/openapi/account-info-openapi.json +++ b/dist/openapi/account-info-openapi.json @@ -7041,6 +7041,10 @@ "OBCashAccount6_1": { "type": "object", "description": "Unambiguous identification of the account of the debtor, in the case of a credit transaction.", + "required": [ + "SchemeName", + "Identification" + ], "properties": { "SchemeName": { "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" diff --git a/dist/openapi/account-info-openapi.yaml b/dist/openapi/account-info-openapi.yaml index 6b11d77..7976cc8 100644 --- a/dist/openapi/account-info-openapi.yaml +++ b/dist/openapi/account-info-openapi.yaml @@ -5683,6 +5683,9 @@ components: description: >- Unambiguous identification of the account of the debtor, in the case of a credit transaction. + required: + - SchemeName + - Identification properties: SchemeName: $ref: '#/components/schemas/OBInternalAccountIdentification4Code' diff --git a/dist/openapi/confirmation-funds-openapi.json b/dist/openapi/confirmation-funds-openapi.json index 7cf7ea1..64076aa 100644 --- a/dist/openapi/confirmation-funds-openapi.json +++ b/dist/openapi/confirmation-funds-openapi.json @@ -2,7 +2,7 @@ "openapi": "3.0.0", "info": { "title": "Confirmation of Funds API Specification", - "description": "Swagger for Confirmation of Funds API Specification.\n\n**Please Note**: There are no optional fields, if a field is not marked as “Required” it is a Conditional field.\n", + "description": "Swagger for Confirmation of Funds API Specification.\n\n**Please Note**: There are no optional fields, if a field is not marked as “Required” it is a Conditional field.", "termsOfService": "https://www.openbanking.org.uk/terms", "contact": { "name": "Service Desk", @@ -14,6 +14,16 @@ }, "version": "4.0.1" }, + "tags": [ + { + "name": "Funds Confirmation Consents", + "description": "Operations related to funds confirmation consents" + }, + { + "name": "Funds Confirmations", + "description": "Operations related to funds confirmations" + } + ], "paths": { "/funds-confirmation-consents": { "post": { @@ -21,7 +31,7 @@ "Funds Confirmation Consents" ], "summary": "Create a Funds Confirmation Consent", - "description": "Enables a CBPII to ask an ASPSP to create a new funds-confirmation-consent resource, by sending a copy of the consent to the ASPSP.", + "description": "Enables a CBPII to ask an ASPSP to create a new funds-confirmation-consent resource, by sending a copy of the consent to the ASPSP.\n\nOn success (HTTP 201), the response contains a `ConsentId`, `CreationDateTime`, the current `Status` of the consent, `StatusUpdateDateTime`, and the `DebtorAccount` associated with the consent. The consent may initially be returned with status `AWAU` (`AwaitingAuthorisation`).\n\n**Note:** Creating this consent does not immediately authorise funds confirmations. The PSU will need to authenticate and authorise the consent with their ASPSP before the consent can be used for funds confirmation requests.", "operationId": "CreateFundsConfirmationConsents", "parameters": [ { @@ -39,6 +49,9 @@ { "$ref": "#/components/parameters/x-customer-user-agent" }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, { "$ref": "#/components/parameters/x-client-id" } @@ -98,7 +111,7 @@ "Funds Confirmation Consents" ], "summary": "Get a Funds Confirmation Consent", - "description": "Enables a CBPII to retrieve the status of a Funds Confirmation Consent resource.", + "description": "Enables a CBPII to retrieve the status of a Funds Confirmation Consent resource.\n\nOn success (HTTP 200), the response contains the consent `ConsentId`, `CreationDateTime`, current `Status`, `StatusUpdateDateTime`, optional `StatusReason`, optional `ExpirationDateTime`, and the `DebtorAccount` associated with the consent.\n\n**Note:** This operation is read-only. It does not change the consent status, authorise the consent, revoke the consent, or perform a funds availability check.", "operationId": "GetFundsConfirmationConsentsConsentId", "parameters": [ { @@ -119,6 +132,9 @@ { "$ref": "#/components/parameters/x-customer-user-agent" }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, { "$ref": "#/components/parameters/x-client-id" } @@ -162,7 +178,7 @@ "Funds Confirmation Consents" ], "summary": "Delete a Funds Confirmation Consent", - "description": "Enables a CBPII to inform the PSU’s ASPSP that the PSU has revoked their consent to provide funds confirmations.", + "description": "Enables a CBPII to inform the PSU's ASPSP that the PSU has revoked their consent to provide funds confirmations.\n\nOn success (HTTP 204), the response has no body. The ASPSP confirms that the funds-confirmation-consent resource identified by `ConsentId` has been deleted or revoked for future funds confirmation use.\n\n**Note:** After this operation succeeds, the consent can no longer be used to create funds confirmation requests.", "operationId": "DeleteFundsConfirmationConsentsConsentId", "parameters": [ { @@ -183,6 +199,9 @@ { "$ref": "#/components/parameters/x-customer-user-agent" }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, { "$ref": "#/components/parameters/x-client-id" } @@ -228,7 +247,7 @@ "Funds Confirmations" ], "summary": "Create a Funds Confirmation Request", - "description": "Enables a CBPII to check whether a PSU has sufficient available funds for a CBPII transaction.", + "description": "Enables a CBPII to check whether a PSU has sufficient available funds for a CBPII transaction.\n\nThe request identifies the authorised funds-confirmation consent using `ConsentId`, provides a CBPII-assigned `Reference`, and specifies the `InstructedAmount` to check.\n\nOn success (HTTP 201), the response contains a `FundsConfirmationId`, the related `ConsentId`, `CreationDateTime`, the boolean `FundsAvailable` result, the `Reference`, and the `InstructedAmount` checked.\n\n**Note:** This operation checks availability only; it does not reserve funds, move funds, or initiate a payment.", "operationId": "CreateFundsConfirmations", "parameters": [ { @@ -246,6 +265,9 @@ { "$ref": "#/components/parameters/x-customer-user-agent" }, + { + "$ref": "#/components/parameters/x-jws-signature" + }, { "$ref": "#/components/parameters/x-client-id" } @@ -310,19 +332,21 @@ "ConsentId": { "name": "ConsentId", "in": "path", - "description": "ConsentId", + "description": "`ConsentId`", "required": true, "schema": { - "type": "string" + "type": "string", + "example": "FCC-20260401-0001" } }, "Authorization": { "in": "header", "name": "Authorization", "required": true, - "description": "An Authorisation Token as per https://tools.ietf.org/html/rfc6750", + "description": "An Authorisation Token as per ", "schema": { - "type": "string" + "type": "string", + "example": "Bearer " } }, "x-customer-user-agent": { @@ -331,7 +355,8 @@ "description": "Indicates the user-agent that the PSU is using.", "required": false, "schema": { - "type": "string" + "type": "string", + "example": "Mozilla/5.0 (Example PSU Device)" } }, "x-fapi-customer-ip-address": { @@ -340,17 +365,19 @@ "required": false, "description": "The PSU's IP address if the PSU is currently logged in with the TPP.", "schema": { - "type": "string" + "type": "string", + "example": "203.0.113.42" } }, "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", + "description": "The time when the PSU last logged in with the TPP.\n\nAll dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below:\n\n`Sun, 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)$" + "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)$", + "example": "Wed, 01 Apr 2026 10:15:30 GMT" } }, "x-fapi-interaction-id": { @@ -358,53 +385,55 @@ "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)$" + "example": "93bac548-d2de-4546-b106-880a5018460d" } }, "x-jws-signature": { "in": "header", "name": "x-jws-signature", - "required": true, + "required": false, "description": "A detached JWS signature of the body of the payload.", "schema": { - "type": "string" + "type": "string", + "example": "eyJhbGciOiJQUzI1NiIsInR5cCI6IkpPU0UiLCJraWQiOiJUYTRPbGp6d1dpWFNWV0V6NmYwT2lBUzJqMEkiLCJjdHkiOiJhcHBsaWNhdGlvbi9qc29uIiwiaHR0cDovL29wZW5iYW5raW5nLm9yZy51ay9pYXQiOjE3ODk3MjcwMDEsImh0dHA6Ly9vcGVuYmFua2luZy5vcmcudWsvaXNzIjoiMDAxNTgwMDAwMTA0MVJIQUFZIiwiaHR0cDovL29wZW5iYW5raW5nLm9yZy51ay90YW4iOiJvcGVuYmFua2luZy5vcmcudWsiLCJjcml0IjpbImh0dHA6Ly9vcGVuYmFua2luZy5vcmcudWsvaWF0IiwiaHR0cDovL29wZW5iYW5raW5nLm9yZy51ay9pc3MiLCJodHRwOi8vb3BlbmJhbmtpbmcub3JnLnVrL3RhbiJdfQ..2L_TlbsBGKWVZ4g9EDDJP5TDe5spMxToBrZf9WxnLzgYZXwXWmD0bc3__5MnZE4t4gt_azsn0wDMuVgnCxfpKTCIehtLkXrgtD9XCP0UM37pwoEODqBnPVNnENwU2_dSvHmvjOHi0zVbNLK_bHY-fo2enDjKfVk0DWyPuKX8zgsEvQrouPtB2yP4zbCl89YrY2TriKSkem6YlQd3KkSK6vtWKVJU_Ec11W2KVd6V_TA6goVZZkTx5uLVD_ygfsHMPHKD7t4u_2IleXOtgRoXxOZ0kFF0Ghsk9IbGJbcLYg7LudsIGMBFt-577sNJNJmPSXv4W5AC6Avmn2te-AInjw" } }, "x-client-id": { "in": "header", "name": "x-client-id", "required": false, - "description": "Only used if an ASPSP requires the client ID in order to return rate limit headers. \n\nTPPs __must__ refer to ASPSP developer portals for further information on any rate limit policies, if the headers are supported and any additional requirements.\n\nThis header __must not__ be used for client authentication\n", + "description": "Only used if an ASPSP requires the client ID in order to return rate limit headers.\n\nTPPs __must__ refer to ASPSP developer portals for further information on any rate limit policies, if the headers are supported and any additional requirements.\n\nThis header __must not__ be used for client authentication", "schema": { - "type": "string" + "type": "string", + "example": "cbpii-client-12345" } } }, "headers": { "RateLimit-Policy": { "required": false, - "description": "TPPs __must__ refer to ASPSP developer portals for further information on any rate limit policies, if the headers are supported and any additional requirements.\n\nA non-empty list of Quota Policy Items. The Item value __MUST__ be a String.\n\nExample:\n`RateLimit-Policy: \"default\";q=100;w=10`\n\nThe **REQUIRED** \"q\" parameter indicates the quota allocated by this policy measured in quota units.\n\nThe **OPTIONAL** \"w\" parameter value conveys a time window.\n", + "description": "TPPs __must__ refer to ASPSP developer portals for further information on any rate limit policies, if the headers are supported and any additional requirements.\n\nA non-empty list of Quota Policy Items. The Item value __MUST__ be a String.\n\nExample:\n`RateLimit-Policy: \"default\";q=100;w=10`\n\nThe **REQUIRED** \"q\" parameter indicates the quota allocated by this policy measured in quota units.\n\nThe **OPTIONAL** \"w\" parameter value conveys a time window.", "schema": { - "type": "string" + "type": "string", + "example": "\"default\";q=100;w=10" } }, "RateLimit": { "required": false, - "description": "TPPs __must__ refer to ASPSP developer portals for further information on any rate limit policies, if the headers are supported and any additional requirements.\n\nA server uses the \"RateLimit\" response header field to communicate the current service limit for a quota policy for a particular partition key.\n\nExample:\n`RateLimit: \"default\";r=50;t=30`\n\nThe **REQUIRED** \"r\" parameter value conveys the remaining quota units for the identified policy.\n\nThe **OPTIONAL** \"t\" parameter value conveys the time window reset time for the identified policy.\n", + "description": "TPPs __must__ refer to ASPSP developer portals for further information on any rate limit policies, if the headers are supported and any additional requirements.\n\nA server uses the \"RateLimit\" response header field to communicate the current service limit for a quota policy for a particular partition key.\n\nExample:\n`RateLimit: \"default\";r=50;t=30`\n\nThe **REQUIRED** \"r\" parameter value conveys the remaining quota units for the identified policy.\n\nThe **OPTIONAL** \"t\" parameter value conveys the time window reset time for the identified policy.", "schema": { - "type": "string" + "type": "string", + "example": "\"default\";r=50;t=30" + } + }, + "x-jws-signature": { + "required": false, + "description": "A detached JWS signature of the body of the payload.", + "schema": { + "type": "string", + "example": "eyJhbGciOiJQUzI1NiIsInR5cCI6IkpPU0UiLCJraWQiOiJUYTRPbGp6d1dpWFNWV0V6NmYwT2lBUzJqMEkiLCJjdHkiOiJhcHBsaWNhdGlvbi9qc29uIiwiaHR0cDovL29wZW5iYW5raW5nLm9yZy51ay9pYXQiOjE3ODk3MjcwMDEsImh0dHA6Ly9vcGVuYmFua2luZy5vcmcudWsvaXNzIjoiMDAxNTgwMDAwMTA0MVJIQUFZIiwiaHR0cDovL29wZW5iYW5raW5nLm9yZy51ay90YW4iOiJvcGVuYmFua2luZy5vcmcudWsiLCJjcml0IjpbImh0dHA6Ly9vcGVuYmFua2luZy5vcmcudWsvaWF0IiwiaHR0cDovL29wZW5iYW5raW5nLm9yZy51ay9pc3MiLCJodHRwOi8vb3BlbmJhbmtpbmcub3JnLnVrL3RhbiJdfQ..2L_TlbsBGKWVZ4g9EDDJP5TDe5spMxToBrZf9WxnLzgYZXwXWmD0bc3__5MnZE4t4gt_azsn0wDMuVgnCxfpKTCIehtLkXrgtD9XCP0UM37pwoEODqBnPVNnENwU2_dSvHmvjOHi0zVbNLK_bHY-fo2enDjKfVk0DWyPuKX8zgsEvQrouPtB2yP4zbCl89YrY2TriKSkem6YlQd3KkSK6vtWKVJU_Ec11W2KVd6V_TA6goVZZkTx5uLVD_ygfsHMPHKD7t4u_2IleXOtgRoXxOZ0kFF0Ghsk9IbGJbcLYg7LudsIGMBFt-577sNJNJmPSXv4W5AC6Avmn2te-AInjw" } } }, @@ -424,6 +453,9 @@ }, "RateLimit": { "$ref": "#/components/headers/RateLimit" + }, + "x-jws-signature": { + "$ref": "#/components/headers/x-jws-signature" } }, "content": { @@ -459,6 +491,9 @@ }, "RateLimit": { "$ref": "#/components/headers/RateLimit" + }, + "x-jws-signature": { + "$ref": "#/components/headers/x-jws-signature" } }, "content": { @@ -494,6 +529,9 @@ }, "RateLimit": { "$ref": "#/components/headers/RateLimit" + }, + "x-jws-signature": { + "$ref": "#/components/headers/x-jws-signature" } } }, @@ -512,6 +550,9 @@ }, "RateLimit": { "$ref": "#/components/headers/RateLimit" + }, + "x-jws-signature": { + "$ref": "#/components/headers/x-jws-signature" } }, "content": { @@ -541,6 +582,9 @@ "schema": { "type": "string" } + }, + "x-jws-signature": { + "$ref": "#/components/headers/x-jws-signature" } }, "content": { @@ -570,6 +614,9 @@ "schema": { "type": "string" } + }, + "x-jws-signature": { + "$ref": "#/components/headers/x-jws-signature" } } }, @@ -582,6 +629,9 @@ "schema": { "type": "string" } + }, + "x-jws-signature": { + "$ref": "#/components/headers/x-jws-signature" } }, "content": { @@ -602,18 +652,6 @@ } } }, - "404Error": { - "description": "Not found", - "headers": { - "x-fapi-interaction-id": { - "required": true, - "description": "An RFC4122 UID used as a correlation id.", - "schema": { - "type": "string" - } - } - } - }, "405Error": { "description": "Method Not Allowed", "headers": { @@ -623,6 +661,9 @@ "schema": { "type": "string" } + }, + "x-jws-signature": { + "$ref": "#/components/headers/x-jws-signature" } } }, @@ -635,6 +676,9 @@ "schema": { "type": "string" } + }, + "x-jws-signature": { + "$ref": "#/components/headers/x-jws-signature" } } }, @@ -647,6 +691,9 @@ "schema": { "type": "string" } + }, + "x-jws-signature": { + "$ref": "#/components/headers/x-jws-signature" } } }, @@ -664,6 +711,9 @@ "schema": { "type": "string" } + }, + "x-jws-signature": { + "$ref": "#/components/headers/x-jws-signature" } } }, @@ -676,6 +726,9 @@ "schema": { "type": "string" } + }, + "x-jws-signature": { + "$ref": "#/components/headers/x-jws-signature" } }, "content": { @@ -700,7 +753,7 @@ "securitySchemes": { "TPPOAuth2Security": { "type": "oauth2", - "description": "TPP client credential authorisation flow with the ASPSP", + "description": "TPP client credentials authorisation flow with the ASPSP.\n\nFAPI 1 Advanced / OAuth 2.0 client credentials authorisation flow with the ASPSP. Access tokens are sent on resource requests using the standard HTTP Authorization header with the Bearer authentication scheme: `Authorization: Bearer `.\n\nThis OpenAPI security scheme represents the OAuth2 access-token requirement. Additional Open Banking/FAPI requirements such as transport security, client authentication method, PAR/JAR, or certificate binding are profiled by the Open Banking security profile and may not be fully expressible in OpenAPI 3.0 securitySchemes.", "flows": { "clientCredentials": { "tokenUrl": "https://authserver.example/token", @@ -712,7 +765,7 @@ }, "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", + "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.\n\nFAPI 1 Advanced / OAuth 2.0 authorisation code flow with the ASPSP. Access tokens are sent on resource requests using the standard HTTP Authorization header with the Bearer scheme: `Authorization: Bearer `.\n\nThis OpenAPI security scheme represents the OAuth2 access-token requirement. Additional Open Banking/FAPI requirements such as transport security, client authentication method, PAR/JAR, or certificate binding are profiled by the Open Banking security profile and may not be fully expressible in OpenAPI 3.0 securitySchemes.", "flows": { "authorizationCode": { "authorizationUrl": "https://authserver.example/authorization", @@ -725,12 +778,6 @@ } }, "schemas": { - "Identification_0": { - "description": "Identification assigned by an institution to identify an account. This identification is known by the account owner.", - "type": "string", - "minLength": 1, - "maxLength": 256 - }, "OBProxy1": { "description": "Specifies an alternate assumed name for the identification of the account.", "type": "object", @@ -743,7 +790,8 @@ "description": "Identification used to indicate the account identification under another specified name.", "type": "string", "minLength": 1, - "maxLength": 2048 + "maxLength": 2048, + "example": "+441632960540" }, "Code": { "$ref": "#/components/schemas/ExternalProxyAccountType1Code" @@ -752,12 +800,63 @@ "type": "string", "description": "Type of the proxy identification.", "minLength": 1, - "maxLength": 35 + "maxLength": 35, + "example": "Telephone" } } }, + "OBCashAccountDebtorWithName": { + "type": "object", + "required": [ + "SchemeName", + "Identification" + ], + "description": "Unambiguous identification of the account of the debtor to which a confirmation of funds consent will be applied.", + "properties": { + "SchemeName": { + "$ref": "#/components/schemas/OBInternalAccountIdentification4Code" + }, + "Identification": { + "description": "Identification assigned by an institution to identify an account. This identification is known by the account owner.", + "type": "string", + "minLength": 1, + "maxLength": 256, + "example": "30949301273801" + }, + "Name": { + "description": "Name of the account, as assigned by the account servicing institution.\n\nUsage: The account name is the name or names of the account owner(s) represented at an account level. The account name is not the product name or the nickname of the account.", + "type": "string", + "minLength": 1, + "maxLength": 350, + "example": "Jane Smith" + }, + "SecondaryIdentification": { + "description": "This is secondary identification of the account, as assigned by the account servicing institution.\n\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, + "example": "Roll 56988" + }, + "Proxy": { + "$ref": "#/components/schemas/OBProxy1" + } + } + }, + "OBInternalAccountIdentification4Code": { + "description": "Name of the identification scheme, in a coded form as published in an external list.\n\nFor a full list of values see `OBInternalAccountIdentification4Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets/blob/main/OB_Internal_Codeset.csv)", + "type": "string", + "x-namespaced-enum": [ + "UK.OBIE.BBAN", + "UK.OBIE.IBAN", + "UK.OBIE.PAN", + "UK.OBIE.Paym", + "UK.OBIE.SortCodeAccountNumber", + "UK.OBIE.Wallet" + ], + "example": "UK.OBIE.SortCodeAccountNumber" + }, "ExternalProxyAccountType1Code": { - "description": "Specifies the external proxy account type code, as published in the proxy account type external code set.
For a full list of values refer to `ExternalProxyAccountType1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "description": "Specifies the external proxy account type code, as published in the proxy account type external code set.\n\nFor a full list of values refer to `ExternalProxyAccountType1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets/blob/main/ISO_External_Codeset.csv)", "type": "string", "enum": [ "TELE", @@ -781,13 +880,42 @@ "UBIL", "VIPN", "BIID" - ] + ], + "example": "TELE" }, "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", + "description": "All dates in the JSON payloads are represented in ISO 8601 date-time format.\n\nAll date-time fields in responses must include the timezone. An example is below:\n\n`2017-04-05T10:43:07+00:00`", "type": "string", "format": "date-time" }, + "OBActiveOrHistoricCurrencyAndAmount": { + "type": "object", + "required": [ + "Amount", + "Currency" + ], + "description": "Amount of money to be confirmed as available funds in the debtor account. Contains an `Amount` and a `Currency`.", + "properties": { + "Amount": { + "$ref": "#/components/schemas/OBActiveCurrencyAndAmount_SimpleType" + }, + "Currency": { + "$ref": "#/components/schemas/ActiveOrHistoricCurrencyCode" + } + } + }, + "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}$", + "example": "20.00" + }, + "ActiveOrHistoricCurrencyCode": { + "description": "A code allocated to a currency by a Maintenance Agency under an international identification scheme, as described in the latest edition of the international standard ISO 4217 \"Codes for the representation of currencies and funds\".", + "type": "string", + "pattern": "^[A-Z]{3,3}$", + "example": "GBP" + }, "Links": { "type": "object", "description": "Links relevant to the payload", @@ -843,20 +971,23 @@ "$ref": "#/components/schemas/OBExternalStatusReason1Code" }, "Message": { - "description": "A description of the error that occurred. e.g., 'A mandatory field isn't supplied' or 'RequestedExecutionDateTime must be in future'\nOBL doesn't standardise this field", + "description": "A description of the error that occurred. e.g., `'A mandatory field isn't supplied'` or `'RequestedExecutionDateTime must be in future'`\n\nOBL doesn't standardise this field.", "type": "string", "minLength": 1, - "maxLength": 500 + "maxLength": 500, + "example": "InstructedAmount.Currency must match the currency of the underlying payment account." }, "Path": { - "description": "Recommended but optional reference to the JSON Path of the field with error, e.g., Data.Initiation.InstructedAmount.Currency", + "description": "Recommended but optional reference to the JSON Path of the field with error, e.g., `Data.InstructedAmount.Currency`", "type": "string", "minLength": 1, - "maxLength": 500 + "maxLength": 500, + "example": "Data.InstructedAmount.Currency" }, "Url": { "description": "URL to help remediate the problem, or provide more information, or to API Reference, or help etc", - "type": "string" + "type": "string", + "example": "https://docs.alphabank.com/open-banking/errors/U002" } }, "required": [ @@ -876,17 +1007,17 @@ "maxLength": 40 }, "Code": { - "description": "Deprecated
High level textual error code, to help categorise the errors.", + "description": "**Deprecated**\n\nHigh level textual error code, to help categorise the errors.", "type": "string", "minLength": 1, - "example": "400 BadRequest", + "example": "UK.OBIE.Field.Invalid", "maxLength": 40 }, "Message": { - "description": "Deprecated
Brief Error message", + "description": "**Deprecated**\n\nBrief Error message", "type": "string", "minLength": 1, - "example": "There is something wrong with the request parameters provided", + "example": "One or more request fields are invalid.", "maxLength": 500 }, "Errors": { @@ -909,50 +1040,38 @@ ], "properties": { "Data": { - "type": "object", - "required": [ - "ConsentId", - "Reference", - "InstructedAmount" - ], - "properties": { - "ConsentId": { - "description": "Unique identification as assigned by the ASPSP to uniquely identify the funds confirmation consent resource.", - "type": "string", - "minLength": 1, - "maxLength": 128 - }, - "Reference": { - "description": "Unique reference, as assigned by the CBPII, to unambiguously refer to the request related to the payment transaction.", - "type": "string", - "minLength": 1, - "maxLength": 35 - }, - "InstructedAmount": { - "type": "object", - "required": [ - "Amount", - "Currency" - ], - "description": "Amount of money to be confirmed as available funds in the debtor account. Contains an Amount and a Currency.", - "properties": { - "Amount": { - "description": "A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217.", - "type": "string", - "pattern": "^\\d{1,13}$|^\\d{1,13}\\.\\d{1,5}$" - }, - "Currency": { - "description": "A code allocated to a currency by a Maintenance Agency under an international identification scheme, as described in the latest edition of the international standard ISO 4217 \"Codes for the representation of currencies and funds\".", - "type": "string", - "pattern": "^[A-Z]{3,3}$" - } - } - } - } + "$ref": "#/components/schemas/OBFundsConfirmationData1" } }, "additionalProperties": false }, + "OBFundsConfirmationData1": { + "type": "object", + "required": [ + "ConsentId", + "Reference", + "InstructedAmount" + ], + "properties": { + "ConsentId": { + "description": "Unique identification as assigned by the ASPSP to uniquely identify the funds confirmation consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "example": "FCC-20260401-0001" + }, + "Reference": { + "description": "Unique reference, as assigned by the CBPII, to unambiguously refer to the request related to the payment transaction.", + "type": "string", + "minLength": 1, + "maxLength": 35, + "example": "CARD-PURCHASE-001" + }, + "InstructedAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount" + } + } + }, "OBFundsConfirmationConsent1": { "type": "object", "required": [ @@ -960,64 +1079,28 @@ ], "properties": { "Data": { - "type": "object", - "required": [ - "DebtorAccount" - ], - "properties": { - "ExpirationDateTime": { - "description": "Specified date and time the funds confirmation authorisation will expire.\n If this is not populated, the authorisation will be open ended. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", - "type": "string", - "format": "date-time" - }, - "DebtorAccount": { - "type": "object", - "required": [ - "SchemeName", - "Identification" - ], - "description": "Unambiguous identification of the account of the debtor to which a confirmation of funds consent will be applied.", - "properties": { - "SchemeName": { - "description": "Name of the identification scheme, in a coded form as published in an external list. For a full list of values see `OBInternalAccountIdentification4Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", - "type": "string", - "x-namespaced-enum": [ - "UK.OBIE.BBAN", - "UK.OBIE.IBAN", - "UK.OBIE.PAN", - "UK.OBIE.Paym", - "UK.OBIE.SortCodeAccountNumber", - "UK.OBIE.Wallet" - ] - }, - "Identification": { - "description": "Identification assigned by an institution to identify an account. This identification is known by the account owner.", - "type": "string", - "minLength": 1, - "maxLength": 256 - }, - "Name": { - "description": "Name of the account, as assigned by the account servicing institution.\nUsage: The account name is the name or names of the account owner(s) represented at an account level. The account name is not the product name or the nickname of the account.", - "type": "string", - "minLength": 1, - "maxLength": 350 - }, - "SecondaryIdentification": { - "description": "This is secondary identification of the account, as assigned by the account servicing institution. \nThis can be used by building societies to additionally identify accounts with a roll number (in addition to a sort code and account number combination).", - "type": "string", - "minLength": 1, - "maxLength": 34 - }, - "Proxy": { - "$ref": "#/components/schemas/OBProxy1" - } - } - } - } + "$ref": "#/components/schemas/OBFundsConfirmationConsentData1" } }, "additionalProperties": false }, + "OBFundsConfirmationConsentData1": { + "type": "object", + "required": [ + "DebtorAccount" + ], + "properties": { + "ExpirationDateTime": { + "description": "Specified date and time the funds confirmation authorisation will expire.\n\nIf this is not populated, the authorisation will be open ended. All dates in the JSON payloads are represented in ISO 8601 date-time format.\n\nAll date-time fields in responses must include the timezone. An example is below:\n\n`2017-04-05T10:43:07+00:00`", + "type": "string", + "format": "date-time", + "example": "2026-10-01T10:15:30+00:00" + }, + "DebtorAccount": { + "$ref": "#/components/schemas/OBCashAccountDebtorWithName" + } + } + }, "OBFundsConfirmationConsentResponse1": { "type": "object", "required": [ @@ -1025,89 +1108,7 @@ ], "properties": { "Data": { - "type": "object", - "required": [ - "ConsentId", - "CreationDateTime", - "Status", - "StatusUpdateDateTime", - "DebtorAccount" - ], - "properties": { - "ConsentId": { - "description": "Unique identification as assigned to identify the funds confirmation consent resource.", - "type": "string", - "minLength": 1, - "maxLength": 128 - }, - "CreationDateTime": { - "description": "Date and time at which the resource was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", - "type": "string", - "format": "date-time" - }, - "Status": { - "$ref": "#/components/schemas/OBInternalConsentStatus1Code" - }, - "StatusReason": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OBStatusReason" - } - }, - "StatusUpdateDateTime": { - "description": "Date and time at which the resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", - "type": "string", - "format": "date-time" - }, - "ExpirationDateTime": { - "description": "Specified date and time the funds confirmation authorisation will expire.\nIf this is not populated, the authorisation will be open ended. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", - "type": "string", - "format": "date-time" - }, - "DebtorAccount": { - "type": "object", - "required": [ - "SchemeName", - "Identification" - ], - "description": "Unambiguous identification of the account of the debtor to which a confirmation of funds consent will be applied.", - "properties": { - "SchemeName": { - "description": "Name of the identification scheme, in a coded form as published in an external list. For a full list of values refer to `OBInternalAccountIdentification4Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", - "type": "string", - "x-namespaced-enum": [ - "UK.OBIE.BBAN", - "UK.OBIE.IBAN", - "UK.OBIE.PAN", - "UK.OBIE.Paym", - "UK.OBIE.SortCodeAccountNumber", - "UK.OBIE.Wallet" - ] - }, - "Identification": { - "description": "Identification assigned by an institution to identify an account. This identification is known by the account owner.", - "type": "string", - "minLength": 1, - "maxLength": 256 - }, - "Name": { - "description": "Name of the account, as assigned by the account servicing institution.\nUsage: The account name is the name or names of the account owner(s) represented at an account level. The account name is not the product name or the nickname of the account.", - "type": "string", - "minLength": 1, - "maxLength": 350 - }, - "SecondaryIdentification": { - "description": "This is secondary identification of the account, as assigned by the account servicing institution. \nThis can be used by building societies to additionally identify accounts with a roll number (in addition to a sort code and account number combination).", - "type": "string", - "minLength": 1, - "maxLength": 34 - }, - "Proxy": { - "$ref": "#/components/schemas/OBProxy1" - } - } - } - } + "$ref": "#/components/schemas/OBFundsConfirmationConsentDataResponse1" }, "Links": { "$ref": "#/components/schemas/Links" @@ -1118,8 +1119,57 @@ }, "additionalProperties": false }, + "OBFundsConfirmationConsentDataResponse1": { + "type": "object", + "required": [ + "ConsentId", + "CreationDateTime", + "Status", + "StatusUpdateDateTime", + "DebtorAccount" + ], + "properties": { + "ConsentId": { + "description": "Unique identification as assigned to identify the funds confirmation consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "example": "FCC-20260401-0001" + }, + "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.\n\nAll date-time fields in responses must include the timezone. An example is below:\n\n`2017-04-05T10:43:07+00:00`", + "type": "string", + "format": "date-time", + "example": "2026-04-01T10:15:30+00:00" + }, + "Status": { + "$ref": "#/components/schemas/OBInternalConsentStatus1Code" + }, + "StatusReason": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OBStatusReason" + } + }, + "StatusUpdateDateTime": { + "description": "Date and time at which the resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format.\n\nAll date-time fields in responses must include the timezone. An example is below:\n\n`2017-04-05T10:43:07+00:00`", + "type": "string", + "format": "date-time", + "example": "2026-04-01T10:20:30+00:00" + }, + "ExpirationDateTime": { + "description": "Specified date and time the funds confirmation authorisation will expire.\n\nIf this is not populated, the authorisation will be open ended. All dates in the JSON payloads are represented in ISO 8601 date-time format.\n\nAll date-time fields in responses must include the timezone. An example is below:\n\n`2017-04-05T10:43:07+00:00`", + "type": "string", + "format": "date-time", + "example": "2026-10-01T10:15:30+00:00" + }, + "DebtorAccount": { + "$ref": "#/components/schemas/OBCashAccountDebtorWithName" + } + } + }, "OBInternalConsentStatus1Code": { - "description": "Specifies the status of consent resource in code form. For a full list of values refer to `OBInternalConsentStatus1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "description": "Specifies the status of consent resource in code form.\n\nFor a full list of values refer to `OBInternalConsentStatus1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets/blob/main/OB_Internal_Codeset.csv)", "type": "string", "enum": [ "AWAU", @@ -1127,7 +1177,8 @@ "AUTH", "CANC", "EXPD" - ] + ], + "example": "AUTH" }, "OBFundsConfirmationResponse1": { "type": "object", @@ -1136,64 +1187,7 @@ ], "properties": { "Data": { - "type": "object", - "required": [ - "FundsConfirmationId", - "ConsentId", - "CreationDateTime", - "FundsAvailable", - "Reference", - "InstructedAmount" - ], - "properties": { - "FundsConfirmationId": { - "description": "Unique identification as assigned by the ASPSP to uniquely identify the funds confirmation resource.", - "type": "string", - "minLength": 1, - "maxLength": 40 - }, - "ConsentId": { - "description": "Unique identification as assigned by the ASPSP to uniquely identify the funds confirmation consent resource.", - "type": "string", - "minLength": 1, - "maxLength": 128 - }, - "CreationDateTime": { - "description": "Date and time at which the resource was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. \nAll date-time fields in responses must include the timezone. An example is below:\n2017-04-05T10:43:07+00:00", - "type": "string", - "format": "date-time" - }, - "FundsAvailable": { - "description": "Flag to indicate the result of a confirmation of funds check.", - "type": "boolean" - }, - "Reference": { - "description": "Unique reference, as assigned by the CBPII, to unambiguously refer to the request related to the payment transaction.", - "type": "string", - "minLength": 1, - "maxLength": 35 - }, - "InstructedAmount": { - "type": "object", - "required": [ - "Amount", - "Currency" - ], - "description": "Amount of money to be confirmed as available funds in the debtor account. Contains an Amount and a Currency.", - "properties": { - "Amount": { - "description": "A number of monetary units specified in an active currency where the unit of currency is explicit and compliant with ISO 4217.", - "type": "string", - "pattern": "^\\d{1,13}$|^\\d{1,13}\\.\\d{1,5}$" - }, - "Currency": { - "description": "A code allocated to a currency by a Maintenance Agency under an international identification scheme, as described in the latest edition of the international standard ISO 4217 \"Codes for the representation of currencies and funds\".", - "type": "string", - "pattern": "^[A-Z]{3,3}$" - } - } - } - } + "$ref": "#/components/schemas/OBFundsConfirmationDataResponse1" }, "Links": { "$ref": "#/components/schemas/Links" @@ -1204,34 +1198,84 @@ }, "additionalProperties": false }, + "OBFundsConfirmationDataResponse1": { + "type": "object", + "required": [ + "FundsConfirmationId", + "ConsentId", + "CreationDateTime", + "FundsAvailable", + "Reference", + "InstructedAmount" + ], + "properties": { + "FundsConfirmationId": { + "description": "Unique identification as assigned by the ASPSP to uniquely identify the funds confirmation resource.", + "type": "string", + "minLength": 1, + "maxLength": 40, + "example": "FC-20260401-0001" + }, + "ConsentId": { + "description": "Unique identification as assigned by the ASPSP to uniquely identify the funds confirmation consent resource.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "example": "FCC-20260401-0001" + }, + "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.\n\nAll date-time fields in responses must include the timezone. An example is below:\n\n`2017-04-05T10:43:07+00:00`", + "type": "string", + "format": "date-time", + "example": "2026-04-01T10:25:30+00:00" + }, + "FundsAvailable": { + "description": "Flag to indicate the result of a confirmation of funds check.", + "type": "boolean", + "example": true + }, + "Reference": { + "description": "Unique reference, as assigned by the CBPII, to unambiguously refer to the request related to the payment transaction.", + "type": "string", + "minLength": 1, + "maxLength": 35, + "example": "CARD-PURCHASE-001" + }, + "InstructedAmount": { + "$ref": "#/components/schemas/OBActiveOrHistoricCurrencyAndAmount" + } + } + }, "OBExternalStatusReason1Code": { - "description": "Low level textual error code, for all enum values see `OBExternalStatusReason1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "description": "Low level textual error code.\n\nFor all enum values see `OBExternalStatusReason1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", "type": "string", "minLength": 4, "maxLength": 4, - "example": "U001" + "example": "U002" }, "OBStatusReason": { "type": "object", "properties": { "StatusReasonCode": { "type": "string", - "description": "Specifies the status reason in a code form. \n For a full list of values see `OBExternalStatusReason1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", + "description": "Specifies the status reason in a code form.\n\nFor a full list of values see `OBExternalStatusReason1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets)", "minLength": 1, "maxLength": 4, - "example": "ERIN" + "example": "U009" }, "StatusReasonDescription": { - "description": "Description supporting the StatusReasonCode.", + "description": "Description supporting the `StatusReasonCode`.", "type": "string", "minLength": 1, - "maxLength": 500 + "maxLength": 500, + "example": "The consent is not in a status that allows funds confirmation." }, "Path": { "type": "string", - "description": "Optional reference to the JSON Path of the field when status reason refers to an object/field, e.g., Data.DebtorAccount.SchemeName", + "description": "Optional reference to the JSON Path of the field when status reason refers to an object/field, e.g., `Data.DebtorAccount.SchemeName`", "minLength": 1, - "maxLength": 500 + "maxLength": 500, + "example": "Data.ConsentId" } } } diff --git a/dist/openapi/confirmation-funds-openapi.yaml b/dist/openapi/confirmation-funds-openapi.yaml index 3c777ab..837c189 100644 --- a/dist/openapi/confirmation-funds-openapi.yaml +++ b/dist/openapi/confirmation-funds-openapi.yaml @@ -1,9 +1,9 @@ openapi: 3.0.0 info: title: Confirmation of Funds API Specification - description: | + description: |- Swagger for Confirmation of Funds API Specification. - + **Please Note**: There are no optional fields, if a field is not marked as “Required” it is a Conditional field. termsOfService: https://www.openbanking.org.uk/terms contact: @@ -13,13 +13,23 @@ info: name: open-licence url: https://www.openbanking.org.uk/open-licence version: 4.0.1 +tags: + - name: Funds Confirmation Consents + description: Operations related to funds confirmation consents + - name: Funds Confirmations + description: Operations related to funds confirmations paths: /funds-confirmation-consents: post: tags: - Funds Confirmation Consents summary: Create a Funds Confirmation Consent - description: Enables a CBPII to ask an ASPSP to create a new funds-confirmation-consent resource, by sending a copy of the consent to the ASPSP. + description: |- + Enables a CBPII to ask an ASPSP to create a new funds-confirmation-consent resource, by sending a copy of the consent to the ASPSP. + + On success (HTTP 201), the response contains a `ConsentId`, `CreationDateTime`, the current `Status` of the consent, `StatusUpdateDateTime`, and the `DebtorAccount` associated with the consent. The consent may initially be returned with status `AWAU` (`AwaitingAuthorisation`). + + **Note:** Creating this consent does not immediately authorise funds confirmations. The PSU will need to authenticate and authorise the consent with their ASPSP before the consent can be used for funds confirmation requests. operationId: CreateFundsConfirmationConsents parameters: - $ref: '#/components/parameters/x-fapi-auth-date' @@ -27,6 +37,7 @@ paths: - $ref: '#/components/parameters/x-fapi-interaction-id' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/x-customer-user-agent' + - $ref: '#/components/parameters/x-jws-signature' - $ref: '#/components/parameters/x-client-id' requestBody: content: @@ -62,7 +73,12 @@ paths: tags: - Funds Confirmation Consents summary: Get a Funds Confirmation Consent - description: Enables a CBPII to retrieve the status of a Funds Confirmation Consent resource. + description: |- + Enables a CBPII to retrieve the status of a Funds Confirmation Consent resource. + + On success (HTTP 200), the response contains the consent `ConsentId`, `CreationDateTime`, current `Status`, `StatusUpdateDateTime`, optional `StatusReason`, optional `ExpirationDateTime`, and the `DebtorAccount` associated with the consent. + + **Note:** This operation is read-only. It does not change the consent status, authorise the consent, revoke the consent, or perform a funds availability check. operationId: GetFundsConfirmationConsentsConsentId parameters: - $ref: '#/components/parameters/ConsentId' @@ -71,6 +87,7 @@ paths: - $ref: '#/components/parameters/x-fapi-interaction-id' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/x-customer-user-agent' + - $ref: '#/components/parameters/x-jws-signature' - $ref: '#/components/parameters/x-client-id' responses: '200': @@ -96,7 +113,12 @@ paths: tags: - Funds Confirmation Consents summary: Delete a Funds Confirmation Consent - description: Enables a CBPII to inform the PSU’s ASPSP that the PSU has revoked their consent to provide funds confirmations. + description: |- + Enables a CBPII to inform the PSU's ASPSP that the PSU has revoked their consent to provide funds confirmations. + + On success (HTTP 204), the response has no body. The ASPSP confirms that the funds-confirmation-consent resource identified by `ConsentId` has been deleted or revoked for future funds confirmation use. + + **Note:** After this operation succeeds, the consent can no longer be used to create funds confirmation requests. operationId: DeleteFundsConfirmationConsentsConsentId parameters: - $ref: '#/components/parameters/ConsentId' @@ -105,6 +127,7 @@ paths: - $ref: '#/components/parameters/x-fapi-interaction-id' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/x-customer-user-agent' + - $ref: '#/components/parameters/x-jws-signature' - $ref: '#/components/parameters/x-client-id' responses: '204': @@ -131,7 +154,14 @@ paths: tags: - Funds Confirmations summary: Create a Funds Confirmation Request - description: Enables a CBPII to check whether a PSU has sufficient available funds for a CBPII transaction. + description: |- + Enables a CBPII to check whether a PSU has sufficient available funds for a CBPII transaction. + + The request identifies the authorised funds-confirmation consent using `ConsentId`, provides a CBPII-assigned `Reference`, and specifies the `InstructedAmount` to check. + + On success (HTTP 201), the response contains a `FundsConfirmationId`, the related `ConsentId`, `CreationDateTime`, the boolean `FundsAvailable` result, the `Reference`, and the `InstructedAmount` checked. + + **Note:** This operation checks availability only; it does not reserve funds, move funds, or initiate a payment. operationId: CreateFundsConfirmations parameters: - $ref: '#/components/parameters/x-fapi-auth-date' @@ -139,6 +169,7 @@ paths: - $ref: '#/components/parameters/x-fapi-interaction-id' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/x-customer-user-agent' + - $ref: '#/components/parameters/x-jws-signature' - $ref: '#/components/parameters/x-client-id' requestBody: content: @@ -176,17 +207,19 @@ components: ConsentId: name: ConsentId in: path - description: ConsentId + description: '`ConsentId`' required: true schema: type: string + example: FCC-20260401-0001 Authorization: in: header name: Authorization required: true - description: An Authorisation Token as per https://tools.ietf.org/html/rfc6750 + description: An Authorisation Token as per schema: type: string + example: Bearer x-customer-user-agent: in: header name: x-customer-user-agent @@ -194,6 +227,7 @@ components: required: false schema: type: string + example: Mozilla/5.0 (Example PSU Device) x-fapi-customer-ip-address: in: header name: x-fapi-customer-ip-address @@ -201,20 +235,21 @@ components: description: The PSU's IP address if the PSU is currently logged in with the TPP. schema: type: string + example: 203.0.113.42 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. + description: |- + The time when the PSU last logged in with the TPP. - All dates in the HTTP headers are represented as RFC 7231 Full Dates. An - example is below: + All dates in the HTTP headers are represented as RFC 7231 Full Dates. An example is below: - Sun, 10 Sep 2017 19:43:31 UTC + `Sun, 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)$' + example: Wed, 01 Apr 2026 10:15:30 GMT x-fapi-interaction-id: in: header name: x-fapi-interaction-id @@ -222,40 +257,32 @@ components: 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 - Idempotency Key will be valid for 24 hours. - required: true - schema: - type: string - maxLength: 40 - pattern: '^(?!\s)(.*)(\S)$' + example: 93bac548-d2de-4546-b106-880a5018460d x-jws-signature: in: header name: x-jws-signature - required: true + required: false description: A detached JWS signature of the body of the payload. schema: type: string + example: eyJhbGciOiJQUzI1NiIsInR5cCI6IkpPU0UiLCJraWQiOiJUYTRPbGp6d1dpWFNWV0V6NmYwT2lBUzJqMEkiLCJjdHkiOiJhcHBsaWNhdGlvbi9qc29uIiwiaHR0cDovL29wZW5iYW5raW5nLm9yZy51ay9pYXQiOjE3ODk3MjcwMDEsImh0dHA6Ly9vcGVuYmFua2luZy5vcmcudWsvaXNzIjoiMDAxNTgwMDAwMTA0MVJIQUFZIiwiaHR0cDovL29wZW5iYW5raW5nLm9yZy51ay90YW4iOiJvcGVuYmFua2luZy5vcmcudWsiLCJjcml0IjpbImh0dHA6Ly9vcGVuYmFua2luZy5vcmcudWsvaWF0IiwiaHR0cDovL29wZW5iYW5raW5nLm9yZy51ay9pc3MiLCJodHRwOi8vb3BlbmJhbmtpbmcub3JnLnVrL3RhbiJdfQ..2L_TlbsBGKWVZ4g9EDDJP5TDe5spMxToBrZf9WxnLzgYZXwXWmD0bc3__5MnZE4t4gt_azsn0wDMuVgnCxfpKTCIehtLkXrgtD9XCP0UM37pwoEODqBnPVNnENwU2_dSvHmvjOHi0zVbNLK_bHY-fo2enDjKfVk0DWyPuKX8zgsEvQrouPtB2yP4zbCl89YrY2TriKSkem6YlQd3KkSK6vtWKVJU_Ec11W2KVd6V_TA6goVZZkTx5uLVD_ygfsHMPHKD7t4u_2IleXOtgRoXxOZ0kFF0Ghsk9IbGJbcLYg7LudsIGMBFt-577sNJNJmPSXv4W5AC6Avmn2te-AInjw x-client-id: in: header name: x-client-id required: false - description: | - Only used if an ASPSP requires the client ID in order to return rate limit headers. - + description: |- + Only used if an ASPSP requires the client ID in order to return rate limit headers. + TPPs __must__ refer to ASPSP developer portals for further information on any rate limit policies, if the headers are supported and any additional requirements. This header __must not__ be used for client authentication schema: type: string + example: cbpii-client-12345 headers: RateLimit-Policy: required: false - description: | + description: |- TPPs __must__ refer to ASPSP developer portals for further information on any rate limit policies, if the headers are supported and any additional requirements. A non-empty list of Quota Policy Items. The Item value __MUST__ be a String. @@ -268,9 +295,10 @@ components: The **OPTIONAL** "w" parameter value conveys a time window. schema: type: string + example: '"default";q=100;w=10' RateLimit: required: false - description: | + description: |- TPPs __must__ refer to ASPSP developer portals for further information on any rate limit policies, if the headers are supported and any additional requirements. A server uses the "RateLimit" response header field to communicate the current service limit for a quota policy for a particular partition key. @@ -283,6 +311,13 @@ components: The **OPTIONAL** "t" parameter value conveys the time window reset time for the identified policy. schema: type: string + example: '"default";r=50;t=30' + x-jws-signature: + required: false + description: A detached JWS signature of the body of the payload. + schema: + type: string + example: eyJhbGciOiJQUzI1NiIsInR5cCI6IkpPU0UiLCJraWQiOiJUYTRPbGp6d1dpWFNWV0V6NmYwT2lBUzJqMEkiLCJjdHkiOiJhcHBsaWNhdGlvbi9qc29uIiwiaHR0cDovL29wZW5iYW5raW5nLm9yZy51ay9pYXQiOjE3ODk3MjcwMDEsImh0dHA6Ly9vcGVuYmFua2luZy5vcmcudWsvaXNzIjoiMDAxNTgwMDAwMTA0MVJIQUFZIiwiaHR0cDovL29wZW5iYW5raW5nLm9yZy51ay90YW4iOiJvcGVuYmFua2luZy5vcmcudWsiLCJjcml0IjpbImh0dHA6Ly9vcGVuYmFua2luZy5vcmcudWsvaWF0IiwiaHR0cDovL29wZW5iYW5raW5nLm9yZy51ay9pc3MiLCJodHRwOi8vb3BlbmJhbmtpbmcub3JnLnVrL3RhbiJdfQ..2L_TlbsBGKWVZ4g9EDDJP5TDe5spMxToBrZf9WxnLzgYZXwXWmD0bc3__5MnZE4t4gt_azsn0wDMuVgnCxfpKTCIehtLkXrgtD9XCP0UM37pwoEODqBnPVNnENwU2_dSvHmvjOHi0zVbNLK_bHY-fo2enDjKfVk0DWyPuKX8zgsEvQrouPtB2yP4zbCl89YrY2TriKSkem6YlQd3KkSK6vtWKVJU_Ec11W2KVd6V_TA6goVZZkTx5uLVD_ygfsHMPHKD7t4u_2IleXOtgRoXxOZ0kFF0Ghsk9IbGJbcLYg7LudsIGMBFt-577sNJNJmPSXv4W5AC6Avmn2te-AInjw responses: 201FundsConfirmationConsentsCreated: description: Funds Confirmation Consent Created @@ -296,6 +331,8 @@ components: $ref: '#/components/headers/RateLimit-Policy' RateLimit: $ref: '#/components/headers/RateLimit' + x-jws-signature: + $ref: '#/components/headers/x-jws-signature' content: application/json; charset=utf-8: schema: @@ -318,6 +355,8 @@ components: $ref: '#/components/headers/RateLimit-Policy' RateLimit: $ref: '#/components/headers/RateLimit' + x-jws-signature: + $ref: '#/components/headers/x-jws-signature' content: application/json; charset=utf-8: schema: @@ -340,6 +379,8 @@ components: $ref: '#/components/headers/RateLimit-Policy' RateLimit: $ref: '#/components/headers/RateLimit' + x-jws-signature: + $ref: '#/components/headers/x-jws-signature' 201FundsConfirmationsCreated: description: Funds Confirmation Created headers: @@ -352,6 +393,8 @@ components: $ref: '#/components/headers/RateLimit-Policy' RateLimit: $ref: '#/components/headers/RateLimit' + x-jws-signature: + $ref: '#/components/headers/x-jws-signature' content: application/json; charset=utf-8: schema: @@ -370,6 +413,8 @@ components: description: An RFC4122 UID used as a correlation id. schema: type: string + x-jws-signature: + $ref: '#/components/headers/x-jws-signature' content: application/json; charset=utf-8: schema: @@ -388,6 +433,8 @@ components: description: An RFC4122 UID used as a correlation id. schema: type: string + x-jws-signature: + $ref: '#/components/headers/x-jws-signature' 403Error: description: Forbidden headers: @@ -396,6 +443,8 @@ components: description: An RFC4122 UID used as a correlation id. schema: type: string + x-jws-signature: + $ref: '#/components/headers/x-jws-signature' content: application/json; charset=utf-8: schema: @@ -406,14 +455,6 @@ components: application/jose+jwe: schema: $ref: '#/components/schemas/OBErrorResponse1' - 404Error: - description: Not found - headers: - x-fapi-interaction-id: - required: true - description: An RFC4122 UID used as a correlation id. - schema: - type: string 405Error: description: Method Not Allowed headers: @@ -422,6 +463,8 @@ components: description: An RFC4122 UID used as a correlation id. schema: type: string + x-jws-signature: + $ref: '#/components/headers/x-jws-signature' 406Error: description: Not Acceptable headers: @@ -430,6 +473,8 @@ components: description: An RFC4122 UID used as a correlation id. schema: type: string + x-jws-signature: + $ref: '#/components/headers/x-jws-signature' 415Error: description: Unsupported Media Type headers: @@ -438,6 +483,8 @@ components: description: An RFC4122 UID used as a correlation id. schema: type: string + x-jws-signature: + $ref: '#/components/headers/x-jws-signature' 429Error: description: Too Many Requests headers: @@ -449,6 +496,8 @@ components: description: An RFC4122 UID used as a correlation id. schema: type: string + x-jws-signature: + $ref: '#/components/headers/x-jws-signature' 500Error: description: Internal Server Error headers: @@ -457,6 +506,8 @@ components: description: An RFC4122 UID used as a correlation id. schema: type: string + x-jws-signature: + $ref: '#/components/headers/x-jws-signature' content: application/json; charset=utf-8: schema: @@ -470,7 +521,12 @@ components: securitySchemes: TPPOAuth2Security: type: oauth2 - description: TPP client credential authorisation flow with the ASPSP + description: |- + TPP client credentials authorisation flow with the ASPSP. + + FAPI 1 Advanced / OAuth 2.0 client credentials authorisation flow with the ASPSP. Access tokens are sent on resource requests using the standard HTTP Authorization header with the Bearer authentication scheme: `Authorization: Bearer `. + + This OpenAPI security scheme represents the OAuth2 access-token requirement. Additional Open Banking/FAPI requirements such as transport security, client authentication method, PAR/JAR, or certificate binding are profiled by the Open Banking security profile and may not be fully expressible in OpenAPI 3.0 securitySchemes. flows: clientCredentials: tokenUrl: https://authserver.example/token @@ -478,9 +534,12 @@ components: fundsconfirmations: Funds confirmation entitlement PSUOAuth2Security: type: oauth2 - description: >- - OAuth flow, it is required when the PSU needs to perform SCA with the - ASPSP when a TPP wants to access an ASPSP resource owned by the PSU + 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. + + FAPI 1 Advanced / OAuth 2.0 authorisation code flow with the ASPSP. Access tokens are sent on resource requests using the standard HTTP Authorization header with the Bearer scheme: `Authorization: Bearer `. + + This OpenAPI security scheme represents the OAuth2 access-token requirement. Additional Open Banking/FAPI requirements such as transport security, client authentication method, PAR/JAR, or certificate binding are profiled by the Open Banking security profile and may not be fully expressible in OpenAPI 3.0 securitySchemes. flows: authorizationCode: authorizationUrl: https://authserver.example/authorization @@ -488,29 +547,19 @@ components: scopes: fundsconfirmations: Funds confirmation entitlement schemas: - Identification_0: - description: >- - Identification assigned by an institution to identify an account. This - identification is known by the account owner. - type: string - minLength: 1 - maxLength: 256 OBProxy1: - description: >- - Specifies an alternate assumed name for the identification of the - account. + description: Specifies an alternate assumed name for the identification of the account. type: object required: - Identification - Code properties: Identification: - description: >- - Identification used to indicate the account identification under - another specified name. + description: Identification used to indicate the account identification under another specified name. type: string minLength: 1 maxLength: 2048 + example: '+441632960540' Code: $ref: '#/components/schemas/ExternalProxyAccountType1Code' Type: @@ -518,11 +567,61 @@ components: description: Type of the proxy identification. minLength: 1 maxLength: 35 + example: Telephone + OBCashAccountDebtorWithName: + type: object + required: + - SchemeName + - Identification + description: Unambiguous identification of the account of the debtor to which a confirmation of funds consent will be applied. + properties: + SchemeName: + $ref: '#/components/schemas/OBInternalAccountIdentification4Code' + Identification: + description: Identification assigned by an institution to identify an account. This identification is known by the account owner. + type: string + minLength: 1 + maxLength: 256 + example: '30949301273801' + Name: + description: |- + Name of the account, as assigned by the account servicing institution. + + Usage: The account name is the name or names of the account owner(s) represented at an account level. The account name is not the product name or the nickname of the account. + type: string + minLength: 1 + maxLength: 350 + example: Jane Smith + SecondaryIdentification: + description: |- + This is secondary identification of the account, as assigned by the account servicing institution. + + This can be used by building societies to additionally identify accounts with a roll number (in addition to a sort code and account number combination). + type: string + minLength: 1 + maxLength: 34 + example: Roll 56988 + Proxy: + $ref: '#/components/schemas/OBProxy1' + OBInternalAccountIdentification4Code: + description: |- + Name of the identification scheme, in a coded form as published in an external list. + + For a full list of values see `OBInternalAccountIdentification4Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets/blob/main/OB_Internal_Codeset.csv) + type: string + x-namespaced-enum: + - UK.OBIE.BBAN + - UK.OBIE.IBAN + - UK.OBIE.PAN + - UK.OBIE.Paym + - UK.OBIE.SortCodeAccountNumber + - UK.OBIE.Wallet + example: UK.OBIE.SortCodeAccountNumber ExternalProxyAccountType1Code: - description: >- - Specifies the external proxy account type code, as published in the - proxy account type external code set.
For a full list of values refer to - `ExternalProxyAccountType1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets) + description: |- + Specifies the external proxy account type code, as published in the proxy account type external code set. + + For a full list of values refer to `ExternalProxyAccountType1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets/blob/main/ISO_External_Codeset.csv) type: string enum: - TELE @@ -546,17 +645,37 @@ components: - UBIL - VIPN - BIID + example: TELE ISODateTime: - description: >- - All dates in the JSON payloads are represented in ISO 8601 date-time - format. + description: |- + All dates in the JSON payloads are represented in ISO 8601 date-time format. - All date-time fields in responses must include the timezone. An example - is below: + All date-time fields in responses must include the timezone. An example is below: - 2017-04-05T10:43:07+00:00 + `2017-04-05T10:43:07+00:00` type: string format: date-time + OBActiveOrHistoricCurrencyAndAmount: + type: object + required: + - Amount + - Currency + description: Amount of money to be confirmed as available funds in the debtor account. Contains an `Amount` and a `Currency`. + properties: + Amount: + $ref: '#/components/schemas/OBActiveCurrencyAndAmount_SimpleType' + Currency: + $ref: '#/components/schemas/ActiveOrHistoricCurrencyCode' + 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}$' + example: '20.00' + ActiveOrHistoricCurrencyCode: + description: A code allocated to a currency by a Maintenance Agency under an international identification scheme, as described in the latest edition of the international standard ISO 4217 "Codes for the representation of currencies and funds". + type: string + pattern: '^[A-Z]{3,3}$' + example: GBP Links: type: object description: Links relevant to the payload @@ -598,56 +717,54 @@ components: ErrorCode: $ref: '#/components/schemas/OBExternalStatusReason1Code' Message: - description: >- - A description of the error that occurred. e.g., 'A mandatory field - isn't supplied' or 'RequestedExecutionDateTime must be in future' + description: |- + A description of the error that occurred. e.g., `'A mandatory field isn't supplied'` or `'RequestedExecutionDateTime must be in future'` - OBL doesn't standardise this field + OBL doesn't standardise this field. type: string minLength: 1 maxLength: 500 + example: InstructedAmount.Currency must match the currency of the underlying payment account. Path: - description: >- - Recommended but optional reference to the JSON Path of the field - with error, e.g., Data.Initiation.InstructedAmount.Currency + description: Recommended but optional reference to the JSON Path of the field with error, e.g., `Data.InstructedAmount.Currency` type: string minLength: 1 maxLength: 500 + example: Data.InstructedAmount.Currency Url: - description: >- - URL to help remediate the problem, or provide more information, or - to API Reference, or help etc + description: URL to help remediate the problem, or provide more information, or to API Reference, or help etc type: string + example: https://docs.alphabank.com/open-banking/errors/U002 required: - ErrorCode additionalProperties: false minProperties: 1 OBErrorResponse1: - description: >- - An array of detail error codes, and messages, and URLs to documentation - to help remediation. + description: An array of detail error codes, and messages, and URLs to documentation to help remediation. type: object properties: Id: - description: >- - A unique reference for the error instance, for audit purposes, in - case of unknown/unclassified errors. + description: A unique reference for the error instance, for audit purposes, in case of unknown/unclassified errors. type: string minLength: 1 maxLength: 40 Code: - description: >- - Deprecated
High level textual error code, to help categorise the - errors. + description: |- + **Deprecated** + + High level textual error code, to help categorise the errors. type: string minLength: 1 - example: 400 BadRequest + example: UK.OBIE.Field.Invalid maxLength: 40 Message: - description: Deprecated
Brief Error message + description: |- + **Deprecated** + + Brief Error message type: string minLength: 1 - example: There is something wrong with the request parameters provided + example: One or more request fields are invalid. maxLength: 500 Errors: items: @@ -663,249 +780,128 @@ components: - Data properties: Data: - type: object - required: - - ConsentId - - Reference - - InstructedAmount - properties: - ConsentId: - description: >- - Unique identification as assigned by the ASPSP to uniquely - identify the funds confirmation consent resource. - type: string - minLength: 1 - maxLength: 128 - Reference: - description: >- - Unique reference, as assigned by the CBPII, to unambiguously - refer to the request related to the payment transaction. - type: string - minLength: 1 - maxLength: 35 - InstructedAmount: - type: object - required: - - Amount - - Currency - description: >- - Amount of money to be confirmed as available funds in the debtor - account. Contains an Amount and a Currency. - properties: - Amount: - description: >- - A number of monetary units specified in an active currency - where the unit of currency is explicit and compliant with - ISO 4217. - type: string - pattern: '^\d{1,13}$|^\d{1,13}\.\d{1,5}$' - Currency: - description: >- - A code allocated to a currency by a Maintenance Agency under - an international identification scheme, as described in the - latest edition of the international standard ISO 4217 "Codes - for the representation of currencies and funds". - type: string - pattern: '^[A-Z]{3,3}$' + $ref: '#/components/schemas/OBFundsConfirmationData1' additionalProperties: false + OBFundsConfirmationData1: + type: object + required: + - ConsentId + - Reference + - InstructedAmount + properties: + ConsentId: + description: Unique identification as assigned by the ASPSP to uniquely identify the funds confirmation consent resource. + type: string + minLength: 1 + maxLength: 128 + example: FCC-20260401-0001 + Reference: + description: Unique reference, as assigned by the CBPII, to unambiguously refer to the request related to the payment transaction. + type: string + minLength: 1 + maxLength: 35 + example: CARD-PURCHASE-001 + InstructedAmount: + $ref: '#/components/schemas/OBActiveOrHistoricCurrencyAndAmount' OBFundsConfirmationConsent1: type: object required: - Data properties: Data: - type: object - required: - - DebtorAccount - properties: - ExpirationDateTime: - description: >- - Specified date and time the funds confirmation authorisation - will expire. - If this is not populated, the authorisation will be open ended. All dates in the JSON payloads are represented in ISO 8601 date-time format. - All date-time fields in responses must include the timezone. An - example is below: + $ref: '#/components/schemas/OBFundsConfirmationConsentData1' + additionalProperties: false + OBFundsConfirmationConsentData1: + type: object + required: + - DebtorAccount + properties: + ExpirationDateTime: + description: |- + Specified date and time the funds confirmation authorisation will expire. - 2017-04-05T10:43:07+00:00 - type: string - format: date-time - DebtorAccount: - type: object - required: - - SchemeName - - Identification - description: >- - Unambiguous identification of the account of the debtor to which - a confirmation of funds consent will be applied. - properties: - SchemeName: - description: >- - Name of the identification scheme, in a coded form as - published in an external list. For a full list of values see `OBInternalAccountIdentification4Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets) - type: string - x-namespaced-enum: - - UK.OBIE.BBAN - - UK.OBIE.IBAN - - UK.OBIE.PAN - - UK.OBIE.Paym - - UK.OBIE.SortCodeAccountNumber - - UK.OBIE.Wallet - Identification: - description: >- - Identification assigned by an institution to identify an - account. This identification is known by the account owner. - type: string - minLength: 1 - maxLength: 256 - Name: - description: >- - Name of the account, as assigned by the account servicing - institution. + If this is not populated, the authorisation will be open ended. All dates in the JSON payloads are represented in ISO 8601 date-time format. - Usage: The account name is the name or names of the account - owner(s) represented at an account level. The account name - is not the product name or the nickname of the account. - type: string - minLength: 1 - maxLength: 350 - SecondaryIdentification: - description: >- - This is secondary identification of the account, as assigned - by the account servicing institution. + All date-time fields in responses must include the timezone. An example is below: - This can be used by building societies to additionally - identify accounts with a roll number (in addition to a sort - code and account number combination). - type: string - minLength: 1 - maxLength: 34 - Proxy: - $ref: '#/components/schemas/OBProxy1' - additionalProperties: false + `2017-04-05T10:43:07+00:00` + type: string + format: date-time + example: '2026-10-01T10:15:30+00:00' + DebtorAccount: + $ref: '#/components/schemas/OBCashAccountDebtorWithName' OBFundsConfirmationConsentResponse1: type: object required: - Data properties: Data: - type: object - required: - - ConsentId - - CreationDateTime - - Status - - StatusUpdateDateTime - - DebtorAccount - properties: - ConsentId: - description: >- - Unique identification as assigned to identify the funds - confirmation consent resource. - type: string - minLength: 1 - maxLength: 128 - CreationDateTime: - description: >- - Date and time at which the resource was created. All dates in the - JSON payloads are represented in ISO 8601 date-time format. - - All date-time fields in responses must include the timezone. An - example is below: - - 2017-04-05T10:43:07+00:00 - type: string - format: date-time - Status: - $ref: '#/components/schemas/OBInternalConsentStatus1Code' - StatusReason: - type: array - items: - $ref: '#/components/schemas/OBStatusReason' - StatusUpdateDateTime: - description: >- - Date and time at which the resource status was updated. All dates - in the JSON payloads are represented in ISO 8601 date-time - format. + $ref: '#/components/schemas/OBFundsConfirmationConsentDataResponse1' + Links: + $ref: '#/components/schemas/Links' + Meta: + $ref: '#/components/schemas/Meta' + additionalProperties: false + OBFundsConfirmationConsentDataResponse1: + type: object + required: + - ConsentId + - CreationDateTime + - Status + - StatusUpdateDateTime + - DebtorAccount + properties: + ConsentId: + description: Unique identification as assigned to identify the funds confirmation consent resource. + type: string + minLength: 1 + maxLength: 128 + example: FCC-20260401-0001 + 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. - All date-time fields in responses must include the timezone. An - example is below: + All date-time fields in responses must include the timezone. An example is below: - 2017-04-05T10:43:07+00:00 - type: string - format: date-time - ExpirationDateTime: - description: >- - Specified date and time the funds confirmation authorisation - will expire. + `2017-04-05T10:43:07+00:00` + type: string + format: date-time + example: '2026-04-01T10:15:30+00:00' + Status: + $ref: '#/components/schemas/OBInternalConsentStatus1Code' + StatusReason: + type: array + items: + $ref: '#/components/schemas/OBStatusReason' + StatusUpdateDateTime: + description: |- + Date and time at which the resource status was updated. All dates in the JSON payloads are represented in ISO 8601 date-time format. - If this is not populated, the authorisation will be open - ended. All dates in the JSON payloads are represented in ISO 8601 - date-time format. + All date-time fields in responses must include the timezone. An example is below: - All date-time fields in responses must include the timezone. An - example is below: + `2017-04-05T10:43:07+00:00` + type: string + format: date-time + example: '2026-04-01T10:20:30+00:00' + ExpirationDateTime: + description: |- + Specified date and time the funds confirmation authorisation will expire. - 2017-04-05T10:43:07+00:00 - type: string - format: date-time - DebtorAccount: - type: object - required: - - SchemeName - - Identification - description: >- - Unambiguous identification of the account of the debtor to which - a confirmation of funds consent will be applied. - properties: - SchemeName: - description: >- - Name of the identification scheme, in a coded form as - published in an external list. For a full list of values refer to `OBInternalAccountIdentification4Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets) - type: string - x-namespaced-enum: - - UK.OBIE.BBAN - - UK.OBIE.IBAN - - UK.OBIE.PAN - - UK.OBIE.Paym - - UK.OBIE.SortCodeAccountNumber - - UK.OBIE.Wallet - Identification: - description: >- - Identification assigned by an institution to identify an - account. This identification is known by the account owner. - type: string - minLength: 1 - maxLength: 256 - Name: - description: >- - Name of the account, as assigned by the account servicing - institution. + If this is not populated, the authorisation will be open ended. All dates in the JSON payloads are represented in ISO 8601 date-time format. - Usage: The account name is the name or names of the account - owner(s) represented at an account level. The account name - is not the product name or the nickname of the account. - type: string - minLength: 1 - maxLength: 350 - SecondaryIdentification: - description: >- - This is secondary identification of the account, as assigned - by the account servicing institution. + All date-time fields in responses must include the timezone. An example is below: - This can be used by building societies to additionally - identify accounts with a roll number (in addition to a sort - code and account number combination). - type: string - minLength: 1 - maxLength: 34 - Proxy: - $ref: '#/components/schemas/OBProxy1' - Links: - $ref: '#/components/schemas/Links' - Meta: - $ref: '#/components/schemas/Meta' - additionalProperties: false + `2017-04-05T10:43:07+00:00` + type: string + format: date-time + example: '2026-10-01T10:15:30+00:00' + DebtorAccount: + $ref: '#/components/schemas/OBCashAccountDebtorWithName' OBInternalConsentStatus1Code: - description: Specifies the status of consent resource in code form. For a full list of values refer to `OBInternalConsentStatus1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets) + description: |- + Specifies the status of consent resource in code form. + + For a full list of values refer to `OBInternalConsentStatus1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets/blob/main/OB_Internal_Codeset.csv) type: string enum: - AWAU @@ -913,113 +909,93 @@ components: - AUTH - CANC - EXPD + example: AUTH OBFundsConfirmationResponse1: type: object required: - Data properties: Data: - type: object - required: - - FundsConfirmationId - - ConsentId - - CreationDateTime - - FundsAvailable - - Reference - - InstructedAmount - properties: - FundsConfirmationId: - description: >- - Unique identification as assigned by the ASPSP to uniquely - identify the funds confirmation resource. - type: string - minLength: 1 - maxLength: 40 - ConsentId: - description: >- - Unique identification as assigned by the ASPSP to uniquely - identify the funds confirmation consent resource. - type: string - minLength: 1 - maxLength: 128 - CreationDateTime: - description: >- - Date and time at which the resource was created. All dates in the - JSON payloads are represented in ISO 8601 date-time format. - - All date-time fields in responses must include the timezone. An - example is below: - - 2017-04-05T10:43:07+00:00 - type: string - format: date-time - FundsAvailable: - description: Flag to indicate the result of a confirmation of funds check. - type: boolean - Reference: - description: >- - Unique reference, as assigned by the CBPII, to unambiguously - refer to the request related to the payment transaction. - type: string - minLength: 1 - maxLength: 35 - InstructedAmount: - type: object - required: - - Amount - - Currency - description: >- - Amount of money to be confirmed as available funds in the debtor - account. Contains an Amount and a Currency. - properties: - Amount: - description: >- - A number of monetary units specified in an active currency - where the unit of currency is explicit and compliant with - ISO 4217. - type: string - pattern: '^\d{1,13}$|^\d{1,13}\.\d{1,5}$' - Currency: - description: >- - A code allocated to a currency by a Maintenance Agency under - an international identification scheme, as described in the - latest edition of the international standard ISO 4217 "Codes - for the representation of currencies and funds". - type: string - pattern: '^[A-Z]{3,3}$' + $ref: '#/components/schemas/OBFundsConfirmationDataResponse1' Links: $ref: '#/components/schemas/Links' Meta: $ref: '#/components/schemas/Meta' additionalProperties: false + OBFundsConfirmationDataResponse1: + type: object + required: + - FundsConfirmationId + - ConsentId + - CreationDateTime + - FundsAvailable + - Reference + - InstructedAmount + properties: + FundsConfirmationId: + description: Unique identification as assigned by the ASPSP to uniquely identify the funds confirmation resource. + type: string + minLength: 1 + maxLength: 40 + example: FC-20260401-0001 + ConsentId: + description: Unique identification as assigned by the ASPSP to uniquely identify the funds confirmation consent resource. + type: string + minLength: 1 + maxLength: 128 + example: FCC-20260401-0001 + 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. + + All date-time fields in responses must include the timezone. An example is below: + + `2017-04-05T10:43:07+00:00` + type: string + format: date-time + example: '2026-04-01T10:25:30+00:00' + FundsAvailable: + description: Flag to indicate the result of a confirmation of funds check. + type: boolean + example: true + Reference: + description: Unique reference, as assigned by the CBPII, to unambiguously refer to the request related to the payment transaction. + type: string + minLength: 1 + maxLength: 35 + example: CARD-PURCHASE-001 + InstructedAmount: + $ref: '#/components/schemas/OBActiveOrHistoricCurrencyAndAmount' OBExternalStatusReason1Code: - description: >- - Low level textual error code, for all enum values see - `OBExternalStatusReason1Code` in *OB_Internal_CodeSet* - [here](https://github.com/OpenBankingUK/External_Internal_CodeSets) + description: |- + Low level textual error code. + + For all enum values see `OBExternalStatusReason1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets) type: string minLength: 4 maxLength: 4 - example: U001 + example: U002 OBStatusReason: type: object properties: StatusReasonCode: type: string description: |- - Specifies the status reason in a code form. - For a full list of values see `OBExternalStatusReason1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets) + Specifies the status reason in a code form. + + For a full list of values see `OBExternalStatusReason1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets) minLength: 1 maxLength: 4 - example: ERIN + example: U009 StatusReasonDescription: - description: Description supporting the StatusReasonCode. + description: Description supporting the `StatusReasonCode`. type: string minLength: 1 maxLength: 500 + example: The consent is not in a status that allows funds confirmation. Path: type: string - description: >- - Optional reference to the JSON Path of the field when status reason refers to an object/field, e.g., Data.DebtorAccount.SchemeName + description: Optional reference to the JSON Path of the field when status reason refers to an object/field, e.g., `Data.DebtorAccount.SchemeName` minLength: 1 maxLength: 500 + example: Data.ConsentId diff --git a/uml-diagrams/OBFundsConfirmation1.svg b/uml-diagrams/OBFundsConfirmation1.svg index 83da973..fdccbf8 100644 --- a/uml-diagrams/OBFundsConfirmation1.svg +++ b/uml-diagrams/OBFundsConfirmation1.svg @@ -48,7 +48,7 @@ Reference [1..1] -Amount of money to be confirmed as available funds in the debtor account. Contains an Amount and a Currency. +Amount of money to be confirmed as available funds in the debtor account. Contains an `Amount` and a `Currency`. InstructedAmount diff --git a/uml-diagrams/OBFundsConfirmationConsent1.svg b/uml-diagrams/OBFundsConfirmationConsent1.svg index a2c56b9..765b413 100644 --- a/uml-diagrams/OBFundsConfirmationConsent1.svg +++ b/uml-diagrams/OBFundsConfirmationConsent1.svg @@ -32,9 +32,12 @@ Data Type: string Format: date-time Description: Specified date and time the funds confirmation authorisation will expire. - If this is not populated, the authorisation will be open ended. All dates in the JSON payloads are represented in ISO 8601 date-time format. + +If this is not populated, the authorisation will be open ended. All dates in the JSON payloads are represented in ISO 8601 date-time format. + All date-time fields in responses must include the timezone. An example is below: -2017-04-05T10:43:07+00:00 + +`2017-04-05T10:43:07+00:00` ExpirationDateTime [0..1] @@ -59,6 +62,7 @@ Identification [1..1] MinLength: 1 MaxLength: 350 Description: Name of the account, as assigned by the account servicing institution. + Usage: The account name is the name or names of the account owner(s) represented at an account level. The account name is not the product name or the nickname of the account. Name [0..1] @@ -66,7 +70,9 @@ Name [0..1] Type: string -Description: Name of the identification scheme, in a coded form as published in an external list. For a full list of values see `OBInternalAccountIdentification4Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets) +Description: Name of the identification scheme, in a coded form as published in an external list. + +For a full list of values see `OBInternalAccountIdentification4Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets/blob/main/OB_Internal_Codeset.csv) Values: - UK.OBIE.BBAN - UK.OBIE.IBAN @@ -82,7 +88,8 @@ SchemeName [1..1] <title>Type: string MinLength: 1 MaxLength: 34 -Description: This is secondary identification of the account, as assigned by the account servicing institution. +Description: This is secondary identification of the account, as assigned by the account servicing institution. + This can be used by building societies to additionally identify accounts with a roll number (in addition to a sort code and account number combination). SecondaryIdentification [0..1] @@ -96,7 +103,9 @@ Proxy Type: string -Description: Specifies the external proxy account type code, as published in the proxy account type external code set.<br > For a full list of values refer to `ExternalProxyAccountType1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets) +Description: Specifies the external proxy account type code, as published in the proxy account type external code set. + +For a full list of values refer to `ExternalProxyAccountType1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets/blob/main/ISO_External_Codeset.csv) Values: - TELE - EMAL diff --git a/uml-diagrams/OBFundsConfirmationConsentResponse1.svg b/uml-diagrams/OBFundsConfirmationConsentResponse1.svg index e6c9e78..da0823b 100644 --- a/uml-diagrams/OBFundsConfirmationConsentResponse1.svg +++ b/uml-diagrams/OBFundsConfirmationConsentResponse1.svg @@ -40,9 +40,11 @@ ConsentId [1..1] <text x="36em" y="5.6em" fill="darkslateblue"> <title>Type: string Format: date-time -Description: Date and time at which the resource was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. +Description: Date and time at which the resource was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. + All date-time fields in responses must include the timezone. An example is below: -2017-04-05T10:43:07+00:00 + +`2017-04-05T10:43:07+00:00` CreationDateTime [1..1] @@ -51,16 +53,21 @@ CreationDateTime [1..1] Type: string Format: date-time Description: Specified date and time the funds confirmation authorisation will expire. -If this is not populated, the authorisation will be open ended. All dates in the JSON payloads are represented in ISO 8601 date-time format. + +If this is not populated, the authorisation will be open ended. All dates in the JSON payloads are represented in ISO 8601 date-time format. + All date-time fields in responses must include the timezone. An example is below: -2017-04-05T10:43:07+00:00 + +`2017-04-05T10:43:07+00:00` ExpirationDateTime [0..1] Type: string -Description: Specifies the status of consent resource in code form. For a full list of values refer to `OBInternalConsentStatus1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets) +Description: Specifies the status of consent resource in code form. + +For a full list of values refer to `OBInternalConsentStatus1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets/blob/main/OB_Internal_Codeset.csv) Values: - AWAU - RJCT @@ -74,9 +81,11 @@ Status [1..1] <text x="36em" y="9.5em" fill="darkslateblue"> <title>Type: string Format: date-time -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. +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. + All date-time fields in responses must include the timezone. An example is below: -2017-04-05T10:43:07+00:00 + +`2017-04-05T10:43:07+00:00` StatusUpdateDateTime [1..1] @@ -101,6 +110,7 @@ Identification [1..1] MinLength: 1 MaxLength: 350 Description: Name of the account, as assigned by the account servicing institution. + Usage: The account name is the name or names of the account owner(s) represented at an account level. The account name is not the product name or the nickname of the account. Name [0..1] @@ -108,7 +118,9 @@ Name [0..1] Type: string -Description: Name of the identification scheme, in a coded form as published in an external list. For a full list of values refer to `OBInternalAccountIdentification4Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets) +Description: Name of the identification scheme, in a coded form as published in an external list. + +For a full list of values see `OBInternalAccountIdentification4Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets/blob/main/OB_Internal_Codeset.csv) Values: - UK.OBIE.BBAN - UK.OBIE.IBAN @@ -124,7 +136,8 @@ SchemeName [1..1] <title>Type: string MinLength: 1 MaxLength: 34 -Description: This is secondary identification of the account, as assigned by the account servicing institution. +Description: This is secondary identification of the account, as assigned by the account servicing institution. + This can be used by building societies to additionally identify accounts with a roll number (in addition to a sort code and account number combination). SecondaryIdentification [0..1] @@ -138,7 +151,9 @@ Proxy Type: string -Description: Specifies the external proxy account type code, as published in the proxy account type external code set.<br > For a full list of values refer to `ExternalProxyAccountType1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets) +Description: Specifies the external proxy account type code, as published in the proxy account type external code set. + +For a full list of values refer to `ExternalProxyAccountType1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets/blob/main/ISO_External_Codeset.csv) Values: - TELE - EMAL @@ -193,7 +208,7 @@ StatusReason <title>Type: string MinLength: 1 MaxLength: 500 -Description: Optional reference to the JSON Path of the field when status reason refers to an object/field, e.g., Data.DebtorAccount.SchemeName +Description: Optional reference to the JSON Path of the field when status reason refers to an object/field, e.g., `Data.DebtorAccount.SchemeName` Path [0..1] @@ -202,8 +217,9 @@ Path [0..1] Type: string MinLength: 1 MaxLength: 4 -Description: Specifies the status reason in a code form. - For a full list of values see `OBExternalStatusReason1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets) +Description: Specifies the status reason in a code form. + +For a full list of values see `OBExternalStatusReason1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_Internal_CodeSets) StatusReasonCode [0..1] @@ -212,7 +228,7 @@ StatusReasonCode [0..1] Type: string MinLength: 1 MaxLength: 500 -Description: Description supporting the StatusReasonCode. +Description: Description supporting the `StatusReasonCode`. StatusReasonDescription [0..1] @@ -267,9 +283,11 @@ Meta Type: string Format: date-time -Description: All dates in the JSON payloads are represented in ISO 8601 date-time format. +Description: All dates in the JSON payloads are represented in ISO 8601 date-time format. + All date-time fields in responses must include the timezone. An example is below: -2017-04-05T10:43:07+00:00 + +`2017-04-05T10:43:07+00:00` FirstAvailableDateTime [0..1] @@ -277,9 +295,11 @@ FirstAvailableDateTime [0..1] Type: string Format: date-time -Description: All dates in the JSON payloads are represented in ISO 8601 date-time format. +Description: All dates in the JSON payloads are represented in ISO 8601 date-time format. + All date-time fields in responses must include the timezone. An example is below: -2017-04-05T10:43:07+00:00 + +`2017-04-05T10:43:07+00:00` LastAvailableDateTime [0..1] diff --git a/uml-diagrams/OBFundsConfirmationResponse1.svg b/uml-diagrams/OBFundsConfirmationResponse1.svg index a424e08..0a56dfe 100644 --- a/uml-diagrams/OBFundsConfirmationResponse1.svg +++ b/uml-diagrams/OBFundsConfirmationResponse1.svg @@ -40,9 +40,11 @@ ConsentId [1..1] Type: string Format: date-time -Description: Date and time at which the resource was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. +Description: Date and time at which the resource was created. All dates in the JSON payloads are represented in ISO 8601 date-time format. + All date-time fields in responses must include the timezone. An example is below: -2017-04-05T10:43:07+00:00 + +`2017-04-05T10:43:07+00:00` CreationDateTime [1..1] @@ -74,7 +76,7 @@ Reference [1..1] -Amount of money to be confirmed as available funds in the debtor account. Contains an Amount and a Currency. +Amount of money to be confirmed as available funds in the debtor account. Contains an `Amount` and a `Currency`. InstructedAmount @@ -144,9 +146,11 @@ Meta Type: string Format: date-time -Description: All dates in the JSON payloads are represented in ISO 8601 date-time format. +Description: All dates in the JSON payloads are represented in ISO 8601 date-time format. + All date-time fields in responses must include the timezone. An example is below: -2017-04-05T10:43:07+00:00 + +`2017-04-05T10:43:07+00:00` FirstAvailableDateTime [0..1] @@ -154,9 +158,11 @@ FirstAvailableDateTime [0..1] Type: string Format: date-time -Description: All dates in the JSON payloads are represented in ISO 8601 date-time format. +Description: All dates in the JSON payloads are represented in ISO 8601 date-time format. + All date-time fields in responses must include the timezone. An example is below: -2017-04-05T10:43:07+00:00 + +`2017-04-05T10:43:07+00:00` LastAvailableDateTime [0..1] diff --git a/uml-diagrams/OBReadAccount6.svg b/uml-diagrams/OBReadAccount6.svg index c283a98..88a5794 100644 --- a/uml-diagrams/OBReadAccount6.svg +++ b/uml-diagrams/OBReadAccount6.svg @@ -287,7 +287,7 @@ CommunicationMethod [0..1] Type: string -Description: For a full list of enumeration values refer to `ExternalDocumentFormat1Code` in *OB_Internal_CodeSet* [here](https://github.com/OpenBankingUK/External_internal_CodeSets) +Description: For a full list of enumeration values refer to `ExternalDocumentFormat1Code` in *ISO_External_CodeSet* [here](https://github.com/OpenBankingUK/External_internal_CodeSets) Values: - DPDF - DXML diff --git a/uml-diagrams/OBReadTransaction6.svg b/uml-diagrams/OBReadTransaction6.svg index 5415891..b81d88a 100644 --- a/uml-diagrams/OBReadTransaction6.svg +++ b/uml-diagrams/OBReadTransaction6.svg @@ -461,6 +461,7 @@ Values: - DEPD - RETL - DEBT + - CRYP PaymentPurposeCode [0..1] @@ -1124,7 +1125,7 @@ MinLength: 1 MaxLength: 256 Description: Identification assigned by an institution to identify an account. This identification is known by the account owner. -Identification [0..1] +Identification [1..1] @@ -1148,7 +1149,7 @@ Values: - UK.OBIE.SortCodeAccountNumber - UK.OBIE.Wallet -SchemeName [0..1] +SchemeName [1..1]