# Onboarding (/docs/reseller/your-business/onboarding)

> From access to a client that can make calls: get your key, create an account, fund it, verify it, and buy it a number.

This is the shortest path from nothing to a client that can make calls. Each step links
to the page that explains it in full.

### Get access [#get-access]

The reseller API is granted to partners, not to anonymous signups.
[Request access](https://omnidim.io/contact-us?reason=reseller_api&lock=1) and we enable
the reseller features on your account.

### Create your API key [#create-your-api-key]

Generate a key from the [API management dashboard](https://omnidim.io/api-management).
The key must belong to the account owner or an admin on the account. A teammate with
viewer access is refused.

Send it as a bearer token on every request:

```http
Authorization: Bearer YOUR_API_KEY
```

### Create your first client [#create-your-first-client]

One call creates the client's user and its account together, and links it to you.

```http
POST /api/v1/reseller/users/add

{
  "name": "Demo User",
  "email": "demo@example.com",
  "phone": "+15551234567",
  "password": "...",
  "cost_per_min": 0.20,
  "concurrent_call_limit": 2
}
```

Only the first four fields are required. The rest set the terms you sell on, and you can
change them later. See [Clients](/docs/reseller/your-clients/clients) for every field.

### Fund the client [#fund-the-client]

A new client has no balance, so its calls cannot run yet. Move minutes from your balance
to the client's at the rate you set.

```http
POST /api/v1/reseller/credits/transfer

{ "to_organization_id": 5678, "minutes": 100, "cost_per_min": 0.20 }
```

Preview it first with `/reseller/credits/calculate`. See [Credits](/docs/reseller/your-business/credits).

### Verify the client where the region requires it [#verify-the-client-where-the-region-requires-it]

To buy a number in a region that runs identity checks, the client has to pass them first.
Ask which step is next, run it, then follow `next_step` until the status is `completed`.
See [Verification](/docs/reseller/your-clients/verification).

### Buy and attach a number [#buy-and-attach-a-number]

Buying is the ordinary number API with the client's `user_id` added. The number lands on
the client's account and its rental comes out of the client's balance.

```http
GET  /api/v1/phone_number/search?region=IN&carrier=carrier-1&user_id=CLIENT_ID
POST /api/v1/phone_number/purchase   { "region": "IN", "carrier": "carrier-1", "phone_number": "+91...", "user_id": CLIENT_ID }
```

Then attach it to one of the client's agents. See [Numbers](/docs/reseller/your-clients/numbers).

### Optionally, give the client its own key [#optionally-give-the-client-its-own-key]

If the client's own system needs to call the API, issue it a key. The secret is shown
once, at issue. See [Client API keys](/docs/reseller/your-clients/client-api-keys).

### Run it day to day [#run-it-day-to-day]

Watch usage in [Analytics](/docs/reseller/your-business/analytics), top up a client when its balance
runs low, and block or release a client from [Clients](/docs/reseller/your-clients/clients).

## What to decide before you start [#what-to-decide-before-you-start]

- **Your price.** `cost_per_min` sets what the client pays. It has to be at least what you
  pay, for both rates, or the call is refused. `welcome_minutes_to_credit` is capped the
  same way.
- **Concurrency.** `concurrent_call_limit` is a per-client cap. Your own limit is the
  ceiling for the whole family.
- **Verification.** If your region requires identity checks, plan for them in your
  onboarding flow before the client tries to buy a number.

## Next steps [#next-steps]

  - [Clients](/docs/reseller/your-clients/clients) — Create, configure, block, restore, and release clients.
  - [Credits](/docs/reseller/your-business/credits) — Fund clients and track your margin.
  - [Reseller API](/docs/reseller-api) — The journey, step by step, linking to each area.