This is the list of event types that we currently send.
For guidance on how to listen to these events, take a look at Svix's guide to consuming webhooks.
The user has completed onboarding onto a playbook and we have a terminal status. In most cases, this will fire as the user finishes the onboarding flow. In some cases (like KYB), the terminal verification status may not come until a few minutes after the user has exited the onboarding flow. Generally, you should be able to receive the completed onboarding's status synchronously when the user finishes onboarding via the POST /onboarding/session/validate API. You only need to listen to the status here as a fallback in case a user's status is pending after they finish onboarding. For more information see here https://docs.onefootprint.com/articles/kyc/getting-started#verify-the-footprint-token-server-side
{
"event_kind": "footprint.onboarding.completed",
"fp_id": "fp_id_xyz",
"is_live": false,
"onboarding_id": "ob_SRFT2a1mN7DAWJ0VPXkiqK",
"playbook_key": "pb_test_QoEYTOve49Q2IAmaKVYnPs",
"requires_manual_review": false,
"status": "pass",
"timestamp": "2025-05-05T18:40:46.240470542Z"
}
NOTE: This webhook is deprecated in favor of the more descriptive footprint.onboarding.completed and footprint.user.manual_review events. A user's status has been changed after finishing onboarding, manual review, or internal updates to the user's status. Generally, the pending and incomplete statuses aren't important to listen to here.
{
"event_kind": "footprint.onboarding.status_changed",
"fp_id": "fp_id_xyz",
"is_live": false,
"new_status": "pass",
"requires_manual_review": false,
"timestamp": "2025-05-05T18:40:46.593634921Z"
}
A Footprint user's bank link was updated.
{
"event_kind": "footprint.user.bank_link_updated",
"fp_id": "fp_id_xyz",
"is_live": false,
"link_event_body": {
"state": "connected"
},
"link_event_kind": "link.state_changed",
"link_id": "link_abcd1234",
"timestamp": "2025-05-05T18:40:47.004738311"
}
A Footprint dashboard user has requested this user to provide more information during the course of manual review. When responding to this webhook, you can see more context on the information requested using the GET /users/{fp_id} API.
{
"event_kind": "footprint.user.info_requested",
"fp_id": "fp_id_xyz",
"is_live": false,
"timestamp": "2025-05-05T18:40:46.757012039Z"
}
A Footprint dashboard user has changed the user's status during manual review. When responding to this webhook, you can see more context on the user's up-to-date status using the GET /users/{fp_id} API.
{
"event_kind": "footprint.user.manual_review",
"fp_id": "fp_id_xyz",
"is_live": false,
"timestamp": "2025-05-05T18:40:46.838207245Z"
}
A Footprint user or business vault was updated.
{
"event_kind": "footprint.vault.updated",
"fields": [
"id.ssn9",
"id.first_name"
],
"fp_id": "fp_id_xyz",
"is_live": false,
"source": "dashboard",
"timestamp": "2025-05-05T18:40:46.922565247Z"
}
A watchlist check has run for the user.
{
"error": null,
"event_kind": "footprint.watchlist_check.completed",
"fp_id": "fp_id_xyz",
"is_live": false,
"onboarding_id": "ob_SRFT2a1mN7DAWJ0VPXkiqK",
"status": "pending",
"timestamp": "2025-05-05T18:40:46.676272241Z"
}