Bud Financial website screenshot

Bud Financial

Bud Financial (formerly Bud, thisisbud.com) is a UK-based fintech infrastructure company providing AI-driven Open Banking aggregation, transaction enrichment, categorization, affordability assessment, and payment initiation APIs. The Bud platform unifies Open Banking connections to UK and EU ASPSPs behind a single REST API and layers AI/ML-powered enrichment, categorization, merchant identification, affordability scoring, income/expenditure analysis, and actionable financial insights on top of raw transaction data. Banks, lenders, and consumer fintechs use Bud for KYC/AML checks, lending decisions, money management, and embedded payments.

12 APIs 0 Features
Open BankingTransaction EnrichmentCategorizationAffordabilityPaymentsAISPPISPFinancial DataFinTechUKAIMachine Learning

APIs

Bud Connect API

Open Banking aggregation API providing unified access to UK and EU ASPSP connections. Initiate consents through Bud's hosted Bud Connect gateway or build a native flow with the ...

Bud First-Party Ingestion API

Push your own first-party account and transaction data into the Bud platform for enrichment, categorization, and insights without requiring an Open Banking consent. Supports syn...

Bud Customers Platform API

Create, retrieve, batch-create, and manage end-user customer records on the Bud platform. Supports V1, V2, and V3 customer endpoints, idempotent identifiers, customer context co...

Bud Financial Data API

Retrieve enriched accounts, transactions, balances, and authorised payments. Bud's AI/ML enrichment engine attaches category, merchant, geolocation, and recurrence metadata to e...

Bud Enrichment API

Access Bud's enrichment resources: category models, category and merchant taxonomies, aggregated category and merchant totals, essential-spending statistics, and correction endp...

Bud Financial Insights API

Generate deep insights from transaction data: actionable balance, income, and spending insights; custom insight management; subscription and recurring-transaction detection; inc...

Bud Intelligent Search API

Beta intelligent search across transactions with AI-generated insights. Submit a natural language query, retrieve matching transactions and a derived narrative insight referenci...

Bud Affordability and Assess API

Pre-fill affordability forms and power lending decisions with structured income and expenditure breakdowns. Generate affordability reports (V1 and V2), drill into affordability ...

Bud Customer Characteristics API

Retrieve derived behavioural characteristics for a customer across credit card, loan, overdraft, and saver lenses. Designed to feed lending models and risk decisioning with expl...

Bud Goals and Budgets API

Manage savings goals (V2) and spending budgets (V1) for end customers. Create, retrieve, list, and delete goals, attach contributing transactions to a budget, and track progress...

Bud Payments API

Initiate authorised single payments, scheduled payments, and standing orders directly from a customer's bank account using Bud's PISP service. Either redirect users to a Bud-hos...

Bud Embedded Widgets API

Request signed URLs for Bud's embeddable frontend widgets - accounts, balances over time, financial calendar, insight summary, intelligent search, recurring and forecasted trans...

Collections

Pricing Plans

Bud Co Plans Pricing

5 plans

PLANS

Rate Limits

Bud Co Rate Limits

0 limits

RATE LIMITS

FinOps

Bud Co Finops

FINOPS

Semantic Vocabularies

Bud Co Context

0 classes · 8 properties

JSON-LD

API Governance Rules

Bud Financial API Rules

6 rules · 1 errors 4 warnings

SPECTRAL

Example Payloads

Bud Transaction Example

16 fields

EXAMPLE

Resources

🔗
Website
Website
🔗
Documentation
Documentation
🌐
Console
Console
💬
Support
Support
🔗
LinkedIn
LinkedIn
👥
GitHub
GitHub
🔗
LlmsText
LlmsText

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: 'Bud API Services: Documentation'
  version: 2.10.10
