# The road to production

`GET /v1/readiness` (permission `organization:read`) answers "what is still missing to issue for real?": each requirement with whether it is met and WHO must act: you, a person of the organization, or the provider. It advises; it blocks nothing in test mode.

In short:
1. Configure the issuer of the LIVE organization with its real fiscal data: `PUT /v1/issuer` (permission `issuers:write`), and its series with `POST /v1/series` (permission `series:write`; `Idempotency-Key` required).
2. Production is activated by the staff of the service, once the RUC is enrolled with the provider (`POST /v1/issuer/activate_production` is theirs: anyone else gets [`staff_required`](https://api.invox.page/v1/errors/staff_required)). From then on the RUC is locked to this issuer.
3. Create a key in the LIVE organization (`sk_live_…`) and switch the integration to it. The routes, the bodies and the errors are the same; `Test-Scenario` is rejected.

`GET /v1/provider` (permission `issuers:read`) says which provider answers for each connection and the state of its account. A blocked account (suspended, unpaid, a rejected credential) is a state of the ACCOUNT: invoices are still taken and wait, none is marked as failed because of it.

Before going live, exercise the failures in test mode (a rejection, a pending answer, a blocked account) and confirm your side handles each: [test mode](https://api.invox.page/v1/docs/test-mode).
