Skip to main content
Verification is asynchronous. Bridge reviews the submission after the user completes the hosted flow, and can revoke an endorsement later. Your app can poll for status or subscribe to webhooks. See Bridge’s customer status lifecycle for how Bridge derives each status. Before tracking status, create a KYC link for the user.

Fetch by API

Use the list method from the kyc resource on users().

Acting on requirements

Each entry in requirements_due and endorsements[].missing names data Bridge is still waiting on. How you satisfy it depends on the flow:
  • Headless: collect the data and call POST /v1/users/{user_id}/kyc/submit again with just the new fields. Submissions are re-entrant, so this updates the existing Bridge customer.
  • Hosted: create a new hosted KYC link and send the user back through it.
Both flows act on the same Bridge customer, so a requirement the headless fields cannot express can always be completed through a hosted link. An empty requirements_due alongside an approved endorsement means nothing is outstanding.

Webhooks

Privy emits a user.kyc.updated webhook whenever a user’s verification state changes at Bridge, re-emitting Bridge’s customer webhooks as a Privy event. The payload carries a full state snapshot in data and a changes diff of the fields that moved, so your app can react to a specific transition without storing prior state.
Webhooks can be tested at no cost in development environments. To enable webhooks in production, upgrade to the Enterprise plan in the Privy Dashboard.
If an endorsement is incomplete, read data.endorsements[].missing for the requirements Bridge is still waiting on, then create a new KYC link for the user to resolve them.

Next steps

Handling webhook events

Configure an endpoint to receive Privy webhook events

KYB

Verify an organization