openapi: 3.0.0 info: title: Account and Transaction API Specification Account Access Consents Branch API description: 'Swagger for Account and Transaction 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: name: Service Desk email: ServiceDesk@openbanking.org.uk license: name: open-licence url: https://www.openbanking.org.uk/open-licence version: 4.0.1 servers: - url: /open-banking/v4.0/aisp tags: - name: Branch description: Endpoint for getting Branch data paths: /branches: get: tags: - Branch description: Gets a list of all `Branch` objects. parameters: - name: If-Modified-Since type: string description: Used for conditional request, to retrieve data only if modified since a given date in: header required: false - name: If-None-Match type: string description: Used for conditional request, to retrieve data only if the given Etag value does not match in: header required: false responses: '200': description: Successful response with a list of `Branch` data headers: Strict-Transport-Security: type: string description: HTTPS strict transport security header default: max-age=31536000 Etag: type: string description: A unique ID identifying whether this resource has changed Cache-Control: type: string description: Describes how long this response can be cached default: max-age=28800 X-Frame-Options: type: string description: Prevent this request from being loaded in any iframes default: DENY X-Content-Type-Options: type: string description: Ensures each page has a content type and prevents browsers from doing MIME type sniffing default: nosniff schema: type: object properties: meta: title: Meta data type: object properties: LastUpdated: type: string format: date-time TotalResults: type: integer Agreement: type: string enum: - Use of the APIs and any related data will be subject to the terms of the Open Licence and subject to terms and conditions License: description: Open Banking License type: string format: uri enum: - https://www.openbanking.org.uk/open-licence TermsOfUse: description: Open Banking Terms of Use type: string format: uri enum: - https://www.openbanking.org.uk/terms required: - LastUpdated - TotalResults - Agreement - License - TermsOfUse additionalProperties: false data: type: array items: title: Branch type: object properties: Organisation: description: Organisation type: object properties: ParentOrganisation: description: Parent organisation type: object properties: LEI: description: The LEI ID of the organisation type: string pattern: ^[A-Z0-9]{18,18}[0-9]{2,2}$ BIC: description: The BIC from the organisation type: string pattern: '[A-Z]{6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3})?' OrganisationName: description: Organisation Name type: object properties: LegalName: description: Legal Name of the organisation type: string minLength: 1 maxLength: 35 required: - LegalName additionalProperties: false required: - OrganisationName additionalProperties: false Brand: description: Brand type: object properties: TrademarkIPOCode: description: 'The Intellectual Property Office (IPO) is the official body responsible for intellectual property (IP) rights including patents, designs, trademarks and copyright. (Code: UK or EU only)' type: string enum: - UK - EU TrademarkID: description: 'The trademark number that has been registered with the Intellectual Property Office. Note: The 2 letter IPO prefix should be omitted' type: string minLength: 1 maxLength: 35 required: - TrademarkIPOCode - TrademarkID additionalProperties: false required: - ParentOrganisation - Brand additionalProperties: false BranchName: description: Name by which a party is known and which is usually used to identify that party type: string minLength: 1 maxLength: 35 BranchIdentification: description: Unique and unambiguous identification of a retail branch of a financial institution type: string minLength: 1 maxLength: 35 BranchType: description: Information on the type of branch type: string enum: - Physical - Mobile Address: description: Postal Address type: object properties: StreetName: description: Name of a street or thoroughfare type: string minLength: 1 maxLength: 70 BuildingNumberOrName: description: Number or Name that identifies the position of a building on a street type: string minLength: 1 maxLength: 350 PostCode: description: Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail type: string minLength: 1 maxLength: 16 OptionalAddressField: description: Directions for customers type: string minLength: 1 maxLength: 350 TownName: description: Name of a built-up area, with defined boundaries, and a local government type: string minLength: 1 maxLength: 35 CountrySubDivision: description: Identifies a subdivision of a country such as state, region, county type: string minLength: 1 maxLength: 35 Country: description: Nation with its own government type: string pattern: '[A-Z]{2}' required: - Country additionalProperties: false BranchDescription: description: Description of the branch type: string minLength: 1 maxLength: 140 BranchPhoto: description: Image related to the branch type: string format: uri TelephoneNumber: description: Collection of information that identifies a phone number, as defined by telecom services. type: string pattern: ^[+][0-9]{1,3}-[0-9()+-]{1,30}$ AlternatePhone: type: array items: description: Alternative Phone Number type: object properties: AlternateTelephoneNumber: description: Collection of information that identifies a phone number, as defined by telecom services. type: string pattern: ^[+][0-9]{1,3}-[0-9()+-]{1,30}$ AlternateTelephoneNumberDescription: description: Description of the telephone number type: string minLength: 1 maxLength: 35 additionalProperties: false FaxNumber: description: Collection of information that identifies a FAX number, as defined by telecom services. type: array items: description: Collection of information that identifies a phone number, as defined by telecom services. type: string pattern: ^[+][0-9]{1,3}-[0-9()+-]{1,30}$ GeographicLocation: description: Geographic Coordinates type: object properties: Latitude: description: The Latitude measured in decimal format according to ISO 213 type: string pattern: ^-?\d{1,3}\.\d{1,8}$ Longitude: description: The longitude measured in decimal format according to ISO 213 type: string pattern: ^-?\d{1,3}\.\d{1,8}$ required: - Latitude - Longitude additionalProperties: false DaysOfTheWeek: description: Description on when the mobile branch is available. e.g. The weekend of Glastonbury festival; or Mondays and during the shrimp season also Wednesdays type: string minLength: 1 maxLength: 35 StopName: description: Name of the stop of the mobile branch type: string minLength: 1 maxLength: 15 ArrivalTime: description: Time that the mobile branch is scheduled to arrive type: string pattern: ^(([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].\d{3})|(^24:00:00\.000)(?:Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$ DepartureTime: description: Time that the mobile branch is scheduled to depart type: string pattern: ^(([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].\d{3})|(^24:00:00\.000)(?:Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$ ParkingLocation: description: Place where the mobile branch is located, such as between the news agent and the church. type: string minLength: 1 maxLength: 50 OpeningTimes: description: Branch Opening Times type: array items: type: object properties: OpeningDay: description: Day of the week enum: - Monday - Tuesday - Wednesday - Thursday - Friday - Saturday - Sunday - Public and Bank Holiday type: string minLength: 1 maxLength: 35 OpeningTime: description: ISOTime, local time hh:mm:ss.sss or time in utc hh:mm:ss.sssZ or time with timezone hh:mm:ss.sss+hh:mm hh:mm:ss.sss-hh:mm type: string pattern: ^(([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].\d{3})|(^24:00:00\.000)(?:Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$ ClosingTime: description: ISOTime, local time hh:mm:ss.sss or time in utc hh:mm:ss.sssZ or time with timezone hh:mm:ss.sss+hh:mm hh:mm:ss.sss-hh:mm type: string pattern: ^(([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].\d{3})|(^24:00:00\.000)(?:Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$ UnavailableStartTime: description: ISOTime, local time hh:mm:ss.sss or time in utc hh:mm:ss.sssZ or time with timezone hh:mm:ss.sss+hh:mm hh:mm:ss.sss-hh:mm type: string pattern: ^(([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].\d{3})|(^24:00:00\.000)(?:Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$ UnavailableFinishTime: description: ISOTime, local time hh:mm:ss.sss or time in utc hh:mm:ss.sssZ or time with timezone hh:mm:ss.sss+hh:mm hh:mm:ss.sss-hh:mm type: string pattern: ^(([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].\d{3})|(^24:00:00\.000)(?:Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$ required: - OpeningDay - OpeningTime - ClosingTime minItems: 1 additionalProperties: false PlannedBranchClosure: type: array items: description: Planned branch closure type: object properties: StartDate: description: Date when a branch is due to close temporarily or permanently type: string pattern: ^[0-9]{4}-(0[1-9]|(1[0|1|2]))-((0[1-9])|((1|2)[0-9])|(30|31))$ EndDate: description: Date when a branch is due to re-open following temporary closure type: string pattern: ^[0-9]{4}-(0[1-9]|(1[0|1|2]))-((0[1-9])|((1|2)[0-9])|(30|31))$ additionalProperties: false AccessibilityTypes: description: Information about the accessibility type: string enum: - AudioCashMachine - AutomaticDoors - ChairAccess - DriveThru - ExternalRamp - InductionLoop - InternalRamp - LevelAccess - LowerLevelCounter - WheelchairAccess BranchSelfServeServiceName: type: array items: description: Information about self service branch services type: string enum: - AccountVerificationService - AssistedServiceCounter - BusinessDepositTerminal - CashChequeDepositMachineCoin - CashChequeDepositMachineNoCoin - ExternalAtmAudio - ExternalAtmNoAudio - ExternalQuickServicePoint - InternalAtmAudio - InternalAtmNoAudio - InternalQuickServicePoint - LodgementDevice - OnlineBankingPoint - QuickDeposit - SaturdayCounterService - SelfServiceAccountOpening - StatementPrinter uniqueItems: true BranchOtherSelfServices: description: Self Services not described in BranchSelfServeServiceName type: array items: description: maxLength 350 text type: string minLength: 1 maxLength: 350 BranchMediatedServiceName: description: Information about mediated branch facilities type: array items: description: Information about mediated branch facilities type: string enum: - BureauDeChange - BusinessCounter - CardIssuanceFacility - CounterServices - DriveThru - MortgageAdvisor - NightSafe - OnDemandCurrency - PremierCounter - VideoBanking - WheelChairAccess uniqueItems: true BranchOtherMediatedServices: description: Mediated Services not described in BranchMediatedServiceName type: array items: description: maxLength 350 text type: string minLength: 1 maxLength: 350 BranchFacilitiesName: description: Information about branch facilities type: array items: description: Information about branch facilities type: string enum: - BusinessITSupport - CollectionLockers - MeetingRooms - Parking - Wifi uniqueItems: true CustomerSegment: description: Customer segment which the branch is able to service type: array items: description: Customer segment which the branch is able to service type: string enum: - Business - Corporate - Personal - Premier - Private - Select - SME - Wealth uniqueItems: true BranchOtherFacilities: description: Any other facilities not mentioned in BranchFacilitiesName type: array items: description: maxLength 350 text type: string minLength: 1 maxLength: 350 ATMAtBranch: description: Indicated whether an ATM is at the branch type: boolean required: - Organisation - BranchIdentification - BranchType - CustomerSegment - Address - TelephoneNumber - OpeningTimes - ATMAtBranch additionalProperties: false required: - meta - data additionalProperties: false '400': description: You have sent a request which could not be understood. headers: Strict-Transport-Security: type: string description: HTTPS strict transport security header X-Frame-Options: type: string description: Prevent this request from being loaded in any iframes default: DENY X-Content-Type-Options: type: string description: Ensures each page has a content type and prevents browsers from doing MIME type sniffing default: nosniff Status Code: type: integer description: The HTTP status code defining the error default: 400 schema: title: 400 Error object type: object properties: status: type: string enum: - '400' title: type: string enum: - Bad request description: type: string enum: - You have sent a request which could not be understood. required: - status - title - description additionalProperties: false '408': description: Your client has failed to submit a request, and a timeout has occurred. headers: Strict-Transport-Security: type: string description: HTTPS strict transport security header X-Frame-Options: type: string description: Prevent this request from being loaded in any iframes default: DENY X-Content-Type-Options: type: string description: Ensures each page has a content type and prevents browsers from doing MIME type sniffing default: nosniff Status Code: type: integer description: The HTTP status code defining the error default: 400 schema: title: 408 Error object type: object properties: status: type: string enum: - '408' title: type: string enum: - Client timeout description: type: string enum: - Your client has failed to submit a request, and a timeout has occurred. required: - status - title - description additionalProperties: false '429': description: You have requested this resource too often. Slow down. headers: Strict-Transport-Security: type: string description: HTTPS strict transport security header X-Frame-Options: type: string description: Prevent this request from being loaded in any iframes default: DENY X-Content-Type-Options: type: string description: Ensures each page has a content type and prevents browsers from doing MIME type sniffing default: nosniff Status Code: type: integer description: The HTTP status code defining the error default: 400 schema: title: 429 Error object type: object properties: status: type: string enum: - '429' title: type: string enum: - Too many requests description: type: string enum: - You have requested this resource too often. Slow down. required: - status - title - description additionalProperties: false '500': description: An error occurred on the server. No further information is available. headers: Strict-Transport-Security: type: string description: HTTPS strict transport security header X-Frame-Options: type: string description: Prevent this request from being loaded in any iframes default: DENY X-Content-Type-Options: type: string description: Ensures each page has a content type and prevents browsers from doing MIME type sniffing default: nosniff Status Code: type: integer description: The HTTP status code defining the error default: 400 schema: title: 500 Error object type: object properties: status: type: string enum: - '500' title: type: string enum: - Internal server error description: type: string enum: - An error occurred on the server. No further information is available. required: - status - title - description additionalProperties: false '503': description: The service is temporarily unavailable. headers: Strict-Transport-Security: type: string description: HTTPS strict transport security header X-Frame-Options: type: string description: Prevent this request from being loaded in any iframes default: DENY X-Content-Type-Options: type: string description: Ensures each page has a content type and prevents browsers from doing MIME type sniffing default: nosniff Status Code: type: integer description: The HTTP status code defining the error default: 400 schema: title: 503 Error object type: object properties: status: type: string enum: - '503' title: type: string enum: - Service temporarily unavailable description: type: string enum: - The service is temporarily unavailable. required: - status - title - description additionalProperties: false default: description: A standard error response. headers: Strict-Transport-Security: type: string description: HTTPS strict transport security header X-Frame-Options: type: string description: Prevent this request from being loaded in any iframes default: DENY X-Content-Type-Options: type: string description: Ensures each page has a content type and prevents browsers from doing MIME type sniffing default: nosniff Status Code: type: integer description: The HTTP status code defining the error default: 400 schema: title: Error object type: object properties: status: description: This corresponds to the HTTP status code type: string title: description: A short title of the type of error type: string description: description: Further details describing the error type: string required: - status - title - description additionalProperties: false head: tags: - Branch description: Gets header information on the current set of `Branch` data parameters: - name: If-Modified-Since type: string description: Used for conditional request, to retrieve data only if modified since a given date in: header required: false - name: If-None-Match type: string description: Used for conditional request, to retrieve data only if the given Etag value does not match in: header required: false responses: default: description: No response schema: title: No response type: object properties: {} components: securitySchemes: TPPOAuth2Security: type: oauth2 description: TPP client credential authorisation flow with the ASPSP flows: clientCredentials: tokenUrl: https://authserver.example/token scopes: accounts: Ability to read Accounts information PSUOAuth2Security: type: oauth2 description: OAuth flow, it is required when the PSU needs to perform SCA with the ASPSP when a TPP wants to access an ASPSP resource owned by the PSU flows: authorizationCode: authorizationUrl: https://authserver.example/authorization tokenUrl: https://authserver.example/token scopes: accounts: Ability to read Accounts information