# Webhooks

When integrating with Footprint, you may want your application to receive events
as they occur in Footprint so your backend system can react accordingly.

At their core, webhooks are just a POST request sent to a pre-determined
endpoint that you configure. Footprint uses HTTPS to send webhook events to your
app as a JSON payload. By returning an HTTP 2xx, your endpoint indicates that
the webhook has been processed.

To enable webhook events, you need to register webhook endpoints in the
[Footprint dashboard](https://dashboard.onefootprint.com/webhooks). After you
register them, Footprint can push real-time event data to your application's
webhook endpoint when events happen in Footprint.

# Getting started

To get started, see the
[guide to consuming webhooks](https://docs.svix.com/receiving/introduction).

We recommend that you secure your integration by always verifying that all
webhook requests are generated by Footprint. Please see our guide on [securely
verifying webhook
signatures](https://docs.svix.com/receiving/verifying-payloads/how).

# Recommended integration

When integrating with Footprint's frontend SDKs for collecting and verifying
user information, you most commonly may want to subscribe to events related to a
user's status.

## Onboarding completed

We recommend subscribing to the
footprint.onboarding.completed
event, which will fire when a user's onboarding has reached a terminal status.

In most cases, the
[status received synchronously](/articles/guide/definitive-integration-guide#the-end-to-end-integration-step-5-process-the-validation-token-the-verification-result)
at the end of Footprint's onboarding flow will be a terminal `pass`, `fail`, or
`none`. In some cases where identity verifications vendors take longer to verify
a user, you will synchronously receive a `pending` status in your integration
with the frontend SDK. In these cases, you will receive the final decision for
an onboarding through the `footprint.onboarding.completed` event.

## Manual review

Employees at your company may change a user's status while manually reviewing a
user in the Footprint dashboard. This will fire the
footprint.user.manual\_review
event. Upon receiving this webhook, we recommend consulting the
GET
/users/{fp_id} API for information on the user's new manual
status.

## Watchlist checks

If your playbook has continuous monitoring enabled, Footprint will regularly
check if any of your users are found on AML watchlists. Updates on watchlist
checks are sent using the
footprint.watchlist\_check.completed
event.