> ## Documentation Index
> Fetch the complete documentation index at: https://docs.yativo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Customer KYC Link

> Generate a KYC verification link for the customer to complete identity verification

<ParamField header="Authorization" type="string" required>
  Bearer token: `Bearer YOUR_ACCESS_TOKEN`
</ParamField>

<ParamField path="yativoCardId" type="string" required>
  The customer's `yativo_card_id`.
</ParamField>

<Note>
  Call this endpoint after OTP verification. Open `sumsub_link` in the customer's browser or embed it in your app. They will complete identity verification (government ID upload + liveness check) through the hosted Sumsub flow. After completion, poll [Check KYC Status](/api-reference/cards/kyc-status) until `kyc_status` is `approved` — KYC completion is not delivered as a webhook.
</Note>

<Note>
  **Link expiry:** The Sumsub link is valid for **1 hour** from when it was generated. If the customer has not completed KYC within that window, call this endpoint again — a fresh link is returned automatically. You do not need to pass any extra parameters to force a refresh.
</Note>

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET 'https://crypto-api.yativo.com/api/v1/yativo-card/customers/yativo_card_customer_8f9a..._1769031332068/kyc-link' \
    -H 'Authorization: Bearer YOUR_ACCESS_TOKEN'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "success": true,
    "message": "KYC link retrieved",
    "data": {
      "yativo_card_id": "yativo_card_customer_8f9a..._1769031332068",
      "sumsub_link": "https://kyc.sumsub.com/msdk/v2?accessToken=_act-sbx-...",
      "sumsub_sdk_token": "_act-sbx-...",
      "applicant_id": "6627f3a2c5d4e100123abcde",
      "next_step": "kyc_status"
    }
  }
  ```
</ResponseExample>
