# Environnements

> Sandbox et Production partagent une URL et un contrat ; la clé décide de l'environnement. Ce qui est isolé entre les deux, et comment le vérifier dans une réponse.

Noryo Merchant API a deux environnements, `sandbox` et `production`. Ils partagent la même URL de base et la même surface d'API : il n'y a pas d'hôte de Sandbox. **C'est la clé qui décide.**

| Préfixe de la clé | Environnement |
|---|---|
| `nry_mer_sbx_` | `sandbox` |
| `nry_mer_live_` | `production` |

## Le préfixe déclare, le serveur confirme

Le préfixe est une déclaration, pas une autorité. Le serveur retrouve la clé enregistrée, en lit l'environnement, et le compare au préfixe présenté. Une clé Sandbox présentée avec le préfixe `nry_mer_live_` (ou l'inverse) est refusée en `401 invalid_api_key`, sans correction silencieuse. Côté Noryo, une clé ne peut pas être enregistrée avec un préfixe qui contredit son environnement.

## Vérifier l'environnement dans une réponse

Chaque résultat répète l'environnement qui l'a produit :

```json
"enrichment": { "status": "resolved", "environment": "sandbox", "…": "…" }
```

Si votre code de Production reçoit `"environment": "sandbox"`, il utilise la mauvaise clé.

## Ce qui est isolé

Tout ce que l'API mémorise est propre à un workspace **et** à un environnement.

| Élément | Isolation |
|---|---|
| Résultats | Un `enrichment_id` n'est lisible qu'avec une clé du même workspace et du même environnement ; sinon `404 enrichment_not_found`, indiscernable d'un identifiant inconnu |
| `Idempotency-Key` | Une même clé d'idempotence est indépendante en Sandbox et en Production |
| `external_transaction_id` | La déduplication économique est séparée par environnement : le même identifiant peut exister dans les deux |
| Débit | Un seau de jetons par clé ; une clé Sandbox et une clé de Production n'ont jamais le même seau |
| Dotation | La dotation de 2 000 unités n'existe qu'en Sandbox |
| Facturation | Un appel Sandbox ne peut jamais facturer un compte de Production |

## Ce qui ne diffère pas

Les deux environnements utilisent le même moteur de résolution, la même politique de résolution, les mêmes règles de validation, d'idempotence et de rétention, et les mêmes codes d'erreur. Une intégration correcte en Sandbox se comporte de la même façon en Production ; seuls la clé, la facturation et les limites de débit changent. Voir [Sandbox](https://developer.noryo.app/fr-FR/merchant/sandbox).

## Accès

| | Sandbox | Production |
|---|---|---|
| Obtention de la clé | Page [Clés d'API](https://platform.noryo.app/keys) de Platform | Possible seulement après approbation du dossier de Production ; Platform ne crée pas de clé de Production |
| Refus propres | `402 sandbox_quota_exhausted` | `403 production_not_enabled`, `402 no_active_subscription` |

`503 pricing_not_activated` n'est propre à aucun des deux environnements : l'un et l'autre peuvent le rendre. Voir [Passage en production](https://developer.noryo.app/fr-FR/merchant/going-live).

> **Note** Gardez une variable de configuration par environnement (clé et URL de base), plutôt qu'une bascule dans le code. L'URL de base est aujourd'hui la même pour les deux, mais l'hôte ne fait pas partie du contrat.

---

Page canonique : https://developer.noryo.app/fr-FR/merchant/authentication/environments
