Get approved by Bridge
Bridge grants reliance per app, and only after reviewing the onboarding flow. Build the flow to the requirements below, then submit it for review. Until the app is approved, Bridge ignoresclient_agreement_id and still requires its own acceptance page.
Bridge owns these requirements and may change them. Its terms of service reliance documentation is the authoritative reference.
Show Bridge’s consent language
Display a checkbox alongside this exact text, with both documents linked:By clicking “Accept”, you agree to Bridge’s [Terms of Service] and [Privacy Policy].Link the terms and privacy policy for the region the user is in. Bridge does not permit either document to be embedded inside another link.
Store an attestation for each acceptance
Record that the user accepted, under an identifier your app can look up later. Bridge may send a list of identifiers and ask for the matching attestations at any time, so a random or non-durable value is not sufficient.Submit the flow for review
Share a screenshot of the completed flow with your Bridge contact. Bridge submits it for review and approves reliance for the app.Signal acceptance to Bridge
Once the app is approved, each user still accepts Bridge’s terms in your app’s own flow. Pass the identifier for that user’s stored attestation asclient_agreement_id on the verification request, and Privy signals Bridge on your app’s behalf.
client_agreement_id is an optional string between 1 and 1024 characters. It accompanies the verification request rather than a separate call, so there is no reliance-specific endpoint.
- Hosted KYC
- Headless KYC
Include On this path Privy sends Bridge only the fact of acceptance, as
client_agreement_id when creating the KYC link. Bridge returns a link
that goes straight to identity verification, with no terms of service step.developer_accepted_tos. The
identifier itself is not forwarded or stored. Omitting it produces a link that includes Bridge’s
terms of service step.Verify acceptance took effect
The verification response reports terms of service status undertos.status. When reliance applies, Bridge reports the requirement as satisfied and omits its own acceptance link.
tos.status of pending after passing client_agreement_id means Bridge did not treat the terms of service requirement as satisfied, and still expects the user to accept on Bridge’s own page. Confirm with Bridge that the app is approved for reliance.
Next steps
Hosted KYC
Send the user through Bridge’s hosted verification flow
Headless KYC
Submit verification data from your server

