---
title: "Create session"
method: POST
path: "/topper/kyc-sharing/sessions"
tags: ["KYC sharing"]
---

# Create session

`POST /topper/kyc-sharing/sessions`

## Request

- Base URL: `https://api.enterprise.sandbox.uphold.com`
- URL: `https://api.enterprise.sandbox.uphold.com/topper/kyc-sharing/sessions`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `/core/oauth2/token` scopes: `topper.kyc-sharing:create-session`
- TypeScript: <https://skmtc.dev/uphold/apis/topper-api/docs/topper/kyc-sharing/sessions/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a new session for KYC sharing.

## Headers

- `X-Uphold-User-Ip` union
  - string, ipv4
  - string, ipv6
- `X-Uphold-User-Agent` string
- `X-Uphold-User-Origin` string
- `X-Uphold-User-Country` string
- `X-Uphold-User-Subdivision` string
- `X-Uphold-User-City` string

## Request body

- object
  - `userId` string, uuid, required: The user ID to create the KYC sharing session for.

## Response `200`

KYC sharing already completed.

- KycSharing
  - `kycSharing` object, required: The KYC sharing session.
    - `processes` string[], required: The missing KYC processes.
    - `userToken` object: The user access token to update the missing KYC processes.
      - `access_token` string, required: The access token string issued.
      - `refresh_token` string: The refresh token string issued (only applicable to certain grant types).
      - `expires_in` integer, required: The number of seconds until the token expires.
      - `scope` string: The list of scopes, delimited with spaces.
      - `token_type` 'Bearer', required

## Other responses

- `201`: KYC Sharing session created.
- `401`: Unauthorized.
- `403`: Forbidden.
- `404`: Resource not found.
- `409`: Business logic error.
- `429`: Too Many Requests.

---

[API](https://skmtc.dev/uphold/apis/topper-api.md) - [All operations](https://skmtc.dev/uphold/apis/topper-api/llms.txt) - [OpenAPI document](https://skmtc.dev/uphold/apis/topper-api/revisions/78127cd773a3?raw)
