Skip to main content
Write tools for bank connections and account-link management. Read tools (get_sync_status, list_account_links) live on Connections & sync. All tools on this page are Write scope and require session_id + reason.
trigger_sync requires a full access API key. It is not available to read_only keys — in fact, write tools are filtered out of the server entirely for read-only scopes, so a read-only agent never sees it. See Set up MCP.

trigger_sync

Trigger a manual sync of bank data from the provider (Plaid or Teller). Optionally specify a connection_id to sync a single connection; otherwise syncs all active connections. Returns immediately — the sync runs in the background. Check get_sync_status for results. Mirrors: POST /api/v1/connections/{id}/sync

Parameters

connection_id
string
Sync a specific connection by ID (UUID or short ID). If omitted, syncs all active connections.
session_id
string
required
reason
string
required

Example input

{
  "session_id": "s9Xm2pQk",
  "reason": "checking for charges since last sync",
  "connection_id": "c1Xm9pQ2"
}

Example output

{ "text": "Sync triggered for connection c1Xm9pQ2." }
With no connection_id, the response is Sync triggered for all connections.
Link a dependent account to a primary account for cross-connection deduplication. When two family members connect the same credit card (primary cardholder + authorized user), transactions appear in both feeds. This link pairs matching transactions by date + amount, excludes the dependent’s copies from totals, and attributes matched primary-side transactions to the dependent user. Automatically runs initial reconciliation after creation — the response includes both the link and the first-pass match results.

Parameters

primary_account_id
string
required
The primary cardholder’s account ID (UUID or short ID).
dependent_account_id
string
required
The authorized/dependent user’s account ID.
match_strategy
string
default:"date_amount_name"
Matching strategy. Currently only date_amount_name is supported.
match_tolerance_days
integer
default:"0"
Date tolerance in days. 0 = same day.
session_id
string
required
reason
string
required

Example input

{
  "session_id": "s9Xm2pQk",
  "reason": "linking Amex authorized user account to primary for dedup",
  "primary_account_id": "a7Xm9pQ2",
  "dependent_account_id": "a8Yn0qR3"
}

Example output

{
  "link": {
    "id": "L9Xm2pQr",
    "primary_account_id": "a7Xm9pQ2",
    "dependent_account_id": "a8Yn0qR3",
    "match_strategy": "date_amount_name",
    "match_tolerance_days": 0,
    "created_at": "2026-04-23T14:50:00Z"
  },
  "reconciliation": {
    "matched_count": 142,
    "unmatched_primary_count": 3,
    "unmatched_dependent_count": 7
  }
}

Remove an account link and clear all transaction attribution set by it. Transactions from the dependent account will be included in totals again.

Parameters

The account link ID.
session_id
string
required
reason
string
required

Example input

{
  "session_id": "s9Xm2pQk",
  "reason": "primary cardholder closed card — unlinking",
  "link_id": "L9Xm2pQr"
}

Example output

{ "status": "deleted" }

Manually trigger match reconciliation for an account link. Finds unmatched dependent transactions and attempts to pair them with primary account transactions by date and exact amount. Matched primary transactions are attributed to the dependent user. Use after create_account_link has already run (it reconciles on create) if you want to pick up new charges without waiting for the next sync cycle.

Parameters

The account link ID to reconcile.
session_id
string
required
reason
string
required

Example input

{
  "session_id": "s9Xm2pQk",
  "reason": "after sync — checking for new matches",
  "link_id": "L9Xm2pQr"
}

Example output

{
  "matched_count": 3,
  "unmatched_primary_count": 0,
  "unmatched_dependent_count": 4
}