Account Webhook Events

Account webhooks notify you when an account has been created, and when an account's monitoring status has been updated.

account.added

User successfully logs into their account. This webhook correlates to the onLogin callback.

Payload Schema

Payload ParamTypeDescription
account_idstringUUID of the account the user has successfully logged into.
end_user_idstringThe user identifier you specified when creating the Link token, if provided.
link_token_idstringUUID of the Link token used to initialize Link.
platform_idstringUUID of the platform associated with this account.
platform_namestringThe name of the platform associated with this account.
platform_typestringThe type of the platform. payroll platforms are used for direct-deposit switching and for Verify use cases. time_and_attendance platforms contain data around shifts and hours. tax platforms are used for tax solutions. merchant type platforms are used for bill switching and cancellation.
reported_platform_name (optional)stringIf the user attempts a bill switch/cancellation against a merchant we don't track, the platform_name will be "Other (merchant)" and this field will contain the reported name of the merchant.
reserved_platform_id (optional)stringSimilar to reported_platform_name, this field holds the UUID of the merchant/platform if we add it in the future.
created_atstringISO 8601 timestamp of account creation.
connectedbooleanIf set to true, you can retrieve new information for the account on a recurring basis.
monitoring_statusstringDescribes the automated ability of Pinwheel to retrieve new account information. See account.monitoring_status.updated for possible values.

Sample Webhook Event - login to payroll platform

{
  "event": "account.added",
  "event_id": "5a141122-4235-4fa1-bd76-0628573880b0",
  "payload": {
    "account_id": "03bbc20e-bc39-464a-b4dc-4b63ffb7213d",
    "end_user_id": "my_user_12345",
    "link_token_id": "7c4ac4be-4a0e-4468-ab26-c42b249b233b",
    "platform_id": "fce3eee0-285b-496f-9b36-30e976194736",
    "platform_name": "Justworks",
    "platform_type": "payroll",
    "created_at": "2021-01-12T02:36:01.287148+00:00",
    "connected": true,
    "monitoring_status": "active"
  }
}

Sample Webhook Event - user logs in to untracked merchant platform

{
  "event": "account.added",
  "event_id": "5a141122-4235-4fa1-bd76-0628573880b0",
  "payload": {
    "account_id": "03bbc20e-bc39-464a-b4dc-4b63ffb7213d",
    "end_user_id": "my_user_12345",
    "link_token_id": "7c4ac4be-4a0e-4468-ab26-c42b249b233b",
    "platform_id": "0cc073dc-f3f7-4a9e-a287-fb34a43cb71e",
    "platform_name": "Other (merchant)",
    "platform_type": "merchant",
    "reported_platform_name": "Smalltown Life Insurance Co",
    "reserved_platform_id": "5d426d0e-0618-46ea-945a-b8ca679ac39f",
    "created_at": "2021-01-12T02:36:01.287148+00:00",
    "connected": true,
    "monitoring_status": "active",
  }
}

account.additional_connections_recommended

This webhook event evaluates the data retrieved from a payroll account to determine if another account (e.g., a T&A account) could provide additional data and provides a suggested action to take.

Payload Schema

Payload ParamTypeDescription
account_idstringUUID of the payroll account.
end_user_idstringThe user identifier you specified when creating the Link token, if provided.
additional_connectionsarrayA list of platform connection recommendations.
additional_connections.platform_typestringThe type of the platform this recommendation is for. Currently, only supports "time_and_attendance".
additional_connections.actionstringOne of none, login, search, or ask.
additional_connections.platform_id (optional)stringUUID of the recommended platform, if we recommended connecting to it (i.e., action is login).
link_token_idstringUUID of the Link token used to initialize Link.

Sample Webhook Event

{
  "event": "account.additional_connections_recommended",
  "event_id": "5a141122-4235-4fa1-bd76-0628573880b0",
  "payload": {
    "account_id": "03bbc20e-bc39-464a-b4dc-4b63ffb7213d",
    "end_user_id": "my_user_12345",
    "link_token_id": "158dc949-84a3-4c81-bf7f-2977b4d70048",
    "additional_connections": [
        {
            "platform_type": "time_and_attendance",
            "action": "login",
            "platform_id": "7ceec993-c958-4b90-b419-fda2506b612d"
        }
    ]
  }
}

account.monitoring_status.updated

Pinwheel's ability to monitor a payroll account has changed. See Recurring Access for more info.

Several monitoring statuses are possible:

monitoring_statusDescription
activePinwheel is monitoring for data changes daily.
degradedPinwheel is trying to monitor but seeing spurious errors and may be unable to return data for the time being. You may want to use this to inform users about laggy data.
user_action_requiredYou need to use On Demand Updates to have a user re-complete the login process.
unavailablePinwheel doesn’t support monitoring for this account.
customer_disabledYou used POST /v1/accounts/{id}/disable_monitoring to manually turn off monitoring.

Payload Schema

Payload ParamTypeDescription
account_idstringUUID of the payroll account.
end_user_idstringThe user identifier you specified when the user initially connected to the account, if provided.
updated_atstringISO 8601 timestamp of when Pinwheel updated the monitoring_status for this account.
current_monitoring_statusstringThe latest monitoring status for the account. See the table above for a set of possible values.

Sample Webhook Event

{
  "event": "account.monitoring_status.updated",
  "event_id": "5a141122-4235-4fa1-bd76-0123456780b0",
  "payload": {
    "current_monitoring_status": "active",
    "account_id": "449e7a5c-69d3-4b8a-aaaf-5c9b713ebc65",
    "end_user_id": "my_user_12345",
    "updated_at": "2021-01-12T02:36:01.287148+00:00"
  }
}