> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sahlfinancial.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sandbox et production

> Un hôte, une clé, un champ environment. Ce que le champ change et ce qu'il ne change pas.

Il existe un seul hôte d'API, `https://app.sahlfinancial.com/api`, et un seul type de clé. Chaque appel indique son environnement avec le champ `environment` : `sandbox` ou `production`. La valeur par défaut est `sandbox` : un appel qui oublie le champ ne peut donc pas toucher aux données de production.

| Où | Comment le définir |
| - | - |
| `POST /v1/kyc/extract` | champ de formulaire `environment` |
| `POST /v1/kyc/verify`, `POST /v1/kyc/assess`, `POST /v1/kyc/eid` | champ JSON `environment` |
| `GET /v1/kyc/eid/{key}` | paramètre de requête `environment` |

Toute autre valeur donne un 422.

## Ce que le champ change

| Élément | Sandbox | Production |
| - | - | - |
| Dossiers | Un dossier par espace de travail, environnement et `reference`. | Un dossier distinct avec la même `reference`. Rien ne passe de l'un à l'autre. |
| Documents, verdicts, enregistrements eID | Classés dans le dossier sandbox. | Classés dans le dossier de production. |
| Politique KYC de l'espace de travail | La politique enregistrée pour (type de client, `sandbox`). | La politique enregistrée pour (type de client, `production`). Chaque environnement peut avoir ses propres seuils et verrous. |
| Préréglages de régime | Un espace de travail soumis à un régime réglementaire et sans politique enregistrée reçoit son préréglage. Pour les entités déclarantes canadiennes, le préréglage **désactive** le filtrage canadien en sandbox. | Même préréglage avec le filtrage canadien **activé**, car c'est un service facturé et le trafic de test ne doit pas l'atteindre. Demandez-le en sandbox avec `canadian_screening: true`. |
| Vues de la console | Cases, Documents et le journal d'appels affichent l'environnement choisi dans la barre supérieure de la console. | Les données de production dans la console suivent votre plan : Free a 10 dossiers de production par mois et exige un e-mail professionnel vérifié ; les plans payants ont leur quota. |
| Événements webhook | Envoyés, avec `environment: "sandbox"` dans le contenu. | Envoyés, avec `environment: "production"`. |
| Fichiers bruts conservés sans `reference` | Non classés dans votre espace de travail. | Non classés dans votre espace de travail. |

## Ce qu'il ne change pas

| Élément | Détail |
| - | - |
| Le lecteur | Le même modèle de vision lit les fichiers de sandbox et de production. Les résultats en sandbox sont de vraies lectures, pas des données préparées. |
| Listes de filtrage | Les mêmes listes de sanctions. |
| Le quota de lectures | Les lectures de sandbox et de production comptent dans le même total mensuel (2 000 par défaut). |
| Limite de débit | 100 requêtes par minute et par IP cliente, dans les deux. |
| eID | Le fournisseur eID est réellement appelé, et envoie un email au client, dans les deux. `environment` ne fait que choisir le dossier. |
| Clés d'API | Une même clé fonctionne dans les deux. |
| Règles du verdict | Les mêmes contrôles. Seules les valeurs de la politique peuvent différer. |

Il n'y a ni valeurs de test magiques ni documents de test préparés. La sandbox répond à ce que vous envoyez, avec le vrai moteur. Un faux document doit donc quand même ressembler à un document, et un faux client ne doit pas ressembler à un spécimen.

## Créer un faux client qui se comporte bien

| À faire | Pourquoi |
| - | - |
| Utilisez des noms tels que `Test Client`. | Un titulaire nommé exactement `John Doe`, `Jane Doe`, `Customer`, `Client`, `Sample`, `Example`, `Specimen`, `Test Card` ou `Nom Prenom` est signalé comme un modèle. |
| Utilisez un numéro de pièce qui n'est ni `P123456AA`, ni une suite d'un même chiffre, ni `123456789`. | Ce sont les numéros que les émetteurs impriment sur les spécimens. |
| Évitez `123 Any St` et une ville nommée `City`, `Anytown` ou `Ville`. | Même raison : adresses de modèle. |
| N'écrivez pas SPECIMEN, SAMPLE ou VOID en travers de l'image. | Le lecteur le signale et `authenticity:specimen:` échoue, un contrôle critique. |
| Utilisez une date d'expiration future sur les pièces d'identité et une date récente sur les factures et relevés. | `expiry:` et `recency:` sont critiques sur ces documents. |
| Utilisez une fausse CIN comme `BK123456` (une ou deux lettres, puis cinq à sept chiffres) pour un client marocain. Pour un client canadien, utilisez un NAS valide au sens de Luhn mais manifestement faux, comme `123456782`, ou aucun NAS. | `format:cin:` est un avertissement quand une CIN marocaine est mal formée. `format:sin` est critique lorsque le NAS échoue au calcul de la somme de contrôle. |

## Passer en production

Les appels sont les mêmes. Ce qui change :

1. Envoyez `environment: "production"`.
2. Vérifiez qu'une politique KYC existe pour la production si vous en voulez une. Sans elle, le préréglage de régime ou la valeur par défaut s'applique. Voir la [checklist de mise en production](/fr/go-live).
3. Vérifiez le quota de production de votre plan. Free inclut 10 dossiers de production par mois et exige un e-mail professionnel vérifié ; le bac à sable est illimité.

Les documents réels de clients vont uniquement en production.

## Données conservées en sandbox

* Avec une `reference`, les fichiers, les champs lus et les contrôles sont stockés dans votre dossier sandbox, où vos équipes les voient.
* Sans `reference`, rien n'est classé dans votre espace de travail. Demandez à Sahl avant d'envoyer quoi que ce soit de sensible.

## Limites

Jusqu'à 5 fichiers par appel `extract`, 30 Mo par fichier par défaut, 2 000 lectures de documents par mois par défaut, 100 requêtes par minute et par IP.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.