Initialize an asynchronous person verification journey. Returns tokens
immediately. Use the start token to construct a verification URL that
redirects the individual to Zenoo’s hosted verification experience for
document capture and biometric liveness.
Project-scoped API key for server-to-server authentication.
Obtain keys from the Zenoo dashboard under Project Settings > API Keys.
Staging and production environments use separate keys.
{"docsConfig":{"theme":"palm","$schema":"https://mintlify.com/docs.json","name":"Zenoo Developer Docs","colors":{"primary":"#6450FA","light":"#7B6AFB","dark":"#5040C8"},"logo":{"light":"https://mintcdn.com/zenoo/aPkOkrWFCjQlbbjO/logo/light.svg?fit=max\u0026auto=format\u0026n=aPkOkrWFCjQlbbjO\u0026q=85\u0026s=69bb3621a059829957546a0adfa17e56","dark":"https://mintcdn.com/zenoo/aPkOkrWFCjQlbbjO/logo/dark.svg?fit=max\u0026auto=format\u0026n=aPkOkrWFCjQlbbjO\u0026q=85\u0026s=0b6936a612c3cf41213ec8ceef343b44","href":"https://zenoo.com"},"favicon":"https://mintcdn.com/zenoo/KxJT8X9N8qZ6jIrQ/favicon.png?fit=max\u0026auto=format\u0026n=KxJT8X9N8qZ6jIrQ\u0026q=85\u0026s=91e7f169e13f014b4a51930b5c97d77f","background":{"decoration":"gradient","color":{"light":"#FAFAFA","dark":"#0F0F1A"}},"navbar":{"links":[{"href":"mailto:support@zenoo.com","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://dashboard.zenoo.com"}},"footer":{"socials":{"website":"https://zenoo.com","linkedin":"https://linkedin.com/company/zenoo"}},"fonts":{"heading":{"family":"Inter","weight":700},"body":{"family":"Inter","weight":400}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Changelog","icon":"list","href":"/changelog/2026-10"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"zenoo","hasAudioNarration":false,"actualSubdomain":"zenoo","customDomains":["docs.zenoo.com"],"gitSource":{"type":"github","owner":"zenoolabs","repo":"docs-mintlify","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6ae32bf34c2492fe62cb4b8a","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"API Reference","count":55},{"language":"default","tag":"Resources","count":51},{"language":"default","tag":"Developer Docs","count":45},{"language":"default","tag":"Changelog","count":42},{"language":"default","tag":"Product Guides","count":19},{"language":"default","tag":"Data Model","count":18},{"language":"default","tag":"Cases","count":18},{"language":"default","tag":"Alerts","count":11},{"language":"default","tag":"Compliance Hub","count":10},{"language":"default","tag":"Platform Concepts","count":9}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"[class*=\"Card\"]{transition:transform 0.2s ease, box-shadow 0.2s ease}[class*=\"Card\"]:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(100, 80, 250, 0.08)}pre{border-radius:8px!important}table tbody tr:nth-child(even){background-color:rgba(100, 80, 250, 0.02)}[class*=\"callout\"],[class*=\"Callout\"]{border-left:3px solid #6450FA}.step .rounded-full{background-color:#6450FA!important;color:white!important;font-weight:700!important}.step .rounded-full svg{color:white!important}:is(.dark) .step .rounded-full{background-color:#6450FA!important;color:white!important}ol:not(.steps){list-style:none!important;counter-reset:branded-counter!important}ol:not(.steps)>li{counter-increment:branded-counter!important;position:relative!important;padding-left:2.75em!important}ol:not(.steps)>li::before{content:counter(branded-counter)!important;position:absolute!important;left:0!important;top:0.15em;width:1.6em;height:1.6em;background-color:#6450FA!important;color:white!important;font-weight:700!important;font-size:0.8em;border-radius:50%;display:flex;align-items:center;justify-content:center;line-height:1}"}],"page":{"pagePath":"api-reference/flow-api/initiate-person-verification-journey-async","slug":"/api-reference/flow-api/initiate-person-verification-journey-async","pageMetadata":{"title":"Initiate Person Verification journey (async)","description":"Initialize an asynchronous person verification journey. Returns tokens\nimmediately. Use the `start` token to construct a verification URL that\nredirects the individual to Zenoo's hosted verification experience for\ndocument capture and biometric liveness.\n\n**Verification URL format:**\n```\nhttps://instance.prod.onboardapp.io/{project_hash}/?t={start_token}\n```\n\nThe `start` token expires after 24 hours. The `pull` token remains valid\nfor 30 days after results become available.\n","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /api/gateway/execute/{project_hash}/kyc/init","href":"/api-reference/flow-api/initiate-person-verification-journey-async","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n pre: \"pre\",\n span: \"span\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n }, {CodeBlock} = _components;\n if (!CodeBlock) _missingMdxReference(\"CodeBlock\", true);\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Initialize an asynchronous person verification journey. Returns tokens\\nimmediately. Use the \", _jsx(_components.code, {\n children: \"start\"\n }), \" token to construct a verification URL that\\nredirects the individual to Zenoo’s hosted verification experience for\\ndocument capture and biometric liveness.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: \"Verification URL format:\"\n })\n }), \"\\n\", _jsx(CodeBlock, {\n numberOfLines: \"2\",\n language: \"text\",\n children: _jsx(_components.pre, {\n className: \"shiki shiki-themes github-light-default dark-plus\",\n style: {\n backgroundColor: \"#ffffff\",\n \"--shiki-dark-bg\": \"#0B0C0E\",\n color: \"#1f2328\",\n \"--shiki-dark\": \"#D4D4D4\"\n },\n language: \"text\",\n children: _jsxs(_components.code, {\n language: \"text\",\n numberOfLines: \"2\",\n children: [_jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {\n children: \"https://instance.prod.onboardapp.io/{project_hash}/?t={start_token}\"\n })\n }), \"\\n\", _jsx(_components.span, {\n className: \"line\",\n children: _jsx(_components.span, {})\n })]\n })\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The \", _jsx(_components.code, {\n children: \"start\"\n }), \" token expires after 24 hours. The \", _jsx(_components.code, {\n children: \"pull\"\n }), \" token remains valid\\nfor 30 days after results become available.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\nfunction _missingMdxReference(id, component) {\n throw new Error(\"Expected \" + (component ? \"component\" : \"object\") + \" `\" + id + \"` to be defined: you likely forgot to import, pass, or provide it.\");\n}\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Initiate Person Verification journey (async)","description":"Initialize an asynchronous person verification journey. Returns tokens\nimmediately. Use the `start` token to construct a verification URL that\nredirects the individual to Zenoo's hosted verification experience for\ndocument capture and biometric liveness.\n\n**Verification URL format:**\n```\nhttps://instance.prod.onboardapp.io/{project_hash}/?t={start_token}\n```\n\nThe `start` token expires after 24 hours. The `pull` token remains valid\nfor 30 days after results become available.\n","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /api/gateway/execute/{project_hash}/kyc/init","href":"/api-reference/flow-api/initiate-person-verification-journey-async","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Flow API"],"operationId":"initPersonVerification","summary":"Initiate Person Verification journey (async)","description":"Initialize an asynchronous person verification journey. Returns tokens\nimmediately. Use the `start` token to construct a verification URL that\nredirects the individual to Zenoo's hosted verification experience for\ndocument capture and biometric liveness.\n\n**Verification URL format:**\n```\nhttps://instance.prod.onboardapp.io/{project_hash}/?t={start_token}\n```\n\nThe `start` token expires after 24 hours. The `pull` token remains valid\nfor 30 days after results become available.\n","parameters":["4788b455-951d-43b7-8b56-5b1712b185b6","3ac54665-12c8-45fc-b620-3f8ae53bf607","73f9bb33-b413-4c21-99a1-17431abf8f10"],"requestBody":"26267cbd-32b9-41df-aaac-53f980e27cea","responses":{"200":"8e653895-a2fd-4344-aa6e-5f9cc7ee6d9e","400":"0142182b-23e4-4aa6-94fc-aa2a82c051ea","401":"9b97242b-2b7f-411e-aebd-3942f10de473","404":"f5e3e8a4-03b3-4f2d-892b-17378fff49fd","429":"a4130942-e52c-4aa1-a0af-1d198f52af38","500":"7d0c4066-66a1-47ca-9363-7a415aa5839d"},"method":"post","type":"path","servers":["987b715d-d6bb-4450-9859-26c48488df55","7fc40a7e-1910-4a49-b6cb-e18409f12dcb","2bdc34a2-f91b-4356-bcf4-ebf8acef88f3"],"security":["aec158b7-575f-4664-8129-8ea63a7593cd"],"path":"/api/gateway/execute/{project_hash}/kyc/init","baseUrlOptions":["https://instance.prod.onboardapp.io","https://instance.staging.onboardapp.io","https://api.zenoo.com"],"title":"Initiate Person Verification journey (async)","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"4788b455-951d-43b7-8b56-5b1712b185b6":{"name":"project_hash","in":"path","required":true,"description":"Project identifier from Zenoo Studio.","schema":{"type":"string","isRequired":true,"description":"Project identifier from Zenoo Studio.","uniqueKey":"","typeLabel":"string"}},"3ac54665-12c8-45fc-b620-3f8ae53bf607":{"name":"X-API-KEY","in":"header","required":true,"description":"Project-scoped API key.","schema":{"type":"string","isRequired":true,"description":"Project-scoped API key.","uniqueKey":"","typeLabel":"string"}},"73f9bb33-b413-4c21-99a1-17431abf8f10":{"name":"Idempotency-Key","in":"header","description":"Unique key for idempotent request handling.","schema":{"type":"string","description":"Unique key for idempotent request handling.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Request body for Person Verification. Supports three tiers of data.\n\n| Tier | Fields | Result Quality |\n|------|--------|---------------|\n| **Minimum** | first_name, last_name, country | Basic screening |\n| **Standard** | + date_of_birth, email, phone, address | Identity + phone/email verification |\n| **Full** | + nationality, document_type, external_reference | Idempotency, preferred document |\n","properties":{"first_name":{"type":"string","description":"Individual's first name.","example":"Jane","isRequired":true,"uniqueKey":"first_name","typeLabel":"string"},"last_name":{"type":"string","description":"Individual's last name.","example":"Smith","isRequired":true,"uniqueKey":"last_name","typeLabel":"string"},"country":{"type":"string","description":"Country of residence. ISO 3166-1 alpha-2 code.","example":"GB","isRequired":true,"uniqueKey":"country","typeLabel":"string"},"date_of_birth":{"type":"string","format":"date","description":"ISO 8601 date (YYYY-MM-DD). Reduces screening false positives by 80-95%.","uniqueKey":"date_of_birth","typeLabel":"string\u003cdate>"},"email":{"type":"string","format":"email","description":"Email address. Triggers email verification check.","uniqueKey":"email","typeLabel":"string\u003cemail>"},"phone":{"type":"string","description":"Phone number in E.164 format (e.g., +447700900123).","uniqueKey":"phone","typeLabel":"string"},"address":{"type":"string","description":"Street address.","uniqueKey":"address","typeLabel":"string"},"city":{"type":"string","description":"City.","uniqueKey":"city","typeLabel":"string"},"postal_code":{"type":"string","description":"Postal or ZIP code.","uniqueKey":"postal_code","typeLabel":"string"},"nationality":{"type":"string","description":"ISO 3166-1 alpha-2 code.","uniqueKey":"nationality","typeLabel":"string"},"document_type":{"type":"string","enum":["passport","national_id","driving_licence"],"description":"Preferred document type for verification UI.","uniqueKey":"document_type","typeLabel":"enum\u003cstring>"},"external_reference":{"type":"string","description":"Your internal reference ID for idempotency.","maxLength":255,"uniqueKey":"external_reference","typeLabel":"string"}},"required":["first_name","last_name","country"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"first_name":"Jane","last_name":"Smith","country":"GB","date_of_birth":"2023-12-25","email":"jsmith@example.com","phone":"\u003cstring>","address":"\u003cstring>","city":"\u003cstring>","postal_code":"\u003cstring>","nationality":"\u003cstring>","external_reference":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"8e653895-a2fd-4344-aa6e-5f9cc7ee6d9e":{"description":"Verification journey initiated. Use tokens to build URL and retrieve results.","content":{"application/json":{"schema":{"type":"object","description":"Response from async initiation endpoints (`/init`). Contains tokens for\nretrieving results and constructing verification URLs.\n","properties":{"tokens":{"type":"object","properties":{"pull":{"type":"string","description":"Token for retrieving results via `GET /api/gateway/sharable-payload/{pull}`.\nValid for 30 days after results become available.\n","isRequired":true,"uniqueKey":"tokens.pull","typeLabel":"string"},"start":{"oneOf":[{"type":"string","description":"Token for constructing the verification URL (Person Verification only).\nBuild the URL: `https://instance.prod.onboardapp.io/{project_hash}/?t={start}`.\nExpires after 24 hours. Null for server-only flows.\n","uniqueKey":"tokens.start.oneOf.0","typeLabel":"string"},{"type":"null","description":"Token for constructing the verification URL (Person Verification only).\nBuild the URL: `https://instance.prod.onboardapp.io/{project_hash}/?t={start}`.\nExpires after 24 hours. Null for server-only flows.\n","uniqueKey":"tokens.start.oneOf.1","typeLabel":"null"}],"uniqueKey":"tokens.start","typeLabel":"string | null"}},"required":["pull"],"uniqueKey":"tokens","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"tokens":{"pull":"\u003cstring>","start":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"0142182b-23e4-4aa6-94fc-aa2a82c051ea":{"description":"Invalid request — check the error details for field-level validation errors.","content":{"application/json":{"schema":{"type":"object","description":"Standard error response. All errors include a machine-readable `code`,\nhuman-readable `message`, and a `request_id` for support troubleshooting.\n","properties":{"error":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable error code. Use this for programmatic error handling.\n\n| Code | HTTP | Description | Retry? |\n|------|------|-------------|--------|\n| `VALIDATION_ERROR` | 400 | Malformed request body or parameters | No |\n| `INVALID_JSON` | 400 | Request body is not valid JSON | No |\n| `UNAUTHORIZED` | 401 | Invalid or missing API key | No |\n| `FORBIDDEN` | 403 | Insufficient permissions | No |\n| `NOT_FOUND` | 404 | Resource does not exist | No |\n| `TOKEN_EXPIRED` | 404 | Pull or start token has expired | No |\n| `RATE_LIMITED` | 429 | Rate limit exceeded | Yes (after reset) |\n| `INTERNAL_ERROR` | 500 | Unexpected server error | Yes (with backoff) |\n| `PROVIDER_ERROR` | 502 | External provider failure | Yes (with backoff) |\n| `SERVICE_UNAVAILABLE` | 503 | Service temporarily unavailable | Yes (with backoff) |\n","enum":["VALIDATION_ERROR","INVALID_JSON","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","TOKEN_EXPIRED","RATE_LIMITED","INTERNAL_ERROR","PROVIDER_ERROR","SERVICE_UNAVAILABLE"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable error description.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Unique request identifier. Include this when contacting Zenoo support\nfor faster issue resolution.\n","example":"req_9k4m2n1p3q","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"details":{"type":"array","description":"Field-level validation errors (present for `validation_error`).","items":{"type":"object","properties":{"field":{"type":"string","description":"JSON path to the invalid field.","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","description":"Description of the validation failure.","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"},"code":{"type":"string","description":"Field-level error code (e.g., `required`, `invalid_format`).","uniqueKey":"error.details.items.[INDEX].code","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"VALIDATION_ERROR","message":"\u003cstring>","request_id":"req_9k4m2n1p3q","details":[{"field":"\u003cstring>","message":"\u003cstring>","code":"\u003cstring>"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"9b97242b-2b7f-411e-aebd-3942f10de473":{"description":"Missing or invalid authentication credentials.","content":{"application/json":{"schema":{"type":"object","description":"Standard error response. All errors include a machine-readable `code`,\nhuman-readable `message`, and a `request_id` for support troubleshooting.\n","properties":{"error":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable error code. Use this for programmatic error handling.\n\n| Code | HTTP | Description | Retry? |\n|------|------|-------------|--------|\n| `VALIDATION_ERROR` | 400 | Malformed request body or parameters | No |\n| `INVALID_JSON` | 400 | Request body is not valid JSON | No |\n| `UNAUTHORIZED` | 401 | Invalid or missing API key | No |\n| `FORBIDDEN` | 403 | Insufficient permissions | No |\n| `NOT_FOUND` | 404 | Resource does not exist | No |\n| `TOKEN_EXPIRED` | 404 | Pull or start token has expired | No |\n| `RATE_LIMITED` | 429 | Rate limit exceeded | Yes (after reset) |\n| `INTERNAL_ERROR` | 500 | Unexpected server error | Yes (with backoff) |\n| `PROVIDER_ERROR` | 502 | External provider failure | Yes (with backoff) |\n| `SERVICE_UNAVAILABLE` | 503 | Service temporarily unavailable | Yes (with backoff) |\n","enum":["VALIDATION_ERROR","INVALID_JSON","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","TOKEN_EXPIRED","RATE_LIMITED","INTERNAL_ERROR","PROVIDER_ERROR","SERVICE_UNAVAILABLE"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable error description.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Unique request identifier. Include this when contacting Zenoo support\nfor faster issue resolution.\n","example":"req_9k4m2n1p3q","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"details":{"type":"array","description":"Field-level validation errors (present for `validation_error`).","items":{"type":"object","properties":{"field":{"type":"string","description":"JSON path to the invalid field.","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","description":"Description of the validation failure.","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"},"code":{"type":"string","description":"Field-level error code (e.g., `required`, `invalid_format`).","uniqueKey":"error.details.items.[INDEX].code","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"VALIDATION_ERROR","message":"\u003cstring>","request_id":"req_9k4m2n1p3q","details":[{"field":"\u003cstring>","message":"\u003cstring>","code":"\u003cstring>"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"f5e3e8a4-03b3-4f2d-892b-17378fff49fd":{"description":"The requested resource does not exist. Verify the token is correct.","content":{"application/json":{"schema":{"type":"object","description":"Standard error response. All errors include a machine-readable `code`,\nhuman-readable `message`, and a `request_id` for support troubleshooting.\n","properties":{"error":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable error code. Use this for programmatic error handling.\n\n| Code | HTTP | Description | Retry? |\n|------|------|-------------|--------|\n| `VALIDATION_ERROR` | 400 | Malformed request body or parameters | No |\n| `INVALID_JSON` | 400 | Request body is not valid JSON | No |\n| `UNAUTHORIZED` | 401 | Invalid or missing API key | No |\n| `FORBIDDEN` | 403 | Insufficient permissions | No |\n| `NOT_FOUND` | 404 | Resource does not exist | No |\n| `TOKEN_EXPIRED` | 404 | Pull or start token has expired | No |\n| `RATE_LIMITED` | 429 | Rate limit exceeded | Yes (after reset) |\n| `INTERNAL_ERROR` | 500 | Unexpected server error | Yes (with backoff) |\n| `PROVIDER_ERROR` | 502 | External provider failure | Yes (with backoff) |\n| `SERVICE_UNAVAILABLE` | 503 | Service temporarily unavailable | Yes (with backoff) |\n","enum":["VALIDATION_ERROR","INVALID_JSON","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","TOKEN_EXPIRED","RATE_LIMITED","INTERNAL_ERROR","PROVIDER_ERROR","SERVICE_UNAVAILABLE"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable error description.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Unique request identifier. Include this when contacting Zenoo support\nfor faster issue resolution.\n","example":"req_9k4m2n1p3q","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"details":{"type":"array","description":"Field-level validation errors (present for `validation_error`).","items":{"type":"object","properties":{"field":{"type":"string","description":"JSON path to the invalid field.","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","description":"Description of the validation failure.","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"},"code":{"type":"string","description":"Field-level error code (e.g., `required`, `invalid_format`).","uniqueKey":"error.details.items.[INDEX].code","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"VALIDATION_ERROR","message":"\u003cstring>","request_id":"req_9k4m2n1p3q","details":[{"field":"\u003cstring>","message":"\u003cstring>","code":"\u003cstring>"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"a4130942-e52c-4aa1-a0af-1d198f52af38":{"description":"Rate limit exceeded. Retry after the time indicated in the `X-RateLimit-Reset` header.","content":{"application/json":{"schema":{"type":"object","description":"Standard error response. All errors include a machine-readable `code`,\nhuman-readable `message`, and a `request_id` for support troubleshooting.\n","properties":{"error":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable error code. Use this for programmatic error handling.\n\n| Code | HTTP | Description | Retry? |\n|------|------|-------------|--------|\n| `VALIDATION_ERROR` | 400 | Malformed request body or parameters | No |\n| `INVALID_JSON` | 400 | Request body is not valid JSON | No |\n| `UNAUTHORIZED` | 401 | Invalid or missing API key | No |\n| `FORBIDDEN` | 403 | Insufficient permissions | No |\n| `NOT_FOUND` | 404 | Resource does not exist | No |\n| `TOKEN_EXPIRED` | 404 | Pull or start token has expired | No |\n| `RATE_LIMITED` | 429 | Rate limit exceeded | Yes (after reset) |\n| `INTERNAL_ERROR` | 500 | Unexpected server error | Yes (with backoff) |\n| `PROVIDER_ERROR` | 502 | External provider failure | Yes (with backoff) |\n| `SERVICE_UNAVAILABLE` | 503 | Service temporarily unavailable | Yes (with backoff) |\n","enum":["VALIDATION_ERROR","INVALID_JSON","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","TOKEN_EXPIRED","RATE_LIMITED","INTERNAL_ERROR","PROVIDER_ERROR","SERVICE_UNAVAILABLE"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable error description.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Unique request identifier. Include this when contacting Zenoo support\nfor faster issue resolution.\n","example":"req_9k4m2n1p3q","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"details":{"type":"array","description":"Field-level validation errors (present for `validation_error`).","items":{"type":"object","properties":{"field":{"type":"string","description":"JSON path to the invalid field.","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","description":"Description of the validation failure.","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"},"code":{"type":"string","description":"Field-level error code (e.g., `required`, `invalid_format`).","uniqueKey":"error.details.items.[INDEX].code","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"VALIDATION_ERROR","message":"\u003cstring>","request_id":"req_9k4m2n1p3q","details":[{"field":"\u003cstring>","message":"\u003cstring>","code":"\u003cstring>"}]}}}},"exampleType":"generated"}},"headers":{"X-RateLimit-Limit":{"description":"Maximum requests allowed per minute for your plan.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests remaining in the current rate limit window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix timestamp when the rate limit window resets.","schema":{"type":"integer"}}},"exampleType":"generated"},"7d0c4066-66a1-47ca-9363-7a415aa5839d":{"description":"Unexpected server error. Include the `request_id` from the error response when contacting support.","content":{"application/json":{"schema":{"type":"object","description":"Standard error response. All errors include a machine-readable `code`,\nhuman-readable `message`, and a `request_id` for support troubleshooting.\n","properties":{"error":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable error code. Use this for programmatic error handling.\n\n| Code | HTTP | Description | Retry? |\n|------|------|-------------|--------|\n| `VALIDATION_ERROR` | 400 | Malformed request body or parameters | No |\n| `INVALID_JSON` | 400 | Request body is not valid JSON | No |\n| `UNAUTHORIZED` | 401 | Invalid or missing API key | No |\n| `FORBIDDEN` | 403 | Insufficient permissions | No |\n| `NOT_FOUND` | 404 | Resource does not exist | No |\n| `TOKEN_EXPIRED` | 404 | Pull or start token has expired | No |\n| `RATE_LIMITED` | 429 | Rate limit exceeded | Yes (after reset) |\n| `INTERNAL_ERROR` | 500 | Unexpected server error | Yes (with backoff) |\n| `PROVIDER_ERROR` | 502 | External provider failure | Yes (with backoff) |\n| `SERVICE_UNAVAILABLE` | 503 | Service temporarily unavailable | Yes (with backoff) |\n","enum":["VALIDATION_ERROR","INVALID_JSON","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","TOKEN_EXPIRED","RATE_LIMITED","INTERNAL_ERROR","PROVIDER_ERROR","SERVICE_UNAVAILABLE"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable error description.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Unique request identifier. Include this when contacting Zenoo support\nfor faster issue resolution.\n","example":"req_9k4m2n1p3q","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"details":{"type":"array","description":"Field-level validation errors (present for `validation_error`).","items":{"type":"object","properties":{"field":{"type":"string","description":"JSON path to the invalid field.","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","description":"Description of the validation failure.","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"},"code":{"type":"string","description":"Field-level error code (e.g., `required`, `invalid_format`).","uniqueKey":"error.details.items.[INDEX].code","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"VALIDATION_ERROR","message":"\u003cstring>","request_id":"req_9k4m2n1p3q","details":[{"field":"\u003cstring>","message":"\u003cstring>","code":"\u003cstring>"}]}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"aec158b7-575f-4664-8129-8ea63a7593cd":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"Project-scoped API key for server-to-server authentication.\nObtain keys from the Zenoo dashboard under Project Settings > API Keys.\nStaging and production environments use separate keys.\n","scopes":[]}}},"servers":{"987b715d-d6bb-4450-9859-26c48488df55":{"url":"https://instance.prod.onboardapp.io","description":"Production (replace \"instance\" with your subdomain)"},"7fc40a7e-1910-4a49-b6cb-e18409f12dcb":{"url":"https://instance.staging.onboardapp.io","description":"Staging (replace \"instance\" with your subdomain)"},"2bdc34a2-f91b-4356-bcf4-ebf8acef88f3":{"url":"https://api.zenoo.com","description":"Case Management API"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"Project-scoped API key for server-to-server authentication.\nObtain keys from the Zenoo dashboard under Project Settings > API Keys.\nStaging and production environments use separate keys.\n","scopes":[]},"schema":{"title":"X-API-KEY","type":"string","description":"Project-scoped API key for server-to-server authentication.\nObtain keys from the Zenoo dashboard under Project Settings > API Keys.\nStaging and production environments use separate keys.\n","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"X-API-KEY"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"zenoo-api-openapi.yaml"},"subdomain":"zenoo","siteName":"Zenoo Developer Docs","title":"Initiate Person Verification journey (async) - Zenoo Developer Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-02-16T13:11:37.227Z","originalFileLocation":"api-reference/flow-api/initiate-person-verification-journey-async.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Initialize an asynchronous person verification journey. Returns tokens immediately. Use the start token to construct a verification URL that redirects the individual to Zenoo\u0026#x27;s hosted verification experience for document capture and biometric liveness. Verification URL format: https://instance.prod.onboardapp.io/{project_hash}/?t={start_token} The start token expires after 24 hours. The pull token remains valid for 30 days after results become available.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Zenoo Developer Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/zenoo/1KDs33eK7HxYitS9/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/zenoo/1KDs33eK7HxYitS9/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/zenoo/1KDs33eK7HxYitS9/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/zenoo/1KDs33eK7HxYitS9/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/zenoo/1KDs33eK7HxYitS9/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/zenoo/1KDs33eK7HxYitS9/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/zenoo/1KDs33eK7HxYitS9/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/zenoo/1KDs33eK7HxYitS9/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/zenoo/1KDs33eK7HxYitS9/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Initiate Person Verification journey (async) - Zenoo Developer Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Initialize an asynchronous person verification journey. Returns tokens immediately. Use the start token to construct a verification URL that redirects the individual to Zenoo\u0026#x27;s hosted verification experience for document capture and biometric liveness. Verification URL format: https://instance.prod.onboardapp.io/{project_hash}/?t={start_token} The start token expires after 24 hours. The pull token remains valid for 30 days after results become available.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Zenoo Developer Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.zenoo.com/api-reference/flow-api/initiate-person-verification-journey-async\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://zenoo.mintlify.site/_mintlify/api/og/v2?division=Flow+API\u0026amp;title=Initiate+Person+Verification+journey+%28async%29\u0026amp;description=Initialize+an+asynchronous+person+verification+journey.+Returns+tokens%0Aimmediately.+Use+the+%60start%60+token+to+construct+a+verification+URL+that%0Aredirects+the+ind\u0026amp;theme=4f3339ab8cf08c5d623f6c58\u0026amp;signature=b51463d623c7cd3bd914f5e6c44a24a3abb63346d04ceb1067e3d53fccfac109\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Initiate Person Verification journey (async) - Zenoo Developer Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Initialize an asynchronous person verification journey. Returns tokens immediately. Use the start token to construct a verification URL that redirects the individual to Zenoo\u0026#x27;s hosted verification experience for document capture and biometric liveness. Verification URL format: https://instance.prod.onboardapp.io/{project_hash}/?t={start_token} The start token expires after 24 hours. The pull token remains valid for 30 days after results become available.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://zenoo.mintlify.site/_mintlify/api/og/v2?division=Flow+API\u0026amp;title=Initiate+Person+Verification+journey+%28async%29\u0026amp;description=Initialize+an+asynchronous+person+verification+journey.+Returns+tokens%0Aimmediately.+Use+the+%60start%60+token+to+construct+a+verification+URL+that%0Aredirects+the+ind\u0026amp;theme=4f3339ab8cf08c5d623f6c58\u0026amp;signature=b51463d623c7cd3bd914f5e6c44a24a3abb63346d04ceb1067e3d53fccfac109\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/zenoo/1KDs33eK7HxYitS9/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Zenoo Developer Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6450FA\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.zenoo.com/api-reference/flow-api/initiate-person-verification-journey-async\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/flow-api/initiate-person-verification-journey-async.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.zenoo.com/#organization\",\"name\":\"Zenoo Developer Docs\",\"url\":\"https://docs.zenoo.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/zenoo/aPkOkrWFCjQlbbjO/logo/light.svg?fit=max\u0026auto=format\u0026n=aPkOkrWFCjQlbbjO\u0026q=85\u0026s=69bb3621a059829957546a0adfa17e56\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.zenoo.com#website\",\"name\":\"Zenoo Developer Docs\",\"url\":\"https://docs.zenoo.com\",\"publisher\":{\"@id\":\"https://docs.zenoo.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.zenoo.com/api-reference/flow-api/initiate-person-verification-journey-async#webpage\",\"url\":\"https://docs.zenoo.com/api-reference/flow-api/initiate-person-verification-journey-async\",\"name\":\"Initiate Person Verification journey (async)\",\"description\":\"Initialize an asynchronous person verification journey. Returns tokens immediately. Use the start token to construct a verification URL that redirects the individual to Zenoo's hosted verification experience for document capture and biometric liveness. Verification URL format: https://instance.prod.onboardapp.io/{project_hash}/?t={start_token} The start token expires after 24 hours. The pull token remains valid for 30 days after results become available.\",\"dateModified\":\"2026-02-16T13:11:37.227Z\",\"isPartOf\":{\"@id\":\"https://docs.zenoo.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.zenoo.com/api-reference/flow-api/initiate-person-verification-journey-async#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.zenoo.com/api-reference/flow-api/initiate-person-verification-journey-async#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Flow API\",\"item\":\"https://docs.zenoo.com/api-reference/flow-api/execute-company-verification-sync\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Initiate Person Verification journey (async)\",\"item\":\"https://docs.zenoo.com/api-reference/flow-api/initiate-person-verification-journey-async\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.zenoo.com/api-reference/flow-api/initiate-person-verification-journey-async#apireference\",\"headline\":\"Initiate Person Verification journey (async)\",\"name\":\"Initiate Person Verification journey (async)\",\"description\":\"Initialize an asynchronous person verification journey. Returns tokens immediately. Use the start token to construct a verification URL that redirects the individual to Zenoo's hosted verification experience for document capture and biometric liveness. Verification URL format: https://instance.prod.onboardapp.io/{project_hash}/?t={start_token} The start token expires after 24 hours. The pull token remains valid for 30 days after results become available.\",\"url\":\"https://docs.zenoo.com/api-reference/flow-api/initiate-person-verification-journey-async\",\"mainEntityOfPage\":{\"@id\":\"https://docs.zenoo.com/api-reference/flow-api/initiate-person-verification-journey-async#webpage\"},\"dateModified\":\"2026-02-16T13:11:37.227Z\",\"publisher\":{\"@id\":\"https://docs.zenoo.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.zenoo.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Zenoo Developer Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Zenoo Developer Docs","nav":{"global":{"anchors":[{"anchor":"Changelog","icon":"list","href":"/changelog/2026-10"}]},"tabs":[{"tab":"Product Guides","pages":[{"title":"Product Guides","href":""}]},{"tab":"Developer Docs","pages":[{"title":"Developer Docs","href":"/getting-started/overview"}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"group":"Flow API","pages":[{"title":"Execute Company Verification (sync)","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /api/gateway/execute/{project_hash}/api","href":"/api-reference/flow-api/execute-company-verification-sync"},{"title":"Initiate Company Verification (async)","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /api/gateway/execute/{project_hash}/init","href":"/api-reference/flow-api/initiate-company-verification-async"},{"title":"Execute Person Verification (sync)","description":"Submit person data for synchronous screening and database verification. Use\nthis endpoint for server-side checks when you already have the individual's\ndata (name, date of birth, nationality, etc.).\n\nInclude `X-SYNC-TIMEOUT` to control blocking duration. Returns a full\n`VerificationReport` on success (200) or partial results with tokens (202)\nif the timeout is exceeded.\n","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /api/gateway/execute/{project_hash}/kyc/api","href":"/api-reference/flow-api/execute-person-verification-sync"},{"title":"Initiate Person Verification journey (async)","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /api/gateway/execute/{project_hash}/kyc/init","href":"/api-reference/flow-api/initiate-person-verification-journey-async"},{"title":"Screen entity for PEP/sanctions/adverse media","description":"Perform standalone AML screening against PEP, sanctions, adverse media, and\nwatchlist databases. Supports both person and company entities.\n\nThis endpoint is for screening only — it does not perform registry lookups,\nidentity verification, or document checks. Use the company or person\nverification endpoints for full compliance checks.\n","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /api/gateway/execute/{project_hash}/screening/api","href":"/api-reference/flow-api/screen-entity-for-pepsanctionsadverse-media"},{"title":"Retrieve async verification results","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /api/gateway/sharable-payload/{pull_token}","href":"/api-reference/flow-api/retrieve-async-verification-results"}]},{"group":"Entities","pages":[{"title":"Create person or company entity","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /v1/entities","href":"/api-reference/entities/create-person-or-company-entity"},{"title":"List entities with filters","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/entities","href":"/api-reference/entities/list-entities-with-filters"},{"title":"Get entity details","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/entities/{entity_token}","href":"/api-reference/entities/get-entity-details"},{"title":"Update entity","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml patch /v1/entities/{entity_token}","href":"/api-reference/entities/update-entity"},{"title":"List entity checks","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/entities/{entity_token}/checks","href":"/api-reference/entities/list-entity-checks"},{"title":"List entity alerts","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/entities/{entity_token}/alerts","href":"/api-reference/entities/list-entity-alerts"}]},{"group":"Cases","pages":[{"title":"Create case","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /v1/cases","href":"/api-reference/cases/create-case"},{"title":"List cases","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/cases","href":"/api-reference/cases/list-cases"},{"title":"Get case details","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/cases/{case_token}","href":"/api-reference/cases/get-case-details"},{"title":"Update case","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml patch /v1/cases/{case_token}","href":"/api-reference/cases/update-case"},{"title":"Close case","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /v1/cases/{case_token}/close","href":"/api-reference/cases/close-case"},{"title":"Escalate case","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /v1/cases/{case_token}/escalate","href":"/api-reference/cases/escalate-case"},{"title":"List case entities","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/cases/{case_token}/entities","href":"/api-reference/cases/list-case-entities"},{"title":"Add entity to case","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /v1/cases/{case_token}/entities","href":"/api-reference/cases/add-entity-to-case"},{"title":"List case alerts","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/cases/{case_token}/alerts","href":"/api-reference/cases/list-case-alerts"},{"title":"List case checks","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/cases/{case_token}/checks","href":"/api-reference/cases/list-case-checks"},{"title":"Get risk assessment","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/cases/{case_token}/risk-assessment","href":"/api-reference/cases/get-risk-assessment"},{"title":"Create/recalculate risk assessment","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /v1/cases/{case_token}/risk-assessments","href":"/api-reference/cases/createrecalculate-risk-assessment"},{"title":"Get case audit trail","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/cases/{case_token}/timeline","href":"/api-reference/cases/get-case-audit-trail"},{"title":"List case comments","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/cases/{case_token}/comments","href":"/api-reference/cases/list-case-comments"},{"title":"Add comment to case","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /v1/cases/{case_token}/comments","href":"/api-reference/cases/add-comment-to-case"},{"title":"List case reviewers","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/cases/{case_token}/reviewers","href":"/api-reference/cases/list-case-reviewers"},{"title":"Add reviewer to case","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /v1/cases/{case_token}/reviewers","href":"/api-reference/cases/add-reviewer-to-case"},{"title":"Generate compliance report","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/cases/{case_token}/compliance-report","href":"/api-reference/cases/generate-compliance-report"}]},{"group":"Alerts","pages":[{"title":"List alerts","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/alerts","href":"/api-reference/alerts/list-alerts"},{"title":"Get alert details","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/alerts/{alert_token}","href":"/api-reference/alerts/get-alert-details"},{"title":"Resolve alert","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /v1/alerts/{alert_token}/resolve","href":"/api-reference/alerts/resolve-alert"},{"title":"Escalate alert","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /v1/alerts/{alert_token}/escalate","href":"/api-reference/alerts/escalate-alert"},{"title":"Acknowledge alert","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /v1/alerts/{alert_token}/acknowledge","href":"/api-reference/alerts/acknowledge-alert"},{"title":"Assign alert","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /v1/alerts/{alert_token}/assign","href":"/api-reference/alerts/assign-alert"},{"title":"Trigger AI research","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /v1/alerts/{alert_token}/ai-research","href":"/api-reference/alerts/trigger-ai-research"},{"title":"Get AI research results","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/alerts/{alert_token}/ai-research","href":"/api-reference/alerts/get-ai-research-results"},{"title":"Bulk resolve alerts","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /v1/alerts/bulk/resolve","href":"/api-reference/alerts/bulk-resolve-alerts"},{"title":"Bulk acknowledge alerts","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /v1/alerts/bulk/acknowledge","href":"/api-reference/alerts/bulk-acknowledge-alerts"},{"title":"Bulk assign alerts","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /v1/alerts/bulk/assign","href":"/api-reference/alerts/bulk-assign-alerts"}]},{"group":"Checks","pages":[{"title":"Get check details","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/checks/{check_token}","href":"/api-reference/checks/get-check-details"},{"title":"Execute check","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /v1/checks/{check_token}/run","href":"/api-reference/checks/execute-check"},{"title":"Waive check","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /v1/checks/{check_token}/waive","href":"/api-reference/checks/waive-check"}]},{"group":"Risk Assessments","pages":[{"title":"Get risk assessment","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/risk-assessments/{assessment_token}","href":"/api-reference/risk-assessments/get-risk-assessment"},{"title":"Approve risk assessment","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /v1/risk-assessments/{assessment_token}/approve","href":"/api-reference/risk-assessments/approve-risk-assessment"},{"title":"Override risk tier","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /v1/risk-assessments/{assessment_token}/override","href":"/api-reference/risk-assessments/override-risk-tier"}]},{"group":"Audit \u0026 Analytics","pages":[{"title":"List audit logs","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/audit-logs","href":"/api-reference/audit-trail/list-audit-logs"},{"title":"Summary metrics","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/analytics/summary","href":"/api-reference/analytics/summary-metrics"},{"title":"Alert statistics","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/analytics/alerts","href":"/api-reference/analytics/alert-statistics"},{"title":"Case statistics","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/analytics/cases","href":"/api-reference/analytics/case-statistics"}]},{"group":"Webhooks","pages":[{"title":"Register webhook","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml post /v1/webhooks","href":"/api-reference/webhooks/register-webhook"},{"title":"List webhooks","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml get /v1/webhooks","href":"/api-reference/webhooks/list-webhooks"},{"title":"Remove webhook","deprecated":null,"version":null,"openapi":"/zenoo-api-openapi.yaml delete /v1/webhooks/{webhook_id}","href":"/api-reference/webhooks/remove-webhook"}]}]},{"tab":"Resources","pages":[{"title":"Resources","href":"/reference/error-codes"}]}]},"basePath":"","title":"Initiate Person Verification journey (async) - Zenoo Developer Docs","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-5FCzAcfS.js","utils-SLtAG4EZ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-2DZi8ZMu.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D7J3nkzE.js","snippetPresets-D0Alv0AH.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BI4qNJ2c.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BD3uyr8j.js","shallow-D8iEBr5z.js","getApiPlaygroundDisplay-CgNP4lzR.js","CodeSnippet-CX-QHuMs.js","CodeSnippets-VlXE-ZUf.js","Page-D9ithiIZ.js","getPastedJson-DYNQkZ1M.js","icon-CzacdwOi.js","MethodPill-2JVqoYKi.js","DuplicateIcon-_xVXs-U8.js","createIcon-BRHrweLo.js","DynamicMarkdown-mQG_iQiE.js","SectionHeading-DMpJzv8f.js","axios-vUo_bRtp.js","Markdown-5FGIym-8.js","clsx-D-TRO5q5.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CdrJecqK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CHlcWBLM.js"]}