items:
- info:
    name: OAuth2
    type: folder
  items:
  - info:
      name: OAuth2
      type: http
    http:
      method: POST
      url: https://api-sandbox.thisisbud.com/v1/oauth/token
      headers:
      - name: Content-Type
        value: ''
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      - name: authorization
        value: ''
      body:
        type: form-urlencoded
        data: []
      auth:
        type: basic
        username: '{{username}}'
        password: '{{password}}'
    docs: "This endpoint is used to create access and refresh tokens. \n\nThe access token is used as a bearer token to authenticate\
      \ requests to Bud endpoints; \nthe refresh token is used to generate a new access token without the need to supply your\
      \ client credentials again.\n\nThe access token usually expires after the `expires_in` time (in seconds) has elapsed.\
      \ \nHowever this is not guaranteed, so it is recomended to integrate such as to handle the `401` response code and refresh\
      \ the token when it this respon"
- info:
    name: Create a Connection
    type: folder
  items:
  - info:
      name: Retrieve OB Providers
      type: http
    http:
      method: GET
      url: https://api-sandbox.thisisbud.com/v1/open-banking/providers
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      params:
      - name: types
        value: ''
        type: query
        description: A comma separated list of Bud support provider types to be shown. If no filter is applied, all the providers
          are returned.
      - name: region
        value: ''
        type: query
        description: A comma separated list of Bud regions to be shown. If no filter is applied, all the providers are returned.
      - name: scopes
        value: ''
        type: query
        description: A comma separated list of Bud ob scopes to be shown. If no filter is applied, all the providers are returned.
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: 'List the available account providers with their name, icon and maintenance status.

      '
  - info:
      name: Retrieve Authorisation Gateway URL (v2)
      type: http
    http:
      method: POST
      url: https://api-sandbox.thisisbud.com/v2/open-banking/authorisation-gateway-url
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      - name: X-Customer-Id
        value: c3339af9-2426-44d4-9c4d-ddb8fd281e23
      - name: X-Customer-Idempotent-Identifier
        value: ''
      - name: X-Customer-Secret
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: 'Allow customers to authorise with, and connect to, a provider, using Bud’s __Bud Connect__. Bud Connect is a UI
      component hosted by Bud that can be integrated into any mobile or web experience, and

      allows your customers to connect to and authorise with their chosen provider, allowing Bud to pull their account information
      using Bud''s AISP license.


      Using the different configuration options that can be set through the request body you can personalize the experience
      for your Customer. Please, refer'
  - info:
      name: Initiate Provider Authorisation
      type: http
    http:
      method: POST
      url: https://api-sandbox.thisisbud.com/v1/open-banking/authorisation-url
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      - name: X-Customer-Id
        value: c3339af9-2426-44d4-9c4d-ddb8fd281e23
      - name: X-Customer-Idempotent-Identifier
        value: ''
      - name: X-Customer-Secret
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: 'Request a new Open Banking authorisation url for a specific Customer and provider. This endpoint should be used
      when using Bud as a Technical Service Provider(TSP). This means that Bud will be using your license (as a registered
      Account Information Service Provider (AISP)). This will allow you to use your own interface to connect new account(s).


      A generated consent has a 90 day expiry, to allow for re-authentication to extend this expiry the id of the customers
      previous consent can be included '
  - info:
      name: Retrieve Authorisation URL
      type: http
    http:
      method: GET
      url: https://api-sandbox.thisisbud.com/v1/open-banking/authorisation-url/:task_id
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      - name: X-Customer-Id
        value: c3339af9-2426-44d4-9c4d-ddb8fd281e23
      - name: X-Customer-Idempotent-Identifier
        value: ''
      params:
      - name: task_id
        value: ''
        type: path
        description: Bud Task identifier returned from an async task for the requested action
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: 'Check the status and get the result of an Initiate Provider Authorisation URL task. If the task is not yet completed,
      the data element will be null.


      Once the customer has successfully authorised with the ASPSP, Bud will create a task to fetch the relevant data from
      the ASPSP. The task id created will be passed back within the supplied re-direct url. Please refer to the Check Connection
      Status endpoint for updates on this fetching process using the task id provided in the redirect URL.

      '
  - info:
      name: Submit Authorisation Codes
      type: http
    http:
      method: POST
      url: https://api-sandbox.thisisbud.com/v1/open-banking/authorisation-codes
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      - name: X-Customer-Id
        value: c3339af9-2426-44d4-9c4d-ddb8fd281e23
      - name: X-Customer-Idempotent-Identifier
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: 'When using Bud as a TSP (Technical Service Provider) and doing full app-to-app authorisation, the customer is returned
      from the provider directly back to your app. Your app will then need to send all the query and hash fragment parameters
      to Bud so that we can complete the connection.


      Query and fragment parameters should be merged with query taking precedence. If you receive a request `/path?a=1#a=2&b=3`
      then you should perform this request with `{"a":"1","b":"3"}`. Given the nature of the frag'
  - info:
      name: Submit Authorisation Codes V2
      type: http
    http:
      method: POST
      url: https://api-sandbox.thisisbud.com/v2/open-banking/authorisation-codes
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      - name: X-Customer-Id
        value: c3339af9-2426-44d4-9c4d-ddb8fd281e23
      - name: X-Customer-Idempotent-Identifier
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: 'When using Bud as a TSP (Technical Service Provider) and doing full app-to-app authorisation, the customer is returned
      from the provider directly back to your app. Your app will then need to send all the query and hash fragment parameters
      to Bud so that we can complete the connection.


      Query and fragment parameters should be merged with query taking precedence. If you receive a request `/path?a=1#a=2&b=3`
      then you should perform this request with `{"a":"1","b":"3"}`. Given the nature of the frag'
  - info:
      name: Retrieve Connection Status
      type: http
    http:
      method: GET
      url: https://api-sandbox.thisisbud.com/v1/open-banking/connect/:connection_task_id
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      - name: X-Customer-Id
        value: c3339af9-2426-44d4-9c4d-ddb8fd281e23
      - name: X-Customer-Idempotent-Identifier
        value: ''
      params:
      - name: connection_task_id
        value: ''
        type: path
        description: Unique identifier related to a specific connection task
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: 'Check the status of an account connection task. If the task is not yet completed, the status will be shown as pending.
      If the status is completed, then the data is ready to be ingested.


      The __connection_task_id__ is provided as a parameter in the redirect url after the Customer has undergone a successful
      authorisation with a relevant Open Banking provider.

      '
