openapi: 3.0.3 info: title: 'Bud API Services: Documentation Aggregation Buckets Create a Connection API' version: 2.10.10 description: "# Overview\n\n## Introduction\nWelcome to Bud's API Platform documentation. Here you will find everything you need to build features, apps and experiences using Bud's API Services. All endpoints follow standard RESTful principles and example request and response payload snippets are provided to get you up and running quickly and easily.\n\nTo start interacting with our platform, please sign up for access [here](https://www.thisisbud.com/developers#developer-console). You will be provided with access to the [Bud Developer Console](https://console.thisisbud.com) where you can create the API Credentials required to obtain an OAuth2 access token.\n\nIf you have any questions, please use our [Support Centre](https://support.thisisbud.com/hc/en-gb) or email us on [help@thisisbud.com](mailto:help@thisisbud.com).\n\n## Bud Platform Products\n\n| Product | Service | Description |\n|--|--|--|\n| Connect | Open Banking Aggregation API | Simplified and unified access to Open Banking Aggregation APIs. |\n| Connect | First Party Ingestion API | Push your own data onto the Bud platform via Bud's first party ingestion endpoints. |\n| Intelligence | Financial Data API | Obtain enriched first and third party transactional data. |\n| Intelligence | Enrichment API | Access enrichment resources and retrieve high level aggregations of transactional data. |\n| Intelligence | Financial Insights API | Obtain a deeper understanding of your customers transactional data through a variety of different insights. |\n| Intelligence | Signal API | Contextual, relevant triggers and notifications that drive action from customers. |\n| Intelligence | Financial Review API | Pre-fill affordability forms to speed up services and reduce drop-off with custom groups of income and spending. |\n| Pay | Payments API | Make authorised payments and transfers directly from a customer’s account. |\n| Check | KYC API | Perform relevant checks against businesses and customers. |\n\n## Environments and API Base URIs\n\nBud currently supports two environments on its platform:\n\n1. Bud’s Sandbox Environment - [https://api-sandbox.thisisbud.com/](https://api-sandbox.thisisbud.com/)\n\n2. Bud’s Production Environment - [https://api.thisisbud.com/](https://api.thisisbud.com/)\n\n\n## Bud’s Sandbox Environment\n\n### About\n\nBud Sandbox Platform is a development environment for integrating and testing Bud’s services. Its version is kept up to date with production. Bud’s sandbox environment mirrors our production environment and all updates are made in tandem. On the Sandbox environment, the variety of providers that you can connect to via Open Banking is limited and contains a predefined set of dummy accounts and transaction data. The instance size doesn’t differ from production, although certain rate limits are in place.\n\n### API Access\n\nTo start interacting with Bud’s Sandbox API you have to sign up for a developer account [here](https://www.thisisbud.com/developers#developer-console).\n\nOnce you’ve completed the signup and activation process you will be able to create a new project in the [Developer Console](https://console.thisisbud.com) to receive API Credentials (client_id and client_secret). These can be used to obtain OAuth2 access and refresh tokens using authentication endpoint. The access token must be supplied as a Bearer token within every service API call made to the Bud Platform. Once the access token has expired, the refresh token must be used to obtain another access token.\n\n\nDetails on the authentication process can be found in the Authentication section of this documentation.\n\n### Sandbox Providers\n\nBud’s sandbox is built to mirror its production environment. The main difference is the available open banking providers that a customer is able to connect to. In the sandbox, Bud’s aggregation service only supports the use of Open Banking sandbox providers which issue dummy data.\n\nCurrently, you are able to connect to customer profiles with predefined accounts and transaction data sets (managed by Bud) which are available via the NatWest Sandbox provider.\n\nFrom a Marketplace perspective, you can test any available journeys and play around with them, see how the product is constructed, what information the endpoints return and potentially create a new product of your choosing, following the API journey. Please note, that you will be unable to physically carry out any of the marketplace journeys (e.g. send rental data to Experian, or switch your Utility provider) within the Sandbox environment.\n\nNecessary access credentials can be found in the Bud [Developer Console](https://console.thisisbud.com) interface.\n\n## Bud’s Production Environment\n\n### About\n\nBud’s production environment is designed for use within your application when going live to real Customers. The environment is fully scalable, secure and facilitates the use of real Customer data.\n\n### API Access\n\nTo start interacting with Bud’s Production environment you must first sign up for a developer account [here](https://www.thisisbud.com/developers#developer-console). Once you have been assigned a relevant account manager, please contact them to get access to Bud’s production environment.\n\n### Providers\n\nBud’s production environment provides live access to all currently available providers via the Bud Platform (i.e. third party products and services). Please click here for a list of the currently supported Open Banking providers available via Buds Open Banking Aggregation API. This list is updated as and when new providers are on boarded onto the Bud platform.\n\nThe production environment allows your Customers to connect to additional third party products and services via the Bud platform. A list of the different Investment and Pension Aggregation providers can be seen here. Information surrounding additional third party providers, relevant to a specific marketplace journey, can be found in the relevant documentation below.\n\n## Message formats\n\nBud’s platform is made available through Application Programming Interface (API) endpoints, all of which adhere to [RESTful](https://restfulapi.net/) principles. Standard HTTP verbs and status codes are used for requests and response statuses. Request and response payloads are [JSON](http://www.json.org/) encoded data formatted. Communication with the Bud Platform is handled over HTTPS protocol only.\n\n| Data Type | Standard |\n| -- | -- |\n| Strings encoding | `UTF-8` |\n| Datetime | `ISO 8601` |\n| Currency codes | `ISO 4217` |\n\n### HTTP Verbs\n\n| Verb | Usage Context |\n| -- | -- |\n| GET | Used to retrieve the resource representation or metadata |\n| POST | Used to create a new resource on the server |\n| PUT | Used to update the resource state |\n| PATCH | Used to partially update a resource |\n| DELETE | Used to delete the resource|\n\n### HTTP Response Codes\n\n| Code Class | Description |\n| -- | -- |\n| `1XX` | Informational - provisional response from the server |\n| `2XX` | Success - the request has been processed successfully by the server |\n| `4XX` | Client Error - the request has not been processed due to client-side issue with the request |\n| `5XX` | Server Error - the request has not been processed due to server-side issue |\n\n## Requests Custom Headers\n\nSome endpoints will require the presence of custom headers in the HTTP Request to be properly processed by Bud Platform services.\n\n| Header Name | Description|\n| ----------- | ---------------------------- |\n| `X-Client-Id` | API Credentials `client_id` value required for request authorisation purposes |\n| `X-Customer-Id` | Customer Identifier value necessary for establishing the Customer context of the data to be retrieved or processed |\n| `X-Account-Id` | Customer Account Identifier value necessary for establishing the context to retrieve specific customer’s account data.|\n| `X-From` | Start date from when the transactions data should be returned |\n| `X-To` | End date till when the transactions data should be returned |\n\n## Response Styling\n\n### Response Custom Headers\n\n| Header Name | Description |\n| -- | -- |\n| `X-Request-Id` | Bud request identifier for troubleshooting purposes |\n\n## Success Responses\n\nThe description and the listed status codes below indicate that an action requested by the client was successfully processed.\n\nThe successful responses will have status codes in the `200-299` range and have relevant response content where required. However, `204 No Content` and `205 Reset Content` status codes won't contain a response content.\n\n### Response Style Properties\n| Field | Description | Properties |\n| ------------ | -------------------------------------------------------------------- | --------------------------------------------- |\n| operation_id | A descriptive enough string that is linked to the operation/feature. | A `required` lower case snake case `string` |\n| data | A data-set that is relevant to the endpoint. | An `optional` single/multidimensional `array` |\n| metadata | Contains endpoint specific additional information. | An `optional` JSON `object` |\n\n#### Examples\n\n##### 200 OK\n\nAfter getting an existing resource with `GET /resources/{id}`.\n\n```json\n{\n \"operation_id\": \"resources_get\",\n \"data\": {\n \"id\": \"111-AAA-222-BBB\",\n \"name\": \"Bud\",\n \"email\": \"bud@thisisbud.com\",\n \"created_at\": \"2019-01-01T15:53:00+05:00\"\n }\n}\n```\n\n##### 201 Created\n\nAfter creating a new resource with `POST /resources`.\n\n```json\n{\n \"operation_id\": \"resources_post\",\n \"data\": {\n \"id\": \"111-AAA-222-BBB\"\n }\n}\n```\n## Error Responses\n\n### Response Style Properties\n\n| Field | Description | Properties |\n| ------------ | ----------------------------------------------------------------------- | --------------------------------------------- |\n| operation_id | A descriptive enough string that is linked to the operation/feature. | A `required` snake case `string` |\n| code_id | A descriptive enough string that is linked to the reason for the error. | A `required` snake case `string` |\n| message | An actual user friendly error message. | A `required` `string` |\n| metadata | Contains endpoint specific additional information. | An `optional` JSON `object` |\n| errors | A data-set that is relevant to the error. | An `optional` JSON `object` |\n\n### Client Error Responses\n\nThe description and the listed status codes below indicate that the action requested by the client was not successfully processed due to apparent client errors in the request.\n\nThe client errors will have status codes in the 400-499 range and have relevant response content where required.\n\n#### Generic Client Error Responses\n| Error Code | Cause | Response Body |\n|--------------|---------|-----------|\n|401|Unauthorized|`{\"operation_id\": \"unknown\",\"code_id\":\"unknown\",\"message\": \"Unauthorised request\",\"errors\": {}}` |\n|404|Not Found|`{\"operation_id\": \"unknown\",\"code_id\":\"unknown\",\"message\": \"Route or resource not found\",\"errors\": {}}` |\n|405|Method Not Allowed|`{\"operation_id\": \"unknown\",\"code_id\":\"unknown\",\"message\": \"Method not allowed\",\"errors\": {}}` |\n\n#### List of Code Ids\n\n| Name | Description |\n|---------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|\n| failed_validation | Occurs when a request validation process fails. |\n| invalid_login | Occurs when insufficient login credentials were provided. |\n| resource_not_found | Occurs when a requested record or a feature was not found. |\n| unique_constraint | Occurs when a request tries to create an existing record in database. |\n| task_not_found | The specified task could not be found. |\n| account_not_found | The specified account could not be found. Please check the account identifier is correct. The account might be closed or suspended. |\n| internal_error | An unexpected internal error. |\n| internal_timeout | A task had timed out. |\n| internal_transient_error | A unexpected transient internal error. |\n| request_validation | Occurs when a request validation process fails. |\n| auth_denied | Authorisation process cancelled. |\n| auth_expired | The authorisation url has expired. Please generate a new one to continue. |\n| connection_not_found | No active connection with the provider |\n| connection_expired | The connection consent has expired. re-authentication required |\n| connection_revoked | The connection consent has been revoked. Re-authentication required |\n| connection_status | The connection consent is in the wrong status to perform the action. |\n| connection_permission | The connection consent does not have the require permissions for this resource |\n| provider_not_found | Unknown provider |\n| provider_failure | The provider has had an unexpected failure |\n| provider_timeout | The provider has taken to long to respond. |\n| provider_maintenance | The provider is temporarily unavailable due to maintenance |\n| provider_request_limit | The provider rate limit has been exceeded |\n| provider_endpoint_unimplemented | The provider has not implemented this endpoint |\n| provider_endpoint_deprecated | The provider has deprecated this endpoint |\n| provider_reauthenticate | The provider has deemed this consent needs to be reauthenticated. |\n\n#### Examples\n\n##### 400 Bad Request\n\nReturned after a failed attempt to create a new resource by passing invalid data to POST /resources.\n\nAfter trying to create a new resources by passing invalid data to `POST /resources`.\n\n```json\n{\n \"operation_id\": \"resources_post\",\n \"code_id\": \"failed_validation\",\n \"message\": \"Invalid request payload.\",\n \"metadata\": {},\n \"errors\": {\n \"name\": \"This value is required.\",\n \"email\": \"This value is invalid.\"\n }\n}\n```\n### Server Error Responses\n\nThe server errors will have status codes in the 500-599 range. The server errors will look very much like the \"Client Errors\" but will contain bare minimum information attached to them.\n\n#### Generic Server Error Responses\n| Error Code | Cause | Response Body |\n|--------------|---------|-----------|\n|`500`| Internal Server Error| `{\"message\": \"An error occurred while processing your request\"}`|\n|`503`| Service Unavailable| `{\"message\": \"Service unavailable\"}` |\n\n# Updates & Versioning\n\nUpdates to Bud's API documentation are made frequently. The current version of the documentation can be clearly viewed at the very top of this page.\n\n## Backward Compatibility\n\nBud aims to make integration as seamless as possible for its clients and therefore takes all possible steps to prevent backward-compatibility breaks. In the scenario where a backward-compatibility break is unavoidable, Bud creates a new endpoint, either: (a) by bumping the version within the endpoint URL; or (b) in some circumstances renaming the URL entirely. The previous endpoint may then become deprecated, and support for the endpoint will cease after a period of three months. Clients with access to any of Bud’s API services will be notified of deprecations to any endpoints and provided with ample time in which to make any necessary changes.\n\nFields within response or request schemas may also become deprecated. Along with deprecated endpoints, these breaking changes will be clearly highlighted within the below changelog.\n\n## Deprecations\n\nBud will continue to support deprecations for a period of **three months** after they are first announced.\n\n| Date of Announcement | Deprecation Details |\n|:---------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| 04/12/2020 | Changed the base URL of the **GET Warnings**, **GET Trends** and **GET Forecast** endpoints from `/v1/assistant/` to `/v1/signal/`. |\n| 06/08/2020 | Removed `bank_name` field in favour of a new field called `provider` in the following endpoints:
__POST__`/v1/open-banking/authorisation-url` (Request Payload)
__POST__`/v1/open-banking/connect/{connection_task_id}` (Response Payload)
__POST__`/v1/open-banking/refresh/{task_id}` (Response Payload) |\n| 01/09/2021 | Deprecated **GET Warnings** endpoints in favour of new **GET Money Management**, **GET Customer Characteristics** and **GET Financial Insight** endpoints. |\n| 01/11/2021 | Deprecated **Retrieve Authorisation Gateway URL** endpoint in favour of new **Retrieve Authorisation Gateway URL (v2)** endpoint. |\n| 01/11/2021 | Deprecated **Energy Switching API**, **Mortgage API**, **Home Insurance API** and **Broadband API** which formed Bud's marketplace offering. |\n| 14/03/2022 | Deprecated **Enrich Transaction** endpoints from the Ingest and Enrich API suite. |\n| 01/08/2022 | Deprecated `YYYY-MM-DD` date format for `X-From` and `X-To` headers within `/v1/affordability/spending-groups`. Both `X-From` and `X-To` headers now follow the `YYYY-MM` date format. |\n| 05/09/2022 | Deprecated **Retrieve Merchant Totals V1** in favour of new **Retrieve Merchant Totals V2** endpoint |\n| 23/01/2023 | Deprecated **List Transactions V1**. Bud understands that many clients have integrated this endpoint in order to retrieve transactions held on the Bud platform. As a result, there is a **six month** deprecation window, meaning that support for this endpoint will cease on the **1st of August 2023**, meaning clients must have migrated over to the new and improved **List Transactions V2** endpoint by that point in time. |\n| 23/01/2023 | Deprecated **Create Customers V1**. Support will continue for this endpoint, however we recommend clients to migrate to V2 and for all new clients to integrate with the V2 endpoint. |\n| 24/03/2023 | Deprecated **Retrieve Accounts** endpoint. Bud understands that many clients have integrated this endpoint in order to retrieve accounts held on the Bud platform. As a result, there is a **six month** deprecation window, meaning that support for this endpoint will cease on the **24th of September 2023**, meaning clients must have migrated over to the new and improved **Retrieve Accounts V2** endpoint by that point in time. |\n| 28/03/2023 | Deprecated **Retrieve Financial Forecast** in favour of **Retrieve Forecasted Transactions V2**. |\n| 28/03/2023 | Deprecated **Create Transaction Rule(s)**. |\n| 28/03/2023 | Deprecated **Retrieve Trends** in favour of **Retrieve Category Totals**. |\n| 22/06/2023 | Deprecated **Retrieve Forecasted Transactions V1** in favour of **Retrieve Forecasted Transactions V2**. |\n| 25/07/2023 | Deprecated **Retrieve Income Transactions V1** in favour of **Retrieve Income Transactions V2**. |\n| 25/07/2023 | Deprecated **Retrieve Salary Information V1** in favour of **Retrieve Income Transactions V2**. |\n| 17/08/2023 | Deprecated **Submit Authorisation Codes** in favour of **Submit Authorisation Codes V2**. |\n| 04/10/2023 | Deprecated **Open Banking Sync Complete** callback in favour the **Connect Completed Notification Callback** and **Refresh Completed Notification Callback** callbacks. |\n| 18/10/2023 | Deprecated **Retrieve Transaction Ingestion Task Status** in favour of **Retrieve Ingestion Task Status**. |\n| 18/10/2023 | Deprecated **Retrieve Accounts Ingestion Task Status** in favour of **Retrieve Ingestion Task Status**. |\n| 15/01/2024 | Deprecated **Remove Customer** in favour of **Remove Customer V3**. |\n| 15/01/2024 | Deprecated **Compare Custom Insight**, **Retrieve Custom Insight**, **Create Custom Insight** |\n| 25/01/2024 | Deprecated **Retrieve Ingestion Task Status V2** in favour of **Retrieve Ingestion Task Status V3** |\n| 21/05/2024 | Deprecated **Initiate Refresh** in favour of **Initiate Refresh V2** (Six month deprecation Notice) |\n| 21/05/2024 | Deprecated **Retrieve Refresh Status** in favour of **Retrieve Refresh Status V2** (Six month deprecation Notice) |\n| 27/08/2024 | Deprecated **Retrieve Affordability Transactions** in favour of **Retrieve Affordability Transactions V2** (Three month deprecation Notice) |\n| 28/08/2024 | Deprecated **Retrieve Balances Over Time** in favour of **Retrieve Balances Over Time V3** (Three month deprecation Notice) |\n| 04/09/2024 | Deprecated **Retrieve Account V2** in favour of **Retrieve Account V3** (Six month deprecation notice) |\n| 04/09/2024 | Deprecated **Retrieve Account By ID V2** in favour of **Retrieve Account By ID V3** (Six month deprecation notice) |\n| 02/10/2024 | Deprecated **Retrieve Affordability Transactions** in favour of **Retrieve Affordability Transactions V2** (Three month deprecation Notice) |\n| 27/01/2026 | Deprecated `posted_date_time` field on __Retrieve Transations V2__ in favour of `value_date_time` on __Retrieve Transactions V2__ |\n| 27/01/2026 | Deprecated `date-field` parameter on __Retrieve Balances Over Time V3__ |\n| 27/01/2026 | Deprecated `date-field` parameter on __Retrieve Balances Over Time By Account V3__ |\n\n## Changelog\n\nThis changelog represents a list of all changes that have been made to Bud’s API documentation. This includes both backward-compatible and backward-incompatible changes.\n\n**Version 4.4.0: 30/04/2026**\n>- Add `pan` as a valid account identifier type in __Ingest Accounts__.\n\n**Version 4.3.0: 23/04/2026**\n>- Add __Generate Savings Goals URL__ endpoint.\n\n**Version 4.2.0: 21/04/2026**\n>- Remove deprecated __Savings Goals V1__ endpoints.\n\n**Version 4.1.0: 20/04/2026**\n>- Add __Create Savings Goal V2__ endpoint.\n>- Add __Retrieve Savings Goals V2__ endpoint.\n>- Add __Retrieve Savings Goal V2__ endpoint.\n>- Add __Update Savings Goal V2__ endpoint.\n>- Add __Remove Savings Goal V2__ endpoint.\n\n**Version 4.0.1: 02/03/2026**\n>- Extend description of __Ingest Transactions__.\n\n**Version 4.0.0: 09/02/2026**\n>- Add __Remove Customer By Idempotent Identifier V3__ endpoint.\n\n**Version 3.0.0: 09/02/2026**\n>- Remove __Create Spending Budget__ `account_id` request body parameter\n>- Add `account_id` filtering parameter to __Retrieve Spending Budgets__ endpoint.\n>- Add `account_id` filtering parameter to __Retrieve Spending Budget Transactions__ endpoint.\n\n**Version 2.26.2: 27/01/2026**\n>- Add `value_date_time` field on __Retrieve Transactions V2__ endpoint.\n>- Add `value_date_time` field on __Ingest Transactions__ endpoint request and response.\n>- Mark `date-field` parameter as deprecated on __Retrieve Balances Over Time V3__ endpoint.\n>- Mark `date-field` parameter as deprecated on __Retrieve Balances Over Time By Account V3__ endpoint.\n\n**Version 2.26.0: 19/01/2026**\n>- Add __Generate Spending Budgets URL__ endpoint.\n\n**Version 2.25.2: 12/01/2026**\n>- Mark `posted_date_time` field as deprecated on __Retrieve Transactions V2__ endpoint.\n\n**Version 2.25.1: 08/01/2026**\n> - Added `exclude_category` parameter to __Category Totals V2__ endpoint.\n\n**Version 2.25.0: 07/01/2026**\n>- Add hcst as valid tag being returned from __Retrieve Transactions V2__ endpoint.\n\n**Version 2.24.1: 06/01/2026**\n>- Remove `posted_date_time` from __Ingest Transactions__ endpoint request and response.\n\n**Version 2.24.0: 02/12/2025**\n>- Add __Retrieve Account Transaction Dates__ endpoint.\n\n**Version 2.23.2: 25/11/2025**\n>- Add __Generate Accounts URL__ endpoint.\n>- Added `credit_transactions_count` and `debit_transactions_count` fields to __Merchant Totals V2__ response.\n\n**Version 2.23.1: 07/11/2025**\n>- Add `provider_display_name` and `provider_logo` fields to __Retrieve Accounts v3__ and __Retrieve Accounts V3 By ID__ response.\n\n**Version 2.23.0: 06/11/2025**\n>- Update endpoint url for __Generate Card Summary URL__ endpoint\n>- Update endpoint url for __Generate Financial Calendar URL__ endpoint\n>- Update endpoint url for __Generate Balances Over Time URL__ endpoint\n>- Update endpoint url for __Generate Recurring and Forecasted Transactions URL__ endpoint\n>- Update endpoint url for __Generate Spending Analysis URL__ endpoint\n>- Update endpoint url for __Generate Intelligent Search Widget URL__ endpoint\n\n**Version 2.22.0: 04/11/2025**\n>- Add __Remove Account Data V2__ endpoint.\n\n**Version 2.21.6: 04/11/2025**\n>- Update account_type filter values on __Retrive Accounts V3__ request.\n\n**Version 2.21.5: 24/10/2025**\n>- Add `counterparty` field to __Ingest Transactions__ request and sync response.\n>- Add `suggested_description` field to __Ingest Transactions__ request.\n>- Add `opening_date_time` field to __Ingest Accounts__ request.\n>- Expanded values for `account_type` field on __Ingest Accounts__ request\n>- Add `counterparty` field to __Retrieve Transactions V2__ response.\n>- Add `opening_date_time` field to __Retrieve Accounts V3__ response.\n>- Add `opening_date_time` field to __Retrieve Accounts V3 By ID__ response.\n>- Add `account_category` field to __Retrieve Accounts V3__ response.\n>- Add `account_category` field to __Retrieve Accounts V3 By ID__ response.\n>- Expand values for `account_type` field on __Retrieve Accounts V3__ response.\n>- Expand values for `account_type` field on __Retrieve Accounts V3 By ID__ response.\n\n**Version 2.21.4: 21/10/2025**\n>- Add new fields to `metadata` to __Generate Card Summary URL__ request and sync response.\n\n**Version 2.21.2: 30/09/2025**\n>- Add `running_balance` field to __Ingest Transactions__ request and sync response.\n>- Add `running_balance` field to __Retrieve Transactions V2__ response.\n>- Add `holders` field to __Ingest Accounts__ request.\n\n**Version 2.21.1: 29/09/2025**\n>- Add `consent_details` to the refresh.v2.* webhooks.\n\n**Version 2.21.0: 25/09/2025**\n>- Add __Generate MCP URL__ endpoint.\n\n**Version 2.20.0: 24/09/2025**\n>- Add __Close Accounts__ endpoint.\n>- Add __Reopen Accounts__ endpoint.\n>- Add `status` and `closed_at` fields to __Retrieve Accounts V3__.\n\n**Version 2.19.4: 03/09/2025**\n>- Add `posted_date_time` field to __Ingest Transactions__ request and sync response.\n\n**Version 2.19.3: 03/09/2025**\n>- Add `updated_after` field to __Retrieve Transactions V2__ metadata.\n>- Add `deleted` field to __Retrieve Transactions V2__ metadata.\n\n**Version 2.19.2: 27/08/2025**\n>- Add `us_account_number` identifier to __Retrieve Accounts V3__\n\n**Version 2.19.1: 18/08/2025**\n>- Update the permissions value returned when listing consents\n\n**Version 2.19.0: 12/08/2025**\n>- Add support for use of `customer_idempotent_identifier` field in place of `customer_id` field in __Ingest Accounts__, __Ingest Transactions__, __Book Transactions__, and __Decline Transactions__. This allows for easier integration, and allows customers to automatically be created at the point of ingestion.\n\n**Version 2.18.0: 25/06/2025**\n>- Add `X-Customer-Idempotent-Identifier` header to all endpoints that support `X-Customer-Id` header.\n\n**Version 2.17.10: 12/06/2025**\n>- Add `idempotent_identifier` filter to __Retrieve Customers V3__.\n\n**Version 2.17.9: 12/06/2025**\n>- Updated list of possible tags in __Retrieve Transactions V2__ endpoint response.\n\n**Version 2.17.8: 16/05/2025**\n>- Extend `status` query parameter possible values in __Retrieve Financial Data__ endpoint.\n>- Extend `status` possible values in __Retrieve Financial Data__ endpoint response.\n>- Extend `frequency` possible values in __Retrieve Financial Data__ endpoint response.\n\n**Version 2.17.7: 22/04/2025**\n> - Added `account_id` filter to __Category Totals V2__ endpoint.\n> - Added `account_id` filter to __Category Totals V2__ trends endpoint.\n\n**Version: 2.15.24: 03/04/2025**\n>- Add `subtask_details` object to __FPIIngestSucceededCallback__ and __FPIIngestFailedCallback__.\n\n**Version: 2.15.23: 20/02/2025**\n>- Add __Generate Spending Analysis URL__ endpoint.\n\n**Version: 2.15.22: 20/02/2025**\n>- Updated list of possible tags in __Retrieve Transactions V2__ endpoint response.\n\n**Version: 2.15.21: 30/01/2025**\n>- Add `country_code` field to __Ingest Transactions V2__ request.\n\n**Version: 2.15.20: 23/12/2024**\n>- Add new labels parameters to the __Retrieve Categories V2__ endpoint.\n\n**Version: 2.15.19: 10/12/2024**\n>- Add __Merchant Feedback__ endpoint.\n\n**Version: 2.15.18: 05/12/2024**\n>- Add __Essential Spend Statistics__ endpoint.\n\n**Version: 2.15.17: 02/12/2024**\n>- Add __Recurring and Forecasted Transactions URL__ endpoint.\n\n**Version: 2.15.16: 02/12/2024**\n>- Add __Generate Balances Over Time URL__ endpoint.\n\n**Version: 2.15.15: 02/12/2024**\n>- Add `credit_total` and `debit_total` field metadata of __Category Totals V2__ endpoint response.\n\n**Version: 2.15.14: 02/12/2024**\n>- Add __Generate Financial Calendar URL__ endpoint.\n\n**Version: 2.13.7: 26/11/2024**\n>- Add `provider` and `transaction_type` field to __Ingest Transactions V2__ endpoint request.\n>- Add `transaction_type` field to __Ingest Transactions V2__ endpoint sync response.\n>- Add `transaction_type` field to __Retrieve Transactions V2__ endpoint response.\n\n**Version: 2.13.6: 15/11/2024**\n>- Add __Generate Card Summary URL__ endpoint.\n\n**Version: 2.13.5: 12/11/2024**\n>- Improve `suggested_description` and `suggested_logo` examples for __Retrieve Transactions V2__ endpoint response.\n>- Improve `suggested_description` and `suggested_logo` examples for __Ingest Transactions V2__ endpoint response.\n\n**Version: 2.13.4: 11/11/2024**\n>- Add `suggested_description` and `suggested_logo` field to __Retrieve Transactions V2__ endpoint response.\n>- Add `suggested_description` and `suggested_logo` field to __Ingest Transactions V2__ endpoint sync response.\n>- Extend `status` enum with `declined` for __Ingest Transactions V2__ endpoint sync response.\n>- Extend `status` description for when `declined` is returned for __Retrieve Transactions V2__ endpoint response.\n\n**Version: 2.13.3: 29/10/2024**\n>- Add `X-Bud-Categorisation-Model` header to __Ingest Transactions V2__ endpoint.\n\n**Version: 2.13.2: 23/10/2024**\n> - Fixed operation ID for __Retrieve Accounts By ID V3__ endpoint\n\n**Version: 2.13.1: 21/10/2024**\n> - Added settlement (book and decline) route enums for __Retrieve Ingestion Task Status V2__ and __Retrieve Ingestion Task Status V3__ endpoint responses.\n\n**Version 2.13.0: 16/09/2024**\n> - Added __Book Transactions V3__ endpoint.\n> - Added __Decline Transactions V3__ endpoint.\n> - Added status filter to __Retrieve Transactions V2__.\n\n**Version 2.12.4: 04/09/2024**\n> - Added __Result__ field to __Retrieve Ingestion Task Status V3__ endpoint response.\n\n**Version 2.12.3: 04/09/2024**\n> - Deprecated __Retrieve Accounts V2__ endpoint.\n> - Deprecated __Retrieve Accounts By ID V2__ endpoint.\n\n**Version 2.12.2: 28/08/2024**\n> - Added __Retrieve Accounts V3__ endpoint.\n> - Added __Retrieve Accounts By ID V3__ endpoint.\n\n**Version 2.12.1: 01/08/2024**\n> - Add status field to __Ingest Transactions V2__ on application/bud-transaction-v3+json format.\n\n**Version 2.12.0: 30/07/2024**\n> - Added __Income Expenditure Report Insight Beta__ endpoint.\n> - Added __Income Expenditure Report Insight Transactions Beta__ endpoint.\n> - Added __Income Health Insight Report Beta__ endpoint.\n> - Added __Income Health Report Insight Transactions Beta__ endpoint.\n> - Added __Unauthorised Overdraft Insight Report Beta__ endpoint.\n> - Added __Unauthorised Overdraft Insight Report Transactions Beta__ endpoint.\n> - Added __Merchant Report Insight Beta__ endpoint.\n> - Added __Merchant Report Insight Transactions Beta__ endpoint.\n\n**Version 2.11.5: 29/07/2024**\n> - Added new __Correction Merchant Search__ endpoint under __Correct Financial Data__.\n> - Added new __Correct Transaction Merchant__ endpoint under __Correct Financial Data__.\n\n**Version 2.11.4: 24/07/2024**\n> - Remove body requirement from __Reconfirm Consent__\n\n**Version 2.11.3: 01/07/2024**\n> - Added link to __Consents__ guide from __Retrieve Customer Consents__\n\n**Version 2.11.2: 21/06/2024**\n> - Added __website__ field to merchant field in enrichments field in __Retrieve Transactions V2__.\n> - Added __website__ field to processor field in enrichments field in __Retrieve Transactions V2__.\n\n**Version 2.11.1: 19/06/2024**\n> - Added a new __Correct Financial Data__ section within __FINANCIAL DATA API__.\n> - Relocated __Correct Transaction Categories V2__ endpoint to __Correct Financial Data__ from __Manage Financial Data__.\n> - Added new __Similar Transactions__ endpoint under __Correct Financial Data__.\n> - Added new __Similar Transactions Including Merchants__ endpoint under __Correct Financial Data__.\n\n**Version 2.11.0: 17/05/2024**\n> - Added __Initiate Refresh V2__ endpoint.\n> - Added __Retrieve Refresh Status V2__ endpoint.\n> - Deprecated __Initiate Refresh__ endpoint in favour of __Initiate Refresh V2__ endpoint (Six month deprecation period).\n> - Deprecated __Retrieve Refresh Status__ endpoint in favour of __Retrieve Refresh Status V2__ endpoint (Six month deprecation period).\n\n**Version 2.10.10: 17/05/2024**\n>- Add optional `X-Customer-Ip-Address` header to __Initiate Refresh__.\n\n**Version 2.10.9: 05/03/2024**\n> - Added insight type as a string on Balances, Income and Spending insights endpoints.\n> - Added link to Actionable Insights guide as a note on Balances, Income and Spending insights endpoints.\n\n**Version 2.10.8: 08/02/2024**\n> - Fixed path for __Custom Insights__ endpoints.\n\n**Version 2.10.7: 02/02/2024**\n> - Added new fields for __Retrieve Balances Over Time__ and __Retrieve Balances Over Time By Account__ endpoint.\n\n**Version 2.10.5: 25/10/2024**:\n> - Add provider field to the __OBWebhookBody__ and __OBSyncWebhookBody__ schemas.\n\n**Version 2.10.3: 25/01/2024**:\n> - Deprecated __Retrieve Ingestion Task Status V2__ endpoint in favour of __Retrieve Ingestion Task Status V3__ endpoint.\n\n**Version 2.10.2: 24/01/2024**\n> - Document has_new_transactions and reconnect_required Refresh Callback Webhook values.\n\n**Version 2.10.1: 24/01/2024**\n> - Removed the deprecated __Retrieve Financial Forecast__ endpoint.\n> - Removed the deprecated __Retrieve Trends__ endpoint.\n> - Removed the deprecated __Retrieve Financial Insights__ endpoint.\n> - Removed the deprecated __Retrieve Energy Payments__ endpoint.\n> - Removed the deprecated __Energy Payments Discover__ endpoint.\n> - Removed the deprecated __Retrieve Category Totals__ endpoint.\n> - Removed the deprecated __Create Transaction Rule__ endpoint.\n> - Removed the deprecated __Correct Transaction Categories__ endpoint.\n> - Removed the deprecated __Retrieve Money Management__ endpoint.\n\n**Version 2.9.13: 18/01/2024**\n> - Updated description for __Retrieve Balances Over Time__ and __Retrieve Balances Over Time By Account__ endpoint.\n\n**Version 2.9.12: 15/01/2024**\n> - Deprecate __Remove Customer__ endpoint in favour of the __Remove Customer V3__ endpoint.\n> - Added __Remove Customer V3__ and __Retrieve Remove Customer__ V3 Status endpoints.\n\n**Version 2.9.11: 12/12/2023**\n> - Updated __Reconfirm Consent__ description to include a note about which clients can use the endpoint.\n\n**Version 2.9.10: 07/12/2023**\n> - Updated __Create Customer V3__ endpoint to include `created_at` and a new 200 response for existing customers.\n\n**Version 2.9.9: 06/12/2023**\n> - Fixed __Retrieve Future Transactions V2__ change\\_percentage query parameter example.\n\n**Version 2.9.8: 05/12/2023**\n> - Updated the description on __Retrieve Accounts V2__ endpoint to include new account types.\n\n**Version 2.9.5: 29/11/2023**\n> - Added the `categories` field to the __Retrieve Future Transactions V2__ endpoint.\n> - Update the examples for the __Retrieve Subscriptions V1__ endpoint.\n\n**Version 2.9.4: 09/11/2023**\n> - Removed the deprecated __Retrieve Future Transactions V1__ endpoint.\n> - Removed the deprecated __Retrieve Income Transactions V1__ endpoint.\n> - Removed the deprecated __Retrieve Salary Information__ endpoint.\n> - Moved the __Retrieve Benefits Totals__ endpoint from the __Enrichment Totals__ API to the __Smart Finders__ API.\n\n**Version 2.9.3: 26/10/2023**\n> - Added Spending Budget endpoints (Create, Update, Delete, Retrieve and Retrieve Transactions) to the __Goals API__.\n\n**Version 2.9.2: 04/10/2023**\n> - Deprecated __Open Banking Sync Complete__ callback in favour of the task type specific callbacks __Connect Completed Notification Callback__ and __Refresh Completed Notification Callback__.\n> - Add __Consent Revoked Notification Callback__ and __Consent Reconfirmed Notification Callback__ callbacks.\n\n**Version 2.9.1: 28/09/2023**\n> - Fixed __Submit Authorisation Codes V2__ description where the reference to __Retrieve Connection Status__ was incorrectly set.\n\n**Version 2.9.0: 21/09/2023**\n> - Add __Goals API__.\n\n**Version 2.8.25: 20/10/2023**\n> - Added the `idempotent_identifier` attribute to the __Create Customer V3__ endpoint.\n> - Removed documentation for __List Transactions V1__ and __Retrieve Accounts V1__ endpoints as passed the deprecation due date.\n\n**Version 2.8.24: 18/10/2023**\n> - Deprecated __Retrieve Transaction Ingestion Task Status__ endpoint in favour of __Retrieve Ingestion Task Status__ endpoint.\n> - Deprecated __Retrieve Accounts Ingestion Task Status__ endpoint in favour of __Retrieve Ingestion Task Status__ endpoint.\n\n**Version 2.8.19: 06/10/2023**\n> - Corrected __Goals API__ to utilise RFC-3339 timestamps\n\n**Version 2.8.15: 20/09/2023**\n> - Added __Authorised Payments V2__\n\n**Version 2.8.14: 05/09/2023**\n> - Remove the __Retrieve Authorisation Gateway URL__ endpoint.\n\n**Version 2.8.13: 29/08/2023**\n> - Deprecated the __Correct Transaction Categories V1__ endpoint (with a deprecation date of 1st December 2023) in favour of __Correct Transaction Categories V2__.\n> - Added a deprecation date of 1st December 2023 to the following endpoints: __Create Transaction Rule(s)__, __Retrieve Category Totals__, __Initiate Energy Payments Discovery__, __Retrieve Energy Payments__, __Retrieve Money Management__, __Retrieve Customer Characteristics__, __Retrieve Financial Insights__, __Retrieve Trends__, __Retrieve Financial Forecast__.\n\n**Version 2.8.12: 17/08/2023**\n> - Deprecated the __v1_affordability_spending_groups_post__ endpoint in favour of __aggregations_v2_buckets_post__\n\n**Version 2.8.11: 17/08/2023**\n> - Added the `Submit Authorisation Codes V2` endpoint\n> - Deprecated the `Submit Authorisation Codes` endpoint\n\n**Version 2.8.10: 16/08/2023**\n> - Added bucket endpoints\n\n**Version 2.8.9: 08/08/2023**\n> - Added `download_data`, `reconfirm_consent` and `revoke_consent` to the `initial_screen` options for the __Retrieve Authorisation Gateway URL V2__ endpoint\n> - Deprecated the `reconfirm_consent` body parameter for the __Retrieve Authorisation Gateway URL V2__ endpoint\n\n**Version 2.8.8: 02/08/2023**\n> - Fixed error in __Category Totals V2__ path\n> - Fixed error in __Category Totals V2__ include L2 attribute\n\n**Version 2.8.7: 28/07/2023**\n> - Removed the __Retrieve Financial Products__ endpoint as the deprecation notice has expired.\n\n**Version 2.8.6: 25/07/2023**\n> - Removed the __Retrieve Categories V1__ endpoint as the deprecation notice has expired.\n> - Deprecated the __Retrieve Income Transactions V1__ endpoint in favour of __Retrieve Income Transactions V2__\n> - Deprecated the __Retrieve Salary Information__ endpoint in favour of __Retrieve Income Transactions V2__\n\n**Version 2.8.5: 19/07/2023**\n> - Added the __Category Totals V2__ endpoint.\n> - Added the __Category Totals V2__ trends endpoint.\n> - Fixed bug in v1 category totals schema.\n\n**Version 2.8.4: 19/07/2023**\n> - Added `mobile_only` flag for providers in the __Retrieve OB Providers__ endpoint.\n\n**Version 2.8.3: 18/07/2023**\n> - Added link to guide to __Create Customers V3__ and __Create Customers V3 (Batch)__.\n> - Added link to guide to __Retrieve Accounts V2__ and __Retrieve Accounts By ID V2__.\n\n**Version 2.8.2: 10/07/2023**\n> - Added `skip_success_screen` to the request body of the __Retrieve Authorisation Gateway URL V2__ endpoint.\n\n**Version 2.8.1: 07/07/2023**\n> - Added `loan` and `pending` tags as part of the __Retrieve Transactions V2__ endpoint.\n> - General bug fixes and improvements across examples and schemas.\n\n**Version 2.8.0: 29/06/2023**\n> - Added the new Characteristics API as part of the Engage product offering.\n\n**Version 2.7.9: 22/06/2023**\n> - Updated __Retrieve Forecasted Transactions V1__ to show descriptive deprecation notice.\n\n**Version 2.7.8: 19/06/2023**\n> - Updated descriptions for Payments related endpoints.\n\n**Version 2.7.7: 07/06/2023**\n> - Updated response parameters for __Ingest First Party Data__ endpoints.\n\n**Version 2.7.6: 01/06/2023**\n> - Updated optional headers for __Reconfirm Consent__ endpoint to include `X-Customer-Ip-Address`.\n\n**Version 2.7.5: 22/05/2023**\n> - Updated the description and examples for the __Retrieve Balances Over Time__ and __Retrieve Balances Over Time By Account__ endpoints.\n> - Updated the description and examples for the __Retrieve Transactions V2__ endpoint.\n> - Updated __Retrieve Accounts__ to show descriptive deprecation notice.\n> - Updated __Retrieve Accounts V2__ response HTTP codes, example transaction ID, `provider` query parameter description.\n\n**Version 2.7.4: 19/05/2023**\n> - Updated the description for the __Ingest Transactions V2__ endpoint.\n\n**Version 2.7.3: 18/05/2023**\n> - Updated the __Retrieve Authorisation Gateway URL (v2)__ endpoint with a new enable_async_connect option.\n> - Updated the __Ingest Transactions V2__ request examples.\n\n**Version 2.7.2: 18/05/2023**\n> - Updated the description for the __Reconfirm Consent__ endpoint.\n\n**Version 2.7.1: 16/05/2023**\n> - Added documentation for __Retrieve Auth Tokens__ endpoint.\n\n**Version 2.7.0: 11/05/2023**\n> - Adds two new endpoints: __Create Customers V3__ and __Create Customers V3 (Batch)__.\n> - Introduces the concept of Hosted Customers, which makes Customer Secrets optional on all endpoints which previously required them.\n\n**Version 2.6.2: 05/05/2023**\n> - Documented default to from case in __Retrieve Financial Products V2__ and __Retrieve Financial Products__.\n> - Fixed documentation for get customers endpoints\n> - Fixed documentation for put customer context endpoints\n\n**Version 2.6.1: 27/04/2023**\n> - Deprecated __Retrieve Financial Products__.\n> - Corrected sample Financial Products in __Retrieve Financial Products V2__.\n\n**Version 2.6.0: 25/04/2023**\n> - Added new __Retrieve Categories V2__ endpoint.\n> - Added new __Retrieve Available Categorisation Models V2__ endpoint.\n> - Deprecated __Retrieve Categories__.\n> - Added `models.categorisation` field to _Customer Context_ models.\n\n**Version 2.5.3: 20/04/2023**\n> - Updated __Retrieve Category Totals__ X-From and X-To parameter descriptions and endpoint description.\n> - Updated __Retrieve Merchant Totals V2__ X-From and X-To parameter descriptions.\n> - Updated __Retrieve Benefits Totals__ X-From and X-To parameter descriptions.\n> - Removed __Retrieve Merchant Totals V1__ following deprecation period.\n\n**Version 2.5.2: 19/04/2023**\n> - Added `format` query parameter to __Retrieve Categories__.\n\n**Version 2.5.1: 30/03/2023**\n> - Fix income types for __Retrieve Income Transactions V2__.\n\n**Version 2.5.0: 28/03/2023**\n> - Deprecated __Retrieve Financial Forecast__.\n> - Deprecated __Create Transaction Rule(s)__.\n> - Renamed __Retrieve Upcoming Transaction__ endpoints (V1 and V2) to __Retrieve Forecasted Transactions__.\n> - Renamed __Recategorise Transaction__ endpoints (V1 and V2) to __Correct Transaction Categories__.\n> - Fix documented required fields for __Recategorise Transaction V1__.\n\n\n**Version 2.4.0: 24/03/2023**\n> - Deprecated __Retrieve Accounts__.\n> - Finalised __Retrieve Accounts V2 (beta)__ to production release as __Retrieve Accounts V2__.\n> - Finalised __Retrieve Account By ID V2 (beta)__ to production release as __Retrieve Account By ID V2__.\n> - Finalised __Retrieve Balances Over Time (Beta)__ to production release as __Retrieve Balances Over Time__.\n> - Finalised __Retrieve Balances Over Time By Account (Beta)__ to production release as __Retrieve Balances Over Time By Account__.\n\n\n**Version 2.3.9: 21/03/2023**\n> - Update merchant descriptions & required fields for **Retrieve Subscriptions**\n> - Standardised description used for dates in __Retrieve Merchant Totals V2__.\n> - Standardised description used for dates in __Retrieve Income Transactions V1__.\n> - Standardised description used for dates in __Retrieve Income Transactions V2__.\n> - Standardised description used for dates in __Retrieve Loan Transactions__.\n> - Standardised description used for dates in __Retrieve Debt Collection Transactions__.\n> - Standardised description used for dates in __Retrieve Benefits Transactions__.\n> - Standardised description used for dates in __Retrieve Benefits Totals__.\n> - Standardised description used for dates in __Retrieve Financial Products__.\n> - Standardised description used for dates in __Retrieve Subscriptions__.\n> - Standardised description used for dates in __Retrieve Upcoming Transactions V1__.\n> - Standardised description used for dates in __Retrieve Salary Information__.\n\n**Version 2.3.8: 21/03/2023**\n> - Update amount descriptions\n\n**Version 2.3.7: 20/03/2023**\n> - Fix the docs for **Retrieve Money Management** correcting the category names for some warning types.\n> - Remove the deprecated `large_expense` and `high_balance` warnings from **Retrieve Money Management**.\n\n**Version 2.3.6: 16/03/2023**\n> - Deprecated __Initiate Energy Payments Discovery__ and __Retrieve Energy Payments__\n\n**Version 2.3.5: 13/03/2023**\n> - Updated holder and holders fields on __List Accounts V2 (beta)__ and __Retrieve Account By ID V2 (beta)__.\n\n**Version 2.3.3: 13/03/2023**\n> - Document `provider_redirect_url` field for **Create Single Payment**\n\n**Version 2.3.2: 13/03/2023**\n> - Document `reconfirm_consent_redirect` field for **Retrieve Authorisation Gateway URL (v2)**\n> - Added the `processor` field to the response from __Retrieve Income Transactions V2__\n\n**Version 2.3.1: 09/03/2023**\nThe changes in this release carry no change to URLs, this is purely the name of the endpoint.\n> - Renamed __Fetch Balance Actionable Insights (Beta)__ to __Retrieve Balance Actionable Insights (Beta)__\n> - Renamed __List OB Providers__ to __Retrieve OB Providers__\n> - Renamed __List Customer Consents__ to __Retrieve Customer Consents__\n> - Renamed __List Categories__ to __Retrieve Categories__\n> - Renamed __Fetch Financial Data__ to __Retrieve Financial Data__\n> - Renamed __List Accounts__ to __Retrieve Accounts__\n> - Renamed __List Transactions__ to __Retrieve Transactions__\n> - Renamed __List Transactions V2__ to __Retrieve Transactions V2__\n> - Renamed __List Accounts V2 (beta)__ to __Retrieve Accounts V2 (beta)__\n> - Renamed __Balances Over Time (Beta)__ to __Retrieve Balances Over Time (Beta)__\n> - Renamed __Balances Over Time By Account (Beta)__ to __Retrieve Balances Over Time By Account (Beta)__\n> - Renamed __Affordability Report__ to __Retrieve Affordability Report__\n> - Renamed __Affordability Transactions__ to __Retrieve Affordability Transactions__\n> - Renamed __Get Financial Products__ to __Retrieve Financial Products__\n> - Renamed __List Providers__ to __Retrieve Providers__\n> - Renamed __List Single Payments__ to __Retrieve Single Payments__\n> - Renamed __List Standing Orders__ to __Retrieve Standing Orders__\n> - Renamed __List Scheduled Payments__ to __Retrieve Scheduled Payments__\n> - Renamed __List Components__ to __Retrieve Components__\n\n**Version 2.3.0: 07/03/2023**\n> - Added new __Get Financial Products V2__ endpoint.\n\n**Version 2.2.0: 28/02/2023**\n> - Added a new __Balances Insights__ beta endpoint to the new Actionable Insights API. Not subject to breaking change restrictions.\n\n**Version 2.1.1: 15/02/2023**\n> - Corrected documented response descriptions and examples for __Get Financial Products__\n\n**Version 2.1.0: 02/02/2023**\n> - Added a new __List Accounts V2 (beta)__ and __Retrieve Account By ID V2 (beta)__ beta endpoints within the Financial Data API.\n\n**Version 2.0.4: 31/01/2023**\n> - Fix the docs for **List Transactions V2** correcting the date format in the example response.\n> - Fix the docs for **Get Financial Products** correcting the expected response data structure.\n> - Fix the docs for **Balances Over Time By Account (Beta)** correcting the endpoint URI.\n\n**Version 2.0.3: 27/01/2023**\n> - Fix the docs for **Retrieve Income Transactions V2** line with fixes for average statistic calculation.\n\n**Version 2.0.2: 23/01/2023**\n> - Make various spelling and grammar corrections to the Financial Review API docs, and additionally specify that the Financial Review API date ranges are to be received as GET parameters rather than headers.\n\n**Version 2.0.0: 23/01/2023**\n> - This major release not only showcases a new look and feel for Bud's API docs, but also some fairly significant changes to the structure of the endpoints across the platform. In a nutshell, Bud's Connect API (formally Open Banking Aggregation API) has a simplified structure with the retrieve data endpoints moving into a dedicated **Financial Data** section. In addition, the various insights endpoints have been broken down to provide a more simplified structure within the **Financial Insights** section.\n> - \\[**BREAKING**\\] Bud's List Transactions (**POST** _/v1/open-banking/transactions_) has now been deprecated given the onsight of the new **List Transactions V2** endpoint (**POST** _/financial/v2/transactions_). Given the number of clients using the V1 endpoint, Bud has increased the deprecation window to six months. As a result, **all support will cease for the V1 List Transactions endpoint on the 1st of August 2023**. Please complete your migration before that date and contact your Bud account manager for further details and any help planning your migration.\n> - Bud's Create Customers (**POST** _/v1/customers_) has now been deprecated. Support for this endpoint will continue, however we recommend clients to mirgate to V2 when possible.\n\n**Version 1.22.3: 18/01/2023**\n> - Improvements to __Ingest Transactions V2__ and __Ingest Transactions Task Status__ examples.\n> - Removed the `provider` field from the __Ingest Transactions V2__ request payload.\n> - Consolidate the List Accounts, V1 List Transactions endpoint and Remove OB Provider endpoints into the Financial Data API (to sit alongside the new V2 List Transactions endpoint).\n\n**Version 1.22.2: 12/01/2023**\n> - \\[**BREAKING**\\] _Balances Over Time_ and _Balances Over Time By Account_ beta endpoints now provide pending and booked balances. Please note this has changed the structure of the response. Please note, as these are beta endpoints, normal deprecation rules don't apply.\n\n**Version 1.22.1: 10/01/2023**\n> - General bug fixes and improvements across examples and schemas\n\n**Version 1.22.0: 21/12/2022**\n> - Bud is looking to undergo some major improvements to the code base of its Rent Recognition service throughout 2023 in order to bring it in line with the other services on the Bud platform. As a result, Bud has removed the current Rent Recognition service from its API documentation. For further details on when the new Rent Recognition service will be available, please contact sales@thisisbud.com or your relevant Bud account manager.\n\n**Version 1.21.1: 15/12/2022**\n> - Fix for Ingest Transactions V2 sync response\n> - Fix for connect and refresh webhook status field\n\n**Version 1.21.0: 15/12/2022**\n> - Added a new __Balances Over Time__ and __Balances Over Time By Account__ beta endpoints within the Financial Data API.\n> - Released __List Transactions V2__ with some additional examples added (the previous beta endpoint __List Transactions (beta)__ has now been removed).\n> - Released the new Ingest Transactions V2 endpoint that enables synchronous processing for smaller payloads and also follows the latest schema for the List Transactions V2 endpoint.\n\n\n**Version 1.20.10: 06/12/2022**\n> - Updates to the __Transactions__ list endpoint (beta) examples, and added enrichments for `location` and `transaction_types`\n\n**Version 1.20.9: 30/11/2022**\n> - Updates to the __Transactions__ list endpoint (beta) which includes renaming the `cdi` field to `credit_debit_indicator`,\nadding the transaction `processor` enrichment, the transaction `status` field and improvements across examples.\n> - Added consent_id field to __Initiate Provider Authorisation__ endpoint to create authorisation URLs for a specific consent by sending the consent ID in the initiating request.\n\n**Version 1.20.8: 15/11/2022**\n> - General bug fixes and improvements across examples and schemas\n\n**Version 1.20.7: 08/11/2022**\n> - Added a new __Recategorise Transactions V2__ endpoint within the Submit Corrections API.\n\n**Version 1.20.6: 07/11/2022**\n>- Added a new field `customer_context` to the __Create Customers V1__ and __Create Customers V2__ endpoints,\nalong with new __Retrieve Customer Context__ and __Update Customer Context__ endpoints.\nThe Customer Context allows for the creation of a better user experience based on better knowledge of the customer themselves.\n\n**Version 1.20.5: 01/11/2022**\n> - General bug fixes and improvements across examples and schemas\n> - Updates to the __Code Ids table__, with a full list of connect error codes\n> - Added schemas for two new webhook callbacks for connect and refresh tasks.\n> - Add payments `provider_types` field\n\n**Version 1.20.4: 28/10/2022**\n> - Added a new __Retrieve Authorisation Gateway URL__ and __Retrieve Authorisation Gateway URL (v2)__ response code.\n\n**Version 1.20.3: 18/10/2022**\n> - General bug fixes and improvements across examples, schemas, endpoints descriptions, names and sectioning titles.\n\n**Version 1.20.2: 13/10/2022**\n> - Added a new __Retrieve Upcoming Transactions V2__ endpoint within the Transactions Insights API.\n\n**Version 1.20.1: 04/10/2022**\n> - General bug fixes and improvements across examples, schemas, endpoints descriptions, names and sectioning titles.\n\n**Version 1.20.0: 03/10/2022**\n> - Added a new Financial Data API, containing a new __Transactions__ list endpoint (beta).\n\n**Version 1.19.0: 30/09/2022**\n> - Added a new __Reconfirm Consent__ endpoint within the Manage OB Connections API.\n> - Added a new field to the V2 Open Banking Authorisation Gateway URL endpoint. The endpoint\nallows clients to direct customers to the reconfirmation of consent journey, where customers can\nextend their consent by 90 days.\n\n**Version 1.18.1: 26/09/2022**\n> - General bug fixes and improvements across examples, schemas, endpoints descriptions, names and sectioning titles.\n\n**Version 1.18.0: 16/09/2022**\n> - Added a new __Subscriptions__ endpoint within the Transactions Insights API.\n\n**Version 1.17.0: 06/09/2022**\n> - Added a new data field to the Retrieve Refresh Status endpoint as part of Bud's Connect (OB\nAggregation) API. The field - `has_new_transactions` describes whether any new transactions have\nbeen obtained as part of the latest refresh, thus providing details on whether you as the Client\nare required to fetch the latest transacitons for that customer.\n> - Deprecated __Retrieve Merchant Totals V1__ in favour of the new __Retrieve Merchant Totals V2__ endpoint.\n> - Added _Buy Now, Pay Later_ support to the __Get Financial Products__ endpoint, identified by\nthe enum value `bnpl`.\n\n**Version 1.16.2: 16/08/2022**\n> - Included a new query parameter within the List Consents endpoint to allow clients\nto view all consents, i.e. those that have been expired/revoked, and those that are\nawaiting authorisation (as well as those that are active).\n> - General bug fixes and improvements across examples, schemas, endpoints descriptions, names and sectioning titles.\n\n**Version 1.16.1: 11/08/2022**\n> - General spelling corrections and improvements across examples\n\n**Version 1.16.0: 01/08/2022**\n> - \\[**BREAKING**\\] The `X-From` and `X-To` date fields will now follow the date format of YYYY-MM for `/v1/affordability/spending-groups`. **Please note that the current date format for `X-From` and `X-To` will no longer be supported in three months time on the 1st November 2022**. All clients with existing integrations will be contacted via email by their relevant account manager to inform them of this change. This should provide clients with enough time adjust their integration before the change coming into force. Please contact `help@thisisbud.com` or your account manager if you have any questions, issues or concerns relating to this update.\n\n**Version 1.15.2: 22/07/2022**\n> - General spelling corrections\n\n**Version 1.15.1: 18/07/2022**\n> - General bug fixes and improvements across examples, schemas, endpoints descriptions, names and sectioning titles.\n\n\n**Version 1.15.0: 29/06/2022**\n> - \\[**BREAKING**\\] The `period` field will have new enum values when calling the `/v1/regular-transactions` and the `/v1/future-transactions` endpoints. **Please note that this change will only come into effect in three months time on the 5th October 2022**. All clients with existing integrations will be contacted via email by their relevant account manager to inform them of this change. This should provide clients with enough time adjust their integration before the change coming into force. Please contact `help@thisisbud.com` or your account manager if you have any questions, issues or concerns relating to this update.\n> - Fixed some inaccuracies with the __Signal Money Management__ docs.\n\n**Version 1.14.0: 27/06/2022**\n> - Added a new __Affordability Report__ endpoint within the Financial Review API.\n> - Added a new __Affordability Transaction__ endpoint within the Financial Review API.\n\n**Version 1.13.2: 22/06/2022**\n> - Fixed doc issues with some __Signal__ warnings (__Money Management__ `regular_monthly_income_change` and __Financial Insights__ `gambling_threshold`)\n\n**Version 1.13.1: 22/06/2022**\n> - Fixed issues with doc site dependencies\n\n**Version 1.13.0: 21/06/2022**\n> - Added a new __Debt Collection Finder__ endpoint within the Transaction Insights section.\n> - Added a new __Product Finder__ endpoint within Transaction Insights which creates a summary of a customer's financial products using their transaction history.\n> - Added Parties to the __List Accounts__ endpoint in the Manage OB Data section\n\n**Version 1.12.2: 24/05/2022**\n> - General bug fixes and improvements across examples, schemas, endpoints descriptions, names and sectioning titles.\n> - Added a new __Income Finder V2__ endpoint within the Transaction Insights section.\n> - Added a new __Loans Finder__ endpoint within the Transaction Insights section.\n\n**Version 1.12.1: 05/05/2022**\n> - Moved __Benefits Finder__ endpoint into the correct section - Transaction Insights.\n\n**Version 1.12.0: 26/04/2022**\n> - Added a new __Benefits Finder__ endpoint within the Transaction Insights section that provides details around any benefit specific transactions a customer might have within their connected accounts.\n> - Fixed typos.\n\n**Version 1.11.3: 14/03/2022**\n> - Deprecated __Enrich Transaction__ endpoints from the Ingest and Enrich API suite.\n> - General improvements across examples, schemas, endpoints descriptions, names and sectioning titles.\n\n**Version 1.11.2: 31/01/2022**\n> - Corrected syntax for Custom Signal endpoints.\n> - Fixed typos.\n\n**Version 1.11.1: 27/01/2022**\n> - Added a better description to the Recategorisation (Customer Corrections) endpoint.\n> - Fixed typos.\n\n**Version 1.11.0: 05/01/2022**\n> - Added a new __Income Finder__ endpoint within the Transaction Insights section that provides details around any income specific transactions that a customer might have within their connected accounts.\n> - Detailed the payload of the callbacks (webhooks) sent to the relevant Client webhook URL when (i) an Open Banking Synchronisation task completes (i.e. after either a Connect or Refresh request has been made by the Client); and (ii)\nwhen the status of a Payment (single, scheduled or stand order) has either completed or failed.\n> - Included a new 400 response example in the Get Authorisation Gateway URL and Initiate Refresh endpoints (within Bud's OB Aggregation API) to detail the response when the selected provider is currently in maintenance mode.\n> - Corrected the documentation of the List Accounts endpoint to ensure that the `account_type` field is shown as nullable.\n\n**Version 1.10.1: 22/11/2021**\n> - Added a new __Custom Signals__ endpoint within the Signal API that allows you to segment and identify customers based on custom criteria.\n\n**Version 1.10.0: 28/10/2021**\n> - Added a new __Delete Provider Data__ endpoint.\n> - Deprecated __Retrieve Authorisation Gateway URL__ endpoint following the introduction of the new `/v2/open-banking/authorisation-gateway-url` endpoint.\n> - Moved `/v1/energy-switching/energy-payments` & `/v1/energy-switching/energy-payments/{task_id}` endpoints from Energy Switching API to the Insights API.\n> - Deprecated remaining endpoints within the __Energy Switching API__.\n> - Deprecated all endpoints within the __Mortgage API__.\n> - Deprecated all endpoints within the __Home Insurance API__.\n> - Deprecated all endpoints within the __Broadband API__.\n\n**Version 1.9.0: 14/10/2021**\n> - Addition of a new endpoint `/v2/open-banking/authorisation-gateway-url` to allow clients to use an updated\nBud Connect flow, allowing their customer's to go through a new Account Connection journey. The v2 journey is\nhighly configurable via the use of different flags within the request payload.\n\n**Version 1.8.3: 06/10/2021**\n> - General bug fixes and improvements across examples, schemas, endpoints descriptions, names and sectioning titles.\n\n**Version 1.8.2: 16/09/2021**\n> - Altered the List Consents endpoint to now take in an optional `X-Customer-Secret` field within the request headers. If done so, each consent object will now return a list of `account_ids` associated with the consent object in addition to a date denoting the date a which a refresh was successfully completed for that given consent object.\n\n**Version 1.8.1: 07/09/2021**\n> - Added a new Submit Authorisation Codes endpoint for use within the Payments flows when using Bud as a technical service provider.\n\n**Version 1.8.0: 01/09/2021**\n> - Deprecated __Warnings__ endpoint within the Signal API\n> - Added a new __Money Management__ endpoint within the Signal API that allows clients to provide more detailed information regarding a customer's financial situation.\n> - Added a new __Customer Characteristics__ endpoint within the Signal API that allows clients to profile based on a customer's transactions.\n> - Added a new __Financial Insight__ endpoint within the Signal API that allows clients to understand a customer's overall financial situation and affordability.\n\n**Version 1.7.10: 06/08/2021**\n> - Updated the List Transaction Response schema to detail the addition of the new carbon tracker enrichment field.\n\n**Version 1.7.9: 03/08/2021**\n> - The `customer_secret` attribute is now a required attribute on the POST Ingest Accounts endpoint.\n> - Updated the List Transaction Response schema to detail those fields that are required and/or nullable.\n> - Created a new Create Transaction Rule(s) endpoint that allows client to set a value of the `client_label` attribute against a set of customer transactions which adhere to the rules specified in the request payload.\n> - Updated API Overview table in the introduction to include latest product set.\n> - Removed deprecated Financial Assistant endpoints.\n\n**Version 1.7.8: 28/05/2021**\n> - Addition of some optional fields to the POST Retrieve Authorisation Gateway URL endpoint. The additional fields allow clients to specify: (i) a single provider, effectively skipping the select provider screen in the customer UI; (ii) a list of providers, allowing clients to configure the list of providers shown to the customer on the select provider screen; and (iii) filter the provider list shown to the customer by the type of provider (e.g. business or personal). In addition, a `connect_more_accounts_button` flag can be configured to show the customer a button at the end of the connection flow that will allow them to connect to another provider without having to return to the client application.\n\n**Version 1.7.7: 15/04/2021**\n> - Updated the examples within Bud's KYC endpoints to make them more usable against Bud's sandbox environment.\n> - Addition of a new GET `/v1/open-banking/account-access-consents` endpoint to allow clients to query the active consents against a given customer (in relation to Bud's OB Aggregation service).\n\n**Version 1.7.6: 17/03/2021**\n> - Addition of a new \"Regular Payment Changed\" Insight to the Warnings Endpoint (that forms part of Bud's Signal Product).\n> - Bugfix: addition of the required `mobile_phone_number` field to the request payload of the Switch Supplier endpoint within the Energy Switching API to align to the implementation of the API itself.\n> - Bugix: the format of the `annual_spend.amount` field within the request payload of the kWh Estimation endpoint now states that is should be a number (as opposed to a string) to align to the API itself.\n\n**Version 1.7.5: 10/02/2021**\n> - Fixed bug in the List Accounts endpoint for Bud's OB Aggregation service - the response data object now details all the returned fields as expected.\n> - Removed the deprecated List Account Balances endpoint from the documentation entirely.\n> - Added a new __Ingest Accounts__ endpoint within the Enrichment API that allows clients to provide more detailed information regarding a customer's account.\n\n**Version 1.7.4: 25/01/2021**\n> - Addition of a Know Your Customers (KYC) API allowing clients to perform KYC checks on businesses or their customers.\n> - \\[**BREAKING**\\] The `X-Customer-Secret` is now a required field within the headers of the `/v1/open-banking/authorisation-gateway-url` endpoint. **Please note that this change will only come into effect in three months time on the 1st of May 2021**. All clients with exisitng integrations will be contacted via email by their relevant account manager to inform them of this change. This should provide clients with enough time adjust their integration before the change coming into force. Please contact `help@thisisbud.com` or your account manager if you have any questions, issues or concerns relating to this update.\n\n**Version 1.7.3: 11/01/2021**\n> - Addition of the changelog to the api docs, and further information around updates and versioning.\n> - Documentation Bug Fix: `redirect_url` field is now shown as required within the **POST** `/v1/open-banking/authorisation-url` endpoint. This affects those clients using Bud's TSP Aggregation Service.\n\n**Version 1.7.2: 18/12/2020**\n> - Introduction of a new payment service within Bud's Payment API. Clients are now able to initiate __Scheduled Payments__ from Bud's Payments service. The scheduled payments service is available to those clients using Bud as a TPP (i.e. via Bud Pay) and as a TSP.\n> - Bud have now released their __First Party Transactions Ingestion__ endpoint. This allows clients to simply post Bud some of their customer's transactions, which will then be run through each of Bud's enrichment and insights services and then stored securely. This opens up Bud's plethora of Insights services, Signal, and Financial Review to those clients with first-party transactional data.\n\n**Version 1.7.1: 06/12/2020**\n> - Few changes to the Payments endpoint responses, including:\n> - the GET providers endpoint, `required_actions` field now becomes an array (as opposed to an object) and is populated with string enums which are now clearly described in the schema.\n> - the response of the create Single Payment and Standing Order endpoints now includes a `required_action` field as opposed to required_actions (since there will only ever be one next required action). If this field appears within the response then clients must take another action in order to complete the payment flow.\n> - the payment status endpoint also now includes the `required_action` field, which if not null, clearly indicates that the client is required to perform the necessary action in order for the payment to complete.\n> - updated the payment service enums within the response of the GET providers endpoint, since each provider can now potentially offer `domestic-single-payment`, `domestic-standing-order` and (soon to be) `domestic-scheduled-payment` services.\n> - Added extra information within the description of various Rent Recognition endpoints. This should provide clients with a much clearer understanding of which endpoints are needed and why in order to integrate the entire RR journey.\n\n**Version 1.7.0: 27/11/2020**\n> - Added a new POST /v2/customers endpoint that allows clients to create up to 200 customers in a single request.\n> - \\[**BREAKING**\\] Deprecated Financial Assistant endpoints (warnings / trends / forecast) and introduced these endpoints under a new API called Signal with updated urls and operation_ids.\n> - Altered description of the OB Aggregation TPP Retrieve Authorisation Gateway URL to include for information into its usage.\n> - Introduction of a new set of Payments based endpoints allowing customers to set up and authorise standing orders from one of Bud’s supported providers. This comes in the form of:\n> - a new TPP endpoint, where clients can now request a new Bud Pay URL to allows customers to set up a new standing order; and\n> - a new set of TSP endpoints, allowing clients to integrate Bud APIs to allow their customers to initiate standing orders.\n\n**Version 1.6.5: 10/09/2020**\n> - Addition of the `period` field to the __GET__ `/v1/salary` endpoint to provide an indication into any regulatory associated with a predicted salary transaction.\n\n**Version: 1.6.4: 06/08/2020**\n > - \\[**BREAKING**\\] Deprecated the use of `bank_name` in relevant schemas within Bud’s OB Aggregation API in favour of of the field `provider`\n > - Updated Affordability API title to Financial Review API and provided an updated description of the API.\n > - Updated the product table within the introduction to reflect new titles and descriptions across Bud’s API services.\n\n**Version: 1.6.3 - 20/07/2020**\n > - Added a new endpoint for the OB Aggregation TSP flow - __POST__ `/v1/open-banking/authorisation-codes`. It allows clients to send back the parameters they receive from the bank once the customer has completed the authorisation process. This allows Bud to match the state to the relevant task id, and also provides the relevant code that will allow Bud to start fetching the customer’s data from the provider.\n\n**Version: 1.6.2 - 16/07/2020**\n > - Addition of international updates to payments APIs\n > - Updated energy switching meters example to ensure that it will return meter information for the address given in the example.\n\n**Version: 1.6.0 - 15/06/2020**\n > - Financial Assistant service added to the Insights API. This includes three brand new endpoints that help customers to better manage their financial world.\n > - _Retrieve Warnings_: provides a list of potential scenarios where a customer might suffer some financial expense (e.g. in their overdraft, cannot cover bills, late payment and late income)\n > - _Retrieve Trends_: provides the key trends associated with a customer’s transactional data broken down by month\n > - _Retrieve Forecast_ - provides a list of the regular and predicted transactions over a given period, noting whether they are booked, pending or predicted.\n > - Affordability Service added to the documentation, including a brand new endpoint to help clients to assess their customers affordability. The _Create Spending Groups_ endpoint allows clients to create their own custom group, e.g. Discretionary Spend, where they can select which of Bud’s categories and/or subcategories will make up the group. All transactions for that customer assigned to the categories/subcategories within the group will be bucketed up and the client will be able to see the total income and expenditure in those categories over a given period of time.\n\n**Version: 1.5.3 - 22/05/2020**\n > - Added Payments: List Payment Status endpoint in order to retrieve paginated details of multiple payment ids based on header filters\n > - General bug fixes and improvements across examples, schemas, endpoints descriptions, names and sectioning titles.\n\n**Version: 1.5.0 - 08/04/2020**\n > - Addition of Bud’s Payment Initiation API. The endpoints provide clients with the functionality to allow their customers to make payments from one of their bank accounts, to a chosen recipient. In their first iteration, customers are able to authorise a single payment from one of their UK based bank accounts to another UK bank account.\n > - Addition of a Category Totals endpoint. The endpoint allows clients to retrieve the total amount of money that is moving into and out of their customers' connected bank accounts, broken down by transaction category. The endpoint breaks the totals down by both tier 1 and tier 2 type categories (as is provided by Buds dual layered categorisation engine).\n > - Acceptance of a new transaction schema format for all 1st Party Enrichment Endpoints. All of Bud’s first party data enrichment endpoints (i.e. __POST__`/v1/categorise/double-cat`, __POST__`/v1/regular-payments`, __POST__`/v1/merchants`) are now able to accept the transaction format outputted by TrueLayer. This makes it even easier for those clients who are using TrueLayer as an aggregator to get the use of Bud’s enrichment services.\n\n# Authentication\n\n" contact: name: Bud Support email: help@thisisbud.com url: https://www.thisisbud.com/ x-logo: url: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAATAAAABuCAQAAAAKAYdLAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH4wQDDggcbXcx7wAABeJJREFUeNrt3W2IFVUcx/HvXRW1VdQedy1bZVfoYX0osVQyfSGElKbRA5oFIaIlhAkWUYm6gvqqDMHMoBeKlhayCCZC2AMRPay7aJrSZmauZhQqaj7t7u1Fi965987s7D1n7pk7/j73zX2Y85//mXt2Zu45Z2ZBREREREREREREREREREREREREREREREREREREREREREREREREROIiZSFGH+YxgsOs5U/X1bFiPDPpQT3bu1DmcaZyg+vErWpjD+s47zoN6Mte0qRJc4Iq18lYMJv2jvosD11mRUeJpD32UO7664BFGQl94DoZY704fbU2rQwKVWYwbc6bQlSPBaYbtMz4K7nP53lpGkK/q8+7MTxUmeEWtmJcGX+j5psmM0I3l9vCirKAV36OuE46QsbfaHL/9opnL9tcpxBf3V0nkAgzWMRj9HadhrH+3Gk7pBqYDZdY3oXfnHE2gc1U2gyoQ6Rk+pKZdgOqgYnXF7TYDGe3gcWgW85QH9cJxMAVm8HsNrBqhhV1U9g33XUCzo1gsM1wdhtYio8ZWsytYdksFrpOwbGhbLYb0PavyLs5wA+c9v28lRa+Zzt/+y5RwwKqaOCdgCjZRvEit/A1a7jou8xwJjOMAb7D+ylqqCmw1imeZ0oCBrv7Mzp+/QofFTDCdZG13Jw3Wi1nOpbZT9+QGUziUkeZ3T49z+P4pqCRuCkhM1jjfMwwqsdG182rsAaWJs0JxuWJ9knGEq+EzODHjDLTcj5NsbjgwehwDazm6vyL5D2MG5i7booKdjE25917M57XhoxUG1hmJUsjrmWtlVl18ZQ2DeCyH6ycT7kpIJ+wuQWVeZJXI69HcpsXHDQN4LajtZIlkcbvzWqn9St1R3nPNIT93wzt/MSZPO+nqKA65699Nos5FdHmgZkMzHnvIj9zLm9+Q7jd0nqP8VtkdSqWNppYxT+u08g+yW8OnKRXw4ac08hnPUscyvjkw5AZXM4os9jzyY6sdZ3h5YC++jLm0lrASf50T5krzEn0QbOLbB8in2FvwKfNPJczCXd0hLV7wPPqL8bybt691//aWWfhkPo2681PjZPDbgP7lYZOl1nNJs9rW4elXD2zfkK8wIFOy2w1XuuWyOpTkuw2sHOhlqrzvIqu59gbuYEdIcqcjSyb65SLX5EHOepgrbuKtJ6nHNQtxtx0U5xM8DoXMkez7K5xM7Tp4iS4WOvszvss5feSP9Fvo5EVnDDfHGJfpd157Y48xFRGmfaEaWcu/qqYZxpCDcxcqR8Mg9xlGkANzNz+BDcx4zEJNTBzv5gPCSeXTvJtmM+3PJqIKdNj6GE3pJsG5mIwOMp1ptnABgd1sq+G7ebnXZncHCKjG3+M1zpLTzMz7AZ00cBG5pmlFb3JmkQTSpPd21HZbWD9Qy21zPPK/zricNH6+B7mvZFreTpEtAFWt0dpsnoWZreBVTG+kyVS1GVN4/vDd9lJVIRY5yzfPdPlrPHHdTwYItr1bkLcTia8M1qPM9F3yRRjcuaYprNmHxzyfNbQyQlnGTM47ynhndFan7WuCywLODz35I2sC9DCXheZHBNpsXvZmu1fkZXs5rjPnPzb8hyAzrIzINr9HOBIwNXat+ZcleS1hame1714izc55jNvbVDBtz7pyWuJuI15P/tnx1F0UwzsQpprO5nil2KIQSZbqcspnwp57+iu2MQT1mMmhNue/MMR3xfwMi8VYRhnmJqXP/MG1lZwyVNMy9l/FR4tf/mdvB553Uz2sXFn+n1YaGCNBZZr5mH25by7xzCb3PKrmM+lgmK1BV4hdc0+2g2zjq8m1wlAOY1dvqXGKep87oZYzUmDW3Vs8+myuIf6Am6AsiT0Nljp/CYl0Twaze9ZaaN3u5w5jAy5L2ylhe/4nAu+S1Qwl+oCsrjCV2wM2KXfwSPUcmPIGv9LPZ91Ye1TEnEb80ztNLE+Dv8MS0RERERERERERERERERERERERERERERERERERERERERERERERERs+Q/rhi5WauEgfQAAAABJRU5ErkJggg== servers: - url: https://api-sandbox.thisisbud.com tags: - name: Create a Connection x-displayName: Create a Connection description: 'Create a new connection to an Open Banking provider by using either: (i) Bud''s configurable frontend UI (__Bud Connect__), built to maximise conversion; or (ii) Bud''s individual API endpoints to help you build your own connect flow. ' paths: /v1/open-banking/providers: get: tags: - Create a Connection summary: Retrieve OB Providers description: 'List the available account providers with their name, icon and maintenance status. ' operationId: open_banking_providers_get security: - OAuth2: [] parameters: - $ref: '#/components/parameters/ClientId' - $ref: '#/components/parameters/OBProvidersQueryTypeFilter' - $ref: '#/components/parameters/OBProvidersQueryRegionFilter' - $ref: '#/components/parameters/OBProvidersQueryScopesFilter' responses: '200': description: List of providers available via Bud's Open Banking Aggregation APIs content: application/json: schema: required: - operation_id - data properties: operation_id: $ref: '#/components/schemas/OperationId' data: type: array items: $ref: '#/components/schemas/OBProvider' metadata: oneOf: - $ref: '#/components/schemas/ResultsMetadata' - type: object nullable: true example: operation_id: open_banking_providers_get data: - provider: barclays display_name: Barclays maintenance_window: start: 2019-08-07T11:48:00+0000 end: 2019-08-07T11:00:00+0000 maintenance_status: active icon: https://assets.thisisbud.com/example-icon regions: - GBR mobile_only: false - provider: fd display_name: first direct maintenance_window: start: 2019-08-07T11:48:00+0000 end: null maintenance_status: active icon: https://assets.thisisbud.com/example-icon regions: - GBR mobile_only: false - provider: halifax display_name: Halifax maintenance_window: null maintenance_status: inactive icon: https://assets.thisisbud.com/example-icon regions: - GBR mobile_only: false - provider: hbos display_name: Bank of Scotland maintenance_window: null maintenance_status: inactive icon: https://assets.thisisbud.com/example-icon regions: - GBR mobile_only: false - provider: hsbc display_name: HSBC maintenance_window: null maintenance_status: inactive icon: https://assets.thisisbud.com/example-icon regions: - GBR mobile_only: false - provider: lloyds display_name: Lloyds maintenance_window: null maintenance_status: inactive icon: https://assets.thisisbud.com/example-icon regions: - GBR mobile_only: false - provider: mns display_name: Marks & Spencer maintenance_window: null maintenance_status: inactive icon: https://assets.thisisbud.com/example-icon regions: - GBR mobile_only: false - provider: nationwide display_name: Nationwide maintenance_window: null maintenance_status: inactive icon: https://assets.thisisbud.com/example-icon regions: - GBR mobile_only: false - provider: natwest display_name: Natwest maintenance_window: null maintenance_status: inactive icon: https://assets.thisisbud.com/example-icon regions: - GBR mobile_only: false - provider: rbs display_name: Royal Bank of Scotland maintenance_window: null maintenance_status: inactive icon: https://assets.thisisbud.com/example-icon regions: - GBR mobile_only: false - provider: santander display_name: Santander maintenance_window: null maintenance_status: inactive icon: https://assets.thisisbud.com/example-icon regions: - GBR mobile_only: false metadata: null '400': description: Bad Request that fails validations on headers & payload '401': description: Unauthorized (BearerToken in 'Authorization' header fails the authentication) 5XX: description: An unexpected error occurred on the server side /v2/open-banking/authorisation-gateway-url: post: tags: - Create a Connection summary: Retrieve Authorisation Gateway URL (v2) description: 'Allow customers to authorise with, and connect to, a provider, using Bud’s __Bud Connect__. Bud Connect is a UI component hosted by Bud that can be integrated into any mobile or web experience, and allows your customers to connect to and authorise with their chosen provider, allowing Bud to pull their account information using Bud''s AISP license. Using the different configuration options that can be set through the request body you can personalize the experience for your Customer. Please, refer to the documentation below for more information about the available configurations. Use Bud’s Authorisation Gateway (__Bud Connect__) if you are not regulated as an AISP in order to connect your customers to their banks to share account information. You may still choose to use __Bud Connect__ in order to give the customer a slick account connection experience or to speed up your technical build and integration, even if you are a regulated AISP yourself. The status of the authorisation step will be provided to you as a path parameter within the `redirect_url` specified within the request payload. This `redirect_url` is where your customer will be redirected to once they have either failed, or successfully completed, the authorisation process with their provider. The URL generated with this endpoint is valid for up to 30 minutes. We suggest to generate the URL right before redirecting your Customer to it. Please note that in order to recieve status updates on a given account connection task, you will need to configure your Callback URL within the developer console. Once the entire connection process has been completed and the customer''s account information is ready to be collected, Bud will send a request to your callback URL. ' operationId: v2_ob_authorisation_gateway_url_post security: - OAuth2: [] parameters: - $ref: '#/components/parameters/ClientId' - $ref: '#/components/parameters/CustomerId' - $ref: '#/components/parameters/CustomerIdempotentIdentifier' - $ref: '#/components/parameters/CustomerSecret' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AuthGatewayURLRequestv2' examples: All providers: value: redirect_url: https://my-agent-webapp.com/connected?my-parameter=xyz Filter providers list: value: redirect_url: https://my-agent-webapp.com/connected?my-parameter=xyz provider_types: - retail Specify provider(s): value: redirect_url: https://my-agent-webapp.com/connected?my-parameter=xyz providers: - Barclays - Lloyds - Natwest Show the "connect more accounts" button: value: redirect_url: https://my-agent-webapp.com/connected?my-parameter=xyz connect_more_accounts_button: true Show the account connection summary screen: value: redirect_url: https://my-agent-webapp.com/connected?my-parameter=xyz accounts_summary: true Show the initial screen as the account summary screen: value: redirect_url: https://my-agent-webapp.com/connected?my-parameter=xyz initial_screen: accounts_summary Enable an asynchronous connection: value: redirect_url: https://my-agent-webapp.com/connected?my-parameter=xyz enable_async_connect: true Send consent management email to customer: value: redirect_url: https://my-agent-webapp.com/connected?my-parameter=xyz customer_email: john.doe@email.com responses: '201': description: The resource has been successfully created. content: application/json: schema: $ref: '#/components/schemas/AuthGatewayURLResponse' example: operation_id: v2_ob_authorisation_gateway_url_post data: url: https://auth.gateway.thisisbud.com/connect?nonce=nu9ysswxk3hnrepo&token=b361e184038e25077cab277ede9362289941da928cd0d9c7ea52107aa2ad0d909d87993a532af47d9794cd5f29ba66128b3dc7f705ce9b044c636c28e31e1bb3ff8e17145a49f42f525bff51945c3a2484c89a05c1b1e484f9b84ee0cfee4640453fd599e71b5111bd880a63cc924fca8c6ce831396e2f4f8b3e5ac994c5c9 '400': description: The request contains an invalid payload. content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' example: operation_id: v2_ob_authorisation_gateway_url_post code_id: failed_validation message: Failed validation. errors: redirect_url: This value should not be blank. '401': description: An unauthorised request was received. '405': description: The request uses an unexpected HTTP method. '422': description: Unprocessable request (e.g. requested providers are in maintenance) 5XX: description: An unexpected error occurred on the server side. callbacks: EventSubscriptionCallBack: '{$request.body#/redirect_url}': description: 'This callback is sent to your configured Open Banking Sync Complete webhook URL on the completion of a relevant OB synchronisation task. ' post: security: [] parameters: - $ref: '#/components/parameters/SignatureHeaderParameter' - $ref: '#/components/parameters/SigningIdHeaderParameter' summary: Aggregation Sync Notification Callback deprecated: true requestBody: required: true description: 'This callback is sent to your configured Open Banking Sync Complete webhook URL on the completion of a relevant OB synchronisation task. __Note__ Deprecated, please use the dedicated `Connect Completed Notification Callback` ' content: application/json: schema: $ref: '#/components/schemas/OBSyncWebhookBody' example: data: task_id: 03af1639-78a6-402d-809b-902a0b00a77d status: Completed task_type: connect customer_id: b6f898f8-99e8-4529-8e90-64d96fe05aa4 consent_id: f43c4fc9-26f6-4107-a631-4f323f06e5c9 responses: '200': description: Your server returns this code if it accepts the callback '300': description: The notification will not be retried, redirects will not be followed '400': description: The notification will not be retried '500': description: 'The request will be retried shortly. If it fails multiple times, we will stop attempting to deliver the notification for this single event. ' ConnectCompletedCallBack: '{$request.body#/redirect_url}': description: 'This callback is sent to your configured Open banking connection completed webhook URL on the completion of a connect task. ' post: security: [] parameters: - $ref: '#/components/parameters/SignatureHeaderParameter' - $ref: '#/components/parameters/SigningIdHeaderParameter' summary: Connect Completed Notification Callback requestBody: required: true description: This callback is sent to your configured 'Open banking connection completed' webhook URL on the completion of a connect task. content: application/json: schema: $ref: '#/components/schemas/OBConnectWebhookBody' examples: Success: description: Successful connection value: data: task_id: 03af1639-78a6-402d-809b-902a0b00a77d status: Completed result: success task_type: connect customer_id: b6f898f8-99e8-4529-8e90-64d96fe05aa4 consent_id: f43c4fc9-26f6-4107-a631-4f323f06e5c9 Failure: description: Failed connect due to a provider failure value: data: task_id: 03af1639-78a6-402d-809b-902a0b00a77d status: Failed result: provider_failure task_type: connect customer_id: b6f898f8-99e8-4529-8e90-64d96fe05aa4 consent_id: f43c4fc9-26f6-4107-a631-4f323f06e5c9 responses: '200': description: Your server returns this code if it accepts the callback '300': description: The notification will not be retried, redirects will not be followed '400': description: The notification will not be retried '500': description: 'The request will be retried shortly. If it fails multiple times, we will stop attempting to deliver the notification for this single event. ' /v1/open-banking/authorisation-url: post: tags: - Create a Connection summary: Initiate Provider Authorisation description: 'Request a new Open Banking authorisation url for a specific Customer and provider. This endpoint should be used when using Bud as a Technical Service Provider(TSP). This means that Bud will be using your license (as a registered Account Information Service Provider (AISP)). This will allow you to use your own interface to connect new account(s). A generated consent has a 90 day expiry, to allow for re-authentication to extend this expiry the id of the customers previous consent can be included as the `consent_id` property. This re-authenciation if the customer grants consent would extend the consent by another 90 days. > 📘 Note: > > For more information about Consents, please refer to our [guide](https://docs.thisisbud.com/docs/consents). ' operationId: open_banking_authorisation_url_post security: - OAuth2: [] parameters: - $ref: '#/components/parameters/ClientId' - $ref: '#/components/parameters/CustomerId' - $ref: '#/components/parameters/CustomerIdempotentIdentifier' - $ref: '#/components/parameters/CustomerSecret' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OpenBankingAuthoriseRequest' examples: Provider: value: provider: Barclays redirect_url: https://myclientredirecturl.com responses: '202': description: A new Task has been created to obtain the bank's authorisation URL. The generated `task_id` can be used to check the Task's status content: application/json: schema: $ref: '#/components/schemas/TaskCreatedResponseOB' example: operation_id: open_banking_authorisation_url_post data: task_id: 360e5821-4f18-4077-83f4-c9a7c1768bea provider: Barclays metadata: next_url: /v1/open-banking/authorisation-url/360e5821-4f18-4077-83f4-c9a7c1768bea next_url_delay: 50 status: Pending '400': description: The request contains an invalid payload. content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' examples: Parameter missing: value: operation_id: open_banking_authorisation_url_post code_id: failed_validation message: Failed validation errors: customer_id: This value should not be blank Resource not found: value: operation_id: open_banking_authorisation_url_post code_id: resource_not_found message: Consent ID could not be found. errors: domain_error: Consent ID could not be found. Provider in Maintenance: value: operation_id: open_banking_authorisation_url_post code_id: provider_maintenance message: The provider is in maintenance. errors: provider: The provider is currently disabled due to planned maintenance or known issues. '401': description: Unauthorized (BearerToken in 'Authorization' header fails the authentication) '405': description: The request uses an unexpected HTTP method 5XX: description: An unexpected error occurred on the server side /v1/open-banking/authorisation-url/{task_id}: get: tags: - Create a Connection summary: Retrieve Authorisation URL description: 'Check the status and get the result of an Initiate Provider Authorisation URL task. If the task is not yet completed, the data element will be null. Once the customer has successfully authorised with the ASPSP, Bud will create a task to fetch the relevant data from the ASPSP. The task id created will be passed back within the supplied re-direct url. Please refer to the Check Connection Status endpoint for updates on this fetching process using the task id provided in the redirect URL. ' operationId: open_banking_authorisation_url_get security: - OAuth2: [] parameters: - $ref: '#/components/parameters/ClientId' - $ref: '#/components/parameters/CustomerId' - $ref: '#/components/parameters/CustomerIdempotentIdentifier' - $ref: '#/components/parameters/TaskId' responses: '200': description: The request was successfully processed. content: application/json: schema: $ref: '#/components/schemas/TaskAuthoriseResponse' examples: complete: summary: Completed value: operation_id: open_banking_authorisation_url_get data: provider: example_provider result: success status: Completed task_id: 16fa0748-8a6b-455b-9be9-30ae257965d8 url: https://oauth.example.provider.com/authorization.oauth2? metadata: next_url: /v1/open-banking/authorisation-url/16fa0748-8a6b-455b-9be9-30ae257965d8 next_url_delay: 50 status: Completed pending: summary: Pending value: operation_id: open_banking_authorisation_url_get data: provider: example_provider status: Pending task_id: 16fa0748-8a6b-455b-9be9-30ae257965d8 metadata: status: Pending next_url: /v1/open-banking/authorisation-url/16fa0748-8a6b-455b-9be9-30ae257965d8 next_url_delay: 50 failed: summary: Failed value: operation_id: open_banking_authorisation_url_get data: provider: example_provider result: internal_error status: Failed task_id: 16fa0748-8a6b-455b-9be9-30ae257965d8 metadata: status: Failed next_url: /v1/open-banking/authorisation-url/16fa0748-8a6b-455b-9be9-30ae257965d8 next_url_delay: 50 '400': description: The request contains an invalid payload. content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' example: operation_id: open_banking_authorisation_url_get code_id: failed_validation message: Failed validation errors: customer_id: This value should not be blank '404': description: Task not found '405': description: The request uses an unexpected HTTP method 5XX: description: An unexpected error occurred on the server side /v1/open-banking/authorisation-codes: post: deprecated: true tags: - Create a Connection summary: Submit Authorisation Codes description: 'When using Bud as a TSP (Technical Service Provider) and doing full app-to-app authorisation, the customer is returned from the provider directly back to your app. Your app will then need to send all the query and hash fragment parameters to Bud so that we can complete the connection. Query and fragment parameters should be merged with query taking precedence. If you receive a request `/path?a=1#a=2&b=3` then you should perform this request with `{"a":"1","b":"3"}`. Given the nature of the fragment queries most server side languages will not process these so javascript may be required to correctly gather both parameters. Regardless of what parameters are present, all of them should be sent to Bud so that we can choose to either continue the connection or to map and record the error. Code and error are shown here only because they are the most common parameters you will see, but this object could contain any number of unspecified properties. Currently state is a common property among all authorisation flows and is the current task ID. The state property is not guaranteed for the future of this API contract and will not be treated as backwards incompatible if a new authentication flow does not use it. ' operationId: v1_open_banking_authorisation_codes_post security: - OAuth2: [] parameters: - $ref: '#/components/parameters/ClientId' - $ref: '#/components/parameters/CustomerId' - $ref: '#/components/parameters/CustomerIdempotentIdentifier' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AuthorisationCodesRequest' examples: success: summary: Authorisation has been successful value: state: b55f5f00-8e40-4e9e-8c9e-a292a86eb40c code: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 error: summary: Authorisation has failed value: state: b55f5f00-8e40-4e9e-8c9e-a292a86eb40c error: access_denied responses: '202': description: OK content: application/json: schema: $ref: '#/components/schemas/AuthorisationCodesResponse' examples: Success: description: success value: operation_id: v1_open_banking_authorisation_codes_post data: task_id: b55f5f00-8e40-4e9e-8c9e-a292a86eb40c provider: Barclays status: Completed result: success Error: description: error value: operation_id: v1_open_banking_authorisation_codes_post data: task_id: b55f5f00-8e40-4e9e-8c9e-a292a86eb40c provider: Barclays status: Failed result: auth_denied '400': description: The request contains an invalid payload. content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' examples: Invalid Body: description: Invalid Body value: operation_id: v1_open_banking_authorisation_codes_post code_id: failed_body_decode message: invalid request body errors: customer_id: This value should not be blank Validation Failure: description: Validation Error value: operation_id: v1_open_banking_authorisation_codes_post code_id: failed_validation message: invalid request errors: state: The field is required /v2/open-banking/authorisation-codes: post: tags: - Create a Connection summary: Submit Authorisation Codes V2 description: 'When using Bud as a TSP (Technical Service Provider) and doing full app-to-app authorisation, the customer is returned from the provider directly back to your app. Your app will then need to send all the query and hash fragment parameters to Bud so that we can complete the connection. Query and fragment parameters should be merged with query taking precedence. If you receive a request `/path?a=1#a=2&b=3` then you should perform this request with `{"a":"1","b":"3"}`. Given the nature of the fragment queries most server side languages will not process these so javascript may be required to correctly gather both parameters. Regardless of what parameters are present, all of them should be sent to Bud so that we can choose to either continue the connection or to map and record the error. Code and error are shown here only because they are the most common parameters you will see, but this object could contain any number of unspecified properties. Currently state is a common property among all authorisation flows and is the current task ID. The state property is not guaranteed for the future of this API contract and will not be treated as backwards incompatible if a new authentication flow does not use it. This endpoint triggers an asynchronous collection of OpenBanking data within the Bud platform. Therefore after calling this endpoint the [Retrieve Connection Status](/reference/open_banking_connect_get) endpoint should be called to retrieve the status of the collection ' operationId: v2_open_banking_authorisation_codes_post security: - OAuth2: [] parameters: - $ref: '#/components/parameters/ClientId' - $ref: '#/components/parameters/CustomerId' - $ref: '#/components/parameters/CustomerIdempotentIdentifier' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AuthorisationCodesRequest' examples: success: summary: Authorisation has been successful value: state: b55f5f00-8e40-4e9e-8c9e-a292a86eb40c code: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 error: summary: Authorisation has failed value: state: b55f5f00-8e40-4e9e-8c9e-a292a86eb40c error: access_denied responses: '202': description: OK content: application/json: schema: $ref: '#/components/schemas/AuthorisationCodesResponse' examples: Success: description: success value: operation_id: v2_open_banking_authorisation_codes_post data: task_id: b55f5f00-8e40-4e9e-8c9e-a292a86eb40c provider: Barclays status: Completed result: success Error: description: error value: operation_id: v2_open_banking_authorisation_codes_post data: task_id: b55f5f00-8e40-4e9e-8c9e-a292a86eb40c provider: Barclays status: Failed result: auth_denied '400': description: The request contains an invalid payload. content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' examples: Invalid Body: description: Invalid Body value: operation_id: v2_open_banking_authorisation_codes_post code_id: failed_body_decode message: invalid request body errors: customer_id: This value should not be blank Validation Failure: description: Validation Error value: operation_id: v2_open_banking_authorisation_codes_post code_id: failed_validation message: invalid request errors: state: The field is required '409': description: The code has already been submitted content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' examples: Code already submitted: description: Code already submitted value: operation_id: v2_open_banking_authorisation_codes_post code_id: auth_used message: auth code has been used before errors: code: already used callbacks: ConnectCompletedCallBack: '{$request.body#/redirect_url}': description: 'This callback is sent to your configured Open banking connection completed webhook URL on the completion of a connect task. ' post: security: [] parameters: - $ref: '#/components/parameters/SignatureHeaderParameter' - $ref: '#/components/parameters/SigningIdHeaderParameter' summary: Connect Completed Notification Callback requestBody: required: true description: This callback is sent to your configured 'Open banking connection completed' webhook URL on the completion of a connect task. content: application/json: schema: $ref: '#/components/schemas/OBConnectWebhookBody' examples: Success: description: Successful connection value: data: task_id: 03af1639-78a6-402d-809b-902a0b00a77d status: Completed result: success task_type: connect customer_id: b6f898f8-99e8-4529-8e90-64d96fe05aa4 consent_id: f43c4fc9-26f6-4107-a631-4f323f06e5c9 Failure: description: Failed connect due to a provider failure value: data: task_id: 03af1639-78a6-402d-809b-902a0b00a77d status: Failed result: provider_failure task_type: connect customer_id: b6f898f8-99e8-4529-8e90-64d96fe05aa4 consent_id: f43c4fc9-26f6-4107-a631-4f323f06e5c9 responses: '200': description: Your server returns this code if it accepts the callback '300': description: The notification will not be retried, redirects will not be followed '400': description: The notification will not be retried '500': description: 'The request will be retried shortly. If it fails multiple times, we will stop attempting to deliver the notification for this single event. ' /v1/open-banking/connect/{connection_task_id}: get: tags: - Create a Connection summary: Retrieve Connection Status description: 'Check the status of an account connection task. If the task is not yet completed, the status will be shown as pending. If the status is completed, then the data is ready to be ingested. The __connection_task_id__ is provided as a parameter in the redirect url after the Customer has undergone a successful authorisation with a relevant Open Banking provider. ' operationId: open_banking_connect_get security: - OAuth2: [] parameters: - $ref: '#/components/parameters/ClientId' - $ref: '#/components/parameters/CustomerId' - $ref: '#/components/parameters/CustomerIdempotentIdentifier' - $ref: '#/components/parameters/ConnectionTaskId' responses: '200': description: The request was successfully processed. content: application/json: schema: $ref: '#/components/schemas/OpenBankingConnectResponse' examples: completed: summary: Completed value: operation_id: open_banking_connect_get data: bank_name: Barclays provider: Barclays reconnect_required: false result: success status: Completed step: 4 task_id: 030c85d8-bbbe-4ef9-894e-7e56a2e02437 text: Completed metadata: status: Completed next_url: /v1/open-banking/connect/360e5821-4f18-4077-83f4-c9a7c1768bea next_url_delay: 50 pending: summary: Pending value: operation_id: open_banking_connect_get data: bank_name: Barclays provider: Barclays reconnect_required: false status: Pending step: 2 task_id: 030c85d8-bbbe-4ef9-894e-7e56a2e02437 text: Fetching accounts metadata: status: Pending next_url: /v1/open-banking/connect/360e5821-4f18-4077-83f4-c9a7c1768bea next_url_delay: 50 failed: summary: Failed value: operation_id: open_banking_connect_get data: bank_name: Barclays provider: Barclays reconnect_required: false result: auth_denied status: Failed step: 3 task_id: 030c85d8-bbbe-4ef9-894e-7e56a2e02437 text: Fetching balances and transactions metadata: status: Failed '400': description: The request contains an invalid payload. content: application/json: schema: $ref: '#/components/schemas/BadRequestResponse' example: operation_id: open_banking_connect_get code_id: failed_validation message: Failed validation errors: customer_id: This value should not be blank '404': description: Task not found '405': description: The request uses an unexpected HTTP method 5XX: description: An unexpected error occurred on the server side components: schemas: TaskCreatedView: title: Task Created View description: Standard successful task created response. type: object required: - task_id - provider properties: task_id: $ref: '#/components/schemas/TaskId' provider: type: string description: The provider (ASPSP) associated with this task OpenBankingConnectResponse: title: Open Banking Connect Response type: object description: Expected response structure required: - operation_id - data - metadata properties: operation_id: $ref: '#/components/schemas/OperationId' data: $ref: '#/components/schemas/GetOBConnectData' metadata: type: object properties: status: $ref: '#/components/schemas/TaskStatusCaps' next_url: description: The URL to call to obtain the results of the task type: string next_url_delay: description: Recommended delay in milliseconds before next call type: number IngestResponseStatus: title: Ingest Response Status description: Ingest response status. type: string enum: - Completed - Pending - Failed TaskAuthorise: title: Open Banking Authorise Response type: object description: Result of GET authorise taskId required: - provider - status - task_id properties: provider: type: string description: Name of the provider (banking institution) result: $ref: '#/components/schemas/ConnectResultCodes' status: type: string description: The status of the job associated with the specified task id enum: - Completed - Pending - Failed task_id: $ref: '#/components/schemas/TaskId' url: type: string description: The authentication URL for a given bank TaskCreatedResponseOB: title: Task Created Response type: object description: Expected response structure required: - operation_id - data - metadata properties: operation_id: $ref: '#/components/schemas/OperationId' data: $ref: '#/components/schemas/TaskCreatedView' metadata: $ref: '#/components/schemas/AsyncTaskMetadata' ProviderTypes: title: Provider Types type: array description: One or more provider types that can be used to filter the list of providers that are shown to the customer during the connection flow. If no filter is applied, all types of provider are returned. Note that on Bud's sandbox environment, only sandbox providers will be returned. items: type: string enum: - business - retail - sandbox TaskAuthoriseResponse: title: Open Banking Authorise Request Response type: object description: Expected response structure required: - operation_id - metadata - data properties: operation_id: $ref: '#/components/schemas/OperationId' data: $ref: '#/components/schemas/TaskAuthorise' metadata: $ref: '#/components/schemas/TaskManagerMetaData' OBSyncWebhookBody: title: OB Synchronisation Webhook Payload type: object description: 'The payload sent to the client defined webhook (via the console) when an Open Banking Synchronisation (connect or refresh) task completes. ' required: - data properties: operation_id: deprecated: true type: string enum: - connect - refresh description: Use data.task_type instead data: description: Data Segments being loaded required: - task_type - customer_id - task_id - status properties: task_id: description: The task identifier that the event relates to type: string example: e145c656-4a90-45db-a025-af7765482c8c status: description: The completion status of the task type: string enum: - Completed - Failed task_type: $ref: '#/components/schemas/TaskType' customer_id: description: The customer the event relates to type: string example: 19677d9f-90e7-44a6-a32e-566990623da4 has_new_transactions: type: string enum: - 'true' - 'false' description: 'To describe whether new transactions have been pulled from the relevant ASPSP during the refresh. Note that if this field is set to `false` then there is no need to make a request to any other downstream endpoints to collect the data related to that customer. ' reconnect_required: type: string enum: - 'true' - 'false' description: If true, the customer must re-connect to the specified provider provider: type: string description: Name of the provider (banking institution) the task interacted with consent_id: type: string description: The consent identifier that the event relates to ConnectResultCodes: type: string description: The result of the operation. Either success or various error codes. enum: - success - auth_denied - auth_expired - auth_used - awaiting_authorisation - connection_expired - connection_not_found - connection_permission - connection_reauthenticate - connection_revoked - connection_status - consent_not_found - extension_not_permitted - failed_body_decode - failed_validation - internal_auth_error - internal_error - internal_timeout - internal_transient_error - provider_unauthorised - provider_unavailable - provider_endpoint_deprecated - provider_endpoint_unimplemented - provider_endpoint_unsupported - provider_failure - provider_maintenance - provider_marked_account_invalid - provider_not_found - provider_request_limit - provider_timeout - resource_not_found - task_not_found OpenBankingAuthoriseRequest: title: Provider type: object description: Expected request payload structure required: - provider properties: provider: type: string description: The identifier of the ASPSP (bank) the Customer is requesting the authorisation URL for. This should be a provider value returned from a call to [Retrieve OB Providers](#tag/Create-OB-Connection-TSP/operation/open_banking_providers_get) redirect_url: type: string description: This is the url that your Customer will be redirected to when using the Bud Connect product. If you wish to use your own license and callback infrastructure this parameter will have no effect and the provider_redirect_url parameter should be used instead. provider_redirect_url: type: string description: This is the url that your Customer will be redirected to once they have authorised with the relevant provider. This should only be used when using your own license and wish to use the Submit Authorisation Codes endpoint. If you wish to use Bud's call back then the redirect_url must be provided. consent_id: type: string description: Uses the previous consent id of your customer to re-authenticate their consent. AuthorisationCodesRequest: title: Authorisation Codes Request Payload type: object required: - state additionalProperties: true properties: state: type: string description: The task ID code: type: string description: Code parameter returned in redirect parameters OBConnectWebhookBody: title: OB Webhook Payload type: object description: 'The payload sent to the client defined webhook (via the console) when an Open Banking (connect or refresh) task completes. ' required: - data properties: data: description: Open Banking Task Event Data required: - task_type - customer_id - task_id - status - result properties: task_id: description: The task identifier that the event relates to type: string example: e145c656-4a90-45db-a025-af7765482c8c status: type: string description: The general status of a task enum: - Completed - Failed task_type: type: string enum: - connect - refresh description: The type of task that completed customer_id: description: The customer the event relates to type: string example: 19677d9f-90e7-44a6-a32e-566990623da4 result: $ref: '#/components/schemas/ConnectResultCodes' provider: type: string description: Name of the provider (banking institution) the task interacted with consent_id: type: string description: The consent identifier that the event relates to OBProvider: title: Open Banking Providers type: object required: - provider - display_name - maintenance_window - maintenance_status - icon - regions - mobile_only properties: provider: type: string description: The name of the available open banking provider used as an identifier throughout Bud's API services display_name: type: string description: The name of the available open banking provider used for display purposes maintenance_window: anyOf: - $ref: '#/components/schemas/MaintenanceWindowObject' - type: object nullable: true maintenance_status: type: string description: The status of the maintenance window associated with the provider enum: - active - inactive icon: type: string description: A URL for the icon of the corresponding provider regions: type: array description: A list of the different regions (i.e. country codes in ISO 3166 format) associated with the open banking provider items: type: string mobile_only: type: boolean description: If true, the provider is only available on mobile devices and requires a dedicated provider app to be installed on the device AsyncTaskMetadata: title: Async Task Metadata type: object description: Metadata associated with an asynchronous task properties: status: type: string description: The status of the job associated with the specified task id enum: - Completed - Pending - Failed next_url: type: string description: The URL to call to obtain the results of the task next_url_delay: type: number description: The time in milliseconds that the client should wait before polling the relevant GET endpoint with the above task id AuthorisationCodesResponse: title: Authorisation Codes Response Payload type: object required: - operation_id - data properties: operation_id: $ref: '#/components/schemas/OperationId' data: type: object description: Details regarding the response object for the authorisation codes response. properties: task_id: $ref: '#/components/schemas/TaskId' provider: type: string description: Name of the provider (banking institution) status: $ref: '#/components/schemas/IngestResponseStatus' result: type: string enum: - success - auth_denied - auth_expired - auth_used - awaiting_authorisation - connection_expired - connection_not_found - connection_permission - connection_reauthenticate - connection_revoked - connection_status - consent_not_found - extension_not_permitted - failed_body_decode - failed_validation - internal_auth_error - internal_error - internal_timeout - internal_transient_error - provider_unauthorised - provider_unavailable - provider_endpoint_deprecated - provider_endpoint_unimplemented - provider_endpoint_unsupported - provider_failure - provider_maintenance - provider_marked_account_invalid - provider_not_found - provider_request_limit - provider_timeout - resource_not_found - task_not_found Error: title: Error Object type: object nullable: true description: Contains a field specific error message additionalProperties: type: string AuthGatewayURLResponse: title: Authorisation Gateweay URL Response type: object description: Expected response structure. required: - operation_id - data properties: operation_id: $ref: '#/components/schemas/OperationId' data: type: object description: Information related to the unique (customer specific) Authorisation Gateway URL required: - url properties: url: type: string description: An Authorisation Gateway URL, allowing Customers to connect an Open Banking provider via Bud's TPP Connection UI format: url TaskManagerMetaData: title: Task Status Metadata type: object description: Standard metadata response from the OB task manager required: - status - next_url - next_url_delay properties: status: type: string description: The status of the job associated with the specified task id enum: - Completed - Pending - Failed next_url: type: string description: The url to try next if the `status` property returned is `Pending` next_url_delay: type: number description: The time in milliseconds that the client should wait before polling the relevant GET endpoint with the above task id if the `status` property returned is `Pending` Errors: title: Array of Error Object description: Contains a list of error messages type: object additionalProperties: type: array items: type: string GetOBConnectData: title: Open Banking Synchronisation Status type: object description: Status of an Open Banking Aggregation connect or refresh task required: - provider - step - text - task_id properties: provider: type: string description: The name of the provider the task is trying to connect to step: type: integer description: At what step or stage the connection process is at enum: - 1 - 2 - 3 - 4 text: type: string description: A description of what stage the connection process is at enum: - Fetching access token - Fetching accounts - Fetching balances and transactions - Completed bank_name: type: string deprecated: true description: The name of the provider the task is trying to connect to. Replaced with `provider` reconnect_required: type: boolean description: If true, the customer must re-connect to the specified provider result: $ref: '#/components/schemas/ConnectResultCodes' status: title: The Task Status type: string description: The general status of a task enum: - Pending - Completed - Failed task_id: $ref: '#/components/schemas/TaskId' MaintenanceWindowObject: title: Maintenance Window Object type: object description: Details on any scheduled maintenance windows properties: start: type: string description: The start datetime (ISO8601) of the maintenance window end: type: string nullable: true description: The end datetime (ISO8601) of the maintenance window. When this value is `null` it means Bud will manually remove the maintenance flag when the provider is back healthy. BadRequestResponse: title: Bad Request Response type: object description: Expected response structure required: - operation_id - code_id - message - errors properties: operation_id: $ref: '#/components/schemas/OperationId' code_id: type: string description: A descriptive enough string that is linked to the reason for the error. message: type: string errors: anyOf: - $ref: '#/components/schemas/Error' - $ref: '#/components/schemas/Errors' TaskId: title: Task Id type: string description: Bud Task identifier returned from an async task for the requested action TaskStatusCaps: title: The Task Status type: string description: The general status of a task enum: - Pending - Completed - Failed ResultsMetadata: title: Results Metadata Object type: object description: Metadata associated with the response schema properties: results: type: number description: The number of results returned OperationId: title: Operation Id Field type: string description: A unique identifier/reference associated with a given endpoint/operation TaskType: type: string enum: - connect - refresh - revoke - consent-refresh description: The type of task that completed AuthGatewayURLRequestv2: title: Authorisation Gateweay URL Request Payload type: object required: - redirect_url properties: redirect_url: type: string description: URL where the user will be redirected to once they have completed the TPP Connection flow. This can be a web based URL or a mobile application internal URL. nullable: false maxLength: 2083 providers: type: array nullable: true description: 'Specify a list of one or more providers that will be displayed to the customer during the connection flow. If only a single provider is given, the customer will no longer be shown the select provider screen. Note, that these must match the `provider_id` returned by the Retrieve OB Providers endpoint. ' items: type: string provider_types: $ref: '#/components/schemas/ProviderTypes' connect_more_accounts_button: type: boolean nullable: true description: When enabled, the customer will see an additional button at the end of the connection flow that allows them to start the connection flow again in order to connect to a new provider. accounts_summary: type: boolean nullable: true description: When enabled, the customer will be shown a summary screen at the endpoint of the flow that lists the names and balances of all of the accounts that the customer has active consents for (including those connected in previous sessions). initial_screen: type: string description: 'The first screen that the customer will be shown. When value is ''accounts_summary'' the customer will see a list of the names and balances of the accounts that the customer currently has active consents for. When value is ''connect_accounts'', the customer will see a list of providers to connect their accounts with. By default this value is ''connect_accounts''. When the value is ''download_data'', the customer can download their data in a JSON file. When the value is ''reconfirm_consent'', the customer will be taken through the reconfirmation of consent journey. If the customer only has one consent they will skip the consent selection screen. When the value is ''revoke_consent'', the customer can revoke consent for accounts they have previously connected. ' enum: - accounts_summary - connect_accounts - download_data - reconfirm_consent - revoke_consent nullable: true reconfirm_consent: deprecated: true type: boolean nullable: true description: This body parameter has been deprecated. Please use the initial_screen option reconfirm_consent. When enabled, the customer will be taken through the reconfirmation of consent journey. If the customer only has one consent they will skip the consent selection screen. Once they select the option to renew their consent, Bud will either extend the consent expiry date by 90 days from today's date or (if required) send the customer to the provider to go through Strong Customer Authentication (SCA) before updating the consent expiry date. reconfirm_consent_redirect: type: boolean nullable: true description: When enabled, once a customer has reconfirmed consent they will be redirected back to the client redirect_url bypassing the account summary screen. This should be used if you don’t want your customers to see the Bud account summary screen. enable_async_connect: type: boolean nullable: true description: When enabled, once the consent authorisation has completed, the customer will be moved on in the flow. The data is then fetched and enriched in the background, instead of the customer waiting on a loading spinner skip_success_screen: type: boolean nullable: true description: When enabled, once the customer has completed the connect flow, they will be redirected back to the client redirect_url bypassing the success screen. This should be used if you don’t want your customers to see the Bud success screen. customer_email: type: string format: email description: 'When provided, an email will be delivered to the customer with a URL for managing their consents with you. This allows the customer to separately view, revoke and reconfirm consents for accounts that they have agreed to share with you, as well as download the financial data for their own records. Use this option if your application does not already provide a means for customers to manage their financial data consents. **Note**: for some clients, we enforce that customers have access to this consent management feature. In this case, even if `customer_email` is not provided, the customer will be prompted at the start of the Connect flow to provide their email address, so that the URL will still be delivered to them. ' parameters: ConnectionTaskId: in: path name: connection_task_id schema: type: string format: uuid required: true description: Unique identifier related to a specific connection task TaskId: in: path name: task_id schema: type: string format: uuid required: true description: Bud Task identifier returned from an async task for the requested action CustomerId: in: header name: X-Customer-Id schema: type: string format: uuid required: true description: A unique identifier for a Customer, as registered on Bud's platform. example: c3339af9-2426-44d4-9c4d-ddb8fd281e23 SignatureHeaderParameter: in: header name: X-Signature description: The signed request body JWT required: true schema: type: string OBProvidersQueryRegionFilter: in: query required: false name: region description: A comma separated list of Bud regions to be shown. If no filter is applied, all the providers are returned. schema: type: string enum: - GBR CustomerIdempotentIdentifier: in: header name: X-Customer-Idempotent-Identifier schema: type: string description: 'Use the internal client identifier, provided in the `client_metadata` object when creating the customer in __Create Customer V3__, in place of an `X-Customer-Id` header. ' SigningIdHeaderParameter: in: header name: X-Signing-ID description: The public key ID which should be used to verify the X-Signature header. Bud's list of public keys can be found at https://assets.thisisbud.com/bud-callback.jwks required: true schema: type: string CustomerSecret: in: header name: X-Customer-Secret schema: type: string required: false description: The Bud Customer secret used to encrypt customer data. This is required only if the customer secret is not already stored with Bud. OBProvidersQueryScopesFilter: in: query required: false name: scopes description: A comma separated list of Bud ob scopes to be shown. If no filter is applied, all the providers are returned. schema: type: string enum: - accounts - balances - transactions - parties - direct-debits OBProvidersQueryTypeFilter: in: query required: false name: types description: A comma separated list of Bud support provider types to be shown. If no filter is applied, all the providers are returned. schema: type: string enum: - sandbox - business - retail ClientId: in: header name: X-Client-Id schema: type: string required: true description: The API Client Identifier (Service Application Identifier). example: 8711bbef-b357-4c2d-97ca-0d9df4206e9a securitySchemes: Basic: type: http scheme: basic OAuth2: type: oauth2 flows: clientCredentials: tokenUrl: /v1/oauth/token scopes: {} description: "\nAuthentication flow:\n\n1. Perform OAuth2 Client Credentials authentication using API Credentials (`client_id`,`client_secret`) to obtain an `access_token` against `/v1/oauth/token` endpoint,\n2. Use `access_token` as Bearer Authorisation for every other API request,\n3. Include `X-Client-Id` (=client_id) within the header of every API request,\n4. Note that some of the requests may also require `X-Customer-Id` to be provided within the request header.\n\n### Examples\nObtain OAuth2 `access_token` and `refresh_token` using `grant_type=client_credentials` and HTTP Basic auth header\n\n```\ncurl --basic --user {{client_id}}:{{client_secret}} \\\n -X POST https://api-sandbox.thisisbud.com/v1/oauth/token \\\n -H 'Content-Type: application/x-www-form-urlencoded' \\\n -d grant_type=client_credentials\n```\n\nSuccessful response:\n```\n{\n \"operation_id\": \"oauth_token_post\",\n \"data\": {\n \"access_token\": \"dd0c17e3fd6d2ce94aa091257a3ea393b4f9b5cf3d3e998f07dc9826da86ff15\",\n \"token_type\": \"bearer\",\n \"expires_in\": 3600,\n \"refresh_token\": \"fac32cca7559d9f6e8f1dfe9a99c71fa1dcfeb482bedf287d7934d2667ae54b3\"\n }\n}\n```\n\nRefresh `access_token` token using `refresh_token` against `/v1/oauth/token` endpoint with `grant_type=refresh_token`\n\n```\ncurl -X POST \\\n https://api-sandbox.thisisbud.com/v1/oauth/token \\\n -H 'Content-Type: application/x-www-form-urlencoded' \\\n -H 'X-Client-Id: {{client_id}}' \\\n -d 'grant_type=refresh_token&refresh_token={{refresh_token}}'\n```\n\nSuccessful response:\n```\n{\n \"operation_id\": \"oauth_token_post\",\n \"data\": {\n \"access_token\": \"cc0c17e3fd6d2ce94aa091257a3ea393b4f9b5cf3d3e998f07dc9826da86ff94\",\n \"token_type\": \"bearer\",\n \"expires_in\": 3600,\n \"refresh_token\": \"ffc30cca7559d9f6e8f1dfe9a99c71fa1dcfeb482bedf287d7934d2667ae54b3\"\n }\n}\n```\n" x-tagGroups: - name: '' tags: - OAuth2 - Authentication - name: '' tags: - Create a Connection - Manage a Connection - Ingest First Party Data - Connect API - name: '' tags: - Manage Customers - Customers API - name: '' tags: - Enrichment Resources - Enrichment Totals - Enrichment API - name: '' tags: - Retrieve Financial Data - Manage Financial Data - Correct Financial Data - Financial Data API - name: '' tags: - Spending Budgets - Savings Goals V2 - Goals API - name: '' tags: - Regular Payments Finder - Income Finder - Loan Finder - Debt Collection Finder - Product Finder - Subscription Finder - Smart Finders API - name: '' tags: - Transaction Search - Intelligent Search API - name: '' tags: - Customer Applications - Customer Application Links - Aggregation Buckets - Retrieve Affordability Report V2 - Retrieve Affordability Report - Retrieve Affordability Risk Insights - Assess API - name: '' tags: - Initiate Payment - Bud license - Initiate Payment - Client license - Manage Payments - Payments API - name: '' tags: - Retrieve Customer Characteristics - Characteristics API - name: '' tags: - Retrieve Actionable Insights - Custom Insights - Frontend Widgets - Insights API