# Onboarding and going live

> Sign up, create your organization, follow the onboarding checklist, verify your legal entity, and take a brand live once its go-live checklist holds.

Ownrecord is for businesses. You sign up, create your organization, and work through a short checklist in test mode. When a brand meets every item of its **go-live checklist**, you switch it to live and it can take real payments.

## Sign up and create your organization

1. Open `/signup` and sign up with Google, Microsoft or a 6-digit code sent to your work email. Signing up creates your account; it gives you access to nothing yet.
2. Create your organization: its name and country, and accept the Terms of Service on behalf of the business. You become its owner (`org_owner`), and the organization starts on the free Sandbox plan, in test mode.

You land on your organization's home, which shows the next step of the onboarding checklist until it's done.

## The onboarding checklist

The checklist has seven steps. Each one is `todo`, `in_progress`, `done` or `skipped`, and [`onboarding.get`](https://ownrecord.io/docs/reference/onboarding-get.md) returns them with the next one to do.

| Step            | Done when                                                                    |
| --------------- | ---------------------------------------------------------------------------- |
| `legal_entity`  | A legal entity's tax ID is verified, or its registry extract is under review |
| `brand`         | The organization has a brand                                                 |
| `processor`     | A processor connection is active (test or live)                              |
| `registrations` | Someone confirmed the registrations review                                   |
| `catalog`       | A brand has an active test-mode price                                        |
| `test_checkout` | A test-mode payment succeeded                                                |
| `go_live`       | A brand is live                                                              |

The steps follow what your organization has actually done, so they can't be ticked by hand. The registrations review is the exception: there's nothing in the data that shows you checked your home registration number, added your existing OSS or UK registrations and looked at the blocked jurisdictions, so you confirm it yourself.

Any step can be skipped and picked up later with [`onboarding.steps.update`](https://ownrecord.io/docs/reference/onboarding-steps-update.md) (`skip`, `resume`, or `complete` for the registrations review). A skipped step counts as done as soon as the data shows it done. The checklist is complete when every step is done or skipped; the home page then stops showing it.

## Verifying your legal entity

A brand goes live only when its legal entity is verified. There are two ways:

- **A public register.** [`entities.verify`](https://ownrecord.io/docs/reference/entities-verify.md) checks the entity's home tax ID: an EU VAT ID with VIES (with your own VAT ID as requester, so the answer carries a consultation number), a UK VAT number with HMRC, a Swiss UID with the UID register. A confirmed number verifies the entity. A number the register doesn't know leaves it unverified, with the reason. If the register is down, nothing changes: try again later.
- **A registry extract.** For other tax IDs, or when the register doesn't confirm yours, upload an extract from the company register with [`entities.registry_extract.upload`](https://ownrecord.io/docs/reference/entities-registry-extract-upload.md) (a PDF, PNG or JPEG). The entity is `pending_review` until Ownrecord reviews the extract and verifies or rejects it, and you get the result by email.

In development and CI, fixture registers answer instead of the real ones.

## The go-live checklist

A brand moves from test mode (`test_only`) to `live` only when all of these hold. [`brands.go_live_checklist`](https://ownrecord.io/docs/reference/brands-go-live-checklist.md) shows each one and why it isn't met yet:

| Requirement         | What it means                                                                                                       |
| ------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `plan_livemode`     | The organization's plan includes live mode (a paid plan, or a trial of one)                                         |
| `org_status`        | The organization is active, not restricted, suspended, closing or closed                                            |
| `legal_accepted`    | An owner or admin accepted the current Terms of Service and Data Processing Agreement                               |
| `entity_verified`   | The brand's legal entity is verified                                                                                |
| `invoice_settings`  | The entity's invoice details are complete: legal name, street, city and country, tax ID, number format and language |
| `home_registration` | The entity's home registration is `registered`, with a number, in live mode                                         |
| `processor_live`    | The brand has a live processor connection that passes the connection test                                           |
| `brand_urls`        | The brand has its terms and privacy URLs                                                                            |
| `brand_status`      | The brand is in test mode (a suspended brand doesn't go live this way)                                              |

When everything holds, take the brand live with [`brands.go_live`](https://ownrecord.io/docs/reference/brands-go-live.md), in live mode. Ownrecord tests the live processor connection again first. In the console this needs a sign-in within the last 15 minutes; for agents it's a security-tier action that needs approval.

## What stays closed until a brand is live

- **Live API keys** for the brand (and entity or organization keys until a brand in their reach is live) are refused with `live_keys_unavailable`.
- **Live checkout sessions** are refused with `brand_not_live`. Test-mode checkouts always work: they're how you build and try your integration.

## Related

- [Account model](https://ownrecord.io/docs/concepts/account-model.md): organizations, legal entities and brands.
- [Registrations](https://ownrecord.io/docs/concepts/registrations.md): home registrations and the other states.
- [Payment processors](https://ownrecord.io/docs/concepts/processors.md): connecting Stripe and the connection test.
- [Organization lifecycle](https://ownrecord.io/docs/concepts/organization-lifecycle.md): ownership, exports and closing.
