openapi: 3.0.3 info: title: 'Bud API Services: Documentation Aggregation Buckets Ingest First Party Data 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: Ingest First Party Data x-displayName: Ingest First Party Data description: 'Initiate the asynchronous process of pushing a customer''s account information (i.e. first party data) onto the Bud platform. These asynchronous requests create a task to store the given accounts or transactions against the specified customers. The Task ID returned by this request can be used to verify the current status of the process. ' paths: /v2/ingest/accounts: post: tags: - Ingest First Party Data summary: Ingest Accounts description: 'This endpoint is for pushing customer(s) account(s) and balance(s) through the Bud architecture. It can ingest data for multiple customers per request. By default, this is synchronous and will report any issue with the data in the response. If a ''X-Disable-Synchronous'' header is present and set to true, the process will create a task in the background and be entirely ''non-blocking''. In this scenario, the response metadata will contain a Task ID and the next URL which would then be used for finding out the operation''s result. ' operationId: v2_ingest_accounts_post security: - OAuth2: [] parameters: - $ref: '#/components/parameters/ClientId' - $ref: '#/components/parameters/IngestAccountsContentType' - name: X-Disable-Synchronous in: header description: 'If present and set to true, a task is created and a response is returned immediately. Note: This flag cannot be set to `true` if a `customer_idempotent_identifier` is supplied instead of a `customer_id`. ' schema: type: boolean default: false requestBody: required: true content: application/bud-accounts+json: schema: $ref: '#/components/schemas/IngestAccountsRequest' examples: ingest_request_with_customer_id: summary: Ingest Accounts Request (With Customer ID) value: - customer_id: c3339af9-2426-44d4-9c4d-ddb8fd281e23 accounts: - provider: Barclays account_id: 99473c28-21cf-4a9a-b79e-fd643dd7a4bc currency: GBP account_type: Personal account_sub_type: CurrentAccount account_identifiers: - type: uk_account_number value: '32165444' - type: uk_sort_code value: '987654' balances: - amount: value: '7.00' currency: GBP credit_debit_indicator: outgoing_debit credit_line: - included: true amount: value: '200.00' currency: GBP type: Credit date_time: '2020-12-01T00:00:00Z' type: InterimBooked - customer_id: 85db4cdf-5f79-4f4e-8388-f9a52da598a2 accounts: - provider: Lloyds account_id: bfd4ea71-58d7-4b24-8820-95029875cc9a currency: GBP account_type: Personal account_sub_type: CurrentAccount account_identifiers: - type: uk_account_number value: '12312300' - type: uk_sort_code value: '123123' balances: - amount: value: '70005.00' currency: GBP credit_debit_indicator: incoming_credit credit_line: - included: true amount: value: '100.00' currency: GBP type: Credit date_time: '2020-12-01T00:00:00Z' type: InterimBooked ingest_request_with_customer_idempotent_identifier: summary: Ingest Accounts Request (With Customer Idempotent Identifier) value: - customer_idempotent_identifier: your_internal_id accounts: - provider: Barclays account_id: 99473c28-21cf-4a9a-b79e-fd643dd7a4bc currency: GBP account_type: Personal account_sub_type: CurrentAccount account_identifiers: - type: uk_account_number value: '32165444' - type: uk_sort_code value: '987654' balances: - amount: value: '7.00' currency: GBP credit_debit_indicator: outgoing_debit credit_line: - included: true amount: value: '200.00' currency: GBP type: Credit date_time: '2020-12-01T00:00:00Z' type: InterimBooked - customer_idempotent_identifier: your_internal_id accounts: - provider: Lloyds account_id: bfd4ea71-58d7-4b24-8820-95029875cc9a currency: GBP account_type: Personal account_sub_type: CurrentAccount account_identifiers: - type: uk_account_number value: '12312300' - type: uk_sort_code value: '123123' balances: - amount: value: '70005.00' currency: GBP credit_debit_indicator: incoming_credit credit_line: - included: true amount: value: '100.00' currency: GBP type: Credit date_time: '2020-12-01T00:00:00Z' type: InterimBooked responses: '202': description: A new Task has been created to ingest the given accounts. The generated `task_id` can be used to check the Task's status content: application/json: schema: $ref: '#/components/schemas/IngestV2AsyncResponse' example: operation_id: v2_ingest_accounts_post metadata: task_id: 4cef424c-1d7f-4cab-8be2-aee7e1774a00 next_url: /v2/ingest/status/4cef424c-1d7f-4cab-8be2-aee7e1774a00 next_url_delay: 500 '204': description: The data has been ingested successfully. Response has no body '400': description: Bad Request that fails validations on headers and/or payload content: application/json: schema: oneOf: - $ref: '#/components/schemas/BodyDecodeError' - $ref: '#/components/schemas/FirstPartyIngestionGenericError' - $ref: '#/components/schemas/AccountsDataValidationError' '401': description: Unauthorized (BearerToken in 'Authorization' header fails the authentication) 5XX: description: An unexpected error occurred on the server side callbacks: FPIIngestSucceededCallback: '{$request.body#/redirect_url}': description: 'Should the ingestion task succeed, this callback is sent to your configured ''First Party Data Ingestion Events'' webhook URL on the completion of a Ingest Accounts task. ' post: security: [] parameters: - $ref: '#/components/parameters/SignatureHeaderParameter' - $ref: '#/components/parameters/SigningIdHeaderParameter' summary: First Party Ingestion Succeeded Callback requestBody: required: true description: Should the ingestion task succeed, this callback is sent to your configured 'First Party Data Ingestion Events' webhook URL on the completion of a Ingest Accounts task. content: application/json: schema: $ref: '#/components/schemas/FPIIngestSucceededWebhookBody' examples: Success: description: Successful ingestion value: data: event: first_party_ingester.ingest.succeeded operation_id: v2_ingest_accounts_post task_id: 6d37e192-1fdb-407d-82c6-58ee38cb60db 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. ' FPIIngestFailedCallback: '{$request.body#/redirect_url}': description: 'Should the ingestion task fail, this callback is sent to your configured ''First Party Data Ingestion Events'' webhook URL on the completion of a Ingest Accounts task. ' post: security: [] parameters: - $ref: '#/components/parameters/SignatureHeaderParameter' - $ref: '#/components/parameters/SigningIdHeaderParameter' summary: First Party Ingestion Failed Callback requestBody: required: true description: Should the ingestion task fail, this callback is sent to your configured 'First Party Data Ingestion Events' webhook URL on the completion of a Ingest Accounts task. content: application/json: schema: $ref: '#/components/schemas/FPIIngestFailedWebhookBody' examples: Success: description: First Party Ingestion Failed value: data: event: first_party_ingester.ingest.failed operation_id: v2_ingest_transactions_post task_id: 6d37e192-1fdb-407d-82c6-58ee38cb60db result: data_mapping_error 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. ' /ingestion/v3/accounts/close: post: tags: - Ingest First Party Data summary: Close Accounts description: 'Close one or more accounts for a given customer. This will set the account status to closed and set the `closed_at` field on the __Retrieve Accounts V3__ response. If an account is already closed, then the request will be ignored, and the `closed_at` field will remain unchanged. If a 400 response is returned, any accountIDs or customerIDs __not__ defailted in the error response will have been closed succesfully. ' operationId: v3_ingest_accounts_close_post security: - OAuth2: [] parameters: - $ref: '#/components/parameters/ClientId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CloseAccountsRequest' examples: With Customer Idempotent Identifier: value: - customer_idempotent_identifier: your_internal_id account_ids: - 275fbbfe-209c-4329-a38b-b324aa386c56 metadata: as_of: '2025-09-22T14:55:09.254Z' With Customer ID: value: - customer_id: c3339af9-2426-44d4-9c4d-ddb8fd281e23 account_ids: - 275fbbfe-209c-4329-a38b-b324aa386c56 metadata: as_of: '2025-09-22T14:55:09.254Z' responses: '204': description: All accounts have been closed successfully. Response has no body. '400': description: Bad Request that fails validations on headers and/or payload content: application/json: schema: $ref: '#/components/schemas/BadRequestErrorWihoutErrRequired' examples: account_not_found_customer_idempotent_identifier: summary: Account(s) not found (with customer Idempotent Identifier) value: operation_id: v3_ingest_accounts_close_post code_id: failed_validation message: Accounts not found for one or more customers. errors: customer_idempotent_identifier: your_internal_id: - 275fbbfe-209c-4329-a38b-b324aa386c56 account_not_found_customer_id: summary: Account(s) not found (with customer ID) value: operation_id: v3_ingest_accounts_close_post code_id: failed_validation message: Accounts not found for one or more customers. errors: customer_ids: c3339af9-2426-44d4-9c4d-ddb8fd281e23: - 275fbbfe-209c-4329-a38b-b324aa386c56 '401': description: Unauthorized (BearerToken in 'Authorization' header fails the authentication) 5XX: description: An unexpected error occurred on the server side /ingestion/v3/accounts/reopen: post: tags: - Ingest First Party Data summary: Reopen Accounts description: 'Reopen one or more accounts for a given customer. This will remove the account status and `closed_at` fields on the __Retrieve Accounts V3__ response. If an account is already open, then the request will be ignored and the account is unchanged. If a 400 response is returned, any accountIDs or customerIDs __not__ defailted in the error response will have been reopened succesfully. ' operationId: v3_ingest_accounts_reopen_post security: - OAuth2: [] parameters: - $ref: '#/components/parameters/ClientId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ReopenAccountsRequest' examples: With Customer Idempotent Identifier: value: - customer_idempotent_identifier: your_internal_id account_ids: - 275fbbfe-209c-4329-a38b-b324aa386c56 With Customer ID: value: - customer_id: c3339af9-2426-44d4-9c4d-ddb8fd281e23 account_ids: - 275fbbfe-209c-4329-a38b-b324aa386c56 responses: '204': description: All accounts have been closed successfully. Response has no body. '400': description: Bad Request that fails validations on headers and/or payload content: application/json: schema: $ref: '#/components/schemas/BadRequestErrorWihoutErrRequired' examples: account_not_found_customer_idempotent_identifier: summary: Account(s) not found (with customer Idempotent Identifier) value: operation_id: v3_ingest_accounts_reopen_post code_id: failed_validation message: Accounts not found for one or more customers. errors: customer_idempotent_identifier: your_internal_id: - 275fbbfe-209c-4329-a38b-b324aa386c56 account_not_found_customer_id: summary: Account(s) not found (with customer ID) value: operation_id: v3_ingest_accounts_reopen_post code_id: failed_validation message: Accounts not found for one or more customers. errors: customer_ids: c3339af9-2426-44d4-9c4d-ddb8fd281e23: - 275fbbfe-209c-4329-a38b-b324aa386c56 '401': description: Unauthorized (BearerToken in 'Authorization' header fails the authentication) 5XX: description: An unexpected error occurred on the server side /v2/ingest/transactions: post: tags: - Ingest First Party Data summary: Ingest Transactions description: "This endpoint should be used to ingest customer transactions into the Bud Platform.\n\nBy default, this endpoint is synchronous but can be easily switched to asynchronous using the 'X-Disable-Synchronous' header.\nPlease refer to the following [guide](https://docs.thisisbud.com/docs/setup_data_enrichment) to ensure you set up First Party Ingestion\ncorrectly for your organisation based on your use case.\n\nWe accept a maximum of 1.000 transactions. If this threshold is not respected, a 400 error is returned.\n\nWe support the ingestion of transactions for multiple customers as part of the same request.\n\nThe detailed location enrichment response is an additional addon, otherwise only tokens are returned \n(read more about this in the location [guide](https://docs.thisisbud.com/docs/locations)).\n\nAn ingestion request with an empty transaction list and provided transaction windows will be treated as a request to clear persisted transactions in the specified windows.\n\n\n> \U0001F4D8 Note:\n>\n> The enrichment values returned in the synchronous response of this endpoint may differ from those returned when fetching the ingested data from __Retrieve Transactions V2__.\n>\n> The synchronous response provides an initial enrichment based solely on the submitted transaction data. During asynchronous ingestion, the data is re-enriched using the customer's existing transaction history and additional enrichment services, producing a more accurate and comprehensive result.\n" operationId: v2_ingest_transactions_post security: - OAuth2: [] parameters: - $ref: '#/components/parameters/ClientId' - $ref: '#/components/parameters/IngestTransactionsV2ContentType' - $ref: '#/components/parameters/DisableSynchronous' - $ref: '#/components/parameters/GenerateTransactionIDs' - $ref: '#/components/parameters/BudCategorisationModel' - $ref: '#/components/parameters/NoCustomerHeader' requestBody: required: true content: application/bud-transaction-v3+json: schema: $ref: '#/components/schemas/IngestTransactionsV3Request' examples: bud-transaction-v3 Request (with Customer ID): summary: Ingest Transactions Request (with Customer ID) value: - customer_id: c3339af9-2426-44d4-9c4d-ddb8fd281e23 transactions: - account_id: 275fbbfe-209c-4329-a38b-b324aa386c56 transaction_id: cb49a806-c8f1-47e6-9c1d-5172defe97eb description: The RSPCA, Southwater amount: '-10.98' date_time: '2022-10-10T23:00:00Z' currency: GBP status: pending provider: Monzo transaction_type: bud_code: DEB description: Debit card transaction suggested_description: The RSPCA, Southwater counterparty: name: The RSPCA identifier: '12345612345678' - account_id: 275fbbfe-209c-4329-a38b-b324aa386c56 transaction_id: e0f1c489-a4f0-4820-84d1-a86ecb4199b7 description: The RSPCA, Southwater amount: '-10.98' date_time: '2022-11-10T23:00:00Z' currency: GBP provider: Monzo transaction_type: bud_code: DEB description: Debit card transaction - account_id: 275fbbfe-209c-4329-a38b-b324aa386c56 transaction_id: d2ea249c-0d1b-4346-b88e-53ec8bc32083 description: Trader Joe's amount: '-9.98' date_time: '2022-11-10T23:00:00Z' currency: USD provider: Monzo country_code: US transaction_windows: - account_id: 275fbbfe-209c-4329-a38b-b324aa386c56 start: '2022-10-10T23:00:00Z' end: '2022-11-10T23:00:00Z' bud-transaction-v3 Request (with Customer Idempotent Identifier): summary: Ingest Transactions Request (with Customer Idempotent Identifier) value: - customer_idempotent_identifier: your_internal_id transactions: - account_id: 275fbbfe-209c-4329-a38b-b324aa386c56 transaction_id: cb49a806-c8f1-47e6-9c1d-5172defe97eb description: The RSPCA, Southwater amount: '-10.98' date_time: '2022-10-10T23:00:00Z' currency: GBP status: pending provider: Monzo transaction_type: bud_code: DEB description: Debit card transaction - account_id: 275fbbfe-209c-4329-a38b-b324aa386c56 transaction_id: e0f1c489-a4f0-4820-84d1-a86ecb4199b7 description: The RSPCA, Southwater amount: '-10.98' date_time: '2022-11-10T23:00:00Z' currency: GBP provider: Monzo transaction_type: bud_code: DEB description: Debit card transaction - account_id: 275fbbfe-209c-4329-a38b-b324aa386c56 transaction_id: d2ea249c-0d1b-4346-b88e-53ec8bc32083 description: Trader Joe's amount: '-9.98' date_time: '2022-11-10T23:00:00Z' currency: USD provider: Monzo country_code: US transaction_windows: - account_id: 275fbbfe-209c-4329-a38b-b324aa386c56 start: '2022-10-10T23:00:00Z' end: '2022-11-10T23:00:00Z' responses: '200': description: "The synchronous enrichment request has succeeded and enriched transaction returned.\n\nA new Task has been created to ingest and fully enrich the given transactions.\n\nThe generated `task_id` can be used to check the Task's status.\n\nNote: If the endpoint is used synchronously and it's been agreed with Bud to \nnot store data, the `metadata.task_id` attribute in the response body will be present but empty.\n" content: application/json: schema: $ref: '#/components/schemas/IngestV2SyncResponse' examples: sync enrichment response (with Customer ID): summary: Synchronous enrichment response (with Customer ID) value: operation_id: v2_ingest_transactions_post data: - customer_id: 4cef424c-1d7f-4cab-8be2-aee7e1774a00 enriched_transactions: - transaction_id: another_transaction_id account_id: another_account_id description: paypal* specialty coffee london GBR credit_debit_indicator: debit status: pending suggested_description: Specialty Coffee Supplier Ltd. suggested_logo: http://url/specialty_coffee_supplier_logo.jpeg transaction_type: bud_code: DEB description: PayPal amount: value: '10.99' currency: GBP date_time: '2022-05-28T10:00:00Z' tags: - online enrichments: categories: l1: slug: eating_out confidence: '0.99' l2: slug: cafes_and_eating_out confidence: '0.98' merchant: id: 01cc2d49-6144-46f1-9414-67c99b139a95 slug: specialty_coffee display_name: Specialty Coffee Supplier Ltd. logo: http://url/specialty_coffee_supplier_logo.jpeg tokens: - value: speciality coffee confidence: '0.98' processor: id: 18f63293-0217-4520-bbf0-071dca7a9d04 slug: paypal display_name: PayPal logo: http://url/paypal_logo.jpeg tokens: - value: paypal confidence: '0.92' transaction_types: - card - debit - transaction_id: a2294cebb45d2a6e0cfc70d270988d8c account_id: 37c633a71237b9a8282e09587109668e description: caffe nero 495 ladbroke london gbr credit_debit_indicator: debit status: booked suggested_description: Caffè Nero suggested_logo: https://assets.thisisbud.com/datasci-images/merchant_logos/4d7a77bd-29a1-4b6a-b0b4-04389b5b36bf/v2/caffnero.jpeg transaction_type: bud_code: DEB description: Debit card transaction amount: value: '3.29' currency: GBP date_time: '2022-05-26T10:00:00Z' merchant_category_code: '5814' enrichments: categories: l1: slug: food_and_drink confidence: '0.99' l2: slug: coffee confidence: '0.99' merchant: id: 4d7a77bd-29a1-4b6a-b0b4-04389b5b36bf slug: caffnero display_name: Caffè Nero logo: https://assets.thisisbud.com/datasci-images/merchant_logos/4d7a77bd-29a1-4b6a-b0b4-04389b5b36bf/v1/caffnero.jpeg tokens: - value: caffe nero confidence: '1.00' location: address: address_lines: - 120-122 Ladbroke Grove - London - Greater London - W10 5NE street_address: 120-122 Ladbroke Grove city: London region: Greater London postal_code: W10 5NE country: GB geolocation: longitude: 51.517301 latitude: -0.209689 tokens: - gbr - ladbroke - london - transaction_id: cfb6dd1f4c73e1fc36aac756e12644d7 account_id: 37c633a71237b9a8282e09587109668e description: JOHN SMITH RENT SHARE credit_debit_indicator: debit amount: value: '375.00' currency: GBP date_time: '2022-05-30T00:00:00Z' status: booked suggested_description: JOHN SMITH RENT SHARE transaction_type: bud_code: BAT description: Bank Transfer enrichments: categories: l1: slug: mortgage_and_rent confidence: '0.98' l2: slug: rent confidence: '0.98' names: - john smith metadata: task_id: 4cef424c-1d7f-4cab-8be2-aee7e1774a00 next_url: /v2/ingest/status/4cef424c-1d7f-4cab-8be2-aee7e1774a00 next_url_delay: 500 sync enrichment response (with Customer Idempotent Identifier): summary: Synchronous enrichment response (with Customer Idempotent Identifier) value: operation_id: v2_ingest_transactions_post data: - customer_idempotent_identifier: your_internal_id enriched_transactions: - transaction_id: another_transaction_id account_id: another_account_id description: paypal* specialty coffee london GBR credit_debit_indicator: debit status: pending suggested_description: Specialty Coffee Supplier Ltd. suggested_logo: http://url/specialty_coffee_supplier_logo.jpeg transaction_type: bud_code: DEB description: PayPal amount: value: '10.99' currency: GBP date_time: '2022-05-28T10:00:00Z' tags: - online enrichments: categories: l1: slug: eating_out confidence: '0.99' l2: slug: cafes_and_eating_out confidence: '0.98' merchant: id: 01cc2d49-6144-46f1-9414-67c99b139a95 slug: specialty_coffee display_name: Specialty Coffee Supplier Ltd. logo: http://url/specialty_coffee_supplier_logo.jpeg tokens: - value: speciality coffee confidence: '0.98' processor: id: 18f63293-0217-4520-bbf0-071dca7a9d04 slug: paypal display_name: PayPal logo: http://url/paypal_logo.jpeg tokens: - value: paypal confidence: '0.92' transaction_types: - card - debit - transaction_id: a2294cebb45d2a6e0cfc70d270988d8c account_id: 37c633a71237b9a8282e09587109668e description: caffe nero 495 ladbroke london gbr credit_debit_indicator: debit status: booked suggested_description: Caffè Nero suggested_logo: https://assets.thisisbud.com/datasci-images/merchant_logos/4d7a77bd-29a1-4b6a-b0b4-04389b5b36bf/v2/caffnero.jpeg transaction_type: bud_code: DEB description: Debit card transaction amount: value: '3.29' currency: GBP date_time: '2022-05-26T10:00:00Z' merchant_category_code: '5814' enrichments: categories: l1: slug: food_and_drink confidence: '0.99' l2: slug: coffee confidence: '0.99' merchant: id: 4d7a77bd-29a1-4b6a-b0b4-04389b5b36bf slug: caffnero display_name: Caffè Nero logo: https://assets.thisisbud.com/datasci-images/merchant_logos/4d7a77bd-29a1-4b6a-b0b4-04389b5b36bf/v1/caffnero.jpeg tokens: - value: caffe nero confidence: '1.00' location: address: address_lines: - 120-122 Ladbroke Grove - London - Greater London - W10 5NE street_address: 120-122 Ladbroke Grove city: London region: Greater London postal_code: W10 5NE country: GB geolocation: longitude: 51.517301 latitude: -0.209689 tokens: - gbr - ladbroke - london - transaction_id: cfb6dd1f4c73e1fc36aac756e12644d7 account_id: 37c633a71237b9a8282e09587109668e description: JOHN SMITH RENT SHARE credit_debit_indicator: debit amount: value: '375.00' currency: GBP date_time: '2022-05-30T00:00:00Z' status: booked suggested_description: JOHN SMITH RENT SHARE transaction_type: bud_code: BAT description: Bank Transfer enrichments: categories: l1: slug: mortgage_and_rent confidence: '0.98' l2: slug: rent confidence: '0.98' names: - john smith metadata: task_id: 4cef424c-1d7f-4cab-8be2-aee7e1774a00 next_url: /v2/ingest/status/4cef424c-1d7f-4cab-8be2-aee7e1774a00 next_url_delay: 500 '202': description: A new Task has been created to ingest the given transactions. The generated `task_id` can be used to check the Task's status content: application/json: schema: $ref: '#/components/schemas/IngestV2AsyncResponse' example: operation_id: v2_ingest_transactions_post metadata: task_id: 4cef424c-1d7f-4cab-8be2-aee7e1774a00 next_url: /v2/ingest/status/4cef424c-1d7f-4cab-8be2-aee7e1774a00 next_url_delay: 500 '400': description: The server will not process the request due to a client error. content: application/json: schema: oneOf: - $ref: '#/components/schemas/BodyDecodeError' - $ref: '#/components/schemas/ValidationError' examples: DecodingError: summary: Malformed JSON In Payload value: operation_id: v2_ingest_transactions_post code_id: failed_body_decode message: invalid request body errors: decode_error: invalid character 'b' looking for beginning of value RequestValidationError: summary: Request Validation Error value: operation_id: v2_ingest_transactions_post code_id: failed_validation message: validation failure(s) in request payload errors: missing_fields: customers[0].customer_id: - The customer ID is mandatory transactions: - The transactions list is mandatory PayloadValidationError: summary: Transaction Validation Error value: operation_id: v2_ingest_transactions_post code_id: failed_validation message: validation failure(s) in request payload errors: missing_fields: transactions[0]: - description - account_id invalid_fields: transactions[0]: - amount '401': description: Unauthorized (BearerToken in 'Authorization' header fails the authentication) '503': description: An unexpected error occurred on the enrichment server. Sync Only '504': description: An unexpected timeout occurred on the enrichment server. Sync Only 5XX: description: An unexpected error occurred on the server side callbacks: FPIIngestSucceededCallback: '{$request.body#/redirect_url}': description: 'Should the ingestion task succeed, this callback is sent to your configured ''First Party Data Ingestion Events'' webhook URL on the completion of a Ingest Transactions task. ' post: security: [] parameters: - $ref: '#/components/parameters/SignatureHeaderParameter' - $ref: '#/components/parameters/SigningIdHeaderParameter' summary: First Party Ingestion Succeeded Callback requestBody: required: true description: Should the ingestion task succeed, this callback is sent to your configured 'First Party Data Ingestion Events' webhook URL on the completion of a Ingest Transactions task. content: application/json: schema: $ref: '#/components/schemas/FPIIngestSucceededWebhookBody' examples: Success: description: Successful ingestion value: data: event: first_party_ingester.ingest.succeeded operation_id: v2_ingest_accounts_post task_id: 6d37e192-1fdb-407d-82c6-58ee38cb60db 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. ' FPIIngestFailedCallback: '{$request.body#/redirect_url}': description: 'Should the ingestion task fail, this callback is sent to your configured ''First Party Data Ingestion Events'' webhook URL on the completion of a Ingest Accounts task. ' post: security: [] parameters: - $ref: '#/components/parameters/SignatureHeaderParameter' - $ref: '#/components/parameters/SigningIdHeaderParameter' summary: First Party Ingestion Failed Callback requestBody: required: true description: Should the ingestion task fail, this callback is sent to your configured 'First Party Data Ingestion Events' webhook URL on the completion of a Ingest Accounts task. content: application/json: schema: $ref: '#/components/schemas/FPIIngestFailedWebhookBody' examples: Success: description: First Party Ingestion Failed value: data: event: first_party_ingester.ingest.failed operation_id: v2_ingest_transactions_post task_id: 6d37e192-1fdb-407d-82c6-58ee38cb60db result: data_mapping_error 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. ' /ingestion/v3/transactions/book: post: tags: - Ingest First Party Data summary: Book Transactions description: 'The Book Transactions endpoint, allows transactions ingested with a `status` of `pending` to set their status to `booked`. The date_time field indicates the timestamp when the transaction booked. This is reflected in the `date_time` of __Retrieve Transactions V2__. ' operationId: v3_ingest_transactions_book_post security: - OAuth2: [] parameters: - $ref: '#/components/parameters/ClientId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TransactionSettlementV3Request' examples: request_with_customer_id: summary: Book transactions request (with Customer ID) value: - customer_id: c3339af9-2426-44d4-9c4d-ddb8fd281e23 transactions: - transaction_id: cb49a806-c8f1-47e6-9c1d-5172defe97eb date_time: '2022-10-11T23:00:00Z' - transaction_id: e0f1c489-a4f0-4820-84d1-a86ecb4199b7 date_time: '2022-11-11T23:00:00Z' request_with_customer_idempotent_identifier: summary: Book transactions request (with Customer Idempotent Identifier) value: - customer_idempotent_identifier: your_internal_id transactions: - transaction_id: cb49a806-c8f1-47e6-9c1d-5172defe97eb date_time: '2022-10-11T23:00:00Z' - transaction_id: e0f1c489-a4f0-4820-84d1-a86ecb4199b7 date_time: '2022-11-11T23:00:00Z' responses: '202': description: 'A new Task has been created to book the given transactions. The generated `task_id` can be used to check the Task''s status. ' content: application/json: schema: $ref: '#/components/schemas/TransactionSettlementV3Response' example: operation_id: v3_ingest_transactions_book_post metadata: task_id: 444ddd34-7d02-4b57-a55e-63b15b25d453 next_url: /v2/ingest/status/444ddd34-7d02-4b57-a55e-63b15b25d453 next_url_delay: 250 '400': description: There was something invalid in the request payload. Check the response for more details. content: application/json: schema: $ref: '#/components/schemas/BadRequestErrorWihoutErrRequired' example: operation_id: v3_ingest_transactions_book_post code_id: failed_body_decode message: Unable to parse request. '401': description: Unauthorized (BearerToken in 'Authorization' header fails the authentication) 5XX: description: An unexpected error occurred on the server side callbacks: TransactionBookCompletedCallback: https://example.com/booked: description: 'This callback is sent to your pre-configured webhook URL for the `first_party_ingester.transactions.booked` event. ' post: security: [] parameters: - $ref: '#/components/parameters/SignatureHeaderParameter' - $ref: '#/components/parameters/SigningIdHeaderParameter' summary: Transaction Book Completed Callback requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TransactionSettlementV3WebookBody' example: data: event: first_party_ingester.transactions.booked operation_id: v3_ingest_transactions_book_post status: Completed task_id: 444ddd34-7d02-4b57-a55e-63b15b25d453 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. ' /ingestion/v3/transactions/decline: post: tags: - Ingest First Party Data summary: Decline Transactions description: 'The Decline Transactions endpoint, allows transactions ingested with a `status` of `pending` to set their status to `declined`. The date_time field indicates the timestamp when the transaction declined. This is reflected in the `date_time` of __Retrieve Transactions V2__. ' operationId: v3_ingest_transactions_decline_post security: - OAuth2: [] parameters: - $ref: '#/components/parameters/ClientId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TransactionSettlementV3Request' examples: request_with_customer_id: summary: Decline transactions request (with Customer ID) value: - customer_id: c3339af9-2426-44d4-9c4d-ddb8fd281e23 transactions: - transaction_id: cb49a806-c8f1-47e6-9c1d-5172defe97eb date_time: '2022-10-11T23:00:00Z' - transaction_id: e0f1c489-a4f0-4820-84d1-a86ecb4199b7 date_time: '2022-11-11T23:00:00Z' request_with_customer_idempotent_identifier: summary: Decline transactions request (with Customer Idempotent Identifier) value: - customer_idempotent_identifier: your_internal_id transactions: - transaction_id: cb49a806-c8f1-47e6-9c1d-5172defe97eb date_time: '2022-10-11T23:00:00Z' - transaction_id: e0f1c489-a4f0-4820-84d1-a86ecb4199b7 date_time: '2022-11-11T23:00:00Z' responses: '202': description: 'A new Task has been created to decline the given transactions. The generated `task_id` can be used to check the Task''s status. ' content: application/json: schema: $ref: '#/components/schemas/TransactionSettlementV3Response' example: operation_id: v3_ingest_transactions_decline_post metadata: task_id: 444ddd34-7d02-4b57-a55e-63b15b25d453 next_url: /v2/ingest/status/444ddd34-7d02-4b57-a55e-63b15b25d453 next_url_delay: 250 '400': description: Payload request was invalid. Check the response for more details. content: application/json: schema: $ref: '#/components/schemas/BadRequestErrorWihoutErrRequired' example: operation_id: v3_ingest_transactions_decline_post code_id: failed_body_decode message: Unable to parse request. '401': description: Unauthorized (BearerToken in 'Authorization' header fails the authentication) 5XX: description: An unexpected error occurred on the server side callbacks: TransactionDeclineCompletedCallback: https://example.com/declined: description: 'This callback is sent to your pre-configured webhook URL for the `first_party_ingester.transactions.declined` event. ' post: security: [] parameters: - $ref: '#/components/parameters/SignatureHeaderParameter' - $ref: '#/components/parameters/SigningIdHeaderParameter' summary: Transaction Book Completed Callback requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TransactionSettlementV3WebookBody' example: data: event: first_party_ingester.transactions.declined operation_id: v3_ingest_transactions_decline_post status: Completed task_id: 444ddd34-7d02-4b57-a55e-63b15b25d453 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. ' /ingestion/v3/tasks/{task_id}: get: tags: - Ingest First Party Data summary: Retrieve Ingestion Task Status description: 'Check the status of an ingest request. Please note that this works for both the Ingest Transactions endpoints And Ingest Accounts endpoints. Reports status of the ingestion task, with details for each subtask (1 per customer). ' operationId: v3_ingest_status_get security: - OAuth2: [] parameters: - $ref: '#/components/parameters/ClientId' - $ref: '#/components/parameters/TaskId' responses: '200': description: The request was successfully processed. content: application/json: schema: $ref: '#/components/schemas/IngestStatusV3Response' examples: Pending Task (with Customer ID): summary: Pending Task (with Customer ID) value: operation_id: v3_ingest_status_get data: - customer_id: f89ae931-8cb3-4352-ac9e-4e4572fe5026 status: Pending metadata: task_id: 3d592efc-493a-4548-8008-f738fd0877ab status: Pending next_url: /ingestion/v3/tasks/3d592efc-493a-4548-8008-f738fd0877ab next_url_delay: 500 Successful Task (with Customer ID): summary: Successful Task (with Customer ID) value: operation_id: v3_ingest_status_get data: - customer_id: f89ae931-8cb3-4352-ac9e-4e4572fe5026 status: Completed result: success metadata: task_id: 3d592efc-493a-4548-8008-f738fd0877ab status: Completed result: success ingest_request_id: 213be00c-60ce-9af5-95ab-d450a9ffc2ac ingest_route: v2_ingest_transactions_post ingest_schema: application/bud-transaction-v3+json Failed Task (with Customer ID): summary: Failed Task (with Customer ID) value: operation_id: v3_ingest_status_get data: - customer_id: f89ae931-8cb3-4352-ac9e-4e4572fe5026 status: Failed result: data_mapping_error error: accounts[0].currency: 'unexpected currency code: GlkjlkjBP, expected ISO-4217 currency code' metadata: task_id: 3d592efc-493a-4548-8008-f738fd0877ab status: Failed result: data_mapping_error Pending Task (with Customer Idempotent Identifier): summary: Pending Task (with Customer Idempotent Identifier) value: operation_id: v3_ingest_status_get data: - customer_idempotent_identifier: your_internal_id status: Pending metadata: task_id: 3d592efc-493a-4548-8008-f738fd0877ab status: Pending next_url: /ingestion/v3/tasks/3d592efc-493a-4548-8008-f738fd0877ab next_url_delay: 500 Successful Task (with Customer Idempotent Identifier): summary: Successful Task (with Customer Idempotent Identifier) value: operation_id: v3_ingest_status_get data: - customer_idempotent_identifier: your_internal_id status: Completed result: success metadata: task_id: 3d592efc-493a-4548-8008-f738fd0877ab status: Completed result: success ingest_request_id: 213be00c-60ce-9af5-95ab-d450a9ffc2ac ingest_route: v2_ingest_transactions_post ingest_schema: application/bud-transaction-v3+json Failed Task (with Customer Idempotent Identifier): summary: Failed Task (with Customer Idempotent Identifier) value: operation_id: v3_ingest_status_get data: - customer_idempotent_identifier: your_internal_id status: Failed result: data_mapping_error error: accounts[0].currency: 'unexpected currency code: GlkjlkjBP, expected ISO-4217 currency code' metadata: task_id: 3d592efc-493a-4548-8008-f738fd0877ab status: Failed result: data_mapping_error '401': description: Unauthorized (BearerToken in 'Authorization' header fails the authentication) '404': description: The task couldn't be found content: application/json: schema: $ref: '#/components/schemas/TaskNotFoundError' example: operation_id: v2_ingest_status_get code_id: task_not_found message: Task ID [6c7d06a7-5b40-4556-91d4-6b6d1a7db3f1] does not exist or it has expired '405': description: The request uses an unexpected HTTP method 5XX: description: An unexpected error occurred on the server side components: schemas: TransactionSettlementV3Request: type: array items: type: object oneOf: - $ref: '#/components/schemas/IngestFirstPartyDataWithCustomerID' - $ref: '#/components/schemas/IngestFirstPartyDataWithCustomerIdempotentIdentifier' properties: transactions: type: array items: type: object required: - transaction_id - date_time properties: transaction_id: type: string description: The unique identifier of a transaction to be booked. date_time: type: string description: "The datetime when the transaction transitioned to booked in the format [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339).\n\nExamples:\n - `2023-01-17T17:29:51Z`\n - `2023-01-17T17:29:51-08:00`\n" CustomerTransactionV3: title: Customer Transaction V3 description: A schema for Bud V3 transaction format type: object required: - transaction_id - account_id - description - date_time - amount properties: transaction_id: type: string description: 'Unique, immutable transaction identifier. This can be of any format (not necessarily UUID), with a maximum of 255 characters. It''s important this ID is immutable over time and unique as we use this ID as a key to store the transaction against your customer, so if more than one transaction has the same ID for the same customer, we will store only one of them. ' example: 4cef424c-1d7f-4cab-8be2-aee7e1774a00 description: type: string description: Free text string providing details on the transaction itself account_id: type: string description: The account identifier that the transaction belongs to. This can be of any format (not necessarily UUID), with a maximum of 255 characters. example: 2f5b2055-6253-4cd0-b646-06788342a609 date_time: type: string format: date-time description: The date detailing when the transaction occurred, compliant with RFC3339 example: '2022-11-10T23:00:00Z' value_date_time: type: string format: date-time description: The date detailing when the assets assets involved in the transaction transferred compliant with RFC3339. For credits this is the date that the asset becomes available, for debits this is the date that the asset ceased to be available example: '2022-11-10T23:00:00Z' status: type: string enum: - pending - booked - declined default: booked description: The status of the transaction. If not provided, the default value is `booked`. example: booked amount: type: string description: 'The value of the monetary amount. The value is formatted with the number of decimal places for the respective currency. A positive amount is a credit entry and a negative a debit entry. Example: `"10.98"` or `"-10.98"` ' currency: $ref: '#/components/schemas/BudCurrency' merchant_category_code: type: string description: "A Merchant Category Code (MCC) is a four-digit number listed in ISO 18245. \nAn MCC is used to classify a business by the types of goods or services it provides.\n" merchant_name: type: string description: Merchant name provider: type: string description: 'The name of the financial institution the transaction has come from example: `HSBC`, `NatWest` Note: if this field is supplied, the value will be normalised to lowercase and `-`, and ` ` characters will be replaced with `_`. ' country_code: type: string description: "The country where the transaction occurred, specified using either:\n- A 2-letter ISO 3166-1 alpha-2 code (e.g., \"US\", \"GB\")\n- A 3-letter ISO 3166-1 alpha-3 code (e.g., \"USA\", \"GBR\") \n- A UN M.49 numeric code (e.g., \"840\" for United States)\n\nThis field enhances merchant identification accuracy and enables automatic travel detection. \nWhen the country_code differs from the `region` in the customer-context, the transaction is assigned appropriate l1 and l2 travel categories.\nThe value is also used to populate the `country` field in location enrichment data. However, it is converted to a 2-letter ISO 3166-1 alpha-2 code when displayed.\n" transaction_type: $ref: '#/components/schemas/BudTransactionType' running_balance: type: string description: 'The balance of the account associated with the transaction after this transaction is made. The value is formatted with the number of decimal places for the respective currency. A positive amount is a credit balance and a negative a debit balance. Example: `"10.98"` or `"-10.98"` ' client_attributes: $ref: '#/components/schemas/BudClientAttributes' suggested_description: type: string description: String providing details on the transaction itself as a customer would expect to see the transaction in other locations. counterparty: type: object description: An object containing details of the counterparty in this transaction properties: name: type: string description: The name of the counterparty involved in this transaction. identifier: type: string description: An identifier for the account of the other party Processor: title: Processor type: object description: 'Processor enrichment associated with a Transaction, as generated using a combination of Bud''s artificial intelligence models and database of known payment processors. ' properties: id: type: string description: UUID corresponding to the processor, if available. Subject to version control. slug: type: string description: Unique human readable identifier of the processor. Not subject to version control. display_name: type: string description: UI friendly display name for the processor. logo: type: string description: URL supplying processor logo, if available. tokens: type: array description: 'A list of tokens calculated from the transaction model, used to identify the Merchant. This list is often present even if the merchant details (id, slug, disply_name, logo) are not returned. ' items: $ref: '#/components/schemas/Token' website: type: string description: URL supplying merchant website, if available. IngestFirstPartyDataWithCustomerID: title: With Customer ID properties: customer_id: $ref: '#/components/schemas/CustomerID' customer_secret: $ref: '#/components/schemas/CustomerSecret' required: - customer_id IngestResponseV3SubTaskWithCustomerIdempotentIdentifier: title: With Customer Idempotent Identifier properties: customer_idempotent_identifier: type: string description: 'An internal client identifier. This identifier can then be used in place of `X-Customer-Id` across Bud''s endpoints. ' required: - customer_idempotent_identifier IngestCustomerWithAccounts: title: Ingest Customer With Accounts description: A customer with a accounts data. type: object required: - accounts oneOf: - $ref: '#/components/schemas/IngestFirstPartyDataWithCustomerID' - $ref: '#/components/schemas/IngestFirstPartyDataWithCustomerIdempotentIdentifier' properties: accounts: type: array description: List of accounts that belongs to the customer. minItems: 1 items: $ref: '#/components/schemas/IngestCustomerAccount' SynchronousEnrichmentsList: type: array description: 'The list of enrichments product to execute during the synchronous execution of the request. Based on this list, the transactions sent will be processed through a number of enrichment flows, and this drives the amount of additional information attached to each transactions in the synchronous process. The list of available enrichement products during the synchronous ingestion is the following: - categories - merchants The default behaviour is to execute `categories` and `merchants`. Note: This attribute doesn''t limit the execution of all Bud''s enrichments, we''ll still return a number of additional information (eg: tokens), but it switches on and off the two enrichments listed above. ' example: - categories - merchants items: type: string enum: - categories - merchants CloseAccountsRequest: title: Close Accounts Request type: array items: type: object oneOf: - $ref: '#/components/schemas/IngestFirstPartyDataWithCustomerID' - $ref: '#/components/schemas/IngestFirstPartyDataWithCustomerIdempotentIdentifier' properties: account_ids: type: array items: type: string metadata: type: object properties: as_of: type: string example: '2025-09-24T14:55:09Z' description: The datetime that the accounts closed in the format [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339). If not provided, the current datetime will be used. OverallIngestResponseStatus: title: Ingest Task Overall Status description: Ingest response status. type: string enum: - Completed - Pending - Failed - PartialCompleted IngestAccountIdentifiers: title: Ingest Account Identifiers type: object description: Schema to define identifiers for a given account required: - type - value properties: type: type: string description: The type of identifier detailed within the value field associated with the account enum: - uk_sort_code - uk_account_number - iban - us_account_number - pan value: type: string description: The identifier associated with the account IngestTaskResult: title: Ingestion Task Result type: string description: 'Indicates the outcome of the ingest task. Either success or various error codes: | code | description | | ---- | ----------- | | success | Ingestion completed successfully. Data is now available. | | validation_error | The request format is invalid. Please review the endpoint documentation for correct parameters and headers. | | data_mapping_error | The data payload does not match the expected schema. Ensure your data aligns with the defined structure. | | internal_error | Something went wrong on our side. Please retry your request later. | | timed_out | The task did not complete in due time. | ' TaskNotFoundError: type: object title: Task Not Found required: - operation_id - code_id - message properties: operation_id: $ref: '#/components/schemas/OperationId' code_id: type: string message: type: string description: High level description on what has failed example: operation_id: ingest_transactions_get code_id: not_found message: Task not found TransactionSettlementV3Response: title: Settle Transactions V3 Response type: object required: - operation_id - metadata properties: operation_id: type: string metadata: type: object required: - task_id properties: task_id: type: string format: uuid description: "The task_id of the async settlement task.\n\nThis can be used to check the status and errors of the task using the __Retrieve Ingestion Task Status V3__ endpoint. \n" next_url: type: string description: The path to call to obtain the current status of the task. example: /v2/ingest/status/4cef424c-1d7f-4cab-8be2-aee7e1774a00 next_url_delay: type: number description: The time in milliseconds that the client should wait before trying to retrieve the current status of the task. example: 500 FirstPartyIngestionGenericError: type: object title: Content Type Error required: - operation_id - code_id - message - errors properties: operation_id: $ref: '#/components/schemas/OperationId' code_id: type: string enum: - failed_validation message: type: string description: 'High level description on what has failed ' errors: type: object description: Error details properties: content_type: type: string description: The content type header provided in the request is unknown .customer_id: type: string description: Missing customer ID. Index prefix is the index of the customer in the request .customer_secret: type: string description: Missing customer secret. Index is the index of the customer in the request .accounts: type: string description: Missing customer accounts. Index is the index of the customer in the request example: operation_id: ingest_accounts_post code_id: failed_validation message: validation failure(s) in request payload errors: 0.customer_secret: The customer secret is mandatory BudTransactionType: title: transaction_type type: object description: 'The code and a description of the transaction type. Providing these fields may help improve enrichment accuracy. ' properties: bud_code: type: string description: 'The code representing the type of the given transaction. This typically comes in the form of a proprietary code respective to the __provider__. Current list of valid accepted codes: | Code | Meaning |:------|:-------------------------------------------------------------------| | DEB | [Debit / Credit] Card | | CSQ | Cash / Cheque(s) | | CHG | Charge | | COR | Correction | | CPT | Cashpoint / ATM | | INT | Interest | | OTH | Other | | BAT | Bank Transfer (e.g. FP/MP/IB/BACS/CHAPS/SWIFT) | | DD | Direct Debit | | SO | Standing Order | ' description: type: string description: 'A human-readable description of the given __bud_code__. example: `Contactless POS` ' ValidationMissing: type: array title: Missing Fields description: list of required missing fields for a transaction items: type: string IngestV2SyncMetadata: title: Created Task Details description: Metadata on the created task, including the task_id type: object required: - task_id properties: task_id: type: string nullable: true format: uuid description: Can be used with the transaction status endpoint to retrieve the status of the full enriched process next_url: type: string description: The path to call to obtain the current status of the task. example: /v2/ingest/status/4cef424c-1d7f-4cab-8be2-aee7e1774a00 next_url_delay: type: number description: The time in milliseconds that the client should wait before trying to retrieve the current status of the task. example: 500 IngestAccountDetails: title: Ingest Account Details type: object description: Schema to define any further details about a given account required: - scheme_name - identification properties: scheme_name: type: string description: Name of the scheme associated with the account identification: type: string description: A unique identifier for the account secondary_identification: type: string description: Any secondary identifier associated with the account name: type: string description: The name of the account holder BudCurrency: title: Currency description: 'The three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) of the monetary amount. Example: `GBP` ' type: string IngestCreditLine: title: Ingest Credit Line type: object description: A set of elements used to provide details on the credit line required: - amount - type properties: included: type: boolean description: Indicates whether or not the credit line is included in the balance of the account, if not present, credit line is not included in the balance amount of the account amount: $ref: '#/components/schemas/InpAmount' type: type: string description: Limit type, in a coded form enum: - Available - Credit - Emergency - Pre-Agreed - Temporary SyncEnrichments: title: Enrichments type: object description: Contextual enrichments associated with a Transaction properties: categories: $ref: '#/components/schemas/Categories' merchant: $ref: '#/components/schemas/Merchant' processor: $ref: '#/components/schemas/Processor' location: $ref: '#/components/schemas/Location' transaction_types: type: array description: Transaction types associated with the transaction items: type: string names: type: array description: Names that were detected in the transaction description items: type: string CustomerSecret: type: string description: The Bud Customer secret used to encrypt customer data. This is required only if the customer secret is not already stored with Bud. IngestStatusTaskMetadata: title: Ingest Task Metadata description: Expected response structure. type: object required: - task_id - status properties: task_id: type: string format: uuid description: Unique task identifier. status: $ref: '#/components/schemas/OverallIngestResponseStatus' result: $ref: '#/components/schemas/IngestTaskResult' ingest_request_id: type: string format: uuid description: Unique identifier of the initial ingest request ingest_route: type: string description: The endpoint used for this ingest task enum: - ingest_accounts_post - ingest_transactions_post - v2_ingest_accounts_post - v2_ingest_transactions_post - v3_ingest_transactions_book_post - v3_ingest_transactions_decline_post ingest_schema: type: string description: The account/transaction schema used for the ingest enum: - application/bud-accounts+json - application/bud-transaction-v2+json - application/bud-transaction-v3+json 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 ValidationError: type: object title: Validation Errors required: - operation_id - code_id - message - errors properties: operation_id: $ref: '#/components/schemas/OperationId' code_id: type: string enum: - failed_validation message: type: string description: 'High level description on what has failed ' errors: type: object title: Map_of_customer_IDs description: a map of customer IDs to transaction validation errors properties: missing_fields: type: object title: Map of transaction IDs description: 'A map of transaction IDs to missing fields array. If the transaction ID was missing use the request transaction array index to identify it. See example ' additionalProperties: $ref: '#/components/schemas/ValidationMissing' invalid_fields: type: object title: Map of transaction IDs description: 'A map of transaction IDs to invalid fields array. If the transaction ID was missing use the request transaction array index to identify it. See example ' additionalProperties: $ref: '#/components/schemas/ValidationInvalid' example: operation_id: enrich_transactions_post code_id: failed_validation message: validation failure(s) in request payload errors: 1db8c4b5-e5ae-429e-947b-6a4616ffc717: missing_fields: 8b13ac45-9fe6-4c17-8c6d-b60ab2b4edad: - description - customer_id ba466961-d623-4173-9001-2f6487a9a41e: - customer_id tx-1: - transaction_id 578f24f2-5046-463a-bca6-239e0dfac7fa: - amount invalid_fields: 8b13ac45-9fe6-4c17-8c6d-b60ab2b4edad: - date ba466961-d623-4173-9001-2f6487a9a41e: - date IngestFirstPartyDataWithCustomerIdempotentIdentifier: title: With Customer Idempotent Identifier properties: customer_idempotent_identifier: type: string description: 'An internal client identifier. If specified, a Bud customer will either be automatically created, or utilised to ingest the given data. This identifier can then be used in place of `X-Customer-Id` across Bud''s endpoints. ' required: - customer_idempotent_identifier schemas-TransactionForSyncIngest: title: Transaction type: object description: A financial transaction required: - transaction_id - account_id - description - amount - credit_debit_indicator - status - date_time - suggested_description properties: transaction_id: type: string description: Unique identifier for the transaction. May be mutable depending on original ingestion source. account_id: type: string description: Identifier for the account associated with the transaction. description: type: string description: Description of the transaction. credit_debit_indicator: type: string description: Credit/Debit Indicator enum: - credit - debit status: type: string description: Status of the transaction. Defaults to booked. enum: - booked - pending - declined suggested_description: type: string description: The description Bud suggests client apps show for a given transaction. suggested_logo: type: string description: The logo Bud suggests client apps show for a given transaction. transaction_type: $ref: '#/components/schemas/BudTransactionType' amount: $ref: '#/components/schemas/BudAmount' date_time: type: string description: Date of the transaction compliant with RFC3339. value_date_time: type: string description: Date the assets involved in the transaction transferred compliant with RFC3339. For credits this is the date that the asset becomes available, for debits this is the date that the asset ceased to be available enrichments: $ref: '#/components/schemas/SyncEnrichments' merchant_category_code: type: string description: 'A Merchant Category Code (MCC) is a four-digit number listed in ISO 18245. An MCC is used to classify a business by the types of goods or services it provides. ' tags: type: array description: 'A list of potential tags associated with the transaction after contextual enrichment, which can be used for filtering. Region and client specific. | Value | Description | |:------------------------|:----------------------------------------------------------| | `benefit` | A government/non-profit benefit transaction | | `debt-collection` | A transaction associated with a known debt-collector | | `loan` | A transaction associated with a loan | | `hcst` | A transaction associated with a high cost short term loan | | `income` | A transaction associated with income | | `pending` | A transaction which has not been booked | | `regular-transaction` | A transaction predicted to occur with a regular frequency | | `subscription` | A transaction associated with a subscription service | | `online` | A transaction associated with an online merchant | ' items: type: string BadRequestErrorWihoutErrRequired: type: object title: JSON Decoding Error required: - operation_id - code_id - message properties: operation_id: $ref: '#/components/schemas/OperationId' code_id: type: string message: type: string description: High level description of what has failed errors: type: object description: Contains more details on the decoding error IngestResponseV3SubTaskWithCustomerID: title: With Customer ID properties: customer_id: $ref: '#/components/schemas/CustomerID' required: - customer_id IngestTransactionsV3Request: title: Bud V3 Transactions Request description: Ingest transaction expected request body. type: array items: type: object oneOf: - $ref: '#/components/schemas/IngestFirstPartyDataWithCustomerID' - $ref: '#/components/schemas/IngestFirstPartyDataWithCustomerIdempotentIdentifier' properties: sync_enrichments: $ref: '#/components/schemas/SynchronousEnrichmentsList' transactions: type: array description: List of transactions belonging to the customer. minItems: 1 items: $ref: '#/components/schemas/CustomerTransactionV3' transaction_windows: $ref: '#/components/schemas/TransactionWindowArray' FPIIngestFailedWebhookBody: title: FPI Ingestion Failed Webhook Payload type: object description: 'The payload sent to the client defined webhook (via the console) when an First Party Ingestion task fails. ' required: - data properties: data: type: object required: - event - task_id - operation_id - result properties: event: description: The event type type: string example: first_party_ingester.ingest.failed task_id: description: The associated task ID type: string example: 3928aca4-b73c-4f13-a540-1b3759e06d27 operation_id: description: The endpoint ID the operation was related to type: string example: v2_ingest_transactions_post result: description: The error outcome of the ingestion if it failed type: string example: data_mapping_error subtask_details: description: Details of the individual subtasks (customers) of the ingestion type: array items: type: object required: - customer_id properties: customer_id: type: string description: A unique identifier for a Customer, as registered on Bud's platform. customer_idempotent_identifier: type: string description: The `idempotent_identifier` provided when the customer given was created. BudClientAttributes: title: Client Attributes type: object description: 'An optional map of key-value string pairs that allows clients to attach arbitrary metadata to the transaction. This field can be used to store any relevant information specific to the client''s needs. It accepts a maximum of 16 key-value pairs. With a maximum key length of 64 characters and a maximum value length of 256 characters. ' properties: key: type: string description: An arbitrary key-value pair for the client attribute. example: fraud_score: '0.8' overdraft_used: 'true' Location: title: Location type: object description: Location enrichment associated with a Transaction properties: address: type: object description: The address where the transaction occurred. The level of detail depends on the resolution with which we are able to detect the transaction location. properties: address_lines: type: array description: A list of all the address lines detected for the transaction. This could be anything from a full street address down to just the region. items: type: string street_address: type: string description: The street address where the transaction occurred. Typically this will consist of the street number and street name with an optional suite. city: type: string description: The city or town where the transaction occurred. region: type: string description: The county or region where the transaction occurred. postal_code: type: string description: The postcode where the transaction occurred. country: type: string description: 'The ISO 3166-1 alpha-2 country code representing the country where the transaction occurred. If a location could not be determined, but a `country_code` was supplied in the ingestion request; that value will be reflected here. ' geolocation: type: object description: The geolocation where the transaction occurred. This is only available if we are able to narrow down the transaction location to an exact match. properties: latitude: type: number format: double description: The latitudinal position where the transaction occurred. longitude: type: number format: double description: The longitudinal position where the transaction occurred. tokens: type: array description: A list of substrings from the description identified as being relevant to the transaction location. items: type: string IngestCustomerAccount: title: Ingest Customer Account description: An account item. type: object required: - provider - account_id - currency - account_type - account_sub_type - balances properties: provider: type: string description: The name of the provider. account_id: type: string description: The unique id associated with the account currency: type: string description: Main currency (in ISO4217 format) of the account account_type: type: string description: The type of the account enum: - Business - Personal account_sub_type: type: string description: The sub type of the account enum: - AutoLoan - BoatLoan - Brokerage - BusinessLoan - CertificateOfDeposit - ChargeCard - CheckingAccount - CreditCard - CurrentAccount - DisabilityInsurance - EMoney - HealthInsurance - HomeEquityLoan - Investment - Ira - LiabilityInsurance - LifeInsurance - LineOfCredit - Loan - MoneyMarket - Mortgage - Other - PersonalLoan - PrePaidCard - PropertyInsurance - Roth - RvLoan - Savings - StudentLoan - TravelInsurance - VehicleInsurance holder_name: type: string description: The name of the account holder details: deprecated: true type: array description: Provides the details to identify an account items: $ref: '#/components/schemas/IngestAccountDetails' account_identifiers: type: array description: Provides the details to identify an account items: $ref: '#/components/schemas/IngestAccountIdentifiers' balances: type: array description: The balances associated with the account items: $ref: '#/components/schemas/IngestAccountBalance' opening_date_time: type: string format: date-time description: The opening date time of the account in RFC3339 format. example: '2022-11-12T15:30:00Z' holders: type: array description: The account holders details associated with the account items: title: Account_Holder type: object properties: name: type: string description: 'The name of the given account holder. Example: `John Smith` ' relationship: type: string description: "The relationship that the individual holder has with the account.\nCurrently supported values include (but are not necessarily limited to):\n - `sole`\n - `joint`\n - `delegate`\n - `unknown`\n" Token: title: Token type: object description: The token item. required: - value - confidence properties: value: type: string confidence: type: string description: Degree of belief of correct assignment, expressed as a probability. Merchant: title: Merchant type: object description: 'Merchant enrichment associated with a Transaction, as generated using a combination of Bud''s artificial intelligence models and database of known merchants. ' properties: id: type: string description: UUID corresponding to the merchant, if available. Subject to version control. slug: type: string description: Unique human readable identifier of the merchant. Not subject to version control. display_name: type: string description: UI friendly display name for the merchant. logo: type: string description: URL supplying merchant logo, if available. tokens: type: array description: 'A list of tokens calculated from the transaction model, used to identify the Merchant. This list is often present even if the merchant details (id, slug, disply_name, logo) are not returned. ' items: $ref: '#/components/schemas/Token' website: type: string description: URL supplying merchant website, if available. tags: type: array items: type: string description: A list of tags describing the merchant BudAmount: title: Standard Bud Amount type: object description: The monetary amount. required: - value - currency properties: value: $ref: '#/components/schemas/BudMonetaryValue' currency: $ref: '#/components/schemas/BudCurrency' IngestV2SyncResponseData: title: Enriched Customer Transactions type: object oneOf: - $ref: '#/components/schemas/IngestResponseV3SubTaskWithCustomerID' - $ref: '#/components/schemas/IngestResponseV3SubTaskWithCustomerIdempotentIdentifier' required: - enriched_transactions properties: enriched_transactions: type: array items: $ref: '#/components/schemas/schemas-TransactionForSyncIngest' ReopenAccountsRequest: title: Reopen Accounts Request type: array items: type: object oneOf: - $ref: '#/components/schemas/IngestFirstPartyDataWithCustomerID' - $ref: '#/components/schemas/IngestFirstPartyDataWithCustomerIdempotentIdentifier' properties: account_ids: type: array items: type: string IngestV2AsyncResponse: title: Ingest Transactions V2 Async Response type: object allOf: - $ref: '#/components/schemas/IngestV2Response' - type: object required: - operation_id - metadata properties: metadata: $ref: '#/components/schemas/IngestV2Metadata' TransactionSettlementV3WebookBody: title: Transaction Settlement Webhook Payload type: object description: 'The payload send to the client defined webhook (via the console) when a Book or Decline settlement task is Completed. ' required: - data properties: data: type: object required: - event - operation_id - status - task_id properties: event: description: The type of settlement task that completed. type: string enum: - first_party_ingester.transactions.booked - first_party_ingester.transactions.declined operation_id: description: The operation ID of settlement task that completed. type: string enum: - v3_ingest_transactions_book_post - v3_ingest_transactions_decline_post status: description: The status of the settlement task that completed. type: string enum: - Completed - PartialCompleted - Failed task_id: description: "The task_id of the settlement task that completed.\n\nThis can be used to check full status and errors of the task using the __Retrieve Ingestion Task Status V3__ endpoint. \n" type: string OperationId: title: Operation Id Field type: string description: A unique identifier/reference associated with a given endpoint/operation Category: title: Category type: object description: Category associated with a Transaction required: - slug - confidence properties: slug: type: string description: Unique human readable identifier of the category. Not subject to version control. confidence: type: string description: Degree of belief of correct assignment, expressed as a probability. BodyDecodeError: type: object title: JSON Decoding Error required: - operation_id - code_id - message - errors properties: operation_id: $ref: '#/components/schemas/OperationId' code_id: type: string enum: - failed_body_decode message: type: string description: 'High level description on what has failed ' errors: type: object description: Contains more details on the decoding error required: - decode_error properties: decode_error: type: string FPIIngestSucceededWebhookBody: title: FPI Ingestion Succeeded Webhook Payload type: object description: 'The payload sent to the client defined webhook (via the console) when an First Party Ingestion task succeeds. ' required: - data properties: data: type: object required: - event - task_id - operation_id properties: event: description: The event type type: string example: first_party_ingester.ingest.succeeded task_id: description: The associated task ID type: string example: 3928aca4-b73c-4f13-a540-1b3759e06d27 operation_id: description: The endpoint ID the operation was related to type: string example: v2_ingest_transactions_post subtask_details: description: Details of the individual subtasks (customers) of the ingestion type: array items: type: object required: - customer_id properties: customer_id: type: string description: A unique identifier for a Customer, as registered on Bud's platform. customer_idempotent_identifier: type: string description: The `idempotent_identifier` provided when the customer given was created. AccountsDataValidationError: type: object title: Accounts validation error required: - operation_id - code_id - message - errors properties: operation_id: $ref: '#/components/schemas/OperationId' code_id: type: string enum: - failed_validation message: type: string description: High level description on what has failed errors: type: object title: Map of customers description: a map of customer IDs to account validation errors properties: missing_fields: type: object title: Map of Account description: 'A map of accounts to missing fields array. The key contains the index of the account causing issues. See example ' additionalProperties: $ref: '#/components/schemas/ValidationMissing' invalid_fields: type: object title: Map of Account description: 'A map of accounts to invalid fields array. The key contains the index of the account causing issues. See example ' additionalProperties: $ref: '#/components/schemas/ValidationInvalid' example: operation_id: v2_ingest_accounts_post code_id: failed_validation message: validation failure(s) in request payload errors: 1db8c4b5-e5ae-429e-947b-6a4616ffc717: missing_fields: accounts[0]: - provider - account_id accounts[1]: - account_id invalid_fields: accounts[0]: - currency IngestV2Response: type: object required: - operation_id properties: operation_id: $ref: '#/components/schemas/OperationId' example: v2_ingest_transactions_post IngestStatusV3Response: title: Ingestion Task Status Response type: object description: Report on the status of an ingestion task required: - operation_id - data - metadata properties: operation_id: $ref: '#/components/schemas/OperationId' data: type: array items: $ref: '#/components/schemas/IngestResponseV3SubTask' metadata: $ref: '#/components/schemas/IngestStatusTaskMetadata' IngestResponseV3SubTask: title: Customer Ingest Task description: A single customer ingest task status type: object oneOf: - $ref: '#/components/schemas/IngestResponseV3SubTaskWithCustomerID' - $ref: '#/components/schemas/IngestResponseV3SubTaskWithCustomerIdempotentIdentifier' required: - status properties: status: title: Ingest Response Status description: Ingest response status. type: string enum: - Completed - Failed - Pending result: $ref: '#/components/schemas/IngestTaskResult' error: description: Any error messages describing why a sub task has failed. type: object additionalProperties: true TransactionWindow: type: object title: Transaction Window description: "The transaction window is used to describe the entire period for which you have provided full coverage for the transactions within the request. \n\nIt is used by Bud to ascertain periods of inactivity on the account(s) in question to ensure accurate data can be provided across downstream endpoints (e.g. Retrieve Balances Over Time).\n" required: - account_id - start - end properties: account_id: type: string description: The account identifier that the transaction belongs to example: 2f5b2055-6253-4cd0-b646-06788342a609 start: type: string format: date-time description: The date detailing the start of the transaction window, compliant with RFC3339 example: '2022-05-10T23:00:00Z' end: type: string format: date-time description: The date detailing the end of the transaction window, compliant with RFC3339 example: '2022-10-10T23:00:00Z' CustomerID: type: string format: uuid description: A unique identifier for a Customer, as registered on Bud's platform. example: c3339af9-2426-44d4-9c4d-ddb8fd281e23 InpAmount: title: Amount description: Amount structure allOf: - type: object properties: local_currency: allOf: - description: 'The original three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) the payment was transacted in. Example: `USD` ' - $ref: '#/components/schemas/BudCurrency' local_value: allOf: - description: 'The original value of the payment in the local currency. The value is formatted with the number of decimal places for the respective currency. Example: `10.98` ' - $ref: '#/components/schemas/BudMonetaryValue' - $ref: '#/components/schemas/BudAmount' BudMonetaryValue: title: Monetary Value description: "The value of the monetary amount. The value is formatted with the number of decimal places for the respective currency. \n\nExample: `10.98`\n" type: string Categories: title: Categories type: object description: 'Categories enrichment associated with a Transaction, as generated by Bud''s artificial intelligence models. Currently two levels of category are supported, with `l1` being a coarse-grained category level and `l2` being more refined. ' properties: l1: $ref: '#/components/schemas/Category' description: Level 1 Category l2: $ref: '#/components/schemas/Category' description: Level 2 Category IngestV2SyncResponse: title: Ingest Transactions V2 Sync Response type: object allOf: - $ref: '#/components/schemas/IngestV2Response' - type: object required: - operation_id - metadata properties: data: type: array items: $ref: '#/components/schemas/IngestV2SyncResponseData' metadata: $ref: '#/components/schemas/IngestV2SyncMetadata' IngestV2Metadata: title: Created Task Details description: Metadata on the created task, including the task_id type: object required: - task_id properties: task_id: type: string format: uuid description: Can be used with the transaction status endpoint to retrieve the status of the full enriched process next_url: type: string description: The path to call to obtain the current status of the task. example: /v2/ingest/status/4cef424c-1d7f-4cab-8be2-aee7e1774a00 next_url_delay: type: number description: The time in milliseconds that the client should wait before trying to retrieve the current status of the task. example: 500 IngestAccountBalance: title: Ingest Account Balance type: object description: Information surrounding a Customer's Account Balance required: - amount - date_time - type - credit_debit_indicator properties: amount: $ref: '#/components/schemas/InpAmount' credit_debit_indicator: type: string description: To describe whether the account balance is in debit or credit enum: - incoming_credit - outgoing_debit credit_line: items: $ref: '#/components/schemas/IngestCreditLine' date: type: string format: YYYY-MM-DD deprecated: true description: The date associated with the balance of the given account time: type: string format: hh:mm:ss deprecated: true description: The time associated with the balance of the given account date_time: type: string format: date-time description: RFC 3339 format string of the date time of the balance type: type: string description: 'Describes the state of the balance | Value | Description | |:--------------------------|:----------------------------------------------------------| | `ClosingAvailable` | Closing balance of amount of money that is at the disposal of the account owner on the date specified. | | `ClosingBooked` | Balance of the account at the end of the pre-agreed account reporting period. It is the sum of the opening booked balance at the beginning of the period and all entries booked to the account during the pre-agreed account reporting period. | | `ClosingCleared` | Closing balance of amount of money that is cleared on the date specified. | | `Expected` | Balance, composed of booked entries and pending items known at the time of calculation, which projects the end of day balance if everything is booked on the account and no other entry is posted. | | `ForwardAvailable` | Forward available balance of money that is at the disposal of the account owner on the date specified. | | `Information` | Balance for informational purposes. | | `InterimAvailable` | Available balance calculated in the course of the account servicer''s business day, at the time specified, and subject to further changes during the business day. The interim balance is calculated on the basis of booked credit and debit items during the calculation time/period specified. | | `InterimBooked` | Balance calculated in the course of the account servicer''s business day, at the time specified, and subject to further changes during the business day. The interim balance is calculated on the basis of booked credit and debit items during the calculation time/period specified. | | `InterimCleared` | Cleared balance calculated in the course of the account servicer''s business day, at the time specified, and subject to further changes during the business day. | | `OpeningAvailable` | Opening balance of amount of money that is at the disposal of the account owner on the date specified. | | `OpeningBooked` | Book balance of the account at the beginning of the account reporting period. It always equals the closing book balance from the previous report. | | `OpeningCleared` | Opening balance of amount of money that is cleared on the date specified. | | `PreviouslyClosedBooked` | Balance of the account at the previously closed account reporting period. The opening booked balance for the new period has to be equal to this balance. | ' enum: - ClosingAvailable - ClosingBooked - ClosingCleared - Expected - ForwardAvailable - Information - InterimAvailable - InterimBooked - InterimCleared - OpeningAvailable - OpeningBooked - OpeningCleared - PreviouslyClosedBooked IngestAccountsRequest: title: Bud Accounts Request description: Ingest accounts expected request body. type: array items: $ref: '#/components/schemas/IngestCustomerWithAccounts' ValidationInvalid: type: array title: Invalid Fields description: list of invalid fields for a transaction items: type: string TransactionWindowArray: type: array description: 'If not provided, the transaction window is inferred from the date of the first and last transactions. Only a single window per customer account is supported. ' items: $ref: '#/components/schemas/TransactionWindow' parameters: IngestAccountsContentType: in: header name: Content-Type required: true schema: type: string enum: - application/bud-accounts+json description: Define the transactions' format for this request. 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 GenerateTransactionIDs: in: header name: X-Generate-Transaction-IDs schema: type: string enum: - 'true' example: 'true' description: 'Enable transaction ID generation based on the contents of the transaction data. The transaction ID field still needs to be provided, but it will not be validated or checked for uniqueness and instead overwritten with a generated value. When generating IDs from transaction data, the following fields are taken into account: account ID, description, amount, currency and date. ' SignatureHeaderParameter: in: header name: X-Signature description: The signed request body JWT required: true schema: type: string DisableSynchronous: in: header name: X-Disable-Synchronous description: 'If provided as true, the task will **not** be processed synchronously. If false or the header is not included, the task **will** be processed synchronously. ' schema: type: boolean IngestTransactionsV2ContentType: in: header name: Content-Type required: true schema: type: string enum: - application/bud-transaction-v3+json - application/bud-transaction-v2+json description: Define the transactions' format for this request. 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 BudCategorisationModel: in: header name: X-Bud-Categorisation-Model description: 'Overrides the default categorisation model for both the returned enrichment and the persisted enrichment. Possible values can be retrieved from the __Retrieve Available Categorisation Models V2__ endpoint. It should be noted that only models for the customers region will be used. For example, if a customer is created with the region "GB", then only "uk-v*" models will be utilised. If a model is specified that cannot be used, then the default model will be used instead. ' schema: type: string NoCustomerHeader: in: header name: X-No-Customer schema: type: boolean description: 'If provided as true, the customer_id is not required in the request. This is only available with X-Disable-Synchronous not set or set to false. **Note:** This functionality is not available by default. In order to use it, please raise a Support request.' example: true 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