One endpoint. One API key. Verified credential claims returned after token validation, with institutions staying fully in control of decisions.
Drop a PASSID verification field into your existing application form. It returns signed credential claims and verification metadata instead of self-reported data or redirects. The customer opens their PASSID app, taps Share, and reads out a one-time code. Claims land in your onVerified callback after verification.
Install @passidio/react and drop <PassidCodeVerification /> directly into your application form. It renders as a compact inline widget. Keep production API keys server-side and use the field to collect the applicant's one-time PASSID token.
The customer opens their PASSID app and taps Share. The app generates a one-time share code (e.g. KE8V-3TXY-Z72L). They read it out or paste it into the field on your page. No QR scan required, no app redirect — it works over the phone, in person, or fully remote.
After the customer submits the code and the token is verified, onVerified(result) fires with the verified claims object under result.verified_claims. A verification.completed webhook can also hit your backend server.
verification.completed fires on your serverPOST /v1/outcome to close the verification loopProtect API routes, verify tokens, and assemble verified claim packages from your backend. Works with Express, Next.js App Router, Next.js Pages Router, or any Node.js server.
passidMiddleware — Express drop-in route guardwithPassid — Next.js App Router wrapperwithPassidPages — Next.js Pages Router wrapperPASSIDClient — verify tokens, assemble claim packages, report outcomesverifyWebhookSignature — HMAC-SHA256 webhook verificationAll endpoints require X-Institution-Key: <your-api-key> unless marked public. Base URL: https://api.passid.io
<PASSIDVerify /> on mount. Returns requestId, code (e.g. AB3X-7YQM), deepLink (passid://verify-request?r=…&i=…), and expiresAt. Body: { institutionName?, permissions?, ttlSeconds? } — TTL defaults to 600 s, max 3600 s.status: "pending" | "completed" | "declined" | "expired". When completed, response includes the full claims object and verifiedAt. Requires institution API key.410 if already expired, fulfilled, or declined.AB3X-7YQM or AB3X7YQM) to the same response as the public request endpoint. Used by the in-app manual code entry screen.Idempotency-Key header so retries do not double-verify. Response includes X-PASSID-API-Version: 1.{ token, outcome, productType?, amountUsd?, observationDays?, notes? }. Valid outcomes: repaid · no_default · delinquent · defaulted · fraud_confirmed · account_closed · other. The verification context at time of outcome reporting is captured automatically. One outcome per token per institution. Fires outcome.reported webhook.1.0.0), release date, and a full map of all endpoint paths. Use to confirm your integration is on the versioned surface.Idempotency-Key on the verify call to prevent duplicate webhooks.deny_reason string. Only fired when the request carries a valid institution API key.POST /v1/outcome. Payload includes the token, outcome type, product type, amount, and the verification context at time of outcome reporting. Use for audit trails and coverage improvement.X-PASSID-Signature: sha256=<hex>. Automatic retries on non-2xx: immediate - 30 s - 5 min - 30 min - 2 h (5 attempts total). Pending deliveries survive server restarts.Use your sandbox API key with the same endpoints. The sandbox returns deterministic results — identical API shape to production, isolated from live data.
POST /api/v1/bridge/verify · { "token": "PASSID-SANDBOX-..." }permissions[] arrayverified_credential_summaryFull standard claim set — all verified claims in one requestincome_verifiedBoolean + income band (e.g. $3,000–$4,000/mo)identity_verifiedIdentity verification booleansanctions_clearSanctions screening — OFAC · EU · UN watchlist clearpayment_reliabilityPayment behavior verified — derived from payment historysavings_consistencySavings behavior verified — derived from savings patternfraud_riskIdentity and fraud checks — passed / review requiredPOST /api/v1/bridge/verify with the exact token string to test the same response shape used by production verification.verification.completed, verification.failed, and outcome.reported test events from your institution dashboard → API & Webhooks panel.