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

# Terms of Service

> How customers accept Lumx's terms of service before verification

Every customer has to accept Lumx's [Terms of Service](https://lumx.io/terms-of-use) before they can complete identity verification and move money. Acceptance is collected programmatically through the API. Until the customer accepts, the `TERMS_OF_SERVICE` entry stays in their `requirements` array and verification can't proceed.

## Generating the acceptance link

Send a `POST` request to `/customers/{id}/tos` to generate an acceptance URL for a specific customer. Optionally include a `redirectUrl` to send the customer back to your app after they accept.

```bash Request theme={null}
curl -X POST https://api-sandbox.lumx.io/customers/3c90c3cc-0d44-4b50-8888-8dd25736052a/tos \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "redirectUrl": "https://yourapp.com/onboarding/next-step"
  }'
```

```json Response theme={null}
{
  "url": "https://dashboard.lumx.io/tos/eyJhbGciOiJSUzI1...",
  "expiresAt": "2026-04-09T16:00:00Z"
}
```

The returned `url` expires after 24 hours. If it expires before the customer accepts, generate a new one.

## Sharing the link with your customer

The acceptance flow lives on a Lumx-hosted page. Share the returned `url` with the customer through whichever channel fits your product: email, SMS, in-app link, or as part of an onboarding redirect.

When the customer opens the link, they review the Terms of Service and accept. If a `redirectUrl` was provided, they're sent back to your app afterwards.

## Tracking acceptance status

Terms of Service appears as a `TERMS_OF_SERVICE` entry inside the customer's `requirements` array, alongside other onboarding requirements. Subscribe to [customer webhooks](/developer/webhooks#available-events) to be notified as the customer progresses through verification, or read the customer at any time to inspect the current `requirements`.

```bash Request theme={null}
curl https://api-sandbox.lumx.io/customers/3c90c3cc-0d44-4b50-8888-8dd25736052a \
  -H "Authorization: Bearer YOUR_API_KEY"
```

```json Response (excerpt) theme={null}
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "requirements": [
    { "name": "TERMS_OF_SERVICE", "status": "NOT_SENT" }
  ]
}
```

## Related resources

<CardGroup cols="2">
  <Card title="Legal Documents" href="/compliance/legal-documents">
    Full list of Lumx's legal documents and policies.
  </Card>

  <Card title="Identity Verification" href="/compliance/identity-verification">
    Data requirements for KYC/KYB after acceptance.
  </Card>

  <Card title="Individual verification" href="/guides/individual-verification">
    End-to-end onboarding flow for individual customers.
  </Card>

  <Card title="Business verification" href="/guides/business-verification">
    End-to-end onboarding flow for business customers.
  </Card>
</CardGroup>
