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

# Creator sign-up from your platform

> Let creators open their account from your own page: one API call creates it and returns the ID-check link to redirect them to.

- Source: https://www.dropfans.io/developers/guides/creator-signup
- Section: Guides
- OpenAPI: https://www.dropfans.io/developers/openapi.json

Approved CRM apps can create creator accounts server-side. The creator never fills in our sign-up form: you collect their details, call [POST /api/external/accounts](https://www.dropfans.io/developers/reference/create-account.md) with a key your app owner holds, and redirect them to the ID check we return.

> [!NOTE] Ask us first
> Creator sign-up is enabled per app. Ask us to enable it for yours. Call it with a key your app owner holds: their own, or one their agency minted for its personas.

## The flow

1. **Your page** collects the profile (email, handle, display name, bio, country of residence, avatar, banner, subscription price) and shows our Terms of Service, Privacy Policy and 2257 statement with an acceptance checkbox.
2. **Your server** calls create-account. Pass the creator's **browser** IP and user agent from the moment they accepted.
3. **Redirect** the creator to `kycUrl` (a full-page redirect or a new tab, never an iframe).
4. **They come back** to your `kycReturnUrl` with `?kyc=approved|declined|in_review`. Show the matching screen, but don't unlock anything yet.
5. **The decision** arrives as the `account.kyc_updated` [webhook](https://www.dropfans.io/developers/webhooks/overview.md). With `kycStatus: "approved"` the account is `active` and can sell and get paid.

```bash
curl -X POST "https://www.dropfans.io/api/external/accounts" \
  -H "Authorization: Bearer $APP_OWNER_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "valeria@example.com",
    "username": "valeria",
    "displayName": "Valeria",
    "residencyCountry": "SE",
    "avatarUrl": "https://cdn.example.com/valeria/avatar.jpg",
    "subscription": { "priceUsd": 9.99, "interval": "monthly" },
    "legalAccepted": true,
    "acceptedFromIp": "203.0.113.7",
    "acceptedUserAgent": "Mozilla/5.0 …",
    "kycReturnUrl": "https://crm.example.com/onboarding/done"
  }'
```

## What you get back

- `accountId`: keep it. [GET /accounts/{id}](https://www.dropfans.io/developers/reference/get-account.md) shows the status at any time.
- `apiKey`: a key for the new account, bound to your app. Upload media and create drops for the creator with it straight away. Drops stay unsellable until the ID check is approved. The key is shown once.
- `kycUrl`: the ID check, valid for 24 hours. Get a fresh one with [POST /accounts/{id}/kyc-session](https://www.dropfans.io/developers/reference/create-kyc-session.md), for example after a decline.

## Sign-in and email

Without a `password`, we email the creator a link to set one (valid 7 days). With one, the welcome email just points them to sign in. Either way the creator can always use their dashboard directly.

## Referral commission

Every account you create is attributed to your app owner's account, which earns the standard referral commission on the creator's sales.

Next: [Broadcast one drop to many fans](https://www.dropfans.io/developers/guides/broadcast-one-drop.md) or [Webhooks & polling](https://www.dropfans.io/developers/webhooks/overview.md).

---

Previous: [Broadcast one drop to many fans](https://www.dropfans.io/developers/guides/broadcast-one-drop.md) · Next: [Webhooks & polling](https://www.dropfans.io/developers/webhooks/overview.md) · All pages: [llms.txt](https://www.dropfans.io/developers/llms.txt)
