Configure the SDK
SetbaseURL to your proxy and pass your app’s own user token as apiKey. The SDK sends apiKey in the x-api-key header and appends paths such as /v1/sessions/{id}/workflow to baseURL, keeping any path you include.
Endpoints to forward
Forward only what your integration uses. Everything else should get a404 from your proxy.
Uploads (
PUT) go to the presigned URLs deepidv returns, not through your proxy. If your network restricts outbound traffic from devices, allow the deepidv storage host those URLs point to.
Rules your proxy should enforce
- Authenticate the user from the
x-api-keyheader (your token). Reject anything else with401. - Allow-list the paths above. Reject the rest with
404. - Check ownership. A session ID in the path must be one your backend created for this user. A re-verification ID must be one this user started.
- Pin the identity. On
POST /v1/re-verifications, overwriteemailwith the signed-in user’s email so a user can’t re-verify as someone else. - Pass responses through unchanged, including the status code and the
Retry-Afterheader. The SDK relies on them for retries and error screens.
Example: Node.js (Express)
Adaptauthenticate, ownsSession and the storage calls to your app.
email from your user on the create call, and record the re_verification_id from the response so you can check ownership of the follow-up calls.
Check it works
- Run a workflow on a device. Your proxy logs should show
GET …/workflow,POST …/workflow/start,POST …/uploads, a series ofPOST …/id-capture/detect, then the step submissions. - If the capture screen never names the card (“Ontario Driver’s License”),
…/id-capture/detectisn’t reaching deepidv. See Troubleshooting.