# Going live

> How Production opens: a payment method, an application filed on Platform, a review by Noryo, and the conditions of a live key. And what changes, or not, in your code.

Production is not self-service. You file an application, a person at Noryo reviews it, and the decision is theirs. This page describes the path and what changes in your integration once Production is open.

## 1. Finish the integration in Sandbox

Sandbox serves the same contract and the same engine as Production. Before filing an application, go through the checklist at the bottom of this page: an integration that is correct in Sandbox is correct in Production.

## 2. Register a payment method

Before the review, you must have registered a payment method: Noryo does not open a Production it could not collect on.

## 3. File the application

The application is filed on the [Production mode](https://platform.noryo.app/production) page of Platform. It asks for:

| Field | Expected content |
|---|---|
| Legal identity | The exact registered company name |
| Contact email | Required |
| Contact telephone | Required |
| Product URL | Or, failing that, at least one screenshot (one URL per line): one of the two is required |
| Estimated volume | For example: 50,000 transactions per month |
| Use case | What you do with the enrichment |

## 4. The review

Filing an application does not approve it. You follow its state and history on the same page, without being able to move it forward yourself: starting the review, approving, rejecting, suspending and resuming are internal Noryo actions.

| State | Meaning |
|---|---|
| Filed | Waiting to be picked up |
| In review | Being examined by Noryo |
| Approved | Production is open |
| Rejected | Production is not open; a reason is shown |
| Suspended | Production has been suspended; a reason is shown |

Reasons come from a closed list: identity not verifiable, product absent or inaccessible, use outside the contract, inconsistent volume, suspected fraud, insufficient compliance, incomplete application, payment refused, other.

## 5. Once approved

Usage is metered as you call, each calendar month is closed automatically, and the invoice is collected from your registered payment method. See [Billing](https://developer.noryo.app/en-GB/merchant/billing).

A Production key (`nry_mer_live_…`) can only exist for a workspace whose application is approved and which holds an active subscription. Platform does not create one: it only issues Sandbox keys.

## What changes in your code

| Item | Sandbox | Production |
|---|---|---|
| Base URL | identical | identical |
| Key | `nry_mer_sbx_…` | `nry_mer_live_…` |
| `enrichment.environment` | `sandbox` | `production` |
| `usage.billable` | always `false` | `true` for `resolved` and `refresh_recalculated` |
| Rate limits | published | not published: read `Noryo-RateLimit-Limit` |

Nothing else changes: same contract, same fields, same error codes. Data does not cross environments: a Sandbox `enrichment_id` cannot be read with the Production key, and your `external_transaction_id` values start afresh.

## Errors specific to Production

| Code | Status | Meaning |
|---|---|---|
| [`production_not_enabled`](https://developer.noryo.app/en-GB/errors/production_not_enabled) | 403 | The key is not allowed to call the Production environment |
| [`no_active_subscription`](https://developer.noryo.app/en-GB/errors/no_active_subscription) | 402 | No active subscription covers the operation |
| [`pricing_not_activated`](https://developer.noryo.app/en-GB/errors/pricing_not_activated) | 503 | Billing is not activated for this operation yet; retry after `Retry-After`. Sandbox can return it too |

## Checklist before switching

- Every create call carries an `Idempotency-Key` **and** an `external_transaction_id`. See [The two identifiers](https://developer.noryo.app/en-GB/merchant/identifiers).
- Retries keep the same `Idempotency-Key` and honour `Retry-After`. See [Retries](https://developer.noryo.app/en-GB/merchant/operations/retries).
- Your logic reads `enrichment.status` before `merchant`, and treats `not_found` as a result. See [Reading the response](https://developer.noryo.app/en-GB/merchant/reading-the-response).
- Your accounting ignores `usage` on responses carrying `Noryo-Idempotency-Replayed: true`. See [Billing](https://developer.noryo.app/en-GB/merchant/billing).
- You store what you need: the content of a result expires after 90 days. See [Retention and 410](https://developer.noryo.app/en-GB/merchant/retention).
- You log `Noryo-Request-Id` for every call. See [Request IDs](https://developer.noryo.app/en-GB/merchant/operations/request-ids).
- The live key lives server-side, never in a browser or a mobile app. See [Keeping secrets safe](https://developer.noryo.app/en-GB/merchant/authentication/secret-security).

---

Canonical page: https://developer.noryo.app/en-GB/merchant/going-live
