> For the complete documentation index, see [llms.txt](https://docs.ur.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ur.app/api-reference/api/kyc-and-kyb/managed-custody-kyc/get-the-current-onboarding-session.md).

# Get the current onboarding session

Returns the current onboarding state for the user. Poll it after the user starts the Sumsub SDK to detect the SignFormA state; the state can lag the SDK UI by a few seconds because Sumsub webhooks drive the transitions. Returns NO\_ACTIVE\_SESSION (code 30031) when the user has no active session, including after the session reaches a terminal outcome.

```json
{"openapi":"3.1.0","info":{"title":"UR API","version":"1.0.0"},"tags":[{"name":"Managed Custody KYC","description":"SDK KYC and shared-token KYC reuse for Managed Custody Mode."}],"servers":[{"url":"https://openapi.ur.app","description":"Production (partner API)"},{"url":"https://uropenapi-qa.ur-inc.xyz","description":"Testnet (partner API)"}],"security":[{"partnerAuth":[]},{"userWalletAuth":[]}],"components":{"securitySchemes":{"partnerAuth":{"type":"apiKey","in":"header","name":"X-Api-Signature","description":"Partner Auth: EIP-191 signature by the partner's registered backend key, with X-Api-Deadline and optional X-Api-PublicKey headers. See the Signature and verify guide."},"userWalletAuth":{"type":"apiKey","in":"header","name":"sign","description":"User wallet auth (External Wallet Access Mode): EIP-191 signature by the user's wallet key, with tokenId, network, hash, and deadline headers. See the Signature and verify guide."}},"schemas":{"KycSessionCurrentResponse":{"type":"object","properties":{"code":{"type":"integer","description":"Business result code. 0 means success; business rejections return HTTP 200 with a non-zero code."},"message":{"type":"string","description":"Human-readable diagnostic for non-zero codes."},"data":{"type":"object","properties":{"sessionId":{"type":"string","description":"UUID of the active onboarding session."},"flowId":{"type":"integer","format":"int64","description":"Internal flow id for the session."},"retryLevel":{"type":"integer","format":"int64","description":"Increments each time the user starts a fresh onboarding attempt after a previous one terminated."},"state":{"type":"string","description":"Current session state, in onboarding order: ConfirmYourCountryOfResidence, AddressProof, UnderstandRisk, LiabilityWaiver, IdOrPassportOrOtherIdInformationScan, IdAndLiveness, SignFormA, Register. Treat any unlisted value as an in-progress state. Terminal outcomes are reported by the fma.account.result webhook, after which this endpoint returns NO_ACTIVE_SESSION (code 30031)."},"dataChannel":{"type":"string","description":"Onboarding path of the session; sdk for the Sumsub SDK path. Any other value indicates a partner configuration issue for that path."},"createdAt":{"type":"integer","format":"int64","description":"Session creation time, Unix seconds."},"lastUserActivityAt":{"type":"integer","format":"int64","description":"Last user activity time, Unix seconds."}}}}}}},"paths":{"/api/fma/v1/kyc/session/current":{"get":{"tags":["Managed Custody KYC"],"operationId":"kycMcGetCurrentSession","summary":"Get the current onboarding session","description":"Returns the current onboarding state for the user. Poll it after the user starts the Sumsub SDK to detect the SignFormA state; the state can lag the SDK UI by a few seconds because Sumsub webhooks drive the transitions. Returns NO_ACTIVE_SESSION (code 30031) when the user has no active session, including after the session reaches a terminal outcome.","parameters":[{"name":"X-Ur-Id","in":"header","required":false,"schema":{"type":"string"},"description":"The user's URID. Send at least one of X-Ur-Id or X-External-User-Id."},{"name":"X-External-User-Id","in":"header","required":false,"schema":{"type":"string"},"description":"Your partner-side user id. Send at least one of X-Ur-Id or X-External-User-Id."},{"name":"X-Api-Signature","in":"header","required":true,"schema":{"type":"string"},"description":"Partner Auth EIP-191 signature over the canonical message plus the deadline."},{"name":"X-Api-Deadline","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp in seconds after which the signature is no longer valid."},{"name":"X-Api-PublicKey","in":"header","required":true,"schema":{"type":"string"},"description":"Partner public key used to verify the signature."}],"responses":{"200":{"description":"Business result envelope. code 0 means success; business rejections return HTTP 200 with a non-zero code.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KycSessionCurrentResponse"}}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.ur.app/api-reference/api/kyc-and-kyb/managed-custody-kyc/get-the-current-onboarding-session.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
