Skip to main content
A Connection represents an authenticated link between Waycore and a single institution on behalf of one of your users. Every account and transaction in the API is scoped to a connection.

Lifecycle

StatusMeaning
activeSyncing normally.
reauthRequiredThe delegated user’s credentials have expired and must be renewed.
pausedSyncing paused.
revokedAccess was explicitly revoked. No further syncs will occur.
erroredA recoverable error is preventing sync. Check errorCode and errorMessage.
When a connection becomes reauthRequired or errored a connection.status_changed webhook is fired so you can prompt the user to reconnect without polling.

Forcing a sync

By default, connections sync on a schedule managed by the platform. If you need fresh data immediately — for example, after a user completes an action in their bank — you can trigger a sync manually using PUT /v1/connections/{connectionId}/sync. The sync runs asynchronously; the endpoint returns 202 Accepted as soon as the job is queued. Listen for the transactions.sync_available webhook to know when new data is ready to pull. If a sync is already in progress for the connection, the endpoint returns 409 Conflict — poll GET /v1/connections/{connectionId} to check the current sync status before retrying.

Key fields

  • institutionId — Waycore’s canonical identifier for the institution. Stable across connections.
  • lastSyncedAt — When data was last successfully refreshed. Useful for displaying freshness indicators.
  • errorCode / errorMessage — Present when status is errored or reauthRequired.
  • metadata — Arbitrary key-value bag for storing your own identifiers (e.g. your internal customer ID).

Endpoints

Required scopes

ScopeUsed by
connections:writeCreate a connection
connections:readList, get