Skip to main content
Every object has an opaque ID made of a type prefix and a random-looking suffix, e.g. fa_5dr8SFDbv7rZ2aj4FQmLAfYw2bVx for a financial account.

Guarantees

  • Stable. An object keeps its ID for life. Re-fetching, re-syncing or reconnecting never issues a new ID, so IDs are safe to store and use as deduplication keys.
  • Updated in place. When an object changes, for example a transaction’s status, it keeps its ID, and updated_at moves forward on objects that have it. A change never creates a new object.
  • Unique. IDs are unique across all object types; the prefix tells you the type.
  • Opaque. Do not parse the suffix or derive meaning from it. Compare IDs as exact, case-sensitive strings.
A returned transaction keeps its ID and moves to returned. The money coming back is a separate transaction with its own ID, not an update to the original.

Prefixes

New prefixes are added as new objects are exposed.

Length

Each field documents its ID’s length. Most IDs are a fixed length per type. tx_ IDs are 31 or 33 characters including the prefix, and page_ cursors vary in length and are only valid for the list they came from.
Last modified on October 27, 2026