Poll an organization’s KYB status or subscribe to verification webhooks
Verification is asynchronous. Bridge reviews the submission after the representative 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 KYB link for the organization.
Use the list method from the kyb resource on organizations().
import {PrivyClient} from '@privy-io/node';const privy = new PrivyClient({ appId: process.env.PRIVY_APP_ID!, appSecret: process.env.PRIVY_APP_SECRET!});const {kyb_statuses: statuses} = await privy.organizations().kyb.list('<organization-id>');// one entry per provider the organization has been verified withfor (const status of statuses) { console.log(status.provider, status.kyb.status, status.endorsements);}
Privy emits an organization.kyb.updatedwebhook whenever an organization’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.
Fields that changed, keyed by dot-notation path. Each value is a [previous, current] tuple.
Privy omits events where no meaningful verification field changed.
If an endorsement is incomplete, read data.endorsements[].missing for the requirements Bridge is still waiting on, then create a new KYB link for the organization to resolve them.