GET /api/v1/kyc/status until the profile reaches a terminal state.
Overview
This example covers:- Sumsub Reusable KYC —
POST /api/v1/kyc/sumsub-share-token - Pods Hosted KYC (no Sumsub account) —
POST /api/v1/kyc/hosted/sessions - External evidence —
POST /api/v1/kyc/sessionsthenPOST /api/v1/kyc/sessions/{kycUserId}/submit - Status polling —
GET /api/v1/kyc/status
Prerequisites
- Node.js 18+
- Pods API key
- For Sumsub: an approved Sumsub applicant + a freshly generated share token
- For external evidence: liveness + document images you captured yourself
Installation
Environment Variables
Step-by-Step Walkthrough
1. Initialize API Client + status poller
2. Sumsub Reusable KYC
Submit the fresh Sumsub share token your backend generated for the approved applicant. Pods returns akycUserId — store it for status checks.
3. Pods Hosted KYC
Create a session and open the returned link for the applicant. Poll the status while they verify: the redirect to your app is only a hint. See Pods Hosted KYC.4. External Evidence
Create a session, then submit the identity evidence you captured. Each image is either inlinebase64 or an HTTPS url Pods fetches — pick one per image.
Status values
created → provider_pending → approved / rejected / rejected_retryable / blocked. Money
movement is enabled once status is approved and the capability flag you need
(brlaEnabled for Brazil, usdEnabled for foreign USD) is true.
Running the Example
kyc-backend.js.
Next Steps
Pods Ramp
Move money once the wallet is approved
KYC Overview
All KYC flows and endpoints
Pods Hosted KYC Guide
Pods-hosted verification: session, link, polling, retry
External Evidence Guide
Full evidence payload and rejection handling
API Reference
View complete API documentation