Lifecycle
| Status | Meaning |
|---|---|
active | Syncing normally. |
reauthRequired | The delegated user’s credentials have expired and must be renewed. |
paused | Syncing paused. |
revoked | Access was explicitly revoked. No further syncs will occur. |
errored | A recoverable error is preventing sync. Check errorCode and errorMessage. |
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 usingPUT /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 whenstatusiserroredorreauthRequired.metadata— Arbitrary key-value bag for storing your own identifiers (e.g. your internal customer ID).
Endpoints
Required scopes
| Scope | Used by |
|---|---|
connections:write | Create a connection |
connections:read | List, get |