Skip to main content
Events use a resource.action naming convention. Each event is delivered as a JSON object with the standard event envelope. You can subscribe to specific event types when creating an endpoint, or receive all events by leaving the filter empty.

Account events

Account events fire when a user’s linked financial accounts change.
A new financial account was linked.Fired when a user successfully connects a financial institution through the Yoshi link flow.
{
  "id": "evt_9YnQRSnLE4FrI3XmYdSTzUHfCU",
  "type": "account.connected",
  "created_at": "2026-04-10T12:00:00.000Z",
  "api_version": "2026-04-10",
  "data": {
    "id": "acc_xyz789",
    "name": "Chase Checking (...4521)",
    "type": "depository",
    "subtype": "checking",
    "institution_name": "Chase"
  }
}
FieldTypeDescription
data.idstringAccount ID. Use with GET /accounts to fetch full details.
data.namestringDisplay name with masked account number.
data.typestringAccount type: depository, credit, investment, loan, or other.
data.subtypestring | nullAccount subtype, e.g. checking, savings, credit card.
data.institution_namestring | nullName of the financial institution.
Account access was revoked.Fired when a financial account is disconnected — either by the user unlinking it or due to an institution-side error that revoked access.
{
  "id": "evt_7XmPQRnKE3EqH2WlXcRTzTGeBU",
  "type": "account.disconnected",
  "created_at": "2026-04-10T16:00:00.000Z",
  "api_version": "2026-04-10",
  "data": {
    "id": "acc_xyz789",
    "name": "Chase Checking (...4521)",
    "reason": "ITEM_LOGIN_REQUIRED"
  }
}
FieldTypeDescription
data.idstringAccount ID.
data.namestringDisplay name of the disconnected account.
data.reasonstring | nullReason for disconnection, if available.
Account metadata changed.Fired when an account’s name, type, or other metadata changes during a sync.
{
  "id": "evt_5WkNOPmJD2DpG1VkWbQSySFdBT",
  "type": "account.updated",
  "created_at": "2026-04-10T13:00:00.000Z",
  "api_version": "2026-04-10",
  "data": {
    "id": "acc_xyz789",
    "name": "Chase Savings (...4521)",
    "type": "depository",
    "subtype": "savings"
  }
}
FieldTypeDescription
data.idstringAccount ID.
data.namestringUpdated display name.
data.typestringAccount type.
data.subtypestring | nullAccount subtype.

Transaction events

Transaction events fire when transactions are synced from financial institutions.
New transactions synced from an institution.Fired after new transactions are persisted during a transaction sync. The payload contains transaction IDs — fetch full details via GET /transactions.
{
  "id": "evt_2KWPBQMnRE2EqH9WlXbQTzSGeAT",
  "type": "transaction.created",
  "created_at": "2026-04-10T14:30:00.000Z",
  "api_version": "2026-04-10",
  "data": {
    "account_id": "acc_xyz789",
    "transaction_ids": ["txn_abc123", "txn_def456", "txn_ghi789"],
    "count": 3
  }
}
FieldTypeDescription
data.account_idstringThe account that the transactions belong to.
data.transaction_idsstring[]IDs of the new transactions.
data.countnumberNumber of new transactions in this event.
Transaction details were modified.Fired when existing transactions are re-categorized, have merchant names corrected, or are otherwise updated by the institution.
{
  "id": "evt_4VjMNOlIC1CnF0UjVaPS1REdAS",
  "type": "transaction.updated",
  "created_at": "2026-04-10T15:00:00.000Z",
  "api_version": "2026-04-10",
  "data": {
    "account_id": "acc_xyz789",
    "transaction_ids": ["txn_abc123"],
    "count": 1
  }
}
FieldTypeDescription
data.account_idstringThe account that the transactions belong to.
data.transaction_idsstring[]IDs of the updated transactions.
data.countnumberNumber of updated transactions.
Transactions were removed by the institution.Fired when an institution retroactively removes transactions — for example, when a pending transaction is voided.
{
  "id": "evt_6XoPRSnME4GsJ2YmZeUTzVIfDW",
  "type": "transaction.removed",
  "created_at": "2026-04-10T16:30:00.000Z",
  "api_version": "2026-04-10",
  "data": {
    "account_id": "acc_xyz789",
    "transaction_ids": ["txn_abc123"],
    "count": 1
  }
}
FieldTypeDescription
data.account_idstringThe account that the transactions belonged to.
data.transaction_idsstring[]IDs of the removed transactions.
data.countnumberNumber of removed transactions.

