Prerequisites
- A Shopify store (any plan)
- A Didit Console account with at least one workflow
Step 1: Install the app
- Open the install link: https://admin.shopify.com/oauth/install?client_id=091c43ccd91f610a1e647b0067e03ac1
- Select your store (if you have multiple stores)
- Click Install to add the app to your store
The app requests a single permission scope —
read_customers — used to prefill and cross-check the logged-in customer’s details when Auto-send Customer Data is enabled.Step 2: Configure Your Didit Credentials
After installation, you’ll be redirected to the Didit Verify Preferences page. Here you’ll connect the app to your Didit account.Get Your API Key
- Log in to the Didit Business Console
- Navigate to API & Webhooks in the left-hand sidebar
- Copy your API key

- Paste the API key into the Didit API Key field in the Shopify preferences
Get Your Workflow ID
- In the Didit Business Console, go to Workflows
- Select the workflow you want to use (or create a new one)
- Copy the Workflow ID (a UUID like
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)

- Paste the Workflow ID into the Didit Workflow ID field
Save Your Settings
Click Save Settings. You should see a success message:
Step 3: Add the Verify Button to Your Theme
- In your Shopify admin, go to Online Store → Themes
- Click Customize on your active theme
- Navigate to the page where you want the verification button (e.g., Account page, a custom page)
- Click Add section or Add block
- Go to the Apps tab
- Select Didit Verify
Accessing verification data
Shopify’s app review requires that data collected through a Shopify-hosted flow be accessible to the merchant within the Shopify admin or app context — not only on an external dashboard. The Didit Shopify app is designed around this constraint: verification results are delivered programmatically to your own backend, not behind the Didit Business Console.How verification data flows
1
Verification session created
The Shopify app creates a session server-side using your Didit API key. The customer completes the verification flow in the theme block (modal or embedded).
2
Result delivered via webhook
When the session reaches a terminal status, Didit sends a signed
status.updated webhook to the destination you configured in the Didit Business Console under API & Webhooks. The webhook body includes the full decision object — the same schema returned by GET /v3/session/{id}/decision/ — for Approved, Declined, In Review, and Abandoned statuses. Other terminal statuses (e.g. Expired, Kyc Expired) deliver the status change without a decision payload; call the API to inspect the session state.3
Retrieve on demand (optional)
Your backend can also call
GET /v3/session/{sessionId}/decision/ at any time to fetch the full decision payload (identity fields, liveness, AML, face match, etc.).Surfacing results within the Shopify app context
Shopify’s app review (requirement 5.1.5) requires that data collected through a Shopify-hosted flow be accessible to the merchant within the Shopify admin or app context — not only on an external dashboard. To satisfy this requirement:- Set up a webhook destination on your backend to receive
status.updatedanddata.updatedevents (see Configuring webhooks below). - Surface the results in your Shopify app UI — use the Shopify App Bridge or a Shopify-embedded admin page to display verification statuses and decision data to the merchant within the Shopify admin. Your app backend receives the webhook, stores the result, and serves it to the Shopify-embedded UI.
- Alternatively, use the API on demand — your Shopify app can call
GET /v3/session/{sessionId}/decision/when the merchant opens the results view in the app, without requiring webhooks.
business.didit.me) is a separate admin surface for configuration (API keys, workflows, webhook destinations). Do not instruct merchants to use it to view verification data collected through Shopify — that does not satisfy Shopify’s data-access requirement. The Console is only needed for initial setup and credential retrieval.
Configuring webhooks for Shopify
- In the Didit Business Console, navigate to API & Webhooks → Webhooks
- Create a webhook destination pointing to your backend endpoint (HTTPS, publicly reachable)
- Subscribe to at least
status.updatedanddata.updatedevents - Store the returned
secret_shared_keyto verify HMAC-SHA256 signatures on incoming webhooks
Retrieving a session decision via API
session_kind, status, and all feature arrays (id_verifications, liveness_checks, face_matches, aml_screenings, etc.). See Retrieve Session for the full response schema and field reference.
Configuration Options
Preferences Page Settings
These settings are configured in the app preferences (accessible from Apps → Didit Verify in your Shopify admin):Theme Block Settings
These settings are configured in the Shopify theme editor when you select the Didit Verify block:Connection
Display
Button Appearance
Recommended Setup
For most stores, we recommend:- Mode: API Session (creates unique verification sessions, better tracking)
- Display Mode: Modal (works everywhere, no layout issues)
- Require Customer Login: Enabled (links verification to customer accounts)
- Auto-send Customer Data: Enabled (prefills customer info, faster verification)
Testing
- Preview your theme or visit your store
- Navigate to the page with the Didit Verify button
- Click Verify your Identity
- Complete the verification flow
- Check your backend for the webhook delivery, or call GET /v3/session//decision/ to retrieve the verification result
Didit includes 500 free verifications per month — more than enough to test the full flow at no cost.
Troubleshooting
Button does nothing when clicked
- Make sure you’ve saved your API Key and Workflow ID in the preferences
- Check that the Workflow ID belongs to the same application as your API Key
- Enable Debug logging in the block settings and check the browser console for errors
”Didit credentials not configured” error
- The app has no saved API Key or Workflow ID for this store. Open Apps → Didit Verify, fill in both fields, and click Save Settings
”You must be logged in to verify your identity”
- Require Customer Login is enabled (the default). The customer needs to log in to their store account first — or disable the setting in the app preferences if you need guest verification
Settings won’t save
- “API key validation failed” — re-copy the API key from the Didit Business Console and make sure there are no extra spaces
- “This workflow does not belong to your application” — the Workflow ID belongs to a different Didit application than your API key; copy both from the same application
Support (24/7)
Our team is available to help you get up and running.WhatsApp Support
Fastest response — reach us directly on WhatsApp.
Send us an email at hello@didit.me.