Overview
Some cashout flows require the user to accept the latest legal disclosure before continuing. ZBD tracks acceptance by disclosure type and version, so a user may need to accept a new version even if they accepted an older version before. Your application is responsible for presenting the documents and collecting the user’s acceptance before it creates a widget session. The widget does not render Terms of Service, Privacy Policy, or other disclosure documents, or record acceptance on the publisher’s behalf. It validates that the required terms have been accepted before the user can access its services.End-to-end Flow
Do not open a widget session until the publisher-side disclosure flow is complete. The disclosure APIs require your server-side API key and must not be called from a browser, game client, or WebView.
Outstanding Disclosures on User Creation
You do not need a separate call to discover what a user still owes. The Create User response (POST /api/v1/widget/users) already includes an outstanding_disclosures array on that first user request — the disclosure versions this user has not yet accepted. Surface or record them right away; if the array is empty, the user is current.
outstanding_disclosures only lists what is still outstanding. When you need the complete picture — including which disclosures a user has already accepted and when — use the dedicated endpoints:
- Get Disclosure Status — list every current disclosure type with the user’s acceptance state (
tos_current,accepted_at), so you can show accepted vs. outstanding. - Submit Disclosure Acceptance — record acceptance of the latest version from your server.
The same
outstanding_disclosures shape also appears in the widget session status during a session (see Session Status). Create User is the initial snapshot at provisioning time; Get Disclosure Status is the source of truth for the full, up-to-date acceptance state.Disclosure Types
The widget disclosure endpoints can check and record acceptance for all current disclosure types.ACH cashout submission requires the current Electronic Funds Transfer disclosure to be accepted. If the user has not accepted the latest Electronic Funds Transfer disclosure, the cashout request is rejected until acceptance is recorded.
Session Status
During a widget session, ZBD can return outstanding disclosure information as a read-only status. The field is namedoutstanding_disclosures. This does not
cause the widget to display the documents or collect acceptance.
Terms of Service and Privacy Policy are expected to be accepted before session
creation. Cashout-specific checks, such as Electronic Funds Transfer acceptance
for ACH, are enforced when the user submits the cashout.
Example session status shape:
outstanding_disclosures is empty, the user is current on all session disclosures returned by this endpoint. If it is not empty, return the user to the publisher-side acceptance flow rather than expecting the widget to collect it.