KycWidget to run the BigDataCorp identity wizard in your app — intro, basic data, a hosted
document-capture iframe, address, review, and analyzing steps. The host owns user identity and
navigation; the SDK has no account concept, so you pass the user’s email and wallet in and receive
status updates back.
Approval is what unlocks Pods Ramp money movement. Once the profile reaches
approved (with
brlaEnabled: true), send the user into the RampWidget.Install
Use the same package set and sharedPodsWidgetProvider wrapper as EarnWidget, pinned to a
version that includes the KYC widget:
Import
KycWidget from pods-sdk so it shares the same React context as the other widgets.Styles and Theme
KycWidget follows the same styling model as EarnWidget: import
@deframe-sdk/components/styles.css once and theme via PodsProvider.config.theme. See
EarnWidget Styles and Theme. The widget renders a hosted
BigDataIframe mid-flow for document capture.
Render the Wizard
MountKycWidget inside the shared PodsWidgetProvider from the Earn guide. Pass the host-owned
identity; the widget drives the linear wizard itself.
Host Identity and Resume
The SDK has no user store, so identity comes from the host:currentUserEmail/currentUserWalletAddress— bind the KYC profile to your user.initialKycUserId— resume an existing session (e.g. after a page refresh) instead of bootstrapping fresh.onSessionCreated({ kycUserId, iframeUrl })— fires right after a session is created; persist both so you can resume and reopen the capture iframe.redirectIntent('withdraw'|'deposit') — where “continue” after approval should take the user; the widget never navigates itself, it reports the intent viaonComplete/onRouteChange.
Status and Completion
onStatusChange(status: KycStatusResponse)— mirrors every status fetch into your own store.onComplete({ approved, redirectIntent? })— fires when the wizard reaches a decision.errorMessageResolver(rawReason?) => string | undefined— host-owned copy for provider error reasons (defaults to pass-through).onRequestSandboxReset— dev-only reset; wire it behind your own sandbox env check so the reset action never renders in production.onTrack(event, props?)— analytics.
created → provider_pending → approved | rejected | rejected_retryable | blocked. brlaEnabled on the status response is the flag that unlocks Ramp.
KycWidget Props
API Endpoints Used in KYC Flows
POST /api/v1/kyc/bigdatacorp/sessions— create a session (returnskycUserId+ hostediframeUrl)POST /api/v1/kyc/bigdatacorp/submit— submit applicant phone + addressGET /api/v1/kyc/status— poll the normalized status until terminal
Next Step
Once the profile isapproved, move money with the RampWidget.