Footprint Webhook Event Types 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.
A custom status was set, updated, or cleared on an Footprint user or business entity.
event_kind WebhookEventKind
status EntityStatusPayload
timestamp string
(date-time)
Example EntityStatusChangedPayload
JSON
{
"entity_kind" : "person" ,
"event_kind" : "footprint.entity.entity_status_set" ,
"fp_id" : "fp_id_xyz" ,
"is_live" : false ,
"status" : {
"kind" : "verification_status" ,
"value" : "verified"
} ,
"timestamp" : "2024-06-14T02:40:00Z"
} 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 GET /onboardings/{id} 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/guide/definitive-integration-guide#the-end-to-end-integration-step-5-handle-the-decision-step-5-c-read-the-decision).
event_kind WebhookEventKind
external_id string
null
Optional onboarding_external_id string
null
Optional playbook_version integer
null
(int32)
Optional requires_manual_review boolean
timestamp string
(date-time)
Example OnboardingCompletedPayload
JSON
{
"event_kind" : "footprint.onboarding.completed" ,
"external_id" : null ,
"fp_id" : "fp_id_xyz" ,
"is_live" : false ,
"onboarding_external_id" : null ,
"onboarding_id" : "ob_SRFT2a1mN7DAWJ0VPXkiqK" ,
"playbook_key" : "pb_test_QoEYTOve49Q2IAmaKVYnPs" ,
"playbook_version" : 3 ,
"requires_manual_review" : false ,
"status" : "pass" ,
"timestamp" : "2024-06-14T02:40:00Z"
} An onboarding started via the POST /onboardings API is incomplete — there are still requirements that need to be fulfilled before a terminal status can be reached. This webhook fires once the background workflow execution settles and the onboarding is still in the `incomplete` state.
event_kind WebhookEventKind
external_id string
null
Optional onboarding_external_id string
null
Optional playbook_version integer
null
(int32)
Optional timestamp string
(date-time)
Example OnboardingIncompletePayload
JSON
{
"event_kind" : "footprint.onboarding.incomplete" ,
"external_id" : null ,
"fp_id" : "fp_id_xyz" ,
"is_live" : false ,
"onboarding_external_id" : null ,
"onboarding_id" : "ob_SRFT2a1mN7DAWJ0VPXkiqK" ,
"playbook_key" : "pb_test_QoEYTOve49Q2IAmaKVYnPs" ,
"playbook_version" : 3 ,
"timestamp" : "2024-06-14T02:40:00Z"
} 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 WebhookEventKind
new_status ScopedVaultStatus
requires_manual_review boolean
timestamp string
(date-time)
Example OnboardingStatusChangedPayload
JSON
{
"event_kind" : "footprint.onboarding.status_changed" ,
"fp_id" : "fp_id_xyz" ,
"is_live" : false ,
"new_status" : "pass" ,
"requires_manual_review" : false ,
"timestamp" : "2024-06-14T02:40:00Z"
} A Footprint user's bank link was updated.
error_message string
null
Optional An error message if the update failed
event_kind WebhookEventKind
The id of the user the link belongs to
Whether the link was created in live mode
link_error string
null
Optional The current error state of the link
The kind of link event update performed
link_external_id string
null
Optional The external id of the bank link
link_product_refresh anyOf
Optional If a product was refreshed, this will be populated
link_state string
null
Optional The current state of the link
timestamp string
(date-time)
The timestamp of the event
user_external_id string
null
Optional The external id of the user the link belongs to
Example UserBankLinkUpdatedPayload
JSON
{
"error_message" : null ,
"event_kind" : "footprint.user.bank_link_updated" ,
"fp_id" : "fp_id_xyz" ,
"is_live" : false ,
"link_error" : null ,
"link_event_kind" : "link_product_refreshed" ,
"link_external_id" : null ,
"link_id" : "bank_link_abcd1234" ,
"link_product_refresh" : {
"product" : "transactions" ,
"success" : true
} ,
"link_state" : "connected" ,
"timestamp" : "2024-06-14T02:40:00Z" ,
"user_external_id" : null
} 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 WebhookEventKind
external_id string
null
Optional timestamp string
(date-time)
Example UserInfoRequestedPayload
JSON
{
"event_kind" : "footprint.user.info_requested" ,
"external_id" : null ,
"fp_id" : "fp_id_xyz" ,
"is_live" : false ,
"timestamp" : "2024-06-14T02:40:00Z"
} 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 WebhookEventKind
external_id string
null
Optional timestamp string
(date-time)
Example UserManualReviewPayload
JSON
{
"event_kind" : "footprint.user.manual_review" ,
"external_id" : null ,
"fp_id" : "fp_id_xyz" ,
"is_live" : false ,
"timestamp" : "2024-06-14T02:40:00Z"
} A Footprint user or business vault was updated.
event_kind WebhookEventKind
external_id string
null
Optional source UserVaultUpdateSource
timestamp string
(date-time)
Example UserVaultUpdatedPayload
JSON
{
"event_kind" : "footprint.vault.updated" ,
"external_id" : null ,
"fields" : [
"id.ssn9" ,
"id.first_name"
] ,
"fp_id" : "fp_id_xyz" ,
"is_live" : false ,
"source" : "dashboard" ,
"timestamp" : "2024-06-14T02:40:00Z"
} A watchlist check has run for the user.
event_kind WebhookEventKind
external_id string
null
Optional status WatchlistCheckStatusKind
timestamp string
(date-time)
Example WatchlistCheckCompletedPayload
JSON
{
"error" : null ,
"event_kind" : "footprint.watchlist_check.completed" ,
"external_id" : null ,
"fp_id" : "fp_id_xyz" ,
"is_live" : false ,
"onboarding_id" : "ob_SRFT2a1mN7DAWJ0VPXkiqK" ,
"status" : "pending" ,
"timestamp" : "2024-06-14T02:40:00Z"
} Powered by