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

# Create ID Link

> Generate a KYC verification link for a customer

Creates a new identity verification link that can be sent to a customer to complete their KYC process. The link connects to the configured identity provider (e.g., Sumsub) and, upon successful completion, triggers the on-chain identity verification.

## Request Body

The request body is passed directly to the ID link service. Required fields depend on the identity provider configuration for your instance.

<ParamField body="email" type="string">
  Customer email address. Used to send the verification link.
</ParamField>

<ParamField body="walletAddress" type="string">
  Ethereum wallet address to associate with the verification.
</ParamField>

<ParamField body="country" type="string">
  ISO country code for the customer.
</ParamField>

<ParamField body="channels" type="string[]">
  Delivery channels for the link (e.g., `["email"]`, `["sms"]`, `["email", "sms"]`).
</ParamField>

<ParamField body="metadata" type="object">
  Arbitrary metadata to attach to the link.
</ParamField>

## Response Fields

<ResponseField name="success" type="boolean">Request status</ResponseField>
<ResponseField name="data" type="object">The created ID link object, including the generated link URL and its current status.</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.trusset.org/customers/api/id-links" \
    -H "Content-Type: application/json" \
    -H "X-API-Key: trusset_abc123xy_secret..." \
    -d '{
      "email": "customer@example.com",
      "walletAddress": "0xAbC123dEf456789012345678901234567890AbCd",
      "country": "DE",
      "channels": ["email"]
    }'
  ```

  ```typescript TypeScript theme={null}
  const response = await fetch(
    'https://api.trusset.org/customers/api/id-links',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'X-API-Key': 'trusset_abc123xy_secret...'
      },
      body: JSON.stringify({
        email: 'customer@example.com',
        walletAddress: '0xAbC123dEf456789012345678901234567890AbCd',
        country: 'DE',
        channels: ['email']
      })
    }
  );
  const { data: link } = await response.json();
  ```
</RequestExample>

<ResponseExample>
  ```json 201 Response theme={null}
  {
    "success": true,
    "data": {
      "id": "link_abc123",
      "url": "https://verify.trusset.org/link_abc123",
      "status": "pending",
      "email": "customer@example.com",
      "walletAddress": "0xAbC123dEf456789012345678901234567890AbCd",
      "createdAt": "2025-06-15T12:00:00.000Z",
      "expiresAt": "2025-06-22T12:00:00.000Z"
    },
    "metadata": {
      "requestId": "550e8400-e29b-41d4-a716-446655440000",
      "timestamp": "2025-06-15T12:00:00.000Z"
    }
  }
  ```
</ResponseExample>
