Tink · Arazzo Workflow

Tink Build A Budget From Recurring Spend

Version 1.0.0

Read a user's confirmed recurring transactions and category taxonomy, create a business budget around them, then read the budget's progress.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub Open BankingPSD2Payment InitiationAccount AggregationRisk DecisioningPay by BankFinanceBankingEuropeVisaArazzoWorkflows

Provider

tink-com

Workflows

recurring-spend-budget
Inspect recurring spend and categories, create a budget, then read its progress.
Lists recurring transactions and the category taxonomy, creates a business budget for the requested category and amount, and reads the budget back to surface its progress.
4 steps inputs: accessToken, amount, budgetName, categoryId, currencyCode, locale, period outputs: budgetId, progress, recurringTransactions
1
listRecurring
listRecurringTransactions
List the user's confirmed recurring transactions to ground the budget in real recurring spend.
2
listCategories
listCategories
List the Tink categorisation taxonomy for the supplied locale.
3
createBudget
createBusinessBudget
Create a business budget for the requested category, amount, and period.
4
getBudget
getBusinessBudget
Read the new budget back to surface its current progress and remaining amount.

Source API Descriptions

Arazzo Workflow Specification

tink-com-recurring-spend-budget-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Tink Build A Budget From Recurring Spend
  summary: Read a user's confirmed recurring transactions and category taxonomy, create a business budget around them, then read the budget's progress.
  description: >-
    A Money Manager flow that grounds a budget in detected recurring spend. It
    lists the user's confirmed recurring transactions (subscriptions, rent,
    salary) and the Tink categorisation taxonomy, creates a recurring business
    budget for a category, and then reads the new budget back to surface its
    current progress and remaining amount. Every step spells out its request
    inline so the flow can be read and executed without opening the underlying
    OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: enrichmentApi
  url: ../openapi/tink-data-enrichment-api-openapi.yml
  type: openapi
- name: moneyManagerApi
  url: ../openapi/tink-money-manager-api-openapi.yml
  type: openapi
workflows:
- workflowId: recurring-spend-budget
  summary: Inspect recurring spend and categories, create a budget, then read its progress.
  description: >-
    Lists recurring transactions and the category taxonomy, creates a business
    budget for the requested category and amount, and reads the budget back to
    surface its progress.
  inputs:
    type: object
    required:
    - accessToken
    - budgetName
    - amount
    - currencyCode
    - period
    - categoryId
    properties:
      accessToken:
        type: string
        description: A user access token authorized for enrichment and money-manager reads/writes.
      locale:
        type: string
        description: Optional locale for the category taxonomy (e.g. en_US).
      budgetName:
        type: string
        description: A name for the budget.
      amount:
        type: string
        description: The budget limit amount as a decimal string (e.g. 500.00).
      currencyCode:
        type: string
        description: ISO 4217 currency code for the budget amount (e.g. EUR).
      period:
        type: string
        description: The budget period (ONE_OFF, WEEK, MONTH, QUARTER, or YEAR).
      categoryId:
        type: string
        description: The category id the budget filters spend by.
  steps:
  - stepId: listRecurring
    description: >-
      List the user's confirmed recurring transactions to ground the budget in
      real recurring spend.
    operationId: listRecurringTransactions
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      recurringTransactions: $response.body#/recurringTransactions
  - stepId: listCategories
    description: List the Tink categorisation taxonomy for the supplied locale.
    operationId: listCategories
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: locale
      in: query
      value: $inputs.locale
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      categories: $response.body#/categories
  - stepId: createBudget
    description: >-
      Create a business budget for the requested category, amount, and period.
    operationId: createBusinessBudget
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.budgetName
        amount:
          amount: $inputs.amount
          currencyCode: $inputs.currencyCode
        period: $inputs.period
        filters:
          categoryIds:
          - $inputs.categoryId
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      budgetId: $response.body#/id
  - stepId: getBudget
    description: Read the new budget back to surface its current progress and remaining amount.
    operationId: getBusinessBudget
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: budgetId
      in: path
      value: $steps.createBudget.outputs.budgetId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      progress: $response.body#/progress
  outputs:
    recurringTransactions: $steps.listRecurring.outputs.recurringTransactions
    budgetId: $steps.createBudget.outputs.budgetId
    progress: $steps.getBudget.outputs.progress