Balance events

Account balance was refreshed.Fired when an account’s current or available balance changes during a sync.
{
  "id": "evt_8XmPQRnKE3EqH2WlXcRTzTGeBS",
  "type": "balance.updated",
  "created_at": "2026-04-10T15:00:00.000Z",
  "api_version": "2026-04-10",
  "data": {
    "account_id": "acc_xyz789",
    "current": 4523.17,
    "available": 4423.17,
    "currency": "USD"
  }
}
FieldTypeDescription
data.account_idstringAccount ID.
data.currentnumber | nullCurrent balance.
data.availablenumber | nullAvailable balance (may differ from current due to holds).
data.currencystringISO 4217 currency code.

Investment events

Investment holdings data was refreshed.Fired after an investment account sync updates holdings positions.
{
  "id": "evt_3UiLMNkHB0BmE9TiUZOR0QDcZR",
  "type": "investment.holdings_updated",
  "created_at": "2026-04-10T09:00:00.000Z",
  "api_version": "2026-04-10",
  "data": {
    "account_id": "acc_inv456",
    "holding_count": 12
  }
}
FieldTypeDescription
data.account_idstringInvestment account ID.
data.holding_countnumberNumber of holdings in the account after the sync.
New investment transactions detected.Fired when new investment transactions (buys, sells, dividends) are synced.
{
  "id": "evt_1ThKLMjGA9AlD8ShTYNQ9PCbYQ",
  "type": "investment.transaction_created",
  "created_at": "2026-04-10T09:30:00.000Z",
  "api_version": "2026-04-10",
  "data": {
    "account_id": "acc_inv456",
    "transaction_ids": ["itxn_abc123"],
    "count": 1
  }
}
FieldTypeDescription
data.account_idstringInvestment account ID.
data.transaction_idsstring[]IDs of the new investment transactions.
data.countnumberNumber of new investment transactions.

Score events

Financial health scores were recalculated.Fired after a user’s financial health scores are recomputed based on new data.
{
  "id": "evt_0SgJKLiF98ZkC7RgSXMP8OBaXP",
  "type": "score.updated",
  "created_at": "2026-04-10T10:00:00.000Z",
  "api_version": "2026-04-10",
  "data": {
    "user_id": "usr_abc123",
    "score_types": ["recovery", "capacity", "baseline", "composite"]
  }
}
FieldTypeDescription
data.user_idstringUser whose scores were updated.
data.score_typesstring[]Which score types were recalculated.

Income events

Income stream identified or updated.Fired when income analysis detects or updates recurring income streams for a user.
{
  "id": "evt_BRfHIKhE87YjB6QfRWLO7NAzWO",
  "type": "income.detected",
  "created_at": "2026-04-10T11:00:00.000Z",
  "api_version": "2026-04-10",
  "data": {
    "user_id": "usr_abc123",
    "stream_count": 2
  }
}
FieldTypeDescription
data.user_idstringUser whose income was analyzed.
data.stream_countnumberNumber of income streams detected.

Recurring events

Recurring transaction streams were re-analyzed.Fired when Yoshi re-evaluates a user’s recurring transactions (subscriptions, bills, regular transfers).
{
  "id": "evt_CQeGHJgD76XiA5PeQVKN6MZyVN",
  "type": "recurring.updated",
  "created_at": "2026-04-10T11:30:00.000Z",
  "api_version": "2026-04-10",
  "data": {
    "user_id": "usr_abc123",
    "stream_count": 8
  }
}
FieldTypeDescription
data.user_idstringUser whose recurring streams were analyzed.
data.stream_countnumberNumber of recurring streams detected.
Last modified on April 17, 2026