- info:
    name: Manage a Connection
    type: folder
  items:
  - info:
      name: Initiate Refresh
      type: http
    http:
      method: POST
      url: https://api-sandbox.thisisbud.com/v1/open-banking/refresh
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      - name: X-Customer-Id
        value: c3339af9-2426-44d4-9c4d-ddb8fd281e23
      - name: X-Customer-Idempotent-Identifier
        value: ''
      - name: X-Customer-Secret
        value: ''
      - name: X-Customer-Ip-Address
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: 'Instruct Bud to retrieve the latest account information for a customer. Refresh the accounts from a single provider
      with an existing connection.


      By default this task will retrieve transactions since the last pull of transactions less seven days. This can be overridden
      using the `from` body parameter to a maximum of 90 days previously.


      After initiating this long running process, make sure to check the status of the it till completion before trying to
      access the Customer''s data or initiating ano'
  - info:
      name: Retrieve Refresh Status
      type: http
    http:
      method: GET
      url: https://api-sandbox.thisisbud.com/v1/open-banking/refresh/:task_id
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      - name: X-Customer-Id
        value: c3339af9-2426-44d4-9c4d-ddb8fd281e23
      - name: X-Customer-Idempotent-Identifier
        value: ''
      params:
      - name: task_id
        value: ''
        type: path
        description: Bud Task identifier returned from an async task for the requested action
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: 'Check the status of an account information refresh task. If the task is not yet completed, the status will be shown
      as pending.

      If the status is completed, then the data is ready to be collected via the [Retrieve Financial Data](/reference/retrieve-financial-data)
      endpoints.

      Successful requests will include `step` (1-4) and associated `text` values to indicate the current progress of the refresh
      task.


      Make sure to check the status of the task till completion before trying to access the Customer'
  - info:
      name: Initiate Refresh V2
      type: http
    http:
      method: POST
      url: https://api-sandbox.thisisbud.com/open-banking/v2/refresh
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      - name: X-Customer-Id
        value: c3339af9-2426-44d4-9c4d-ddb8fd281e23
      - name: X-Customer-Idempotent-Identifier
        value: ''
      - name: X-Customer-Secret
        value: ''
      - name: X-Customer-Ip-Address
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: 'Instruct Bud to retrieve the latest account information for a customer. Refresh the accounts from all providers
      with an existing connection.


      By default this task will retrieve transactions since the last pull of transactions less seven days. This can be overridden
      using the `from` body parameter to a maximum of 90 days previously.

      On completion of this task Bud will send a webhook to your configured endpoint including details of the refresh completed
      and the status of the refresh for each provi'
  - info:
      name: Retrieve Refresh Status V2
      type: http
    http:
      method: GET
      url: https://api-sandbox.thisisbud.com/open-banking/v2/refresh/:task_id
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      - name: X-Customer-Id
        value: c3339af9-2426-44d4-9c4d-ddb8fd281e23
      - name: X-Customer-Idempotent-Identifier
        value: ''
      params:
      - name: task_id
        value: ''
        type: path
        description: Bud Task identifier returned from an async task for the requested action
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: "Check the status of an account information refresh task. If the task is not yet completed, the status will be shown\
      \ as pending. \nIf the status is completed, then the data is ready to be collected via the [Retrieve Financial Data](/reference/retrieve-financial-data)\
      \ endpoints. \n\nTo monitor the status of a refresh task we provide two methods. The preferred approach is to utilise\
      \ the webhook functionality within the Bud platform where Bud will send a webhook to your configured endpoint when the\
      \ tas"
  - info:
      name: Retrieve Customer Consents
      type: http
    http:
      method: GET
      url: https://api-sandbox.thisisbud.com/v1/open-banking/account-access-consents
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      - name: X-Customer-Id
        value: c3339af9-2426-44d4-9c4d-ddb8fd281e23
      - name: X-Customer-Idempotent-Identifier
        value: ''
      - name: X-Customer-Secret
        value: ''
      params:
      - name: status
        value: ''
        type: query
        description: By default this endpoint only returns `active` Authorised connections. To retrieve `all` consents, add
          this query param with the value of `all`. To retrieve consents where reconfirmation is required add this query param
          with the value of `reconfirm_due`.
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: 'Retrieve the list of all available Open Banking consents granted by the customer.


      > 📘 Note:

      >

      > For more information about Consents, please refer to our [guide](https://docs.thisisbud.com/docs/consents).

      '
  - info:
      name: Initiate Revoke Consent
      type: http
    http:
      method: POST
      url: https://api-sandbox.thisisbud.com/v1/open-banking/account-access-consent/revoke
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      - name: X-Customer-Id
        value: c3339af9-2426-44d4-9c4d-ddb8fd281e23
      - name: X-Customer-Idempotent-Identifier
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: 'Start a task to remove consent and remove Bud’s ability to download further information for a specified customer
      account.


      This will revoke `all` the consents for the specified provider associated to the customer.


      To check the status of this task, use the `Retrieve Revoke Consent Status` using the returned `task_id`.


      Alternatively, there is a `Open Banking Consent Revoked` webhook that will trigger per consent successfully revoked.
      As such this task could generate multiple of these.

      '
  - info:
      name: Retrieve Revoke Consent Status
      type: http
    http:
      method: GET
      url: https://api-sandbox.thisisbud.com/v1/open-banking/account-access-consent/revoke/:task_id
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      - name: X-Customer-Id
        value: c3339af9-2426-44d4-9c4d-ddb8fd281e23
      - name: X-Customer-Idempotent-Identifier
        value: ''
      params:
      - name: task_id
        value: ''
        type: path
        description: Bud Task identifier returned from an async task for the requested action
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: 'Check the status and result of a Revoke Consent task.


      Use the `task_id` taken from a successful `Initiate Revoke Consent` request.

      '
  - info:
      name: Reconfirm Consent
      type: http
    http:
      method: POST
      url: https://api-sandbox.thisisbud.com/v1/open-banking/account-access-consents/:consent_id/reconfirm
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      - name: X-Customer-Id
        value: c3339af9-2426-44d4-9c4d-ddb8fd281e23
      - name: X-Customer-Idempotent-Identifier
        value: ''
      - name: X-Customer-Secret
        value: ''
      - name: X-Customer-Ip-Address
        value: ''
      params:
      - name: consent_id
        value: ''
        type: path
        description: Bud Consent identifier
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: 'Reconfirm a customer''s consent to extend the expiration date by 90 days. If the provider requires SCA authentication
      or the consent status is not showing "Authorised" or the consent is expired, the `reconnect_required` flag will show
      as true.

      If true, you should make a call to the Retrieve Authoirsation Gateway URL endpoint with the `reconfirm_consent` flag
      set to true to direct your customer to the reconfirm consent journey.

      If false, the consent has been extended.


      > 📘 Note:

      >

      > This endpoint'
- info:
    name: Ingest First Party Data
    type: folder
  items:
  - info:
      name: Ingest Accounts
      type: http
    http:
      method: POST
      url: https://api-sandbox.thisisbud.com/v2/ingest/accounts
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      - name: Content-Type
        value: ''
      - name: X-Disable-Synchronous
        value: ''
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '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 findi'
  - info:
      name: Close Accounts
      type: http
    http:
      method: POST
      url: https://api-sandbox.thisisbud.com/ingestion/v3/accounts/close
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '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.

      '
  - info:
      name: Reopen Accounts
      type: http
    http:
      method: POST
      url: https://api-sandbox.thisisbud.com/ingestion/v3/accounts/reopen
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '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.

      '
  - info:
      name: Ingest Transactions
      type: http
    http:
      method: POST
      url: https://api-sandbox.thisisbud.com/v2/ingest/transactions
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      - name: Content-Type
        value: ''
      - name: X-Disable-Synchronous
        value: ''
      - name: X-Generate-Transaction-IDs
        value: 'true'
      - name: X-Bud-Categorisation-Model
        value: ''
      - name: X-No-Customer
        value: 'true'
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: 'This endpoint should be used to ingest customer transactions into the Bud Platform.


      By default, this endpoint is synchronous but can be easily switched to asynchronous using the ''X-Disable-Synchronous''
      header.

      Please refer to the following [guide](https://docs.thisisbud.com/docs/setup_data_enrichment) to ensure you set up First
      Party Ingestion

      correctly for your organisation based on your use case.


      We accept a maximum of 1.000 transactions. If this threshold is not respected, a 400 error is re'
  - info:
      name: Book Transactions
      type: http
    http:
      method: POST
      url: https://api-sandbox.thisisbud.com/ingestion/v3/transactions/book
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '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__.

      '
  - info:
      name: Decline Transactions
      type: http
    http:
      method: POST
      url: https://api-sandbox.thisisbud.com/ingestion/v3/transactions/decline
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '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__.

      '
  - info:
      name: Retrieve Ingestion Task Status
      type: http
    http:
      method: GET
      url: https://api-sandbox.thisisbud.com/ingestion/v3/tasks/:task_id
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      params:
      - name: task_id
        value: ''
        type: path
        description: Bud Task identifier returned from an async task for the requested action
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: '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).

      '
- info:
    name: Manage Customers
    type: folder
  items:
  - info:
      name: Retrieve Customers V3
      type: http
    http:
      method: GET
      url: https://api-sandbox.thisisbud.com/platform/v3/customers
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      params:
      - name: date_from
        value: '2022-05-28T00:00:00Z'
        type: query
        description: 'Date (RFC3339) to filter customers created on or after which. To maintain backwards compatibility, dates
          in the format (YYYY-MM-DD) can also be used and will be assumed to be UTC.

          '
      - name: date_to
        value: '2022-05-29T00:00:00Z'
        type: query
        description: 'Date (RFC3339) to filter customers created on or before which. To maintain backwards compatibility,
          dates in the format (YYYY-MM-DD) can also be used and will be assumed to be UTC. Uses the current date by default.

          '
      - name: page_size
        value: ''
        type: query
        description: The number of results to return per page. Defaults to 200.
      - name: page_token
        value: ''
        type: query
        description: 'The token required to fetch a specific page of results. Provided by the next_page_token field in the
          previous request.

          '
      - name: idempotent_identifier
        value: ''
        type: query
        description: 'Filter by the internal client identifier provided in the `client_metadata` object when creating the
          customer in __Create Customer V3__. Only one customer will be returned if one is found with the given identifier.

          '
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: 'This endpoint is used to list customers associated with the current project.


      Customers are listed ordered by their ID. Deleted customers will not be included in the list.


      The list of customers can be filtered by creation date with the `date_from` and `date_to` query parameters, which expect
      dates in the RFC3339 format.


      If more results pages are available, the response metadata object will contain a  `next_page_token` field which can
      be used to fetch the next page of results. The token should '
  - info:
      name: Create Customer V3
      type: http
    http:
      method: POST
      url: https://api-sandbox.thisisbud.com/platform/v3/customers
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: 'This endpoint is used to create a new Customer in order for them to consume the Bud services.


      When we refer to a Customer, we''re talking about the end-user of yours and Bud''s technology. Customer entities in
      Bud have unique identifiers and this is used to store the customer data on the Bud platform.


      For more information on how to manage your Bud Customers, please, refer to the following [guide](https://docs.thisisbud.com/docs/setup-customers)


      > 📘 Note:

      >

      > By specifying a `client_metadata.id'
  - info:
      name: Create Customers V3 (Batch)
      type: http
    http:
      method: POST
      url: https://api-sandbox.thisisbud.com/platform/v3/customers/batch
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      body:
        type: json
        data: '{}'
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: 'This endpoint is used to create a batch of new Customers in order for them to consume the Bud services.


      For more information on Customers in the Bud platform, please refer to our handy [guide](https://docs.thisisbud.com/docs/setup-customers).

      '
  - info:
      name: Remove Customer V3
      type: http
    http:
      method: DELETE
      url: https://api-sandbox.thisisbud.com/platform/v3/customers/:customer_id
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      params:
      - name: customer_id
        value: ''
        type: path
        description: The customer identifier.
      auth:
        type: oauth2
        flow: client_credentials
        accessTokenUrl: /v1/oauth/token
        credentials:
          clientId: '{{clientId}}'
          clientSecret: '{{clientSecret}}'
    docs: This endpoint is used to delete an existing Customer. Calling this endpoint initiates deleting all data relating
      to a customer returning a task id that can be used to check the status of the delete task.
  - info:
      name: Remove Customer By Idempotent Identifier V3
      type: http
    http:
      method: DELETE
      url: https://api-sandbox.thisisbud.com/platform/v3/customers/idempotent-identifier/:customer_idempotent_identifier
      headers:
      - name: X-Client-Id
        value: 8711bbef-b357-4c2d-97ca-0d9df4206e9a
      params:
      - name: customer_idempotent_identifier
        value: ''
        type: path
        description: The internal client identifier, provided in the client_metadata object when creating the customer in
          Create Customer V3.
    

# --- truncated at 32 KB (203 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bud-co/refs/heads/main/apis.yml