Use this checklist to confirm your integration is complete and production-ready.Documentation Index
Fetch the complete documentation index at: https://docs.proof.community/llms.txt
Use this file to discover all available pages before exploring further.
Onboarding
Provided company name, registered origins, partner type, allowed crypto currencies, and (if applicable) initial wallet addresses to the Proof team
Received
partner_id, client_token, widget_id, and base URL from the Proof teamConfirmed whether off-ramp (
sell) is enabled for your partner recordAccess control
Every server-side caller uses
Authorization: Bearer <client_token>Every browser-side caller sends a registered
Origin headerYou understand that there is no partner-IP allowlist — any IP gating is your responsibility
Core integration
POST /widget/session is called with partner_user_id, user_email, network, currency, amount, and (if needed) typeWidget script (
https://widget.proof.community/widget.2.0.js) loadedproofWidget.run() called with every parameter from the session response, passed verbatimAt least one server-observable status channel implemented: polling, WebSocket, or webhook
Polling or WebSocket stops on terminal statuses (
completed, failed, cancelled)Currency and wallet coverage
Confirmed with Proof that every
(currency, network) pair your users will request is enabled for your integrationTested a session for each supported
(currency, network) and received an address in the responseError handling
Surface
wallet_not_supported and currency_not_allowed to your operator dashboard — these usually mean Proof needs to enable something for your integrationRetry
502 upstream_error with a small exponential backoffTreat
403 forbidden_origin as a configuration bug, not a runtime errorIdentity verification
Tested a first-time user flow (document upload + liveness check) end to end
Tested a returning verified user — confirmed the verification step is skipped
Payments
Tested on-ramp (buy) end to end and observed a
completed statusTested a failure path and observed a
failed statusTested off-ramp (sell) end to end, if enabled
Webhook (if webhook_url configured)
Your endpoint responds
2xx quickly and processes asynchronouslyYour handler is idempotent on
merchant_transaction_id — Proof may redeliverMobile
iOS:
NSCameraUsageDescription set in Info.plistiOS:
allowsInlineMediaPlayback enabled in WKWebView configiOS: verification camera tested
iOS: Apple Pay tested in Safari / WKWebView
Android: widget opened via Chrome Custom Tabs
Android: verification camera tested
Android: Google Pay tested in Chrome Custom Tabs
Go live
Confirmed go-live readiness with Proof team
Completed first live transaction with Proof team monitoring