Skip to main content

Webhooks

Server-based applications may receive connection events via Webhooks.

Webhooks can be enabled directly from the Client Portal. Go to API Keys and click on Webhook URL. Please note that you must be on a premium plan to have access to webhooks.

Source IP addresses

All webhook deliveries originate from a small, fixed set of static IP addresses. If you restrict inbound traffic by source IP, add all four addresses to your allowlist:

52.60.234.183
52.60.240.87
52.60.241.79
52.60.242.161

These addresses are stable and not expected to change. We will give advance notice if they ever do.

Request headers

Every webhook request includes an x-client-id header containing your client app id. You can use it to identify which of your applications the event belongs to.

List of webhooks

SyncAccount

A SyncAccount webhook can be sent to your receiving endpoint via a POST when an account successfully syncs. The account refresh happens once daily, or on demand (when you POST to /accounts/:id/sync endpoint). The webhook is triggered at the end of the process if it’s successful. It would have the following schema in the body JSON:

{
hook: "SyncAccount",
user: { id, loginName },
account: { id, provider }
}

SyncError

A SyncError webhook can be sent to your receiving endpoint via a POST when an account fails to sync. It would have the following schema in the body JSON:

{
hook: "SyncError",
user: { id, loginName },
account: { id, provider },
error: "LoginFailedError|SecurityQuestionError|TemporaryFailureError"
}
  • LoginFailedError: indicates an issue with the account credentials (token, key, wallet address) and requires a reconnection (Reconnect an account). User will need to provide new credentials before the account could be synced again.
  • SecurityQuestionError: indicates a need of user input (usually for security question or 2FA verification) in order to connect the account successfully. This also requires a Reconnect process where user would re-enter credentials and be prompted for the verification process.
  • TemporaryFailureError: indicates a temporary failure while syncing the account. When encountering this error, an automatic retry will be scheduled, and there is no need to take action. But if this error keeps happening for the same account, it is advised to contact us with the account id for investigation.
  • UnhandledConnectorError: indicates an unhandled failure while syncing the account. When encountering this error, it is advised to contact us with the account id for investigation.
  • UnknownConnectorError: indicates an unknown failure while syncing the account. When encountering this error, it is advised to contact us with the account id for investigation.