> ## 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.

# Connexions bancaires et open banking

> Ce qu'est une connexion bancaire, comment elle fonctionne, ses statuts, les transactions et l'analyse, et ce que simule le sandbox.

Une connexion bancaire permet à un client de partager avec vous les transactions d'un compte après son accord. Sahl lit les transactions, les classe en revenus, logement, dettes et autres catégories, et renvoie une analyse de flux de trésorerie. C'est le premier métier de Sahl pour les banques et les prêteurs du Maroc et de l'Afrique francophone. La lecture de documents, la vérification et le score s'appuient sur le même dossier.

<Card title="Passez à l'offre supérieure pour les connexions bancaires réelles" icon="building-columns" href="https://sahlfinancial.com/fr/use-cases" horizontal>
  Les connexions bancaires réelles font partie de l'offre Growth, activées par Sahl pour votre espace. D'ici là, le bac à sable les simule. Voir les offres et parler à l'équipe commerciale.
</Card>

## Ce qui est disponible aujourd'hui

* **Console, sandbox :** un membre connecté crée une connexion simulée et voit aussitôt de fausses transactions et une analyse. Les routes sont dans la [référence de l'API de la console](/fr/console-api/overview).
* **Production :** aucun fournisseur de données bancaires n'est branché sur l'API. La création, le rafraîchissement, les transactions et l'analyse répondent `409` avec le code `bank_connect_unavailable`.
* **API Partenaire avec clé :** `/v1/partner/bank-connections`, avec les scopes `bank:read` et `bank:write`. Offre Growth, activée par Sahl espace par espace. Tant que Sahl n'a pas activé votre espace, un appel répond `403` `bank_scope_not_allowed` ; une fois activé, la production répond toujours `409` comme ci-dessus. Même simulation sandbox que la console. Pour l'activer, écrivez à [contact@sahlfinancial.com](mailto:contact@sahlfinancial.com).

Les banques que Sahl liste sont sur la page [Couverture bancaire](/fr/bank-coverage). Cette page est une liste d'établissements, pas la promesse que des données réelles circulent.

## Comment fonctionne une connexion

1. Un membre de votre espace choisit une banque (`bank_code`, `bank_name`) et, si besoin, un dossier (`case_id`).
2. Dans une connexion réelle, le client suivrait un lien, se connecterait à sa propre banque et choisirait ce qu'il partage. Les identifiants restent à la banque. Le modèle porte un `link_token` et un `expires_at` pour cette étape.
3. Quand la banque confirme, la connexion passe à `connected` et porte le nom du titulaire, les quatre derniers chiffres du compte, le nombre de transactions et les moyennes.
4. Vous lisez les transactions et l'analyse, et vous rattachez le résultat à un dossier.

Dans la simulation du sandbox, il n'y a pas de lien à suivre : la connexion est `connected` dès sa création, et les chiffres sont générés à partir de son identifiant. Ils sont identiques à chaque lecture de la même connexion.

## Statuts

| Statut | Sens |
| - | - |
| `link_created`, `link_sent` | Le client n'a pas terminé. Compté comme en attente dans les statistiques. |
| `connected` | Les données sont disponibles. Seul un compte connecté peut être rafraîchi (sinon `400`). |
| `expired` | Le lien ou le consentement a expiré. |
| `failed` | La connexion n'a pas abouti. |

`GET /v1/bank-connections/stats` les compte : total, connected, pending, expired, failed. La liste accepte un filtre `status`.

## Transactions et analyse

La liste des transactions renvoie chaque mouvement avec sa catégorie, plus le total, le titulaire du compte et le nom de la banque. L'analyse renvoie :

| Champ | Contenu |
| - | - |
| `income_regularity` | Score, schéma, employeur, jour du mois, mois consécutifs et un risque faible, moyen ou élevé. |
| `risk_flags` | Découverts, chèques rejetés, transactions de jeu, retraits d'espèces importants, remboursements de dettes détectés, et les éléments signalés. |
| `savings_rate`, `estimated_dti` | Taux d'épargne et ratio d'endettement estimé. |
| `avg_balance`, `avg_end_of_month_balance` | Soldes moyens. |
| `monthly_income`, `monthly_expenses` | Moyennes mensuelles. |

En sandbox, ces valeurs sont inventées. Ne les lisez pas comme un vrai client.

## La règle de production

La simulation ne tourne que si la requête se déclare sandbox, avec l'en-tête `X-Sahl-Environment: sandbox` ou `environment=sandbox`, et si le serveur a la simulation activée. Tout le reste est refusé :

```json theme={null}
{ "detail": { "code": "bank_connect_unavailable", "message": "Bank connection is not available yet. No bank data provider is live for this workspace." } }
```

La liste, les statistiques et la lecture d'une connexion ne renvoient jamais `409`.

## API Partenaire (clé d'API)

Les espaces de l'offre Growth activés par Sahl peuvent appeler les mêmes opérations avec une clé d'API : `POST /v1/partner/bank-connections` (`bank:write`), `GET /v1/partner/bank-connections`, `/stats`, `/{connection_id}`, `/{connection_id}/transactions` et `/{connection_id}/analysis` (`bank:read`), et `POST /v1/partner/bank-connections/{connection_id}/refresh` (`bank:write`). Elles renvoient les mêmes objets que les routes de la console, pour votre espace uniquement. La règle de production ci-dessus s'applique sans changement : aucun fournisseur de données bancaires réelles, donc `409` `bank_connect_unavailable` en production. Voir la [référence de l'API Partenaire](/fr/api-reference/introduction).

## Suite

* [Couverture bancaire](/fr/bank-coverage)
* [Routes de connexion bancaire : console et API Partenaire](/fr/guides/bank-connections)
* [Référence de l'API de la console](/fr/console-api/overview)
* [Lire des documents](/fr/guides/ocr-documents), quand la banque n'est pas connectable et que vous avez des relevés


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